diff --git a/Envfile b/Envfile
index e751bb478..17fd79516 100644
--- a/Envfile
+++ b/Envfile
@@ -46,15 +46,15 @@ variable :FORCE_SSL_IN_RAILS, :String, default: "not applicable in dev"
# It's best if you have the following configured
# for more development experience
-# Github for github related access
+# GitHub
# (https://developer.github.com/v3/guides/basics-of-authentication/)
variable :GITHUB_KEY, :String, default: ""
variable :GITHUB_SECRET, :String, default: ""
-# Twitter for normal twitter access
-# (https://developer.twitter.com/en/docs/basics/authentication/guides/access-tokens)
-variable :TWITTER_KEY, :String, default: "Optional"
-variable :TWITTER_SECRET, :String, default: "Optional"
+# Twitter
+# (https://developer.twitter.com/en/docs/basics/authentication/oauth-2-0/application-only)
+variable :TWITTER_KEY, :String, default: ""
+variable :TWITTER_SECRET, :String, default: ""
################################################
######### Optional 3rd Party Services ##########
diff --git a/app/labor/twitter_bot.rb b/app/labor/twitter_bot.rb
deleted file mode 100644
index 66eb2dfab..000000000
--- a/app/labor/twitter_bot.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-class TwitterBot
- def self.client(token:, secret:)
- Twitter::REST::Client.new do |config|
- config.consumer_key = ApplicationConfig["TWITTER_KEY"]
- config.consumer_secret = ApplicationConfig["TWITTER_SECRET"]
- config.access_token = token
- config.access_token_secret = secret
- end
- end
-end
diff --git a/app/models/tweet.rb b/app/models/tweet.rb
index 837f357fb..17579929c 100644
--- a/app/models/tweet.rb
+++ b/app/models/tweet.rb
@@ -3,32 +3,15 @@ class Tweet < ApplicationRecord
belongs_to :user, optional: true
- serialize :mentioned_usernames_serialized
- serialize :hashtags_serialized
- serialize :urls_serialized
- serialize :media_serialized
serialize :extended_entities_serialized
serialize :full_fetched_object_serialized
+ serialize :hashtags_serialized
+ serialize :media_serialized
+ serialize :mentioned_usernames_serialized
+ serialize :urls_serialized
- validates :twitter_id_code, presence: true
validates :full_fetched_object_serialized, presence: true
-
- def self.find_or_fetch(twitter_id_code)
- find_by(twitter_id_code: twitter_id_code) || fetch(twitter_id_code)
- end
-
- def self.fetch(twitter_id_code)
- tries = 0
- tweet = nil
- until tries > 4 || tweet
- begin
- return tweet = try_to_get_tweet(twitter_id_code)
- rescue StandardError => e
- Rails.logger.error(e)
- tries += 1
- end
- end
- end
+ validates :twitter_id_code, presence: true
def processed_text
urls_serialized.each do |url|
@@ -55,66 +38,83 @@ class Tweet < ApplicationRecord
end
class << self
- def try_to_get_tweet(twitter_id_code)
- client = TwitterBot.client(random_identity)
- tweet = client.status(twitter_id_code, tweet_mode: "extended")
- make_tweet_from_api_object(tweet)
+ def find_or_fetch(status_id)
+ find_by(twitter_id_code: status_id) || fetch(status_id)
end
private
- def make_tweet_from_api_object(tweeted)
- tweeted = if tweeted.attrs[:retweeted_status]
- TwitterBot.client(random_identity).status(tweeted.attrs[:retweeted_status][:id_str])
- else
- tweeted
- end
+ def fetch(status_id)
+ retrieve_and_save_tweet(status_id)
+ rescue TwitterClient::Errors::NotFound => e
+ raise e, "Tweet not found"
+ end
- tweet = Tweet.where(twitter_id_code: tweeted.attrs[:id_str]).first_or_initialize
+ def retrieve_and_save_tweet(status_id)
+ status = TwitterClient::Client.status(status_id, tweet_mode: "extended")
+ create_tweet_from_api_status(status)
+ end
+
+ def create_tweet_from_api_status(status)
+ status = if status.retweeted_status.present?
+ TwitterClient::Client.status(status.retweeted_status.id.to_s)
+ else
+ status
+ end
+
+ params = { twitter_id_code: status.id.to_s }
+ tweet = Tweet.find_by(params) || new(params)
+
+ tweet.text = status.full_text
+
+ # matching the retrieved tweet to the DB user if there is one
+ tweet.user_id = User.find_by(twitter_username: status.user.screen_name)&.id
+
+ tweet = extract_metadata_attributes(tweet, status)
+ tweet = extract_serializable_attributes(tweet, status)
+ tweet = extract_user_attributes(tweet, status)
- tweet.twitter_uid = tweeted.user.id.to_s
- tweet.twitter_username = tweeted.user.screen_name.downcase
- tweet.user_id = User.find_by(twitter_username: tweeted.user.screen_name)&.id
- tweet.favorite_count = tweeted.favorite_count
- tweet.retweet_count = tweeted.retweet_count
- tweet.twitter_user_following_count = tweeted.user.friends_count
- tweet.twitter_user_followers_count = tweeted.user.followers_count
- tweet.in_reply_to_username = tweeted.in_reply_to_screen_name
- tweet.source = tweeted.source
- tweet.twitter_name = tweeted.user.name
- tweet.mentioned_usernames_serialized = tweeted.user_mentions.as_json
- tweet.remote_profile_image_url = tweeted.user.profile_image_url
tweet.last_fetched_at = Time.current
- tweet.user_is_verified = tweeted.user.verified?
- tweet = handle_tweeted_attrs(tweet, tweeted)
-
tweet.save!
tweet
end
- def handle_tweeted_attrs(tweet, tweeted)
- tweet.in_reply_to_user_id_code = tweeted.attrs[:in_reply_to_user_id_str]
- tweet.in_reply_to_status_id_code = tweeted.attrs[:in_reply_to_status_id_str]
- tweet.twitter_id_code = tweeted.attrs[:id_str]
- tweet.quoted_tweet_id_code = tweeted.attrs[:quoted_status_id_str]
- tweet.text = tweeted.attrs[:full_text]
- tweet.hashtags_serialized = tweeted.attrs[:entities][:hashtags]
- tweet.urls_serialized = tweeted.attrs[:entities][:urls]
- tweet.media_serialized = tweeted.attrs[:media]
- tweet.extended_entities_serialized = tweeted.attrs[:extended_entities]
- tweet.full_fetched_object_serialized = tweeted.attrs
- tweet.tweeted_at = tweeted.attrs[:created_at]
- tweet.is_quote_status = tweeted.attrs[:is_quote_status]
+ def extract_metadata_attributes(tweet, status)
+ tweet.favorite_count = status.favorite_count
+ tweet.in_reply_to_status_id_code = status.in_reply_to_status_id.to_s
+ tweet.in_reply_to_user_id_code = status.in_reply_to_user_id.to_s
+ tweet.in_reply_to_username = status.in_reply_to_screen_name.to_s
+ tweet.is_quote_status = status.attrs[:is_quote_status]
+ tweet.quoted_tweet_id_code = status.attrs[:quoted_status_id_str]
+ tweet.retweet_count = status.retweet_count
+ tweet.source = status.source
+ tweet.tweeted_at = status.created_at
+
tweet
end
- def random_identity
- iden = Identity.where(provider: "twitter").last(250).sample
- {
- token: iden&.token || ApplicationConfig["TWITTER_KEY"],
- secret: iden&.secret || ApplicationConfig["TWITTER_SECRET"]
- }
+ def extract_serializable_attributes(tweet, status)
+ tweet.extended_entities_serialized = status.attrs[:extended_entities]
+ tweet.full_fetched_object_serialized = status.attrs
+ tweet.hashtags_serialized = status.hashtags
+ tweet.media_serialized = status.attrs.dig(:entities, :media)
+ tweet.mentioned_usernames_serialized = status.user_mentions.as_json
+ tweet.urls_serialized = status.urls
+
+ tweet
+ end
+
+ def extract_user_attributes(tweet, status)
+ tweet.remote_profile_image_url = status.user.profile_image_url
+ tweet.twitter_name = status.user.name
+ tweet.twitter_uid = status.user.id.to_s
+ tweet.twitter_user_followers_count = status.user.followers_count
+ tweet.twitter_user_following_count = status.user.friends_count
+ tweet.twitter_username = status.user.screen_name.downcase
+ tweet.user_is_verified = status.user.verified?
+
+ tweet
end
end
end
diff --git a/app/services/rss_reader.rb b/app/services/rss_reader.rb
index 897fe9452..81a783533 100644
--- a/app/services/rss_reader.rb
+++ b/app/services/rss_reader.rb
@@ -4,12 +4,17 @@ class RssReader
end
def get_all_articles(force = true)
+ articles = []
+
User.where.not(feed_url: [nil, ""]).find_each do |user|
# unless forced, fetch sparingly
next if force == false && (rand(2) == 1 || user.feed_fetched_at > 15.minutes.ago)
- create_articles_for_user(user)
+ user_articles = create_articles_for_user(user)
+ articles.concat(user_articles) if user_articles
end
+
+ articles
end
def fetch_user(user)
@@ -28,8 +33,11 @@ class RssReader
user.update_column(:feed_fetched_at, Time.current)
feed = fetch_rss(user.feed_url.strip)
+ articles = []
+
feed.entries.reverse_each do |item|
- make_from_rss_item(item, user, feed)
+ article = make_from_rss_item(item, user, feed)
+ articles.append(article)
rescue StandardError => e
log_error(
"RssReaderError: occurred while creating article",
@@ -41,6 +49,8 @@ class RssReader
},
)
end
+
+ articles
rescue StandardError => e
log_error(
"RssReaderError: occurred while fetching feed",
@@ -80,6 +90,8 @@ class RssReader
)
Slack::Messengers::ArticleFetchedFeed.call(article: article)
+
+ article
end
def get_host_without_www(url)
diff --git a/app/services/twitter_client/client.rb b/app/services/twitter_client/client.rb
new file mode 100644
index 000000000..06e4cebb7
--- /dev/null
+++ b/app/services/twitter_client/client.rb
@@ -0,0 +1,72 @@
+module TwitterClient
+ # Twitter client (users twitter gem as a backend)
+ class Client
+ class << self
+ # adapted from https://api.rubyonrails.org/classes/Module.html#method-i-delegate_missing_to
+ def method_missing(method, *args, &block)
+ return super unless target.respond_to?(method, false)
+
+ request do
+ target.public_send(method, *args, &block)
+ end
+ end
+
+ # adapted from https://api.rubyonrails.org/classes/Module.html#method-i-delegate_missing_to
+ def respond_to_missing?(method, _include_all = false)
+ target.respond_to?(method, false) || super
+ end
+
+ private
+
+ def request
+ Honeycomb.add_field("name", "twitter.client")
+ yield
+ rescue Twitter::Error => e
+ record_error(e)
+ handle_error(e)
+ end
+
+ def record_error(exception)
+ class_name = exception.class.name.demodulize
+
+ Honeycomb.add_field("twitter.result", "error")
+ Honeycomb.add_field("twitter.error", class_name)
+ DatadogStatsClient.increment(
+ "twitter.errors",
+ tags: ["error:#{class_name}", "message:#{exception.message}"],
+ )
+ end
+
+ def handle_error(exception)
+ class_name = exception.class.name.demodulize
+
+ # raise specific error if known, generic one if unknown
+ error_class = "::TwitterClient::Errors::#{class_name}".safe_constantize
+ raise error_class, exception.message if error_class
+
+ error_class = if exception.class < Twitter::Error::ClientError
+ TwitterClient::Errors::ClientError
+ elsif exception.class < Twitter::Error::ServerError
+ TwitterClient::Errors::ServerError
+ else
+ TwitterClient::Errors::Error
+ end
+
+ raise error_class, exception.message
+ end
+
+ def target
+ Twitter::REST::Client.new(
+ consumer_key: ApplicationConfig["TWITTER_KEY"],
+ consumer_secret: ApplicationConfig["TWITTER_SECRET"],
+ user_agent: "TwitterRubyGem/#{Twitter::Version} (#{URL.url})",
+ timeouts: {
+ connect: 5,
+ read: 5,
+ write: 5
+ },
+ )
+ end
+ end
+ end
+end
diff --git a/app/services/twitter_client/errors.rb b/app/services/twitter_client/errors.rb
new file mode 100644
index 000000000..a81081ad3
--- /dev/null
+++ b/app/services/twitter_client/errors.rb
@@ -0,0 +1,15 @@
+module TwitterClient
+ module Errors
+ class Error < StandardError
+ end
+
+ class ClientError < Error
+ end
+
+ class ServerError < Error
+ end
+
+ class NotFound < ClientError
+ end
+ end
+end
diff --git a/config/routes.rb b/config/routes.rb
index 5d81fe6ee..b14b72d76 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -389,7 +389,7 @@ Rails.application.routes.draw do
get "/rails/mailers/*path" => "rails/mailers#preview"
end
- get "/embed/:embeddable" => "liquid_embeds#show"
+ get "/embed/:embeddable", to: "liquid_embeds#show", as: "liquid_embed"
# serviceworkers
get "/serviceworker" => "service_worker#index"
diff --git a/spec/factories/articles.rb b/spec/factories/articles.rb
index af2040c3e..a88faa847 100644
--- a/spec/factories/articles.rb
+++ b/spec/factories/articles.rb
@@ -34,7 +34,7 @@ FactoryBot.define do
---
#{Faker::Hipster.paragraph(sentence_count: 2)}
- #{'{% tweet 1018911886862057472%}' if with_tweet_tag}
+ #{'{% tweet 1018911886862057472 %}' if with_tweet_tag}
#{Faker::Hipster.paragraph(sentence_count: 1)}
#{"\n\n---\n\n something \n\n---\n funky in the code? \n---\n That's nice" if with_hr_issue}
HEREDOC
diff --git a/spec/fixtures/approvals/rssreader/fetch_user/gets_articles_for_user.approved.txt b/spec/fixtures/approvals/rssreader/fetch_user/gets_articles_for_user.approved.txt
index 56a6051ca..9a037142a 100644
--- a/spec/fixtures/approvals/rssreader/fetch_user/gets_articles_for_user.approved.txt
+++ b/spec/fixtures/approvals/rssreader/fetch_user/gets_articles_for_user.approved.txt
@@ -1 +1 @@
-1
\ No newline at end of file
+10
\ No newline at end of file
diff --git a/spec/fixtures/approvals/rssreader/get_all_articles/fetch_only_articles_from_a_feed_url.approved.txt b/spec/fixtures/approvals/rssreader/get_all_articles/fetch_only_articles_from_a_feed_url.approved.txt
new file mode 100644
index 000000000..b5045cc40
--- /dev/null
+++ b/spec/fixtures/approvals/rssreader/get_all_articles/fetch_only_articles_from_a_feed_url.approved.txt
@@ -0,0 +1 @@
+21
\ No newline at end of file
diff --git a/spec/fixtures/approvals/rssreader/get_all_articles/fetch_only_articles_from_an_feed_url.approved.txt b/spec/fixtures/approvals/rssreader/get_all_articles/fetch_only_articles_from_an_feed_url.approved.txt
deleted file mode 100644
index 3cacc0b93..000000000
--- a/spec/fixtures/approvals/rssreader/get_all_articles/fetch_only_articles_from_an_feed_url.approved.txt
+++ /dev/null
@@ -1 +0,0 @@
-12
\ No newline at end of file
diff --git a/spec/fixtures/approvals/rssreader/get_all_articles/parses_correctly.approved.txt b/spec/fixtures/approvals/rssreader/get_all_articles/parses_correctly.approved.txt
index 6f6ec1d58..950045cc4 100644
--- a/spec/fixtures/approvals/rssreader/get_all_articles/parses_correctly.approved.txt
+++ b/spec/fixtures/approvals/rssreader/get_all_articles/parses_correctly.approved.txt
@@ -21,5 +21,11 @@ Github gist here
code block
```
-testsetsetsetsetsetset
-```
\ No newline at end of file
+testsetsetsetsetsetset lets introduce some {{ chaos }}
+
+Here's more {{ what }}
+```
+
+some more code and `{{ VARIABLE }}` and **_`{{ HTML }}`_**
+
+### `{{ how about this }}`
\ No newline at end of file
diff --git a/spec/liquid_tags/tweet_tag_spec.rb b/spec/liquid_tags/tweet_tag_spec.rb
index 56da29eb9..7a87910c5 100644
--- a/spec/liquid_tags/tweet_tag_spec.rb
+++ b/spec/liquid_tags/tweet_tag_spec.rb
@@ -3,7 +3,7 @@ require "rails_helper"
RSpec.describe TweetTag, type: :liquid_tag do
let(:twitter_id) { "1018911886862057472" }
let(:handle) { "thepracticaldev" }
- let(:name) { "The Practical Dev" }
+ let(:name) { "DEV Community 👩💻👨💻" }
let(:body) { "When GitHub goes down" }
setup { Liquid::Template.register_tag("tweet", described_class) }
@@ -13,16 +13,18 @@ RSpec.describe TweetTag, type: :liquid_tag do
end
it "accepts valid tweet id", :vcr do
- VCR.use_cassette("twitter_fetch_status") do
+ VCR.use_cassette("twitter_client_status_extended") do
liquid = generate_tweet_liquid_tag(twitter_id)
- expect(liquid.render).to include(handle)
- expect(liquid.render).to include(name)
- expect(liquid.render).to include(body)
+ body = liquid.render
+
+ expect(body).to include(handle)
+ expect(body).to include(name)
+ expect(body).to include(body)
end
end
xit "render properly", :vcr do
- VCR.use_cassette("twitter_fetch_status") do
+ VCR.use_cassette("twitter_client_status_extended") do
Time.use_zone("Asia/Tokyo") do
rendered = generate_tweet_liquid_tag(twitter_id).render
Approvals.verify(rendered, name: "liquid_tweet_tag_spec", format: :html)
diff --git a/spec/models/article_spec.rb b/spec/models/article_spec.rb
index ee6b084b8..2737cf32a 100644
--- a/spec/models/article_spec.rb
+++ b/spec/models/article_spec.rb
@@ -178,7 +178,7 @@ RSpec.describe Article, type: :model do
end
it "is valid with valid liquid tags", :vcr do
- VCR.use_cassette("twitter_fetch_status") do
+ VCR.use_cassette("twitter_client_status_extended") do
article = build_and_validate_article(with_tweet_tag: true)
expect(article).to be_valid
end
diff --git a/spec/models/tweet_spec.rb b/spec/models/tweet_spec.rb
index e33173dd7..32e385000 100644
--- a/spec/models/tweet_spec.rb
+++ b/spec/models/tweet_spec.rb
@@ -3,33 +3,138 @@ require "rails_helper"
RSpec.describe Tweet, type: :model, vcr: true do
let(:tweet_id) { "1018911886862057472" }
let(:tweet_reply_id) { "1242938461784608770" }
+ let(:retweet_id) { "1262395854469677058" }
- it "fetches a tweet" do
- VCR.use_cassette("twitter_fetch_status") do
- tweet = described_class.fetch(tweet_id)
- expect(tweet).to be_a(described_class)
- end
- end
+ it { is_expected.to validate_presence_of(:twitter_id_code) }
+ it { is_expected.to validate_presence_of(:full_fetched_object_serialized) }
- it "renders processed text" do
- VCR.use_cassette("twitter_fetch_status") do
- tweet = described_class.fetch(tweet_id)
- expect(tweet.processed_text).not_to be_nil
- end
- end
+ describe ".find_or_fetch" do
+ context "when retrieving a tweet", vcr: { cassette_name: "twitter_client_status_extended" } do
+ it "saves a new tweet" do
+ expect do
+ described_class.find_or_fetch(tweet_id)
+ end.to change(described_class, :count).by(1)
+ end
- describe "reply ids" do
- it "correctly saves in_reply_to_user_id_code" do
- VCR.use_cassette("twitter_fetch_reply") do
- tweet = described_class.fetch(tweet_reply_id)
- expect(tweet.in_reply_to_user_id_code).to eq("45042829")
+ it "retrieves an existing tweet" do
+ created_tweet = described_class.find_or_fetch(tweet_id)
+
+ expect do
+ found_tweet = described_class.find_or_fetch(tweet_id)
+ expect(found_tweet.id).to eq(created_tweet.id)
+ end.not_to change(described_class, :count)
+ end
+
+ it "saves the proper status ID and text" do
+ tweet = described_class.find_or_fetch(tweet_id)
+
+ status = tweet.full_fetched_object_serialized
+
+ expect(tweet.text).to eq(status[:full_text])
+ expect(tweet.twitter_id_code).to eq(status[:id_str])
+ end
+
+ it "saves the proper metadata attributes", :aggregate_failures do
+ tweet = described_class.find_or_fetch(tweet_id)
+
+ status = tweet.full_fetched_object_serialized
+
+ expect(tweet.favorite_count).to eq(status[:favorite_count])
+ expect(tweet.in_reply_to_status_id_code).to be_empty
+ expect(tweet.in_reply_to_user_id_code).to be_empty
+ expect(tweet.in_reply_to_username).to be_empty
+ expect(tweet.is_quote_status).to be(false)
+ expect(tweet.quoted_tweet_id_code).to eq(status[:quoted_status_id_str])
+ expect(tweet.retweet_count).to eq(status[:retweet_count])
+ expect(tweet.source).to eq(status[:source])
+ expect(tweet.tweeted_at.to_i).to eq(Time.zone.parse(status[:created_at]).to_i)
+ end
+
+ it "saves the proper serializable attributes", :aggregate_failures do
+ tweet = described_class.find_or_fetch(tweet_id)
+
+ status = tweet.full_fetched_object_serialized
+ expect(status).to be_present
+
+ expect(tweet.extended_entities_serialized).to eq(status[:extended_entities])
+ expect(tweet.hashtags_serialized).to eq(status[:entities][:hashtags])
+ expect(tweet.media_serialized).to eq(status[:entities][:media])
+ expect(tweet.mentioned_usernames_serialized).to be_empty
+ expect(tweet.urls_serialized).to eq(status[:entities][:urls])
+ end
+
+ it "saves the proper user attributes", :aggregate_failures do
+ tweet = described_class.find_or_fetch(tweet_id)
+
+ status = tweet.full_fetched_object_serialized
+ status_user = status[:user]
+
+ expect(tweet.remote_profile_image_url.to_s).to eq(status_user[:profile_image_url])
+ expect(tweet.twitter_name).to eq(status_user[:name])
+ expect(tweet.twitter_uid).to eq(status_user[:id_str])
+ expect(tweet.twitter_user_followers_count).to eq(status_user[:followers_count])
+ expect(tweet.twitter_user_following_count).to eq(status_user[:friends_count])
+ expect(tweet.twitter_username).to eq(status_user[:screen_name].downcase)
+ expect(tweet.user_is_verified).to be(status_user[:verified])
+ end
+
+ it "sets #last_fetched_at" do
+ tweet = described_class.find_or_fetch(tweet_id)
+ expect(tweet.last_fetched_at).to be_present
+ end
+
+ it "is assignes to the existing user if the screen name corresponds" do
+ user = create(:user, twitter_username: "ThePracticalDev")
+
+ tweet = described_class.find_or_fetch(tweet_id)
+ expect(tweet.user_id).to eq(user.id)
end
end
- it "correctly saves in_reply_to_status_id_code" do
- VCR.use_cassette("twitter_fetch_reply") do
- tweet = described_class.fetch(tweet_reply_id)
- expect(tweet.in_reply_to_status_id_code).to eq("1242837746315669505")
+ context "when retrieving a non existent tweet", vcr: { cassette_name: "twitter_client_status_not_found_extended" } do
+ it "raises an error if the tweet does not exist" do
+ expect { described_class.find_or_fetch("0") }.to raise_error(TwitterClient::Errors::NotFound)
+ end
+ end
+
+ context "when retrieving a reply tweet", vcr: { cassette_name: "twitter_client_status_reply_extended" } do
+ it "saves a new tweet" do
+ expect do
+ described_class.find_or_fetch(tweet_reply_id)
+ end.to change(described_class, :count).by(1)
+ end
+
+ it "retrieves an existing tweet" do
+ created_tweet = described_class.find_or_fetch(tweet_reply_id)
+
+ expect do
+ found_tweet = described_class.find_or_fetch(tweet_reply_id)
+ expect(found_tweet.id).to eq(created_tweet.id)
+ end.not_to change(described_class, :count)
+ end
+
+ it "saves the proper reply fields" do
+ tweet = described_class.find_or_fetch(tweet_reply_id)
+
+ status = tweet.full_fetched_object_serialized
+
+ expect(tweet.in_reply_to_status_id_code).to eq(status[:in_reply_to_status_id_str])
+ expect(tweet.in_reply_to_user_id_code).to eq(status[:in_reply_to_user_id_str])
+ expect(tweet.in_reply_to_username).to eq(status[:in_reply_to_screen_name])
+ end
+ end
+
+ context "when retrieving a reply tweet", vcr: { cassette_name: "twitter_client_status_retweet_extended" } do
+ it "saves a new tweet" do
+ expect do
+ described_class.find_or_fetch(retweet_id)
+ end.to change(described_class, :count).by(1)
+ end
+
+ it "saves the proper status ID" do
+ tweet = described_class.find_or_fetch(retweet_id)
+
+ expect(tweet.twitter_id_code).not_to eq(retweet_id) # we fetch the original tweet
end
end
end
diff --git a/spec/requests/liquid_embeds_spec.rb b/spec/requests/liquid_embeds_spec.rb
index d00477697..88c7f140f 100644
--- a/spec/requests/liquid_embeds_spec.rb
+++ b/spec/requests/liquid_embeds_spec.rb
@@ -1,25 +1,27 @@
require "rails_helper"
-RSpec.describe "LiquidEmbeds", type: :request, vcr: VCR_OPTIONS[:twitter_fetch_status] do
+RSpec.describe "LiquidEmbeds", type: :request, vcr: { cassette_name: "twitter_client_status_extended" } do
describe "get /embeds" do
+ let(:path) { liquid_embed_path("tweet", args: 1_018_911_886_862_057_472) }
+
it "renders proper tweet" do
- get "/embed/tweet?args=1018911886862057472"
+ get path
expect(response.body).to include("ltag__twitter-tweet")
end
- it "renders proper css" do
- get "/embed/tweet?args=1018911886862057472"
+ it "renders proper CSS" do
+ get path
expect(response.body).to include("blockquote.ltag__twitter-tweet")
end
it "renders 404 if improper tweet" do
expect do
- get "/embed/tweet?args=improper"
+ get liquid_embed_path("tweet", args: "improper")
end.to raise_error(ActionView::Template::Error)
end
it "contains base target parent" do
- get "/embed/tweet?args=1018911886862057472"
+ get path
expect(response.body).to include('')
end
end
diff --git a/spec/services/rss_reader_spec.rb b/spec/services/rss_reader_spec.rb
index bdfc335a0..7fe46199a 100644
--- a/spec/services/rss_reader_spec.rb
+++ b/spec/services/rss_reader_spec.rb
@@ -3,7 +3,7 @@ require "rss"
default_logger = Rails.logger
-RSpec.describe RssReader, type: :service, vcr: VCR_OPTIONS[:rss_feeds] do
+RSpec.describe RssReader, type: :service, vcr: true do
let(:link) { "https://medium.com/feed/@vaidehijoshi" }
let(:nonmedium_link) { "https://circleci.com/blog/feed.xml" }
let(:nonpermanent_link) { "https://medium.com/feed/@macsiri/" }
@@ -25,21 +25,21 @@ RSpec.describe RssReader, type: :service, vcr: VCR_OPTIONS[:rss_feeds] do
end
end
- it "fetch only articles from an feed_url" do
- rss_reader.get_all_articles
+ it "fetch only articles from a feed_url", vcr: { cassette_name: "rss_reader_fetch_articles" } do
+ articles = rss_reader.get_all_articles
# the result within the approval file depends on the feed
# not fetching comments is baked into this
- verify(format: :txt) { Article.count }
+ verify(format: :txt) { articles.length }
end
- it "does not re-create article if it already exist" do
+ it "does not recreate articles if they already exist", vcr: { cassette_name: "rss_reader_fetch_articles_twice" } do
rss_reader.get_all_articles
expect { rss_reader.get_all_articles }.not_to change(Article, :count)
end
- it "parses correctly" do
+ it "parses correctly", vcr: { cassette_name: "rss_reader_fetch_articles" } do
rss_reader.get_all_articles
verify format: :txt do
@@ -47,7 +47,7 @@ RSpec.describe RssReader, type: :service, vcr: VCR_OPTIONS[:rss_feeds] do
end
end
- it "sets feed_fetched_at to the current time" do
+ it "sets feed_fetched_at to the current time", vcr: { cassette_name: "rss_reader_fetch_articles" } do
Timecop.freeze(Time.current) do
rss_reader.get_all_articles
@@ -57,7 +57,7 @@ RSpec.describe RssReader, type: :service, vcr: VCR_OPTIONS[:rss_feeds] do
end
end
- it "does refetch same user over and over by default" do
+ it "does refetch same user over and over by default", vcr: { cassette_name: "rss_reader_fetch_multiple_times" } do
user = User.find_by(feed_url: nonpermanent_link)
Timecop.freeze(Time.current) do
@@ -94,10 +94,10 @@ RSpec.describe RssReader, type: :service, vcr: VCR_OPTIONS[:rss_feeds] do
expect(Rails.logger).to have_received(:error).at_least(:once)
end
- it "queues as many slack messages as there are articles" do
- expect do
- rss_reader.get_all_articles
- end.to change(Slack::Messengers::Worker.jobs, :count).by(12)
+ it "queues as many slack messages as there are articles", vcr: { cassette_name: "rss_reader_fetch_articles" } do
+ old_count = Slack::Messengers::Worker.jobs.count
+ articles = rss_reader.get_all_articles
+ expect(Slack::Messengers::Worker.jobs.count).to eq(old_count + articles.length)
end
end
@@ -115,7 +115,7 @@ RSpec.describe RssReader, type: :service, vcr: VCR_OPTIONS[:rss_feeds] do
end
end
- describe "#fetch_user" do
+ describe "#fetch_user", vcr: { cassette_name: "rss_reader_fetch_medium_feed" } do
before do
[link, nonmedium_link, nonpermanent_link].each do |feed_url|
create(:user, feed_url: feed_url)
@@ -123,10 +123,10 @@ RSpec.describe RssReader, type: :service, vcr: VCR_OPTIONS[:rss_feeds] do
end
it "gets articles for user" do
- rss_reader.fetch_user(User.find_by(feed_url: link))
+ articles = rss_reader.fetch_user(User.find_by(feed_url: link))
# the result within the approval file depends on the feed
- verify(format: :txt) { Article.count }
+ verify(format: :txt) { articles.length }
end
it "does not set featured_number" do
@@ -155,9 +155,9 @@ RSpec.describe RssReader, type: :service, vcr: VCR_OPTIONS[:rss_feeds] do
end
it "queues as many slack messages as there are user articles" do
- expect do
- rss_reader.fetch_user(User.find_by(feed_url: link))
- end.to change(Slack::Messengers::Worker.jobs, :count).by(1)
+ old_count = Slack::Messengers::Worker.jobs.count
+ articles = rss_reader.fetch_user(User.find_by(feed_url: link))
+ expect(Slack::Messengers::Worker.jobs.count).to eq(old_count + articles.length)
end
end
diff --git a/spec/services/twitter_client/client_spec.rb b/spec/services/twitter_client/client_spec.rb
new file mode 100644
index 000000000..54ffff380
--- /dev/null
+++ b/spec/services/twitter_client/client_spec.rb
@@ -0,0 +1,22 @@
+require "rails_helper"
+
+RSpec.describe TwitterClient::Client, type: :service, vcr: true do
+ let(:tweet_id) { "1018911886862057472" }
+
+ describe ".status" do
+ it "returns a status" do
+ VCR.use_cassette("twitter_client_status") do
+ tweet = described_class.status(tweet_id)
+ expect(tweet.text).to be_present
+ end
+ end
+
+ it "raises NotFound if the status does not exist" do
+ VCR.use_cassette("twitter_client_status_not_found") do
+ expect do
+ described_class.status(0)
+ end.to raise_error(TwitterClient::Errors::NotFound)
+ end
+ end
+ end
+end
diff --git a/spec/support/fixtures/vcr_cassettes/RssReader/_get_all_articles/logs_a_fetching_error.yml b/spec/support/fixtures/vcr_cassettes/RssReader/_get_all_articles/logs_a_fetching_error.yml
new file mode 100644
index 000000000..ee40f7ac6
--- /dev/null
+++ b/spec/support/fixtures/vcr_cassettes/RssReader/_get_all_articles/logs_a_fetching_error.yml
@@ -0,0 +1,223 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:56:52 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"0429db11170ea632","ot-tracer-traceid":"6c278a2e29fde802","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889412479:1cb3a6f2c7
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:11:52 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da31b88b8f91b-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce6445390000f91bd3b12200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDExOjQ4OjUyIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:52 GMT
+- request:
+ method: get
+ uri: https://circleci.com/blog/feed.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/xml
+ Date:
+ - Tue, 19 May 2020 11:56:53 GMT
+ Etag:
+ - '"d148e5f0c8f6530989f97099948abd37"'
+ Last-Modified:
+ - Tue, 19 May 2020 02:33:22 GMT
+ Server:
+ - nginx
+ Strict-Transport-Security:
+ - max-age=15724800
+ X-Amz-Id-2:
+ - 7YXP94xsGThmAX9H0EqJ4OrUs3V6Y66aVE7e+gsKBnsa6HyJGm4hMvJ4zYhhI0pgM/Vs51dMdPE=
+ X-Amz-Request-Id:
+ - C6DBC239FBAAC8B1
+ X-Frame-Options:
+ - SAMEORIGIN
+ Content-Length:
+ - '183502'
+ Connection:
+ - keep-alive
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiCiAgeG1sOmJhc2U9Imh0dHBzOi8vY2lyY2xlY2kuY29tLyIKICB4bWxuczphdG9tPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8Y2hhbm5lbD4KICAgIDx0aXRsZT5UaGUgQ2lyY2xlQ0kgQmxvZyBGZWVkIC0gQ2lyY2xlQ0k8L3RpdGxlPgogICAgPGRlc2NyaXB0aW9uPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgbmV3cywgdXBkYXRlcywgYW5kIGhhY2tzIGZyb20gQ2lyY2xlQ0kuPC9kZXNjcmlwdGlvbj4KICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvPC9saW5rPgogICAgPGF0b206bGluayBocmVmPSJodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2ZlZWQueG1sIiByZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Db250aW51b3VzIGludGVncmF0aW9uIGZvciBJb25pYyBhcHBsaWNhdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvY29udGlub3VzLWludGVncmF0aW9uLWZvci1pb25pYy1hcHBzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDE4IE1heSAyMDIwIDE3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbm91cy1pbnRlZ3JhdGlvbi1mb3ItaW9uaWMtYXBwcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5GaWtheW8gQWRlcG9qdTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtJbiB0aGUgd29ybGQgb2YgaHlicmlkIG1vYmlsZSBkZXZlbG9wbWVudCwgbm8gb3RoZXIgZnJhbWV3b3JrIGhhcyBkb25lIG1vcmUgZm9yIHRoZSBpbmR1c3RyeSB0aGFuIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tLyZxdW90OyZndDtJb25pYyBmcmFtZXdvcmsmbHQ7L2EmZ3Q7LiBDcmVhdGVkIGluIDIwMTMgYW5kIG9yaWdpbmFsbHkgYnVpbHQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXJqcy5vcmcvJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7IGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY29yZG92YS5hcGFjaGUub3JnLyZxdW90OyZndDtBcGFjaGUgQ29yZG92YSZsdDsvYSZndDssIElvbmljIGhhcyBncm93biB0byBhIGZ1bGwtZmVhdHVyZWQgYXBwbGljYXRpb24gZnJhbWV3b3JrIGZvciBkZXZlbG9waW5nIG1vYmlsZSwgZGVza3RvcCwgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93ZWIuZGV2L3Byb2dyZXNzaXZlLXdlYi1hcHBzLyZxdW90OyZndDtwcm9ncmVzc2l2ZSB3ZWIgYXBwbGljYXRpb25zJmx0Oy9hJmd0Oy4gSW9uaWMgaGFzIGFsc28gYmVjb21lIGZyYW1ld29yay1hZ25vc3RpYywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byB1c2UgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXIuaW8vJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oywgb3IgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3Z1ZWpzLm9yZy8mcXVvdDsmZ3Q7VnVlLmpzJmx0Oy9hJmd0OyBmb3IgZGV2ZWxvcG1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2Ugd2lsbCBiZSBidWlsZGluZyBhIGhhbmR5IHRhc2sgbWFuYWdlci4gV2Ugd2lsbCB3cml0ZSB0ZXN0cyBmb3IgZmVhdHVyZXMgaW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBzZXQgdXAgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbm91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgKENJKSBwaXBlbGluZSB0byBhdXRvbWF0ZSBvdXIgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFdlIHdpbGwgYmUgZGV2ZWxvcGluZyBvdXIgYXBwbGljYXRpb24gdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9yZWFjdCZxdW90OyZndDtJb25pYyBSZWFjdCZsdDsvYSZndDssIHRoZSBJb25pYyB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgZGV2ZWxvcGluZyB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBmb2xsb3cgdGhpcyBwb3N0LCBhIGZldyB0aGluZ3MgYXJlIHJlcXVpcmVkOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QmFzaWMga25vd2xlZGdlIG9mIFJlYWN0LmpzIChOb3QgYSBkZWFsLWJyZWFrZXIsIHlvdSBvbmx5IGhhdmUgdG8gY29weS1wYXN0ZSB0aGUgY29kZSBzbmlwcGV0cykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbm9kZWpzLm9yZyZxdW90OyZndDtOb2RlLmpzJmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtUaGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2NsaSZxdW90OyZndDtJb25pYyBDTEkmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L29sJmd0OwoKJmx0O2gyJmd0O1NjYWZmb2xkaW5nIHRoZSBJb25pYyBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBiZWdpbiwgbGV04oCZcyBzY2FmZm9sZCBhIG5ldyBJb25pYyBhcHBsaWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2lvbmljIHN0YXJ0IHRhc2stbWFuYWdlciB0YWJzIC0tdHlwZT1yZWFjdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgSW9uaWMgQ0xJIHRvIHNjYWZmb2xkIGEgbmV3IHByb2plY3QgZm9yIHVzIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0YWJzJmx0Oy9jb2RlJmd0OyB0ZW1wbGF0ZSBpbnNpZGUgYSBmb2xkZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGFzay1tYW5hZ2VyJmx0Oy9jb2RlJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1lvdSBtaWdodCBiZSBwcm9tcHRlZCBhdCBzb21lIHBvaW50IHdpdGggJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Q3JlYXRlIGZyZWUgSW9uaWMgYWNjb3VudD8mbHQ7L2NvZGUmZ3Q7LiBIaXQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7biZsdDsvY29kZSZndDsgdG8gZGVjbGluZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYW4gSW9uaWMgYWNjb3VudCBzZWUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9hcHBmbG93JnF1b3Q7Jmd0O2hlcmUmbHQ7L2EmZ3Q7LiZsdDsvaSZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmNlIHRoaXMgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb24gKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIHRhc2stbWFuYWdlciZsdDsvY29kZSZndDspIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHNlcnZlIHRoZSBhcHBsaWNhdGlvbiBpbiB5b3VyIHdlYiBicm93c2VyOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7aW9uaWMgc2VydmUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGlzIGNvbW1hbmQgaGFzIGNvbXBsZXRlZCwgeW91IHdpbGwgc2VlIGFuIGFwcGxpY2F0aW9uIHZpZXcgaW4geW91ciBicm93c2VyIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O0kgYW0gdXNpbmcgYSBtb2JpbGUgcHJldmlldyBhY3RpdmF0ZWQgaW4gQ2hyb21l4oCZcyBkZXZlbG9wbWVudCB0b29scy4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXNjYWZmb2xkLXByZXZpZXcucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtEb27igJl0IGJlIHN1cnByaXNlZCBpZiB5b3VycyBoYXMgYSBibGFjayBiYWNrZ3JvdW5kIGFuZCB3aGl0ZSBmb250LiBJdCB1c2VzIHRoZSBkZWZhdWx0IG1vZGUgb2YgeW91ciBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMiZndDtCdWlsZGluZyB0aGUgVGFzayBNYW5hZ2VyIGFwcGxpY2F0aW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05leHQsIGxldOKAmXMgYmVnaW4gYnVpbGRpbmcgdGhlIG1haW4gYXBwbGljYXRpb24uIEdvIGludG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyIG9mIHlvdXIgYXBwbGljYXRpb24gYW5kIG9wZW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGhvbWUgcGFnZSBmb3IgdGhlIG5ld2x5IHNjYWZmb2xkZWQgYXBwbGljYXRpb24uIFJlbW92ZSBldmVyeXRoaW5nIGluIHRoaXMgZmlsZSBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRzeAoKaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsKICBJb25Db250ZW50LAogIElvbkhlYWRlciwKICBJb25QYWdlLAogIElvblRpdGxlLAogIElvblRvb2xiYXIsCiAgSW9uTGlzdCwKICBJb25JdGVtU2xpZGluZywKICBJb25JdGVtLAogIElvbkxhYmVsLAogIElvbkl0ZW1PcHRpb25zLAogIElvbkl0ZW1PcHRpb24sCiAgSW9uRmFiLAogIElvbkZhYkJ1dHRvbiwKICBJb25JY29uLAogIElvbk1vZGFsLAogIElvbkJ1dHRvbiwKICBJb25DYXJkLAogIElvbkNhcmRDb250ZW50LAogIElvbklucHV0LAp9IGZyb20gJnF1b3Q7QGlvbmljL3JlYWN0JnF1b3Q7OwoKaW1wb3J0IHsgYWRkIH0gZnJvbSAmcXVvdDtpb25pY29ucy9pY29ucyZxdW90OzsKCmltcG9ydCAmcXVvdDsuL1RhYjEuY3NzJnF1b3Q7OwoKaW50ZXJmYWNlIFRhc2sgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwp9Cgpjb25zdCBUYWIxOiBSZWFjdC5GQyA9ICgpID0mYW1wO2d0OyB7CiAgY29uc3QgW3Rhc2tzLCBzZXRUYXNrc10gPSB1c2VTdGF0ZSZhbXA7bHQ7VGFza1tdJmFtcDtndDsoW10pOwogIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7CiAgY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKCiAgZnVuY3Rpb24gYWRkTmV3VGFzaygpIHsKICAgIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogICAgY29uc3QgbmV3VGFzayA9IHsKICAgICAgaWQ6IG5ld19pZCwKICAgICAgbmFtZTogdGFza05hbWUsCiAgICB9OwoKICAgIHRhc2tzLnB1c2gobmV3VGFzayk7CgogICAgc2V0VGFza3ModGFza3MpOwoKICAgIHNldFRhc2tOYW1lKCZxdW90OyZxdW90Oyk7CgogICAgc2V0U2hvd01vZGFsKGZhbHNlKTsKICB9CgogIHJldHVybiAoCiAgICAmYW1wO2x0O0lvblBhZ2UmYW1wO2d0OwogICAgICAmYW1wO2x0O0lvbkhlYWRlciZhbXA7Z3Q7CiAgICAgICAgJmFtcDtsdDtJb25Ub29sYmFyJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uVGl0bGUmYW1wO2d0O1Rhc2sgTWFuYWdlciZhbXA7bHQ7L0lvblRpdGxlJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25Ub29sYmFyJmFtcDtndDsKICAgICAgJmFtcDtsdDsvSW9uSGVhZGVyJmFtcDtndDsKICAgICAgJmFtcDtsdDtJb25Db250ZW50JmFtcDtndDsKICAgICAgICAmYW1wO2x0O0lvbkxpc3QmYW1wO2d0OwogICAgICAgICAge3Rhc2tzLmxlbmd0aCAmYW1wO2d0OyAwID8gKAogICAgICAgICAgICB0YXNrcy5tYXAoKGl0ZW06IFRhc2spID0mYW1wO2d0OyB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbVNsaWRpbmcga2V5PXtpdGVtLmlkfSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbSBjbGFzc05hbWU9JnF1b3Q7dG9kby1pdGVtJnF1b3Q7JmFtcDtndDsKICAgICAgICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDt7aXRlbS5uYW1lfSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbnMgc2lkZT0mcXVvdDtlbmQmcXVvdDsmYW1wO2d0OwogICAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsge319JmFtcDtndDtEb25lJmFtcDtsdDsvSW9uSXRlbU9wdGlvbiZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1PcHRpb25zJmFtcDtndDsKICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1TbGlkaW5nJmFtcDtndDsKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KQogICAgICAgICAgKSA6ICgKICAgICAgICAgICAgJmFtcDtsdDtJb25JdGVtJmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICApfQogICAgICAgICZhbXA7bHQ7L0lvbkxpc3QmYW1wO2d0OwoKICAgICAgICB7LyogTW9kYWwqL30KICAgICAgICAmYW1wO2x0O0lvbk1vZGFsIGlzT3Blbj17c2hvd01vZGFsfSZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkNhcmQmYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICZhbXA7bHQ7SW9uTGFiZWwmYW1wO2d0O0FkZCBOZXcgVGFzayZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAmYW1wO2x0O0lvbkNhcmRDb250ZW50JmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICAgJmFtcDtsdDtJb25JbnB1dAogICAgICAgICAgICAgICAgICB2YWx1ZT17dGFza05hbWV9CiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSZxdW90O0VudGVyIFRhc2sgTmFtZS4uLiZxdW90OwogICAgICAgICAgICAgICAgICBvbklvbkNoYW5nZT17KGUpID0mYW1wO2d0OyBzZXRUYXNrTmFtZShlLmRldGFpbC52YWx1ZSEpfQogICAgICAgICAgICAgICAgJmFtcDtndDsmYW1wO2x0Oy9Jb25JbnB1dCZhbXA7Z3Q7CiAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uCiAgICAgICAgICAgICAgICBleHBhbmQ9JnF1b3Q7ZnVsbCZxdW90OwogICAgICAgICAgICAgICAgY29sb3I9JnF1b3Q7cHJpbWFyeSZxdW90OwogICAgICAgICAgICAgICAgb25DbGljaz17KCkgPSZhbXA7Z3Q7IGFkZE5ld1Rhc2soKX0KICAgICAgICAgICAgICAmYW1wO2d0OwogICAgICAgICAgICAgICAgQWRkIFRhc2sKICAgICAgICAgICAgICAmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkQ29udGVudCZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uIG9uQ2xpY2s9eygpID0mYW1wO2d0OyBzZXRTaG93TW9kYWwoZmFsc2UpfSZhbXA7Z3Q7Q2xvc2UgTW9kYWwmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICZhbXA7bHQ7L0lvbk1vZGFsJmFtcDtndDsKCiAgICAgICAgey8qIEFkZCBUYXNrIEJ1dHRvbiAqL30KICAgICAgICAmYW1wO2x0O0lvbkZhYiB2ZXJ0aWNhbD0mcXVvdDtib3R0b20mcXVvdDsgaG9yaXpvbnRhbD0mcXVvdDtlbmQmcXVvdDsgc2xvdD0mcXVvdDtmaXhlZCZxdW90OyZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkZhYkJ1dHRvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsgc2V0U2hvd01vZGFsKHRydWUpfSZhbXA7Z3Q7CiAgICAgICAgICAgICZhbXA7bHQ7SW9uSWNvbiBpY29uPXthZGR9IC8mYW1wO2d0OwogICAgICAgICAgJmFtcDtsdDsvSW9uRmFiQnV0dG9uJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25GYWImYW1wO2d0OwogICAgICAmYW1wO2x0Oy9Jb25Db250ZW50JmFtcDtndDsKICAgICZhbXA7bHQ7L0lvblBhZ2UmYW1wO2d0OwogICk7Cn07CgpleHBvcnQgZGVmYXVsdCBUYWIxOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyBsZXTigJlzIGdvIHRocm91Z2ggdGhlIGNvZGUgc25pcHBldCBhYm92ZS4gVGhpcyBpcyB0aGUgZW50aXJlIGNvZGUgZm9yIG91ciBUYXNrIE1hbmFnZXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnQgYnkgaW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzIGluY2x1ZGluZyB0aGUgY3NzIGZpbGUgZm9yIG91ciBwYWdlLiBXZSB0aGVuIGRlZmluZSBhbiBpbnRlcmZhY2UgdG8gZGVmaW5lIG91ciB0YXNrIG9iamVjdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtpbnRlcmZhY2UgVGFzayB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7Cn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7TmV4dCwgd2UgY3JlYXRlIG91ciBjb21wb25lbnQgYXMgYSBSZWFjdCBmdW5jdGlvbiBjb21wb25lbnQgdHlwZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtSZWFjdC5GQyZsdDsvY29kZSZndDsgYW5kIGJlZ2luIHRoZSBmdW5jdGlvbiBieSBkZWZpbmluZyB0aGUgZGF0YSB3ZSB3YW50IHRvIGhvbGQgaW4gb3VyIHN0YXRlIHVzaW5nIGhvb2tzOiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tzJmx0Oy9jb2RlJmd0OyBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYXNrJmx0Oy9jb2RlJmd0O3MsIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2hvd01vZGFsJmx0Oy9jb2RlJmd0OyBib29sZWFuIHRvIGNvbnRyb2wgdGhlIG9wZW5pbmcgYW5kIGNsb3Npbmcgb2Ygb3VyIHRhc2sgY3JlYXRpb24gZm9ybSwgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tOYW1lJmx0Oy9jb2RlJmd0OyB3aGljaCBob2xkcyB0aGUgdmFsdWUgb2YgYSBuZXcgdGFzayBpbiB0aGUgcHJvY2VzcyBvZiBjcmVhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IFt0YXNrcywgc2V0VGFza3NdID0gdXNlU3RhdGUmYW1wO2x0O1Rhc2tbXSZhbXA7Z3Q7KFtdKTsKY29uc3QgW3Nob3dNb2RhbCwgc2V0U2hvd01vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTsKY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Rm9sbG93aW5nIHRoZXNlIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdlIGNhbGwgdG8gYWRkIGEgbmV3IHRhc2suIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyB0YXNrIGJ5IHNldHRpbmcgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lkJmx0Oy9jb2RlJmd0OyBiYXNlZCBvbiB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBhbmQgY2xlYXJzIHRoZSBmb3JtIGFmdGVyIGFkZGluZyB0aGUgbmV3IHRhc2sgdG8gb3VyIGV4aXN0aW5nIGxpc3Qgb2YgdGFza3MuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtmdW5jdGlvbiBhZGROZXdUYXNrKCkgewogIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogIGNvbnN0IG5ld1Rhc2sgPSB7CiAgICBpZDogbmV3X2lkLAogICAgbmFtZTogdGFza05hbWUsCiAgfTsKCiAgdGFza3MucHVzaChuZXdUYXNrKTsKCiAgc2V0VGFza3ModGFza3MpOwoKICBzZXRUYXNrTmFtZSgmcXVvdDsmcXVvdDspOwoKICBzZXRTaG93TW9kYWwoZmFsc2UpOwp9CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05leHQsIHdlIHJlbmRlciBvdXIgdGVtcGxhdGUgdG8gZGlzcGxheSBvdXIgbGlzdCBvZiB0YXNrcyBhbmQgYWxzbyBkaXNwbGF5IGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgcmVhZHMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmbHQ7L2NvZGUmZ3Q7IHdoZW4gdGhlIHRhc2sgbGlzdCBpcyBlbXB0eS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtGb2xsb3dpbmcgdGhlIGxpc3QgaXMgYSBtb2RhbCBjb21wb25lbnQgdGhhdCBjb250YWlucyBvdXIgdGFzayBmb3JtIGZvciBhZGRpbmcgbmV3IHRhc2tzLiBCZWxvdyB0aGUgY29tcG9uZW50IGlzIGEgZmxvYXRpbmcgYWN0aW9uIGJ1dHRvbiB0aGF0IHRoZSB1c2VyIGNsaWNrcyB0byBvcGVuIHRoZSBtb2RhbC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWZvcmUgd2UgcHJldmlldyB0aGlzLCBvcGVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEuY3NzJmx0Oy9jb2RlJmd0OyBsb2NhdGVkIGluIHRoZSBzYW1lIGZvbGRlciBhcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRzeCZsdDsvY29kZSZndDsgYW5kIHJlcGxhY2UgaXRzIGNvbnRlbnRzIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Lyogc3JjL3BhZ2VzL1RhYjEuY3NzICovCgoudG9kby1pdGVtIHsKICAtLW1pbi1oZWlnaHQ6IDcwcHg7CiAgZm9udC1zaXplOiAxLjJlbTsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHNpbXBseSBidW1wcyB1cCB0aGUgaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgdGhlIGxpc3QgaXRlbXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm93LCBnbyB0byB5b3VyIGJyb3dzZXIgYW5kIGxvYWQgdGhlIGhvbWVwYWdlIG9mIHlvdXIgYXBwbGljYXRpb24gKFRhYjEpLiBZb3Ugd2lsbCBzZWUgdGhlIHBhZ2UgZGlzcGxheWVkIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1ob21lLW5vLXRhc2tzLnBuZyZxdW90OyAvJmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QmVjYXVzZSB3ZSBoYXZlbuKAmXQgYWRkZWQgYW55IHRhc2tzIHlldCwgd2UgaGF2ZSB0aGUgbWVzc2FnZSAmbHQ7c3Ryb25nJmd0O1lvdSBoYXZlIHlldCB0byBhZGQgdGFza3MgZm9yIHRvZGF5Jmx0Oy9zdHJvbmcmZ3Q7IGRpc3BsYXllZC4gV2UgYWxzbyBoYXZlIG91ciAmbHQ7c3Ryb25nJmd0O0FkZCBUYXNrJmx0Oy9zdHJvbmcmZ3Q7IGJ1dHRvbiBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lciB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwbHVzJmx0Oy9jb2RlJmd0OyBzeW1ib2wuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0FkZGluZyB0YXNrcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBhZGQgYSBuZXcgdGFzaywgY2xpY2sgdGhlIGJvdHRvbS1yaWdodCBibHVlIGJ1dHRvbiB0byBwdWxsIHVwIHRoZSB0YXNrIGNyZWF0aW9uIGZvcm0gYW5kIHR5cGUgaW4gYSB0YXNrIGFzIHNob3duIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtdGFzay5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7QUREIFRBU0smbHQ7L3N0cm9uZyZndDsgdG8gYWRkIHRoZSB0YXNrIGFuZCBnbyBhaGVhZCB0byBhZGQgMiB0byAzIG1vcmUgdGFza3MuIFdlIHNob3VsZCBub3cgaGF2ZSBlbm91Z2ggdGFza3Mgb24gdGhlIHBhZ2UgZm9yIG91ciBhcHBsaWNhdGlvbiB0byBsb29rIGZ1bmN0aW9uYWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXRhc2stbGlzdC5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB3ZSBoYXZlIGEgZnVuY3Rpb25hbCBhcHBsaWNhdGlvbi4gTm90IHByb2R1Y3Rpb24tcmVhZHksIGJ1dCBnb29kIGVub3VnaCB0byBzdGFydCB0ZXN0aW5nLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBZGRpbmcgdGVzdHMgdG8gdGhlIFRhc2sgTWFuYWdlciBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtPbmUgYWR2YW50YWdlIHRoYXQgd2UgaGF2ZSB3aXRoIHRlc3Rpbmcgb3VyIElvbmljIGFwcGxpY2F0aW9ucyBpcyB0aGF0IHdoaWxlIHNjYWZmb2xkaW5nIHRoZSBhcHBsaWNhdGlvbiwgdGhlIElvbmljIENMSSBoYXMgc2V0IHVwIGFsbCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcywgaW4gdGVybXMgb2YgcGFja2FnZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCBmb3IgdGVzdGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUZXN0aW5nIElvbmljIFJlYWN0IGFwcGxpY2F0aW9ucyBpcyBkb25lIHVzaW5nIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vamVzdGpzLmlvLyZxdW90OyZndDtKZXN0Jmx0Oy9hJmd0OyB0ZXN0aW5nIGZyYW1ld29yayB0b2dldGhlciB3aXRoIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdGVzdGluZy1saWJyYXJ5LmNvbS9kb2NzL3JlYWN0LXRlc3RpbmctbGlicmFyeS9pbnRybyZxdW90OyZndDtSZWFjdCBUZXN0aW5nIExpYnJhcnkmbHQ7L2EmZ3Q7IGFuZCB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1yZWFjdC10ZXN0LXV0aWxzJnF1b3Q7Jmd0O0lvbmljIFJlYWN0IFRlc3QgVXRpbHMmbHQ7L2EmZ3Q7IGxpYnJhcnkgd2hpY2ggaXMgYSBzbWFsbCBzdWl0ZSBvZiB1dGlsaXRpZXMgdG8gc2ltdWxhdGUgY29tbW9uIGZlYXR1cmVzIGluIElvbmljIGxpa2UgZmlyaW5nIGN1c3RvbSBJb25pYyBldmVudHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIHByb2plY3QgYWxyZWFkeSBjb21lcyB3aXRoIGEgdGVzdCBmaWxlIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7QXBwLnRzeCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLiBBcyB5b3UgbWF5IGhhdmUgZ3Vlc3NlZCwgdGhlIHRlc3QgZmlsZSBpcyBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtBcHAudGVzdC50c3gmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGZvbGxvd3MgdGhlIGNvbnZlbnRpb24gZm9yIEplc3QgdGVzdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsvLyBzcmMvQXBwLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgQXBwIGZyb20gJnF1b3Q7Li9BcHAmcXVvdDs7Cgp0ZXN0KCZxdW90O3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZyZxdW90OywgKCkgPSZhbXA7Z3Q7IHsKICBjb25zdCB7IGJhc2VFbGVtZW50IH0gPSByZW5kZXIoJmFtcDtsdDtBcHAgLyZhbXA7Z3Q7KTsKICBleHBlY3QoYmFzZUVsZW1lbnQpLnRvQmVEZWZpbmVkKCk7Cn0pOwombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHRlc3Qgc2ltcGx5IGNoZWNrcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiByZW5kZXJzIHByb3Blcmx5IGFuZCBkb2VzIG5vdCBjcmFzaC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBydW4gdGhpcyB0ZXN0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBpbnZva2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2plc3QmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gcnVuIHRoZSB0ZXN0IGRlZmluZWQgaW4gdGhlIGZpbGUuIEFzIGRpcmVjdGVkLCBwcmVzcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDthJmx0Oy9jb2RlJmd0OyB0byBydW4gYWxsIHRlc3RzLiBUaGUgYWJvdmUgY29tbWFuZCBpcyB0aGUgY29tbWFuZCB3ZSB3aWxsIGJlIHVzaW5nIHRvIHJ1biBhbGwgdGVzdHMgaW4gb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgbGV04oCZcyBhZGQgc29tZSB0ZXN0cyBvZiBvdXIgb3duLiBXZSB3aWxsIGJlIGNyZWF0aW5nIGEgdGVzdCBmaWxlIHRvIHRlc3QgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIHdlIGhhdmUgaW4gb3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlIHdoaWNoIGhvdXNlcyBvdXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRlc3QudHN4Jmx0Oy9jb2RlJmd0OyBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyLiBJdOKAmXMgdGhlIHNhbWUgcGxhY2UgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VGFiMS50c3gmbHQ7L2NvZGUmZ3Q7IGZpbGUgaXMgbG9jYXRlZC4gSW5zaWRlIHRoZSBuZXdseSBjcmVhdGVkIGZpbGUsIHBsYWNlIGluIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgVGFiMSBmcm9tICZxdW90Oy4vVGFiMSZxdW90OzsKCnRlc3QoJnF1b3Q7UGFnZSB0aXRsZSBpcyBUYXNrIE1hbmFnZXImcXVvdDssIGFzeW5jICgpID0mYW1wO2d0OyB7CiAgY29uc3QgeyBmaW5kQnlUZXh0IH0gPSByZW5kZXIoJmFtcDtsdDtUYWIxIC8mYW1wO2d0Oyk7CiAgYXdhaXQgZmluZEJ5VGV4dCgmcXVvdDtUYXNrIE1hbmFnZXImcXVvdDspOwp9KTsKCnRlc3QoJnF1b3Q7V2hlbiB0aGVyZSBhcmUgbm8gVGFza3MsIGluZm9ybSB0aGUgdXNlciB0aGF0IG5vIHRhc2tzIGhhdmUgYmVlbiBjcmVhdGVkJnF1b3Q7LCBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IHsgZmluZEJ5VGV4dCB9ID0gcmVuZGVyKCZhbXA7bHQ7VGFiMSAvJmFtcDtndDspOwogIGF3YWl0IGZpbmRCeVRleHQoJnF1b3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmcXVvdDspOwp9KTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBmaWxlLCB3ZSBoYXZlIGFkZGVkIHR3byB0ZXN0cy4gVGhlIGZpcnN0IHRlc3QgY2hlY2tzIGlmIG91ciBwYWdlIGRpc3BsYXlzIHdpdGggdGhlIGNvcnJlY3QgdGl0bGUgd2hpY2ggaXMgJmx0O3N0cm9uZyZndDtUYXNrIE1hbmFnZXImbHQ7L3N0cm9uZyZndDsuIFRoZSBzZWNvbmQgdGVzdCBjaGVja3MgaWYgb3VyIGFwcGxpY2F0aW9uIGluaXRpYWxseSBsb2FkcyB3aXRob3V0IHRhc2tzLCBhbmQgaWYgaXQgZG9lcywgaXQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgJmx0O3N0cm9uZyZndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3csIGxldOKAmXMgcnVuIHRoZXNlIHRlc3RzIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGF0IHRoZSByb290IG9mIG91ciBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSBhIHNjcmVlbiBzaW1pbGFyIHRvIHRoZSBvbmUgYmVsb3cgb24geW91ciBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi10ZXN0cy1sb2NhbC1ydW4ucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIG91ciB0ZXN0cyBydW5uaW5nIGFzIGV4cGVjdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBdXRvbWF0aW5nIG91ciB0ZXN0aW5nJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBmaW5hbCB0YXNrIGlzIHRvIGF1dG9tYXRlIG91ciBjb250aW51b3VzIGludGVncmF0aW9uIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhhdCwgd2Ugd2lsbCBiZSBkb2luZyB0aGUgZm9sbG93aW5nOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QWRkIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgdG8gb3VyIHByb2plY3QgdG8gc2V0IHVwIGEgQ0kgcGlwZWxpbmUgb24gQ2lyY2xlQ0kmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIG91ciBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG9zaXRvcnkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDcmVhdGUgYSBDaXJjbGVDSSBwcm9qZWN0IGZvciBvdXIgYXBwbGljYXRpb24mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtSdW4gdGhlIENJIHBpcGVsaW5lIG9uIENpcmNsZUNJJmx0Oy9saSZndDsKJmx0Oy9vbCZndDsKCiZsdDtwJmd0O0xldOKAmXMgZ2V0IHRvIGl0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZpcnN0LCBsZXTigJlzIGFkZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3Igb3VyIENJIHBpcGVsaW5lIHRvIG91ciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLiBJbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbmZpZy55bWwmbHQ7L2NvZGUmZ3Q7IGZpbGUsIGVudGVyIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpqb2JzOgogIGJ1aWxkOgogICAgd29ya2luZ19kaXJlY3Rvcnk6IH4vcmVwbwogICAgZG9ja2VyOgogICAgICAtIGltYWdlOiBjaW1nL25vZGU6MTIuMTYKICAgIHN0ZXBzOgogICAgICAtIGNoZWNrb3V0CiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdXBkYXRlLW5wbQogICAgICAgICAgY29tbWFuZDogJnF1b3Q7c3VkbyBucG0gaW5zdGFsbCAtZyBucG1ANSZxdW90OwogICAgICAtIHJlc3RvcmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgLSBydW46CiAgICAgICAgICBuYW1lOiBpbnN0YWxsLXBhY2thZ2VzCiAgICAgICAgICBjb21tYW5kOiBucG0gaW5zdGFsbAogICAgICAtIHNhdmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgICAgIHBhdGhzOgogICAgICAgICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdGVzdAogICAgICAgICAgY29tbWFuZDogbnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgY29uZmlndXJhdGlvbiBwdWxscyBpbiBhIE5vZGUuanMgaW1hZ2UgYW5kIGluc3RhbGxzIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGRlZmluZWQgaW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0Oy4gT25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCB0aGUgdGVzdCBzY3JpcHQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bnBtIHJ1biB0ZXN0Jmx0Oy9jb2RlJmd0OyBpcyB0aGVuIGV4ZWN1dGVkIHRvIHJ1biBhbGwgdGhlIHRlc3RzIGluIG91ciBhcHBsaWNhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGdvb2QgdG8gZ28uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY29tbWl0IGFsbCB5b3VyIGNoYW5nZXMgYW5kIHB1c2ggdGhlIHByb2plY3QgdG8gYSBHaXRIdWIgcmVwb3NpdG9yeSBvbiB0aGUgR2l0SHViIGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgQ2lyY2xlQ0kgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIGlzIHRvIHNldCB1cCB0aGUgcmVwb3NpdG9yeSBmb3Igb3VyIHByb2plY3QgYXMgYSBDaXJjbGVDSSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBDaXJjbGVDSSBjb25zb2xlLCBnbyB0byB0aGUgJmx0O3N0cm9uZyZndDtBZGQgUHJvamVjdHMmbHQ7L3N0cm9uZyZndDsgcGFnZSB0byBhZGQgdGhlIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtcHJvamVjdC5wbmcmcXVvdDsgYWx0PSZxdW90O0FkZCBQcm9qZWN0JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0Oy4gVGhpcyB3aWxsIGxvYWQgdGhlIG5leHQgc2NyZWVuLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3N0YXJ0LWJ1aWxkaW5nMS5wbmcmcXVvdDsgYWx0PSZxdW90O1N0YXJ0IEJ1aWxkaW5nIC0gQ29uZmlnIHNhbXBsZSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBzZXR1cCBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7LiBCZWZvcmUgdGhlIGJ1aWxkIHN0YXJ0cywgeW91IGdldCBhIHByb21wdCB0byBlaXRoZXIgZG93bmxvYWQgYW5kIHVzZSB0aGUgcHJvdmlkZWQgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBoYXZlIGl0IG9uIGEgc2VwYXJhdGUgYnJhbmNoIG9yIHNldCB1cCBvbmUgbWFudWFsbHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzIucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIEFkZCBtYW51YWxseSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1NlbGVjdCAmbHQ7c3Ryb25nJmd0O0FkZCBNYW51YWxseSZsdDsvc3Ryb25nJmd0OyB0byBwcm9jZWVkLiBUaGlzIHdpbGwgcHJvbXB0IGFub3RoZXIgZGlhbG9nIHRoYXQgY2hlY2tzIHRvIGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXQgdXAgdG8gYmVnaW4gYnVpbGRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzMucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIENvbmZpcm0gY29uZmlndXJhdGlvbiZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsgdG8gY29tcGxldGUgdGhlIHNldHVwLiBUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgcGlwZWxpbmUgdXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBvdXIgcHJvamVjdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGUgYnVpbGQgaXMgZG9uZSBydW5uaW5nLCB5b3Ugd2lsbCBnZXQgYSBzdWNjZXNzZnVsIGJ1aWxkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtc3VjY2Vzc2Z1bC5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHN1Y2Nlc3NmdWwmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O2J1aWxkJmx0Oy9zdHJvbmcmZ3Q7IHRvIHNlZSB0aGUgYmVoaW5kLXRoZS1zY2VuZXMgcHJvY2VzcyhJIGhhdmUgY29sbGFwc2VkIHRoZSAmbHQ7ZW0mZ3Q7dGVzdCZsdDsvZW0mZ3Q7IHN0ZXApLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtcHJvY2Vzcy5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHByb2Nlc3MmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBzY3JlZW4sIG91ciBwcm9qZWN0IGlzIHByb3Blcmx5IHNldCB1cCBhbmQgYWxsIG91ciB0ZXN0cyBhcmUgcnVubmluZyBmaW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgYXMgeW91IGRldmVsb3AsIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgbW9yZSBmZWF0dXJlcywgYWRkIHRlc3RzIHRvIHRoZW0gYW5kIHB1c2ggdG8gR2l0SHViLiBPbmNlIHlvdSBwdXNoLCB0aGUgQ0kgcGlwZWxpbmUgd2lsbCBydW4gYW5kIGFsbCB5b3VyIHRlc3RzIHdpbGwgYmUgZXhlY3V0ZWQuIElmIGFueSB0ZXN0IGZhaWxzLCB5b3VyIGJ1aWxkIHdpbGwgZmFpbCB3aGljaCB3aWxsIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbiB0byBiZSBmaXhlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW914oCZcmUgbm90IHB1c2hpbmcgYW55IGJ1Z3MgaW50byB5b3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIHRoaXMgYXJ0aWNsZSwgd2UgaGF2ZSBzZXQgdXAgYW4gYXV0b21hdGVkIENJIHBpcGVsaW5lIGZvciBvdXIgSW9uaWMgYXBwbGljYXRpb25zIHRvIGltcHJvdmUgb3VyIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGF1dG9tYXRpbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4gSGF2aW5nIGEgQ0kgcGlwZWxpbmUgdGhhdCBwcm9wZXJseSBydW5zIG91ciB0ZXN0cyBwcm90ZWN0cyB1cyBhZ2FpbnN0IG91cnNlbHZlcyBieSBlbnN1cmluZyB0aGF0IHdlIGRvbuKAmXQgZW5kIHVwIHdpdGggYnJva2VuIGFwcGxpY2F0aW9ucyBvciB0aGF0IHdlIGRvbuKAmXQgcHVzaCBidWdneSBjb2RlIHRvIG91ciB0ZWFt4oCZcyByZXBvc2l0b3J5IHdoaWxlIHdvcmtpbmcgdG9nZXRoZXIgb24gYSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyA6KSZsdDsvcCZndDsKCiZsdDtociAvJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3R3aXR0ZXIuY29tL2NvZGVyb25mbGVlaz9sYW5nPWVuJnF1b3Q7Jmd0O0Zpa2F5byZsdDsvYSZndDsgaXMgYSBmdWxsc3RhY2sgZGV2ZWxvcGVyIGFuZCBhdXRob3Igd2l0aCBvdmVyIGEgZGVjYWRlIG9mIGV4cGVyaWVuY2UgZGV2ZWxvcGluZyB3ZWIgYW5kIG1vYmlsZSBzb2x1dGlvbnMuIEhlIGlzIGN1cnJlbnRseSB0aGUgU29mdHdhcmUgTGVhZCBhdCBUZWNoIFNwZWNpYWxpc3QgQ29uc3VsdGluZyBhbmQgZGV2ZWxvcHMgY291cnNlcyBmb3IgUGFja3QgYW5kIFVkZW15LiBIZSBoYXMgYSBzdHJvbmcgcGFzc2lvbiBmb3IgdGVhY2hpbmcgYW5kIGhvcGVzIHRvIGJlY29tZSBhIGZ1bGwtdGltZSBhdXRob3IuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5EcmF3biBPdXQgQ29udmVyc2F0aW9ucywgZmVhdHVyaW5nIENpcmNsZUNJIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlciwgUGF0IFNoaWVsZHM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZHJhd24tb3V0LWNvbnZlcnNhdGlvbi1mZWF0dXJpbmctY2lyY2xlY2ktcHJpbmNpcGFsLXNvZnR3YXJlLWVuZ2luZWVyLXBhdC1zaGllbGRzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5GcmksIDE1IE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RyYXduLW91dC1jb252ZXJzYXRpb24tZmVhdHVyaW5nLWNpcmNsZWNpLXByaW5jaXBhbC1zb2Z0d2FyZS1lbmdpbmVlci1wYXQtc2hpZWxkcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Db3JleSBMZXdpczwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtPbiB0aGlzIGVwaXNvZGUgb2YgRHJhd24gT3V0IENvbnZlcnNhdGlvbnMsIHdlIHRhbGsgYWJvdXQgc29tZXRoaW5nIG5lYXIgYW5kIGRlYXIgdG8gb3VyIGhlYXJ0cyDigJMgQ2lyY2xlQ0kuIFdlLCBhbG9uZyB3aXRoIGh1bmRyZWQgb2YgdGhvdXNhbmRzIG9mIG90aGVyIGRldmVsb3BlcnMgYXQgY29tcGFuaWVzIGxpa2UgU3BvdGlmeSwgRmFjZWJvb2ssIEZvcmQgYW5kIEFldG5hLCB1c2UgQ2lyY2xlQ0kgZXZlcnkgZGF5IHRvIG1ha2Ugc3VyZSB0aGF0IHdl4oCZcmUgZGVwbG95aW5nIHF1YWxpdHkgY29kZSwgYW5kIGJ1aWxkaW5nIGVmZmljaWVuY2llcyBpbnRvIG91ciBlbmdpbmVlcmluZyBwcm9jZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0LCB3aGF0IGV4YWN0bHkgaXMgdW5kZXJuZWF0aCBvdXIgcGxhdGZvcm3igJlzIGhvb2Q/Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Sm9pbiBvdXIgQ1RPIFJvYiBadWJlciBhcyBoZSBob3N0cyBDaXJjbGVDSeKAmXMgUHJpbmNpcGFsIFNvZnR3YXJlIEVuZ2luZWVyIFBhdCBTaGllbGRzIHRvIGRpc2N1c3MgdGhlIGlubmVyLXdvcmtpbmdzIG9mIG91ciB0ZWNobm9sb2d5IGFuZCBwbGF0Zm9ybS4gVGhleSBkaXNjdXNzIGV2ZXJ5dGhpbmcgZnJvbSBwcm9kdWN0IGZlYXR1cmVzIHRvIGFyY2hpdGVjdHVyZSBhbmQgdGFsayBhYm91dCBob3cgYW5kIHdoeSB0aGUgY29yZSBlbGVtZW50cyBvZiBvdXIgcGxhdGZvcm0gZ290IGJ1aWx0LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3JvYi1wYXQucG5nJnF1b3Q7IGFsdD0mcXVvdDtyb2ItcGF0LnBuZyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1JvYiBldmVuIHRha2VzIGEgdHVybiB3aXRoIHRoZSBtYXJrZXJzIHRvIGRpc2N1c3MgZG9tYWluLWRyaXZlbiBkZXNpZ24sIGF1dGhlbnRpY2F0aW9uIGFuZCBtb3JlLiBMZWFybiBldmVyeXRoaW5nIHlvdSBldmVyIHdhbnRlZCB0byBrbm93IGFib3V0IENpcmNsZUNJIGFuZCBtb3JlIGluIHRvZGF54oCZcyBjb252ZXJzYXRpb24uJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXImcXVvdDsmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3lvdXR1LmJlL1dMOVJRNmZNbGUwJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvY2lyY2xlY2kuZ2lmJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsKICAmbHQ7L2EmZ3Q7CgombHQ7YnIgLyZndDsKCiAgJmx0O3AmZ3Q7CiAgICAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8veW91dHUuYmUvV0w5UlE2Zk1sZTAmcXVvdDsgc3R5bGU9JnF1b3Q7Y29sb3I6IzAwMDBFRTsmcXVvdDsmZ3Q7CiAgICAgIFdhdGNoIHRoZSBmdWxsIHZpZGVvIGhlcmUKICAgICZsdDsvYSZndDsKICAmbHQ7L3AmZ3Q7CiZsdDsvZGl2Jmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZG8gSSB1c2UgSW5mcmFzdHJ1Y3R1cmUgYXMgQ29kZT88L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWRvLWktaWFjLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE1heSAyMDIwIDEyOjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2hvdy1kby1pLWlhYy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5BbmdlbCBSaXZlcmE8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7SW5mcmFzdHJ1Y3R1cmUgYXMgY29kZSAoSWFDKSBpcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBhbmQgcHJvdmlzaW9uaW5nIGNsb3VkIGFuZCBJVCByZXNvdXJjZXMgdmlhIG1hY2hpbmUgcmVhZGFibGUgZGVmaW5pdGlvbiBmaWxlcyBhbmQgaXMgYSBwYXJ0IG9mIG1vZGVybiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lcy4gSWFDIGVuYWJsZXMgb3JnYW5pemF0aW9ucyB0byBwcm92aXNpb24sIG1hbmFnZSwgYW5kIGRlc3Ryb3kgY29tcHV0ZSByZXNvdXJjZXMgdXNpbmcgbW9kZXJuIERldk9wcyB0b29scy4gSWFDIGVuYWJsZXMgdGhpcyBieSBzdGF0aWNhbGx5IGRlZmluaW5nIGFuZCBkZWNsYXJpbmcgdGhlc2UgcmVzb3VyY2VzIGluIGNvZGUsIHRoZW4gZGVwbG95aW5nIGFuZCBkeW5hbWljYWxseSBtYWludGFpbmluZyB0aGVzZSByZXNvdXJjZXMgdmlhIGNvZGUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gcmVjZW50IGludGVyYWN0aW9ucyB3aXRoIGRldmVsb3BlcnMsIEnigJl2ZSByZWFsaXplZCB0aGF0IG1hbnkgYXJlIGVpdGhlciBub3QgYXdhcmUgb2YgSWFDLCBvciBhcmUgYXdhcmUgYnV0IGhhdmUgYWJhbmRvbmVkIHRoZWlyIGluaXRpYWwgZWZmb3J0cyBiZWNhdXNlIHJhbXBpbmcgdXAgd2FzIHRvbyBjdW1iZXJzb21lLiBJbiB0aGlzIHBvc3QsIEkgd2lsbCBkaXNjdXNzIHRoZSBiZW5lZml0cyBvZiBJYUMgYW5kIHNvbWUgb2YgdGhlIHRvb2xpbmcgb3B0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgYWxvbmcgd2l0aCBhIGJyaWVmIGRlbW9uc3RyYXRpb24gb24gaG93IHRvIHVzZSB0aGVtIGluIGhvcGVzIG9mIGVhc2luZyB0aGUgdHJhbnNpdGlvbiB0byB1c2luZyBJYUMuIEkgd2lsbCBmb2N1cyBvbiB0aGUgdHdvIG1vc3QgcG9wdWxhciBJYUMgdG9vbHMgdXNlZCBpbiB0aGUgaW5kdXN0cnkgdG9kYXk6ICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cudGVycmFmb3JtLmlvLyZxdW90OyZndDtIYXNoaUNvcnDigJlzIFRlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtCZWZvcmUgeW91IGdldCBzdGFydGVkLCB5b3XigJlsbCBuZWVkIHRvIGhhdmUgdGhlc2UgdGhpbmdzOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9mcmVlJnF1b3Q7Jmd0O0dvb2dsZSBDbG91ZCZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NyZWF0ZSBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3Jlc291cmNlLW1hbmFnZXIvZG9jcy9jcmVhdGluZy1tYW5hZ2luZy1wcm9qZWN0cyNjcmVhdGluZ19hX3Byb2plY3QmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIHByb2plY3QmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FwcC5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkgQVBJIHRva2VuJmx0Oy9hJmd0OyBhbmQgc2F2ZSBpdCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgbG9jYWwgaW5zdGFsbCBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vc2RrL2RvY3MvcXVpY2tzdGFydHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIFNESyBDTEkmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSBsb2NhbCBpbnN0YWxsIG9mIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaHViLmRvY2tlci5jb20vc2VhcmNoLz90eXBlPWVkaXRpb24mYW1wO2FtcDtvZmZlcmluZz1jb21tdW5pdHkmcXVvdDsmZ3Q7RG9ja2VyIGNsaWVudCZsdDsvYSZndDsmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBHb29nbGUgQ2xvdWQgcHJvamVjdCBjcmVkZW50aWFscyZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDbG91ZFBsYXRmb3JtL2NvbW11bml0eS9ibG9iL21hc3Rlci90dXRvcmlhbHMvZ2V0dGluZy1zdGFydGVkLW9uLWdjcC13aXRoLXRlcnJhZm9ybS9pbmRleC5tZCNnZXR0aW5nLXByb2plY3QtY3JlZGVudGlhbHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIGNyZWRlbnRpYWxzJmx0Oy9hJmd0OyBpbiBvcmRlciB0byBwZXJmb3JtIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgdXNpbmcgSWFDIHRvb2xpbmcuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9hcGlzL2NyZWRlbnRpYWxzL3NlcnZpY2VhY2NvdW50a2V5JnF1b3Q7Jmd0O0NyZWF0ZSBTZXJ2aWNlIEFjY291bnQgS2V5IHBhZ2UmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7U2VsZWN0IHRoZSBkZWZhdWx0IHNlcnZpY2UgYWNjb3VudCBvciBjcmVhdGUgYSBuZXcgb25lLCBzZWxlY3QgSlNPTiBhcyB0aGUga2V5IHR5cGUsIGFuZCBjbGljayAmbHQ7c3Ryb25nJmd0O0NyZWF0ZSZsdDsvc3Ryb25nJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O1NhdmUgdGhpcyBKU09OIGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgYW5kIHJlbmFtZSB0aGUgZmlsZSB0byAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaWNkX2RlbW9fZ2NwX2NyZWRzLmpzb24mbHQ7L2NvZGUmZ3Q7LiBUaGlzIGlzICZsdDtzdHJvbmcmZ3Q7dmVyeSBpbXBvcnRhbnQmbHQ7L3N0cm9uZyZndDsgZm9yIGVuYWJsaW5nIHRoZSBHb29nbGUgQ2xvdWQgQ0xJIGluIHRoZSBjb250YWluZXIgbGF0ZXIgb24mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBhIFB1bHVtaSBBUEkgdG9rZW4mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7WW91IHdpbGwgbmVlZCB0byBnZXQgYSBQdWx1bWkgQVBJIHRva2VuIHRvIHN0b3JlIHlvdXIgcHJvamVjdCBzdGF0ZSBvbiBQdWx1bWnigJlzIGJhY2tlbmQgY2xvdWQuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vYXBwLnB1bHVtaS5jb20vJnF1b3Q7Jmd0O2FwcC5wdWx1bWkuY29tLyZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1NlbGVjdCBhbiBPcmdhbml6YXRpb24mbHQ7L3N0cm9uZyZndDsgb24gdGhlIHVwcGVyIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSBhbmQgc2VsZWN0IHlvdXIgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O0FjY2VzcyBUb2tlbnMmbHQ7L3N0cm9uZyZndDsgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7TmV3IEFjY2VzcyBUb2tlbiZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7Q3JlYXRlJmx0Oy9zdHJvbmcmZ3Q7IGFuZCBzYXZlIHRoZSBuZXcgQVBJIHRva2VuIHRoYXQgd2FzIGNyZWF0ZWQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemUgeW91ciBQdWx1bWkgcHJvamVjdCBsYXRlciZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7aDImZ3Q7RG9ja2VyIHB1bGwgSWFDMTAxIERvY2tlciBpbWFnZSZsdDsvaDImZ3Q7CgombHQ7cCZndDtBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlZCBhbmQgeW914oCZcmUgcmVhZHkgdG8gcHVsbCB0aGUgZG9ja2VyIGltYWdlIGZvciB0aGlzIHdvcmtzaG9wLiBJbiB0ZXJtaW5hbCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBwdWxsIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm93IGhhdmUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2FyaXYzcmEvaWFjMTAxJmx0Oy9jb2RlJmd0OyBkb2NrZXIgaW1hZ2UgbG9jYWxseS4gWW91IGNhbiB2ZXJpZnkgYnV5IHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgYW5kIHlvdSBzaG91bGQgc2VlIHRoZSBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0RvY2tlciBydW4gSWFDMTAxIGNvbnRhaW5lciZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgd2XigJlsbCBjcmVhdGUgYSBuZXcgRG9ja2VyIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YXJpdjNyYS9pYWMxMDEmbHQ7L2NvZGUmZ3Q7IGltYWdlIHdoaWNoIGhhcyBhbGwgdGhlIElhQyB0b29scyBhbmQgY29kZSBwcmUtYmFrZWQuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O01vdW50aW5nIHRoZSAvLmNvbmZpZy9nY2xvdWQvIGRpcmVjdG9yeSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtCZWZvcmUgcnVubmluZyB0aGUgbmV3IGNvbnRhaW5lciB5b3UgbmVlZCB0aGUgYWJzb2x1dGUgcGF0aCB0byB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkuIE9uIG15IE1hY09TIG1hY2hpbmUsIG15IGFic29sdXRlIHBhdGggaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7L1VzZXJzL2FuZ2VsLy5jb25maWcvZ2Nsb3VkLyZsdDsvY29kZSZndDsuIEJlIHN1cmUgdG8gZ2V0IHlvdXIgYWJzb2x1dGUgZmlsZSBwYXRoIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2Nsb3VkJmx0Oy9jb2RlJmd0OyBkaXJlY3Rvcnkgb24geW91ciBsb2NhbCBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtSdW4gSWFDMTAxIGNvbnRhaW5lciB3aXRoIG1vdW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtSdW4gdGhpcyBjb21tYW5kIGluIGEgdGVybWluYWwgcnVuIGJ1dCBiZSBzdXJlIHRvIHJlcGxhY2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0OyZsdDsvY29kZSZndDsgYml0IHdpdGggeW91ciBhY3R1YWwgYWJzb2x1dGUgcGF0aCB0byB5b3VyIGxvY2FsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dsb2N1ZC8mbHQ7L2NvZGUmZ3Q7ZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtaXQgLS1uYW1lIGlhY3Rlc3QgLS1tb3VudCB0eXBlPWJpbmQsc291cmNlPSZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0Oy5jb25maWcvZ2Nsb3VkLyx0YXJnZXQ9L3Jvb3QvLmNvbmZpZy9nY2xvdWQvIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJYUMxMDEgY29udGFpbmVyIGlzIHJ1bm5pbmcmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGUgcHJldmlvdXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgeW91ciBJYUMxMDEgY29udGFpbmVyIHdpbGwgYmUgdXAgYW5kIHJ1bm5pbmcgYW5kIHlvdXIgdGVybWluYWwgc2hlbGwgaGFzIGRyb3BwZWQgeW91IGludG8gdGhlIHJ1bm5pbmcgY29udGFpbmVyLiBFdmVyeSBjb21tYW5kIHlvdSBydW4gaW4geW91ciB0ZXJtaW5hbCBzaGVsbCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBEb2NrZXIgY29udGFpbmVyIGZyb20gbm93IG9uIHVudGlsIHlvdSBtYW51YWxseSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtleGl0Jmx0Oy9jb2RlJmd0OyB0aGUgY29udGFpbmVyLiBUaGUgY29udGFpbmVyIGhhcyB0aGUgVGVycmFmb3JtIGFuZCBQdWx1bWkgQ0xJIHRvb2xzIGluc3RhbGxlZCwgYXMgd2VsbCBhcyBleGFtcGxlIGNvZGUgZm9yIGVhY2ggdGhhdCBjcmVhdGVzIGluZnJhc3RydWN0dXJlIGluIHRoZWlyIHJlc3BlY3RpdmUgdG9vbHMuIFRoZSBjb250YWluZXIgcHJvamVjdHMgZmlsZXMgYXJlIG1hcHBlZCBhcyBmb2xsb3dzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHJvamVjdHMvCnxfIHRlcnJhZm9ybS9nY3AvY29tcHV0ZS8gICAjIENvbnRhaW5zIHRoZSBUZXJyYWZvcm0gY29kZSBmaWxlcwp8XyBwdWx1bWkvZ2NwL2NvbXB1dGUvICAgICAgIyBDb250YWlucyB0aGUgUHVsdW1pIGNvZGUgZmlsZXMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gyJmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2EmZ3Q7IGlzIGEgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgYnVpbGRpbmcsIGNoYW5naW5nLCBhbmQgdmVyc2lvbmluZyBpbmZyYXN0cnVjdHVyZSBzYWZlbHkgYW5kIGVmZmljaWVudGx5LiBUZXJyYWZvcm0gY2FuIG1hbmFnZSBleGlzdGluZyBzZXJ2aWNlIHByb3ZpZGVycyBhcyB3ZWxsIGFzIGN1c3RvbSBpbi1ob3VzZSBzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q29uZmlndXJhdGlvbiBmaWxlcyBkZXNjcmliZSB0aGUgY29tcG9uZW50cyBuZWVkZWQgdG8gcnVuIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yIHlvdXIgZW50aXJlIGRhdGFjZW50ZXIgb24gVGVycmFmb3JtLiBUZXJyYWZvcm0gZ2VuZXJhdGVzIGFuIGV4ZWN1dGlvbiBwbGFuIGRlc2NyaWJpbmcgd2hhdCBpdCB3aWxsIGRvIHRvIHJlYWNoIHRoZSBkZXNpcmVkIHN0YXRlLCBhbmQgdGhlbiBleGVjdXRlcyBpdCB0byBidWlsZCB0aGUgZGVzY3JpYmVkIGluZnJhc3RydWN0dXJlLiBBcyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBUZXJyYWZvcm0gaXMgYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBjaGFuZ2VkIGFuZCBjcmVhdGUgaW5jcmVtZW50YWwgZXhlY3V0aW9uIHBsYW5zIHdoaWNoIGNhbiBiZSBhcHBsaWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZSBpbmZyYXN0cnVjdHVyZSBUZXJyYWZvcm0gY2FuIG1hbmFnZSBpbmNsdWRlcyBsb3ctbGV2ZWwgY29tcG9uZW50cyBzdWNoIGFzIGNvbXB1dGUgaW5zdGFuY2VzLCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZywgYXMgd2VsbCBhcyBoaWdoLWxldmVsIGNvbXBvbmVudHMgc3VjaCBhcyBETlMgZW50cmllcywgU2FhUyBmZWF0dXJlcywgZXRjLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBUZXJyYWZvcm0mbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCB3aXRoIHByb3Zpc2lvbmluZyBzb21lIHJlc291cmNlcyBpbiBHQ1AgdXNpbmcgVGVycmFmb3JtIGNvZGUuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDttYWluLnRmICZsdDsvY29kZSZndDsgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBjb2RlIHRoYXQgaGFzIG91ciBpbmZyYXN0cnVjdHVyZSBkZWZpbmVkLiBJbiB0aGlzIGZpbGUgd2XigJlyZSBjcmVhdGluZyBhIG5ldyBjb21wdXRlIGluc3RhbmNlIHRoYXQgd2lsbCBpbnN0YWxsIGFuZCBydW4gYSBQeXRob24gRmxhc2sgYXBwIHBhY2thZ2VkIGluIGEgRG9ja2VyIGNvbnRhaW5lci4gVGhlIFRlcnJhZm9ybSBjb2RlIHdpbGwgYWxzbyBjcmVhdGUgc29tZSBmaXJld2FsbCBydWxlcyB0aGF0IHdpbGwgYWxsb3cgcHVibGljIGFjY2VzcyB0byB0aGUgYXBwIG92ZXIgcG9ydCA1MDAwLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHByb3Zpc2lvbiB0aGlzLCBydW4gdGhpcyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NkIH4vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJbml0aWFsaXppbmcgVGVycmFmb3JtJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1doaWxlIGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBydW4gdGhpcyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7dGVycmZvcm0gaW5pdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSByZXN1bHRzIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cm9vdEBkOWNlNzIxMjkzZTI6fi9wcm9qZWN0L3RlcnJhZm9ybS9nY3AvY29tcHV0ZSMgdGVycmFmb3JtIGluaXQKCkluaXRpYWxpemluZyB0aGUgYmFja2VuZC4uLgoKSW5pdGlhbGl6aW5nIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBDaGVja2luZyBmb3IgYXZhaWxhYmxlIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBEb3dubG9hZGluZyBwbHVnaW4gZm9yIHByb3ZpZGVyICZxdW90O2dvb2dsZSZxdW90OyAoaGFzaGljb3JwL2dvb2dsZSkgMy4xMC4wLi4uCgoqIHByb3ZpZGVyLmdvb2dsZTogdmVyc2lvbiA9ICZxdW90O34mYW1wO2d0OyAzLjEwJnF1b3Q7CgpUZXJyYWZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7aDMmZ3Q7UHJldmlld2luZyB3aXRoIFRlcnJhZm9ybSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUZXJyYWZvcm0gaGFzIGEgY29tbWFuZCB0aGF0IGFsbG93cyB5b3UgdG8gZHJ5IHJ1biBhbmQgdmFsaWRhdGUgeW91ciBUZXJyYWZvcm0gY29kZSB3aXRob3V0IGFjdHVhbGx5IGV4ZWN1dGluZyBhbnl0aGluZy4gVGhlIGNvbW1hbmQgaXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybSBwbGFuJmx0Oy9jb2RlJmd0OyB3aGljaCBhbHNvIGdyYXBocyBhbGwgdGhlIGFjdGlvbnMgYW5kIGNoYW5nZXMgdGhhdCBUZXJyYWZvcm0gd2lsbCBleGVjdXRlIGFnYWluc3QgeW91ciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS4gSW4gdGhlIHRlcm1pbmFsIHJ1bjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3RlcnJhZm9ybSBwbGFuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSByZXN1bHRzIHNpbWlsYXIgdG8gdGhpcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0FuIGV4ZWN1dGlvbiBwbGFuIGhhcyBiZWVuIGdlbmVyYXRlZCBhbmQgaXMgc2hvd24gYmVsb3cuClJlc291cmNlIGFjdGlvbnMgYXJlIGluZGljYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKICArIGNyZWF0ZQoKVGVycmFmb3JtIHdpbGwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGFjdGlvbnM6CgogICMgZ29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwuaHR0cC01MDAwIHdpbGwgYmUgY3JlYXRlZAogICsgcmVzb3VyY2UgJnF1b3Q7Z29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwmcXVvdDsgJnF1b3Q7aHR0cC01MDAwJnF1b3Q7IHsKICAgICAgKyBjcmVhdGlvbl90aW1lc3RhbXAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVzdGluYXRpb25fcmFuZ2VzID0gKGtub3duIGFmdGVyIGFwcGx5KQogIH0KCiAgICAjIGdvb2dsZV9jb21wdXRlX2luc3RhbmNlLmRlZmF1bHQgd2lsbCBiZSBjcmVhdGVkCiAgKyByZXNvdXJjZSAmcXVvdDtnb29nbGVfY29tcHV0ZV9pbnN0YW5jZSZxdW90OyAmcXVvdDtkZWZhdWx0JnF1b3Q7IHsKICAgICAgKyBjYW5faXBfZm9yd2FyZCAgICAgICA9IGZhbHNlCiAgICAgICsgY3B1X3BsYXRmb3JtICAgICAgICAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVsZXRpb25fcHJvdGVjdGlvbiAgPSBmYWxzZQogICAgICArIGd1ZXN0X2FjY2VsZXJhdG9yICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGlkICAgICAgICAgICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGluc3RhbmNlX2lkICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVsX2ZpbmdlcnByaW50ICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVscyAgICAgICAgICAgICAgID0gewogICAgICAgICAgKyAmcXVvdDtjb250YWluZXItdm0mcXVvdDsgPSAmcXVvdDtjb3Mtc3RhYmxlLTY5LTEwODk1LTYyLTAmcXVvdDsKICAgICAgICB9CiAgICAgICsgbWFjaGluZV90eXBlICAgICAgICAgPSAmcXVvdDtnMS1zbWFsbCZxdW90OwogIH0KICBQbGFuOiAyIHRvIGFkZCwgMCB0byBjaGFuZ2UsIDAgdG8gZGVzdHJveS4KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgeW91IGNhbiBzZWUsIFRlcnJhZm9ybSBpcyBnb2luZyB0byBjcmVhdGUgbmV3IEdDUCByZXNvdXJjZXMgZm9yIHlvdSBiYXNlZCBvbiB0aGUgY29kZSBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bWFpbi50ZiZsdDsvY29kZSZndDsgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGFwcGx5Jmx0Oy9oMyZndDsKCiZsdDtwJmd0O05vdyB5b3XigJlyZSByZWFkeSB0byBjcmVhdGUgdGhlIG5ldyBpbmZyYXN0cnVjdHVyZSBhbmQgZGVwbG95IHRoZSBhcHBsaWNhdGlvbi4gUnVuIHRoaXMgY29tbWFuZCBpbiB0aGUgdGVybWluYWw6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt0ZXJyYWZvcm0gYXBwbHkKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGVycmFmb3JtIHdpbGwgcHJvbXB0IHlvdSB0byBjb25maXJtIHlvdXIgY29tbWFuZC4gVHlwZSB5ZXMgYW5kIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0RvIHlvdSB3YW50IHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucz8KICBUZXJyYWZvcm0gd2lsbCBwZXJmb3JtIHRoZSBhY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KICBPbmx5ICd5ZXMnIHdpbGwgYmUgYWNjZXB0ZWQgdG8gYXBwcm92ZS4KCiAgRW50ZXIgYSB2YWx1ZTogeWVzCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RlcnJhZm9ybSB3aWxsIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgYW5kIHlvdSB3aWxsIGhhdmUgYW4gYXBwbGljYXRpb24gdXAgYW5kIHJ1bm5pbmcgb24gR0NQIHNob3J0bHkgYWZ0ZXIgaXQgY29tcGxldGVzLiBQbGVhc2Ugbm90ZSB0aGF0IGl0IHdpbGwgdGFrZSAzLTUgbWludXRlcyBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbWUgb25saW5lIGFmdGVyIFRlcnJhZm9ybSBjb21wbGV0ZXMuIEl04oCZcyBub3QgYW4gaW5zdGFudCBwcm9jZXNzIGJlY2F1c2UgdGhlIGJhY2tlbmQgc3lzdGVtcyBhcmUgcHJvdmlzaW9uaW5nIGFuZCBicmluZ2luZyB0aGluZ3Mgb25saW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgZG9uZSwgeW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7bGFuZ3VhZ2Utc2hlbGwgaGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7T3V0cHV0czoKClB1YmxpY19JUF9BZGRyZXNzICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgMzQuNzQuNzUuMTcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1B1YmxpY19JUF9BZGRyZXNzJmx0Oy9jb2RlJmd0OyB2YWx1ZSBpcyB0aGUgSVAgQWRkcmVzcyB0aGF0IHlvdXIgYXBwIGlzIHJ1bm5pbmcgb24sIHNvIGlmIHlvdSBnbyB0byBhIGJyb3dzZXIgYW5kIHBsdWcgdGhhdCBudW1iZXIgaW4gcGx1cyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7OjUwMDAmbHQ7L2NvZGUmZ3Q7IHBvcnQgYWRkcmVzcyAoaXQgd291bGQgbG9vayBsaWtlIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7MzQuNzQuNzUuMTc6NTAwMCZsdDsvY29kZSZndDspIHlvdSB3aWxsIHNlZSB5b3VyIGFwcCBydW5uaW5nIGluIEdDUC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Tm93IHRoYXQgeW91IGhhdmUgcHJvb2YgdGhhdCB5b3VyIEdvb2dsZSBDb21wdXRlIGluc3RhbmNlIGFuZCB5b3VyIGFwcGxpY2F0aW9uIHdvcmssIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gZGVzdHJveSB0aGUgYXNzZXRzIHRoYXQgeW91IGNyZWF0ZWQgaW4gdGhpcyB0dXRvcmlhbC4gWW91IGNhbiBsZWF2ZSBpdCB1cCBhbmQgcnVubmluZywgYnV0IGJlIGF3YXJlIHRoYXQgdGhlcmUgaXMgYSBjb3N0IGFzc29jaWF0ZWQgd2l0aCBhbnkgYXNzZXRzIHJ1bm5pbmcgb24gdGhlIEdvb2dsZSBDbG91ZCBQbGF0Zm9ybSBhbmQgeW91IHdpbGwgYmUgbGlhYmxlIGZvciB0aG9zZSBjb3N0cy4gR29vZ2xlIGdpdmVzIGEgZ2VuZXJvdXMgJDMwMCBjcmVkaXQgZm9yIGl0cyBmcmVlIHRyaWFsIHNpZ24tdXAsIGJ1dCB5b3UgY291bGQgZWFzaWx5IGVhdCB0aHJvdWdoIHRoYXQgaWYgeW91IGxlYXZlIGFzc2V0cyBydW5uaW5nLiBJdOKAmXMgdXAgdG8geW91LCBidXQgcnVubmluZyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0ZXJyYWZvcm0gZGVzdHJveSZsdDsvY29kZSZndDsgd2lsbCB0ZXJtaW5hdGUgYW55IHJ1bm5pbmcgYXNzZXRzLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIEnigJlsbCBkZW1vbnN0cmF0ZSBob3cgdG8gcGVyZm9ybSBpbmZyYXN0cnVjdHVyZSBwcm92aXNpb25pbmcgdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtQdWx1bWkgU0RLJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9wcm9kdWN0LyNzZGsmcXVvdDsmZ3Q7UHVsdW1pIFNESyZsdDsvYSZndDsgaXMgYW4gb3BlbiBzb3VyY2UgZnJhbWV3b3JrIGZvciBkZWZpbmluZyBhbmQgZGVwbG95aW5nIGNsb3VkIGFwcHMgYW5kIElhQy4gUHVsdW1pIGVuYWJsZXMgZGV2ZWxvcGVycyB0byB3cml0ZSBjb2RlIGluIHRoZWlyIGZhdm9yaXRlIGxhbmd1YWdlIHN1Y2ggYXMgVHlwZVNjcmlwdCwgSmF2YVNjcmlwdCwgUHl0aG9uLCBhbmQgR28uIFRoaXMgZW5hYmxlcyBtb2Rlcm4gYXBwcm9hY2hlcyB0byBjbG91ZCBhcHBsaWNhdGlvbnMgYW5kIGluZnJhc3RydWN0dXJlIHdpdGhvdXQgbmVlZGluZyB0byBsZWFybiBhbm90aGVyIFlBTUwgb3IgRFNMIGRpYWxlY3QuIFRoaXMgdW5sb2NrcyBhYnN0cmFjdGlvbnMgYW5kIHJldXNlLCBhcyB3ZWxsIGFzIGFjY2VzcyB0byB5b3VyIGZhdm9yaXRlIElERXMsIHJlZmFjdG9yaW5nLCBhbmQgdGVzdGluZyB0b29scy4gTWFzdGVyIG9uZSB0b29sY2hhaW4gYW5kIHNldCBvZiBmcmFtZXdvcmtzIGFuZCBnbyB0byBhbnkgY2xvdWQgKEFXUywgQXp1cmUsIEdDUCwgb3IgS3ViZXJuZXRlcykgd2l0aCBlYXNlLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBQdWx1bWkmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUgZXhwZXJpZW5jZWQgYnVpbGRpbmcgaW5mcmFzdHJ1Y3R1cmUgdXNpbmcgVGVycmFmb3JtLCBub3cgeW914oCZbGwgbGVhcm4gaG93IHRvIHByb3Zpc2lvbiBhbmQgZGVwbG95IG5ldyBpbmZyYXN0cnVjdHVyZSB1c2luZyBQdWx1bWkuIFRoZSBQdWx1bWkgZXhhbXBsZSB3aWxsIGNyZWF0ZSB0aGUgc2FtZSBHQ1AgcmVzb3VyY2VzIHByZXZpb3VzbHkgdXNpbmcgUHVsdW1pIGNvZGUgYW5kIHRvb2xzLiBQdWx1bWkgZW5hYmxlcyB5b3UgdG8gZGVmaW5lIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgaW4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHdoaWNoIHByb3ZpZGVzIGxvdHMgb2YgZmxleGliaWxpdHkuIEluIHRoaXMgZXhhbXBsZSwgd2XigJlyZSB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vd3d3LnB5dGhvbi5vcmcvJnF1b3Q7Jmd0O1B5dGhvbiZsdDsvYSZndDsgYXMgb3VyIGxhbmd1YWdlLiBUaGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7X19tYWluLnB5X18mbHQ7L2NvZGUmZ3Q7IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC9wdWx1bWkvZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgaXMgd2hlcmUgd2VyZSBnb2luZyB0byBkZWZpbmUgb3VyIGluZnJhc3RydWN0dXJlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlIHN1cmUgdG8gaGF2ZSB5b3VyIFB1bHVtaSBBUEkgdG9rZW4gYXZhaWxhYmxlLiBZb3XigJlsbCBuZWVkIGl0IGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIFB1bHVtaSBleGFtcGxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7fi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGRpcmVjdG9yeS4gUnVuIHRoaXMgY29tbWFuZCB0byBjaGFuZ2UgaW50byB0aGUgUHVsdW1pIGV4YW1wbGUgZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2Qgfi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gzJmd0O0luc3RhbGxpbmcgZGVwZW5kaWVuY2llcyBmb3IgUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1NpbmNlIHdl4oCZcmUgZGVmaW5pbmcgb3VyIElhQyBzcGVjcyB1c2luZyBQeXRob24gd2XigJlsbCBuZWVkIHRvIGZpcnN0IGluc3RhbGwgdGhlIFB1bHVtaSBQeXRob24gU0RLIGRlcGVuZGVuY2llcy4gSW4gdGhlIHRlcm1pbmFsIHJ1biB0aGlzIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtwaXAgaW5zdGFsbCAtciAuLi9yZXF1aXJlbWVudHMudHh0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtQcmV2aWV3aW5nIHdpdGggUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1B1bHVtaSBoYXMgYSBkcnktcnVuIGNvbW1hbmQgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBwcmV2aWV3Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRpc3BsYXlzIGEgcHJldmlldyBvZiB0aGUgdXBkYXRlcyB0byBhbiBleGlzdGluZyBzdGFjayB3aG9zZSBzdGF0ZSBpcyByZXByZXNlbnRlZCBieSBhbiBleGlzdGluZyBzdGF0ZSBmaWxlLiBUaGUgbmV3IGRlc2lyZWQgc3RhdGUgaXMgY29tcHV0ZWQgYnkgcnVubmluZyBhIFB1bHVtaSBwcm9ncmFtLCBhbmQgZXh0cmFjdGluZyBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbnMgZnJvbSBpdHMgcmVzdWx0aW5nIG9iamVjdCBncmFwaC4gVGhlc2UgYWxsb2NhdGlvbnMgYXJlIHRoZW4gY29tcGFyZWQgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc3RhdGUgdG8gZGV0ZXJtaW5lIHdoYXQgb3BlcmF0aW9ucyBtdXN0IHRha2UgcGxhY2UgdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZCBzdGF0ZS4gTm8gY2hhbmdlcyB0byB0aGUgc3RhY2sgd2lsbCBhY3R1YWxseSB0YWtlIHBsYWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGlzIGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHByZXZpZXcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHJlc3VsdHMgcHJvbXB0aW5nIHlvdSBmb3IgdGhlIFB1bHVtaSBBUEkgdG9rZW4geW91IGNyZWF0ZWQgZWFybGllci4gUGFzdGUgdGhlIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLiBBZnRlciB5b3UgcGFzdGUgdGhlIHRva2VuIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O01hbmFnZSB5b3VyIFB1bHVtaSBzdGFja3MgYnkgbG9nZ2luZyBpbi4KUnVuIGBwdWx1bWkgbG9naW4gLS1oZWxwYCBmb3IgYWx0ZXJuYXRpdmUgbG9naW4gb3B0aW9ucy4KRW50ZXIgeW91ciBhY2Nlc3MgdG9rZW4gZnJvbSBodHRwczovL2FwcC5wdWx1bWkuY29tL2FjY291bnQvdG9rZW5zCiAgICBvciBoaXQgJmFtcDtsdDtFTlRFUiZhbXA7Z3Q7IHRvIGxvZyBpbiB1c2luZyB5b3VyIGJyb3dzZXIgICAgICAgICAgICAgICAgICAgOgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1doZW4gcGFzdGluZyB0aGUgQVBJIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLCBubyB2YWx1ZXMgd2lsbCBiZSBkaXNwbGF5ZWQuIEl0IHdpbGwgcmVtYWluIGludmlzaWJsZSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuJmx0Oy9pJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBtYXkgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGEgc3RhY2sgaW4gdGhlIHRlcm1pbmFsLiBJZiBzbywgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkZXYmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB0aGVuIGhpdCBlbnRlci4gWW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UHJldmlld2luZyB1cGRhdGUgKGRldik6CiAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICAgICBQbGFuCiArICAgcHVsdW1pOnB1bHVtaTpTdGFjayAgICAgIGNvbXB1dGUtZGV2ICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6TmV0d29yayAgIG5ldHdvcmsgICAgICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6SW5zdGFuY2UgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJTilIAgZ2NwOmNvbXB1dGU6RmlyZXdhbGwgIGZpcmV3YWxsICAgICAgICAgICAgICAgICAgICBjcmVhdGUKClJlc291cmNlczoKICAgICsgNSB0byBjcmVhdGUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUganVzdCBlbmFibGVkIGFjY2VzcyB0byB0aGUgUHVsdW1pIGJhY2tlbmQgY2xvdWQgd2hpY2gga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXRlIG9mIHlvdXIgaW5mcmFzdHJ1Y3R1cmVzLiBOb3cgeW914oCZcmUgcmVhZHkgdG8gcnVuIHNvbWUgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7UHVsdW1pIHVwJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1RvIGV4ZWN1dGUgdGhlIFB1bHVtaSBjb2RlLCB1c2UgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIHVwJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGNyZWF0ZXMgb3IgdXBkYXRlcyByZXNvdXJjZXMgaW4gYSBzdGFjay4gVGhlIG5ldyBkZXNpcmVkIGdvYWwgc3RhdGUgZm9yIHRoZSB0YXJnZXQgc3RhY2sgaXMgY29tcHV0ZWQgYnkgcnVubmluZyB0aGUgY3VycmVudCBQdWx1bWkgcHJvZ3JhbSBhbmQgb2JzZXJ2aW5nIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9ucyB0byBwcm9kdWNlIGEgcmVzb3VyY2UgZ3JhcGguIFRoaXMgZ29hbCBzdGF0ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIGV4aXN0aW5nIHN0YXRlIHRvIGRldGVybWluZSB3aGF0IGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQvb3IgZGVsZXRlIG9wZXJhdGlvbnMgbXVzdCB0YWtlIHBsYWNlIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgZ29hbCBzdGF0ZSBpbiB0aGUgbW9zdCBtaW5pbWFsbHkgZGlzcnVwdGl2ZSB3YXkuIEFmdGVyd2FyZCwgdGhpcyBjb21tYW5kIHJlY29yZHMgYSBmdWxsIHRyYW5zYWN0aW9uYWwgc25hcHNob3Qgb2YgdGhlIHN0YWNr4oCZcyBuZXcgc3RhdGUgc28gdGhhdCB0aGUgc3RhY2sgbWF5IGJlIHVwZGF0ZWQgaW5jcmVtZW50YWxseSBhZ2FpbiBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgdGVybWluYWwgcnVuOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHVwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1NlbGVjdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7eWVzJmx0Oy9jb2RlJmd0OyBvcHRpb24gYW5kIGhpdCBlbnRlci4gVGhlIFB1bHVtaSBhcHAgd2lsbCBleGVjdXRlLCBhbmQgc2hvcnRseSBhZnRlciB5b3XigJlsbCBoYXZlIGEgY29tcGxldGUgc2VydmVyIHJ1bm5pbmcgYW4gYXBwbGljYXRpb24gb24gR0NQLiBZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtVcGRhdGluZyAoZGV2KToKICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cwogKyAgIHB1bHVtaTpwdWx1bWk6U3RhY2sgICAgICBjb21wdXRlLWRldiAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUnOKUgCBnY3A6Y29tcHV0ZTpOZXR3b3JrICAgbmV0d29yayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGVkCiArICAg4pSc4pSAIGdjcDpjb21wdXRlOkZpcmV3YWxsICBmaXJld2FsbCAgICAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUlOKUgCBnY3A6Y29tcHV0ZTpJbnN0YW5jZSAgd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDEgIGNyZWF0ZWQKCk91dHB1dHM6CiAgICBleHRlcm5hbF9pcCAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICBpbnN0YW5jZV9tZXRhX2RhdGE6IHsKICAgICAgICBnY2UtY29udGFpbmVyLWRlY2xhcmF0aW9uOiAmcXVvdDtzcGVjOlxuICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDFcbiAgICAgIGltYWdlOiBhcml2M3JhL3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxOmxhdGVzdFxuICAgICAgc3RkaW46IGZhbHNlXG4gICAgICB0dHk6IGZhbHNlXG4gIHJlc3RhcnRQb2xpY3k6IEFsd2F5c1xuJnF1b3Q7CiAgICB9CiAgICBpbnN0YW5jZV9uYW1lICAgICA6ICZxdW90O3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxJnF1b3Q7CiAgICBpbnN0YW5jZV9uZXR3b3JrICA6IFsKICAgICAgICBbMF06IHsKICAgICAgICAgICAgYWNjZXNzQ29uZmlncyAgICA6IFsKICAgICAgICAgICAgICAgIFswXTogewogICAgICAgICAgICAgICAgICAgIG5hdElwICAgICAgICAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICAgICAgICAgICAgICAgICAgbmV0d29ya190aWVyICAgICAgIDogJnF1b3Q7UFJFTUlVTSZxdW90OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgOiAmcXVvdDtuaWMwJnF1b3Q7CiAgICAgICAgfQogICAgXQoKUmVzb3VyY2VzOgogICAgKyA1IGNyZWF0ZWQKCkR1cmF0aW9uOiA1OHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlc2UgcmVzdWx0cywgeW914oCZbGwgc2VlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXh0ZXJuYWxfaXAmbHQ7L2NvZGUmZ3Q7IGtleS4gSXTigJlzIHZhbHVlIGlzIHRoZSBJUCBBZGRyZXNzIHRvIHRoZSBwdWJsaWMgZmFjaW5nIGFwcGxpY2F0aW9uIGV4cG9zZWQgb24gcG9ydCA1MDAwLiBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIFRlcnJhZm9ybSBleGFtcGxlLCB5b3UgY2FuIGFjY2VzcyB0aGUgYXBwbGljYXRpb24gaW4gYSBicm93c2VyLiBSZW1lbWJlciB0byBhbGxvdyBmb3IgYSBmZXcgbWludXRlcyBzbyB0aGUgYmFja2VuZCBzeXN0ZW0gY2FuIGJyaW5nIGV2ZXJ5dGhpbmcgb25saW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQdWx1bWkgZGVzdHJveSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtQdWx1bWkgaGFzIGEgY29tbWFuZCB0byB0ZXJtaW5hdGUgYWxsIG9mIHRoZSBjbG91ZCByZXNvdXJjZXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBkZXN0cm95Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRlbGV0ZXMgYW4gZW50aXJlIGV4aXN0aW5nIHN0YWNrIGJ5IG5hbWUuIFRoZSBjdXJyZW50IHN0YXRlIGlzIGxvYWRlZCBmcm9tIHRoZSBhc3NvY2lhdGVkIHN0YXRlIGZpbGUgaW4gdGhlIHdvcmtzcGFjZS4gQWZ0ZXIgcnVubmluZyB0byBjb21wbGV0aW9uLCBhbGwgb2YgdGhpcyBzdGFja+KAmXMgcmVzb3VyY2VzIGFuZCBhc3NvY2lhdGVkIHN0YXRlIHdpbGwgYmUgZ29uZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtSdW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGluIHRoZSB0ZXJtaW5hbCBhbmQgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5ZXMmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB3aGVuIHByb21wdGVkIHRvICZsdDtzdHJvbmcmZ3Q7cGVybWFuZW50bHkmbHQ7L3N0cm9uZyZndDsgZGVzdHJveSB0aGUgR0NQIHJlc291cmNlcyBjcmVhdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O0NvbmdyYXR1bGF0aW9ucyEgWW914oCZdmUganVzdCBsZXZlbGVkIHVwIGFuZCBub3cgaGF2ZSBleHBlcmllbmNlIHByb3Zpc2lvbmluZyBhbmQgZGVwbG95aW5nIGFwcGxpY2F0aW9ucyB0byBHQ1AgdXNpbmcgdGhlIG1vZGVybiBJYUMgdG9vbHMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O1RlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4gVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2lsbCBoZWxwIHlvdSBleHBhbmQgeW91ciBrbm93bGVkZ2UgZnJvbSBoZXJlOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9jbGktaW5kZXguaHRtbCZxdW90OyZndDtUZXJyYWZvcm0gR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9kb2NzL2dldC1zdGFydGVkLyZxdW90OyZndDtQdWx1bWkgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS9vcmIvcHVsdW1pL3B1bHVtaSZxdW90OyZndDtQdWx1bWkgb3JiIGZvciBDaXJjbGVDSSZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyZxdW90OyZndDtEb2NrZXIgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm0vY29tbXVuaXR5L2Jsb2IvbWFzdGVyL3R1dG9yaWFscy9nZXR0aW5nLXN0YXJ0ZWQtb24tZ2NwLXdpdGgtdGVycmFmb3JtL2luZGV4Lm1kI2dldHRpbmctcHJvamVjdC1jcmVkZW50aWFscyZxdW90OyZndDtHb29nbGUgQ2xvdWQgUGxhdGZvcm0mbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogICAgICAKICAgICAgPGl0ZW0+CiAgICAgICAgPHRpdGxlPkEgbG9vayBhdCBDaXJjbGVDSeKAmXMgaW5kdXN0cnktbGVhZGluZyBzdXBwb3J0IGZvciB0cmFuc2l0aW9uLXJlbGF0ZWQgbWVkaWNhbCBsZWF2ZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hLWxvb2stYXQtY2lyY2xlY2ktcy1pbmR1c3RyeS1sZWFkaW5nLXN1cHBvcnQtZm9yLXRyYW5zaXRpb24tcmVsYXRlZC1tZWRpY2FsLWxlYXZlLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5XZWQsIDEzIE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2EtbG9vay1hdC1jaXJjbGVjaS1zLWluZHVzdHJ5LWxlYWRpbmctc3VwcG9ydC1mb3ItdHJhbnNpdGlvbi1yZWxhdGVkLW1lZGljYWwtbGVhdmUvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RWxpemFiZXRoIEJlbGw8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7T25lIG9mIHRoZSBncmVhdCB0aGluZ3MgYWJvdXQgd29ya2luZyBhdCBDaXJjbGVDSSBpcyB0aGF0IHRoZSBjb21wYW55IGJlbGlldmVzIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGJlIGFibGUgdG8gYmUgdGhlaXIgd2hvbGUgc2VsZiBhdCB3b3JrLiBJbmNsdXNpdml0eSwgZGVtb25zdHJhdGluZyB0cnVzdCBhbmQgcmVzcGVjdCwgYW5kIG1ha2luZyBzdXJlIGV2ZXJ5b25lIGhhcyB0aGUgdG9vbHMgYW5kIHN1cHBvcnQgdGhleSBuZWVkIGFyZSBhbGwgYnVyaWVkIGRlZXAgaW4gdGhlIGN1bHR1cmUgaGVyZSDigJMgaXQgaXMgYSBiaWcgcGFydCBvZiBob3cgd2UgZGVsaXZlciB0aGUgYmVzdCB2YWx1ZSBmb3Igb3VyIGN1c3RvbWVycy4gV2l0aCB0aGF0IGluIG1pbmQsIHRoZSBjb21wYW55IHJlY2VudGx5IHJvbGxlZCBvdXQgYSBuZXcgaGVhbHRoY2FyZSBwb2xpY3kgZm9yIG91ciB0cmFuc2dlbmRlciBjby13b3JrZXJzLiBJbiBhIGZpcnN0IGZvciBjb21wYW5pZXMgaW4gdGhlIENJL0NEIHNwYWNlLCBDaXJjbGVDSSBub3cgb2ZmZXJzIGZ1bGx5LWNvbXBlbnNhdGVkIHBhaWQgbGVhdmUgZm9yIGVtcGxveWVlcyByZWNvdmVyaW5nIGZyb20gdHJhbnNpdGlvbi1yZWxhdGVkIG1lZGljYWwgcHJvY2VkdXJlcy4gVGhpcyBwb2xpY3kgaXMgYW4gZXh0cmVtZWx5IGltcG9ydGFudCBhZGRpdGlvbiB0byBDaXJjbGVDSeKAmXMgYmVuZWZpdHMgcGFja2FnZSBhbmQgYW5vdGhlciBleGFtcGxlIG9mIHRoZSBjb21wYW554oCZcyBkZWRpY2F0aW9uIHRvIHRoZSB3ZWxsLWJlaW5nIG9mIGFsbCBlbXBsb3llZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VHJhbnNpdGlvbiBpcyBhbiBpbW1lbnNlbHkgc3RyZXNzZnVsIHByb2Nlc3MsIGFuZCB0aGUgbWVkaWNhbCBwcm9jZWR1cmVzIHJlcXVpcmVkIHRvIHRyZWF0IHRoZSBkeXNwaG9yaWEgZXhwZXJpZW5jZWQgYnkgc29tZSB0cmFuc2dlbmRlciBwZW9wbGUgb2Z0ZW4gbmVlZCBhIHZlcnkgY2FyZWZ1bCBhcHByb2FjaCB0byByZWNvdmVyeS4mbHQ7L3AmZ3Q7CgombHQ7YmxvY2txdW90ZSZndDsKICAmbHQ7cCZndDtUaGUgZ29hbCBvZiB0aGUgcG9saWN5IGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRyYW5zZ2VuZGVyIGVtcGxveWVlcyBmZWVsIHN1cHBvcnRlZCBkdXJpbmcgdGhpcyBkaWZmaWN1bHQgdGltZSwgYW5kIGJ5IGVuc3VyaW5nIHRoYXQgdHJhbnNnZW5kZXIgZW1wbG95ZWVzIGhhdmUgYWNjZXNzIHRvIGFwcHJvcHJpYXRlbHkgY29tcGVuc2F0ZWQgbWVkaWNhbCBsZWF2ZSwgdGhlIGNvbXBhbnkgY2FuIHJlbW92ZSBtYWpvciBzb3VyY2VzIG9mIHVubmVjZXNzYXJ5IHN0cmVzcy4gVGhpcyB3YXksIHdlIGNhbiByZXR1cm4gdG8gd29yayBoYXBwaWVyLCBoZWFsdGhpZXIsIGFuZCBiZXR0ZXIgYWJsZSB0byBkbyBvdXIgYmVzdCBmb3Igb3VyIGN1c3RvbWVycyBhbmQgb3VyIGNvbGxlYWd1ZXMuJmx0Oy9wJmd0OwombHQ7L2Jsb2NrcXVvdGUmZ3Q7CgombHQ7aDImZ3Q7SG93IHRoaXMgcG9saWN5IGNhbWUgdG9nZXRoZXImbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgcHVzaCBmb3IgdGhlIGZvcm1hbGl6YXRpb24gb2YgdGhlc2UgYmVuZWZpdHMgZ3JldyBvdXQgb2YgdGhlIGVmZm9ydHMgb2YgbWFueSBpbmRpdmlkdWFscy4gVG9nZXRoZXIsIHRoZSB0cmFucyBlbXBsb3llZXMgYXQgQ2lyY2xlQ0kgZGlzY3Vzc2VkIHRoZSBpc3N1ZSBhbW9uZ3N0IG91cnNlbHZlcywgb3VyIG1hbmFnZXJzLCBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIHdobyBzdXBwb3J0ZWQgdXMgaW4gYnJpbmdpbmcgdGhlIHRvcGljIHRvIG91ciBleGVjdXRpdmUgdGVhbS4gQnkgYnVpbGRpbmcgY29uc2Vuc3VzLCBib3RoIHdpdGhpbiB0aGUgdHJhbnMgcG9wdWxhdGlvbiBhdCB0aGUgY29tcGFueSBhbmQgb3VyIGNpc2dlbmRlciBjb2xsZWFndWVzLCB3ZSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IGFkdm9jYXRlIGZvciBhIGZvcm1hbGl6YXRpb24gb2YsIGFuZCBhIGNvbW1pdG1lbnQgdG8sIHRoaXMgaW5kdXN0cnktbGVhZGluZyB0cmFucyBoZWFsdGhjYXJlIGJlbmVmaXQuIFF1ZWVyU3BoZXJlLCB0aGUgRW1wbG95ZWUgUmVzb3VyY2UgR3JvdXAgaGVyZSBhdCBDaXJjbGVDSSBmb3IgTEdCVFFJQSsgZW1wbG95ZWVzLCBoZWxwZWQgY29vcmRpbmF0ZSB0aGUgZWZmb3J0IHRvIGFkdm9jYXRlLCBhbmQgdGhlIHJlc3VsdCB3YXMgYSBwb2xpY3kgdGhhdCBoZWxwcyBlbnN1cmUgdHJhbnMgZW1wbG95ZWVzIGdldCB0aGUgc3VwcG9ydCB3ZSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uZSBvZiB0aGUgYmVzdCB0aGluZ3MgZm9yIG1lIGFib3V0IHdvcmtpbmcgYXQgQ2lyY2xlQ0kgaXMgaG93IGVtcG93ZXJlZCBJIGZlZWwgdG8gY2FsbCBhdHRlbnRpb24gdG8gaXNzdWVzIG9yIHByYWN0aWNlcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCBhbmQgYnJpbmcgcGVvcGxlIHRvZ2V0aGVyIHRvIHdvcmsgb24gdGhlbSwgdG8gdGhlIGJlbmVmaXQgb2YgYm90aCB0aGUgY29tcGFueSBhcyBhIHdob2xlIGFuZCB1bmRlcnJlcHJlc2VudGVkIG9yIG1hcmdpbmFsaXplZCBlbXBsb3llZXMuIFRyYW5zIHBlb3BsZSBmYWNlIHN5c3RlbWljIGJpYXM6IHRoZXJlIGFyZSBubyBmZWRlcmFsLWxldmVsIHByb3RlY3Rpb25zIGZyb20gZGlzY3JpbWluYXRpb24gb24gdGhlIGJhc2lzIG9mIGdlbmRlciBpZGVudGl0eSBpbiB0aGUgVW5pdGVkIFN0YXRlcywgYW5kIG9mIHRoZSB0cmFucyBwb3B1bGF0aW9uIHN1cnZleWVkIGJ5IHRoZSBOYXRpb25hbCBDZW50ZXIgZm9yIFRyYW5zZ2VuZGVyIEVxdWFsaXR5IGluIDIwMTUsIDgwJSBvZiB0aG9zZSB3aG8gd2VyZSBlbXBsb3llZCByZXBvcnRlZCBleHBlcmllbmNpbmcgaGFyYXNzbWVudCwgbWlzdHJlYXRtZW50LCBvciBoYWQgdG8gdGFrZSBzdGVwcyB0byBhdm9pZCB0aG9zZSBob3N0aWxlIHdvcmtwbGFjZSBiZWhhdmlvcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SSBrbm93IGZpcnN0aGFuZCBob3cgZGlmZmljdWx0IGJlaW5nIG91dCBhdCB3b3JrIGNhbiBiZS4gQXQgYSBwcmV2aW91cyBlbXBsb3llciBlYXJseSBpbiBteSB0cmFuc2l0aW9uLCBJIGZlbHQgYWxpZW5hdGVkIGFuZCBkaXNsaWtlZCBieSBjb2xsZWFndWVzIHdobyBoYWQgcHJldmlvdXNseSBiZWVuIGZyaWVuZGx5IGJlZm9yZSB0aGV5IGtuZXcgSSB3YXMgdHJhbnNnZW5kZXIuIEkgaGF2ZSBoYWQgdG8gbWluaW1pemUgdGhlIGZhY3QgdGhhdCBJ4oCZbSB0cmFucywgdG9sZXJhdGUgYWN0aXZlIGhvc3RpbGl0eSBmcm9tIGNvd29ya2Vycywgb3IgcHJldGVuZCB0aGF0IEkgd2FzIGNpc2dlbmRlciwgaW4gb3JkZXIgdG8gcHJvdGVjdCBteSBqb2IuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgQ2lyY2xlQ0ksIEkgaGF2ZSBmZWx0IHN1cHBvcnRlZCwgcmVzcGVjdGVkLCBhbmQgYWJsZSB0byBjb25maWRlbnRseSBiZSBteXNlbGYuIEkgZmVlbCBleGNlcHRpb25hbGx5IGZvcnR1bmF0ZSB0byBoYXZlIGEgd29uZGVyZnVsIGdyb3VwIG9mIHRyYW5zZ2VuZGVyIGNvbGxlYWd1ZXMgYW5kIGZyaWVuZHMgKHdlIG1ha2UgdXAgNyUgb2YgdGhlIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0ksIGFuZCAzJSBvZiB0aGUgb3JnIGluIHRvdGFsLCBjb21wYXJlZCB0byAwLjYlIG9mIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24pLCBhbmQgdG8gd29yayBzb21ld2hlcmUgd2hlcmUgb3VyIHZpZXdzIGFuZCBleHBlcmllbmNlcyBhcmUgdmFsdWVkIGF0IHRoZSBoaWdoZXN0IGxldmVscyBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0lmIHlvdSBsaWtlIHRoZSBzb3VuZCBvZiB3b3JraW5nIHNvbWV3aGVyZSB3aXRoIGEgcmVtb3RlLWZpcnN0IGN1bHR1cmUgYW5kIGNvbGxhYm9yYXRpbmcgb24gaW50ZXJlc3RpbmcgcHJvYmxlbXMgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIHRyYW5zIGZvbHggYW5kIGFsbGllcywgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9jYXJlZXJzLyZxdW90OyZndDtjaGVjayBvdXQgb3VyIG9wZW5pbmdzIGhlcmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIEdhdHNieSBhcHBzIHRvIEhlcm9rdTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtZ2F0c2J5LWFwcHMtdG8taGVyb2t1LzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDExIE1heSAyMDIwIDA5OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1nYXRzYnktYXBwcy10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9qYW1zdGFjay5vcmcvJnF1b3Q7Jmd0O0pBTVN0YWNrJmx0Oy9hJmd0OyBpcyBxdWlja2x5IGJlY29taW5nIGEgYmlnIGRlYWwgaW4gdGhlIHdvcmxkIG9mIHdlYiBkZXZlbG9wbWVudC4gSkFNU3RhY2ssIHdoaWNoIHN0YW5kcyBmb3IgSmF2YXNjcmlwdCwgQVBJcywgYW5kIEhUTUwgbWFya3VwLCBpcyBhIG1vZGVybiBhcmNoaXRlY3R1cmUgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMgYW5kIG9uZSBvZiBpdHMgbWFqb3IgZmVhdHVyZXMgaXMgdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBhIGRhdGFiYXNlIGFuZCBhIHdlYiBzZXJ2ZXIgaXMgb3B0aW9uYWwuIFRoZSBKQU1TdGFjayBhcmNoaXRlY3R1cmUgaXMgYWltZWQgYXQgZGVjb3VwbGluZyB0aGUgZnJvbnRlbmQgYW5kIHRoZSBiYWNrZW5kIGJ5IGdlbmVyYXRpbmcgYSBmcm9udGVuZCBtYWRlIG9mIEhUTUwsIENTUywgYW5kIEphdmFzY3JpcHQgYW5kIGEgYmFja2VuZCB0aGF0IGlzIHNpbXBseSBhIGNvbnRlbnQgQVBJIHJldHVybmluZyBKU09OIG9yIFhNTC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmUgb2YgdGhlIGxlYWRpbmcgSkFNU3RhY2sgcGxhdGZvcm1zIHRvZGF5IGlzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnLyZxdW90OyZndDtHYXRzYnkuanMmbHQ7L2EmZ3Q7LiBHYXRzYnkuanMgaXMgYSBmcmVlIGFuZCBvcGVuLXNvdXJjZSBmcmFtZXdvcmsgYmFzZWQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3JlYWN0anMub3JnLyZxdW90OyZndDtSZWFjdC5qcyZsdDsvYSZndDsgdGhhdCBoZWxwcyBkZXZlbG9wZXJzIGJ1aWxkIGhpZ2gtc3BlZWQgd2ViIGFwcGxpY2F0aW9ucy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHR1dG9yaWFsLCB3ZSB3aWxsIGJlIGRlbW9uc3RyYXRpbmcgaG93IHRvIGRlcGxveSBhIEdhdHNieS5qcyBzaXRlIHRvIHRoZSBwb3B1bGFyIEhlcm9rdSBwbGF0Zm9ybSBieSBidWlsZGluZyBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmUgZm9yIGl0cyBkZXBsb3ltZW50IHVzaW5nIENpcmNsZUNJLiZsdDsvcCZndDsKCiZsdDtoMiZndDtQcmVyZXF1aXNpdGVzJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIG9yZGVyIHRvIGZvbGxvdyBhbG9uZyB3aXRoIHRoaXMgcG9zdCwgeW91IHdpbGwgbmVlZCBhIGZldyB0aGluZ3MgaW4gcGxhY2U6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7ICZhbXA7Z3Q7PSAxMC4xNiBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZSAtdiZsdDsvY29kZSZndDsgb24geW91ciB0ZXJtaW5hbCB0byBwcmludCBvdXQgeW91ciB2ZXJzaW9uIG9mIE5vZGVKUyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7R2l0Jmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2l0Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsLiBUaGlzIHNob3VsZCBwcmludCBvdXQgYXZhaWxhYmxlIGdpdCBjb21tYW5kcykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuaGVyb2t1LmNvbS8mcXVvdDsmZ3Q7SGVyb2t1Jmx0Oy9hJmd0OyBhY2NvdW50Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O0dpdEh1YiZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7V2l0aCB0aGVzZSwgeW91IGFyZSByZWFkeSB0byBmb2xsb3cgYWxvbmcuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NyZWF0aW5nIGEgR2F0c2J5LmpzIHByb2plY3QmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7VG8gYmVnaW4sIHdlIG5lZWQgdG8gY3JlYXRlIG91ciBHYXRzYnkuanMgcHJvamVjdC4gSW4gYW4gYXBwcm9wcmlhdGUgbG9jYXRpb24gd2l0aGluIHlvdXIgc3lzdGVtLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGdhdHNieSBuZXcgZ2F0c2J5LWhlcm9rdS1kZXBsb3kKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBwYXJ0IG9mIHRoaXMgY29tbWFuZCBpcyB0aGUgZm9sZGVyIG5hbWUgZm9yIG15IHByb2plY3QgdG8gYmUgc2NhZmZvbGRlZCBpbi4gWW91IGNhbiB1c2UgYW55IHByZWZlcnJlZCBuYW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCB3aWxsIGltbWVkaWF0ZWx5IGJlZ2luIHNjYWZmb2xkaW5nIGEgbmV3IEdhdHNieS5qcyBwcm9qZWN0LiBZb3UgbWlnaHQgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGVpdGhlciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5YXJuJmx0Oy9jb2RlJmd0OyBvciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7IGFzIHlvdXIgcGFja2FnZSBtYW5hZ2VyLCBmb3IgdGhpcyB0dXRvcmlhbCwgZ28gd2l0aCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNjYWZmb2xkaW5nIHByb2Nlc3MgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIGdhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OykgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gYm9vdCB1cCBhIHNlcnZlciB0byBzZXJ2ZSB0aGUgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBydW4gZGV2ZWxvcAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgc2VydmUgdGhlIGFwcGxpY2F0aW9uIGF0IHRoZSBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8mbHQ7L2NvZGUmZ3Q7IGFuZCBkaXNwbGF5IHRoZSBwYWdlIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MS5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIGEgZnVuY3Rpb25hbCBHYXRzYnkuanMgc2l0ZSB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7U2V0dGluZyB1cCBhIEhlcm9rdSBBcHAgZm9yIEdhdHNieSZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBzZXQgdXAgYSBIZXJva3UgYXBwIGZvciBvdXIgR2F0c2J5IGFwcGxpY2F0aW9uLCB3ZSBuZWVkIHRvIGxvZyBpbnRvIEhlcm9rdSBhbmQgY3JlYXRlIGEgbmV3IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5Mi5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdlIG5lZWQgdG8gZ2V0IHRoZSBuYW1lIG9mIG91ciBhcHBsaWNhdGlvbiAodGhpcyB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBmb3IgdGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgYWJvdmUpIGFuZCB0aGUgQVBJIGtleSBmb3Igb3VyIEhlcm9rdSBhY2NvdW50LiBUaGUgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIEhlcm9rdSAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXZSB3aWxsIG5lZWQgdGhlc2UgdHdvIHZhbHVlcyAodGhlIGFwcCBuYW1lIGFuZCBBUEkga2V5KSBsYXRlciBvbiB0byBjcmVhdGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9uIG91ciBDaXJjbGVDSSBwcm9qZWN0IGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiBvdXIgSGVyb2t1IGFjY291bnQgaXMgdG8gaW5zdGFsbCBzb21lIG5lY2Vzc2FyeSBidWlsZHBhY2tzLiBCdWlsZHBhY2tzIGFyZSBzY3JpcHRzIHRoYXQgcnVuIHdoZW4geW91ciBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZC4gV2Ugd2lsbCBuZWVkIHR3byBidWlsZCBwYWNrcyBmb3IgdGhpcyBleGVyY2lzZTombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0O2hlcm9rdS9ub2RlanM6IFJlcXVpcmVkIGZvciBhbGwgTm9kZS5qcyBhcHBsaWNhdGlvbnMmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtoZXJva3UvaGVyb2t1LWJ1aWxkcGFjay1zdGF0aWM6IFRoZSBIZXJva3UgQnVpbGRwYWNrIFN0YXRpYyBwYWNrYWdlIChiZWNhdXNlIEdhdHNieS5qc+KAmXMgYnVpbGQgaXMgbWFkZSB1cCBvZiBzdGF0aWMgZmlsZXMsIHRoaXMgd2lsbCBoZWxwIHVzIHNlcnZlIHRoZSBzdGF0aWMgZmlsZXMgb24gdGhlIEhlcm9rdSBwbGF0Zm9ybSkmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7R28gdG8geW91ciBIZXJva3UgYXBwbGljYXRpb27igJlzICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgcGFnZSBhbmQgc2Nyb2xsIGRvd24gdG8gJmx0O3N0cm9uZyZndDtCdWlsZHBhY2tzJmx0Oy9zdHJvbmcmZ3Q7ICh5b3UgbWlnaHQgYWxyZWFkeSBzZWUgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgYnVpbGRwYWNrIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQpLiBDbGljayAmbHQ7c3Ryb25nJmd0O0FkZCBidWlsZHBhY2smbHQ7L3N0cm9uZyZndDsgYW5kIHlvdSB3aWxsIHNlZSBhIGRpYWxvZyBwb3AgdXAgc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnkzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rm9yIGVhY2ggYnVpbGRwYWNrICgmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3Uvbm9kZWpzJmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L2hlcm9rdS1idWlsZHBhY2stc3RhdGljJmx0Oy9jb2RlJmd0OykgZW50ZXIgdGhlIGlkZW50aWZpZXIgaW50byB0aGUgdGV4dCBmaWVsZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTYXZlIENoYW5nZXMmbHQ7L3N0cm9uZyZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtOb3RlOiZsdDsvc3Ryb25nJmd0OyAmbHQ7aSZndDtJZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCwgb25seSBhZGQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2hlcm9rdS9oZXJva3UtYnVpbGRwYWNrLXN0YXRpYyZsdDsvY29kZSZndDsgYnVpbGQgcGFjay4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgZG9pbmcgdGhpcyBmb3IgYm90aCBidWlsZHBhY2tzLCB5b3Ugd2lsbCBzZWUgdGhlIHR3byBidWlsZCBwYWNrcyBub3cgbGlzdGVkIGluICZsdDtzdHJvbmcmZ3Q7QnVpbGRwYWNrcyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGF0IGNvbXBsZXRlcyB0aGUgc2V0IHVwIHJlcXVpcmVkIGZvciBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1NldHRpbmcgdXAgdGhlIEdhdHNieS5qcyBwcm9qZWN0IG9uIENpcmNsZUNJJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBuZXh0IHRhc2sgaXMgdG8gZ2V0IG91ciBHYXRzYnkuanMgcHJvamVjdCBzZXQgdXAgb24gQ2lyY2xlQ0kuIFdlIG5lZWQgdG8gcHVzaCBvdXIgY29kZSB0byBhIEdpdEh1YiByZXBvc2l0b3J5IG9uIHRoZSBhY2NvdW50IHlvdSBoYXZlIGxpbmtlZCB0byB5b3VyIENpcmNsZUNJIGFjY291bnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgZ28gdG8gdGhlICZsdDtzdHJvbmcmZ3Q7QWRkIFByb2plY3RzJmx0Oy9zdHJvbmcmZ3Q7IHBhZ2UgdG8gYWRkIHRoZSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk0LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0OyB0byBiZWdpbiBzZXR0aW5nIHVwIHRoZSBwcm9qZWN0LiBUaGlzIHdpbGwgbG9hZCB0aGUgbmV4dCBzY3JlZW4uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk1LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhlIHNldHVwIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsuIEJlZm9yZSB0aGUgYnVpbGQgc3RhcnRzLCB5b3Ugd2lsbCBnZXQgYSBwcm9tcHQgdG8gZWl0aGVyIGRvd25sb2FkIGFuZCB1c2UgdGhlIHByb3ZpZGVkIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgaGF2ZSBpdCBhZGRlZCBvbiBhIHNlcGFyYXRlIGJyYW5jaCBvciBzZXQgb25lIHVwIG1hbnVhbGx5LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk2LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U2VsZWN0ICZsdDtzdHJvbmcmZ3Q7QWRkIE1hbnVhbGx5Jmx0Oy9zdHJvbmcmZ3Q7IHRvIHByb2NlZWQuIFRoaXMgd2lsbCBwcm9tcHQgYW5vdGhlciBkaWFsb2cgdGhhdCBjaGVja3MgdG8gY29uZmlybSB0aGF0IHlvdSBoYXZlIGEgY29uZmlndXJhdGlvbiBmaWxlIHNldCB1cCB0byBiZWdpbiBidWlsZGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTcucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGNvbXBsZXRlIHRoZSBzZXR1cC4gVGhlIGJ1aWxkIHdpbGwgc3VyZWx5IGZhaWwgYmVjYXVzZSB3ZSBoYXZlIG5vdCBzZXQgdXAgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB5ZXQsIHRoaXMgd2Ugd2lsbCBkbyBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiB0aGUgQ2lyY2xlQ0kgY29uc29sZSBpcyB0byBzZXQgdXAgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZW52LXZhcnMvJnF1b3Q7Jmd0O2Vudmlyb25tZW50IHZhcmlhYmxlcyZsdDsvYSZndDsgZm9yIHRoZSBwcm9qZWN0IHdlIGp1c3QgYWRkZWQuIFRoaXMgd2lsbCBlbmFibGUgaXQgdG8gaGF2ZSBhdXRoZW50aWNhdGVkIGFjY2VzcyB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIGZvciBkZXBsb3ltZW50cy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHbyB0byB5b3VyIHByb2plY3TigJlzIHNldHRpbmdzIGJ5IGNsaWNraW5nICZsdDtzdHJvbmcmZ3Q7UHJvamVjdCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgJmx0O3N0cm9uZyZndDtQaXBlbGluZXMmbHQ7L3N0cm9uZyZndDsgcGFnZSAobWFrZSBzdXJlIHlvdXIgcHJvamVjdCBpcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2plY3QpLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5OC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBuYXZpZ2F0ZSB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBwYWdlLiBPbiB0aGlzIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7RW52aXJvbm1lbnQgVmFyaWFibGVzJmx0Oy9zdHJvbmcmZ3Q7IG9uIHRoZSBzaWRlIG1lbnUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk5LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFnZSwgY2xpY2sgJmx0O3N0cm9uZyZndDtBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUgYnV0dG9uJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTAucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZGQgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Jmx0Oy9wJmd0OwombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDs6IFRoaXMgaXMgdGhlIG5hbWUgb2YgeW91ciBIZXJva3UgYXBwbGljYXRpb24gKGluIHRoaXMgY2FzZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnYXRzYnktaGVyb2t1LWRlcGxveSZsdDsvY29kZSZndDspJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7SEVST0tVX0FQSV9LRVkmbHQ7L2NvZGUmZ3Q7OiBZb3VyIEhlcm9rdSBhY2NvdW50IEFQSSBrZXkgZm91bmQgdW5kZXIgdGhlICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCZsdDsvc3Ryb25nJmd0OyB0YWIgb2YgeW91ciBIZXJva3UgYWNjb3VudCBpbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50IFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O09uY2UgYWRkZWQsIHlvdSB3aWxsIGhhdmUgZXZlcnl0aGluZyBzZXQgdXAgb24geW91ciBDaXJjbGVDSSBjb25zb2xlIGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRoZSBHYXRic3kuanMgc2l0ZSB1c2luZyBvcmJzJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy8mcXVvdDsmZ3Q7T3JicyZsdDsvYSZndDsgYXJlIHJldXNhYmxlIHBhY2thZ2VzIG9mIFlBTUwgY29uZmlndXJhdGlvbiB0aGF0IGNvbmRlbnNlIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoZXkgZW5hYmxlIGRldmVsb3BlcnMgdG8gZWFzaWx5IHVzZSBwb3dlcmZ1bCBwaXBlbGluZSBmdW5jdGlvbmFsaXRpZXMgd2l0aCBhbGwgdGhlIGJvaWxlcnBsYXRlIGFic3RyYWN0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBleGVyY2lzZSwgd2Ugd2lsbCBiZSB1c2luZyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7b3JiIGZvciBIZXJva3UmbHQ7L2EmZ3Q7IHRvIGNvbmZpZ3VyZSBvdXIgcGlwZWxpbmUgdG8gZGVwbG95IG91ciBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0IGJlZm9yZSB0aGF0LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGZpbGUgdG8gaW5zdHJ1Y3Qgb3VyIEhlcm9rdSBCdWlsZHBhY2sgU3RhdGljIHBhY2thZ2Ugb24gaG93IHRvIGRlcGxveSBhbmQgc2VydmUgb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgbmV3IGZpbGUgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3RhdGljLmpzb24mbHQ7L2NvZGUmZ3Q7IGFuZCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGUgaW50byBpdDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3sKICAmcXVvdDtyb290JnF1b3Q7OiAmcXVvdDtwdWJsaWMvJnF1b3Q7LAogICZxdW90O2hlYWRlcnMmcXVvdDs6IHsKICAgICZxdW90Oy8qKiZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJnF1b3Q7CiAgICB9LAogICAgJnF1b3Q7LyoqLmNzcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy8qKi5qcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy9zdGF0aWMvKiomcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0sCiAgICAmcXVvdDsvaWNvbnMvKi5wbmcmcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0KICB9LAogICZxdW90O2h0dHBzX29ubHkmcXVvdDs6IHRydWUsCiAgJnF1b3Q7ZXJyb3JfcGFnZSZxdW90OzogJnF1b3Q7NDA0Lmh0bWwmcXVvdDsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgbW9zdCBpbXBvcnRhbnQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaGVyZSBpcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkuIFdoZW4gR2F0c2J5LmpzIHJ1bnMgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2J1aWxkJmx0Oy9jb2RlJmd0OyBzY3JpcHQgKHRoaXMgaXMgYWxzbyB0aGUgc2NyaXB0IHVzZWQgYnkgSGVyb2t1IHRvIHJ1biB0aGUgYnVpbGQgYmVmb3JlIGRlcGxveW1lbnQpLCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1YmxpYyZsdDsvY29kZSZndDsgZm9sZGVyIGlzIGdlbmVyYXRlZCBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBjb250YWluaW5nIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb2R1Y3Rpb24gdmVyc2lvbiBpcyB3aGF0IHRoZSBob3N0IHNlcnZlcyB0byB1c2Vycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaHVzLCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkgaXMgdXNlZCB0byBwb2ludCB0byB0aGlzIGZvbGRlciBzbyB0aGF0IHRoZSBob3N0IHNlcnZlcyB0aGUgYXBwcm9wcmlhdGUgY29kZS4gT3RoZXIgcGFyYW1ldGVycyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gYXJlIHNpbXBseSBiZXN0LXByYWN0aWNlIGNvbmZpZ3VyYXRpb25zIGZvciBHYXRzYnkuanMgc2l0ZXMuIEZvciBleGFtcGxlLCBjYWNoaW5nIGd1aWRlbGluZXMgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvY2FjaGluZy8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7R29vZCEgTm93IHdlIGNhbiB3cml0ZSBvdXIgZGVwbG95bWVudCBzY3JpcHQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgdGhlIHJvb3Qgb2YgeW91ciBHYXRzYnkuanMgcHJvamVjdCwgY3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgYW5kIGEgZmlsZSB3aXRoaW4gaXQgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0Oy4gSW5zaWRlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGU6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt2ZXJzaW9uOiAyLjEKb3JiczoKICBoZXJva3U6IGNpcmNsZWNpL2hlcm9rdUAwLjAuMTAKd29ya2Zsb3dzOgogIGhlcm9rdV9kZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGhlcm9rdS9kZXBsb3ktdmlhLWdpdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGF04oCZcyBpdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgY29uZmlndXJhdGlvbiBhYm92ZSwgd2UgcHVsbCBpbiB0aGUgSGVyb2t1IG9yYiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaXJjbGVjaS9oZXJva3VAMC4wLjEwJmx0Oy9jb2RlJmd0OyB3aGljaCBhdXRvbWF0aWNhbGx5IGdpdmVzIHVzIGFjY2VzcyB0byBhIHBvd2VyZnVsIHNldCBvZiBIZXJva3Ugam9icyBhbmQgY29tbWFuZHMuIE9uZSBvZiB0aG9zZSBqb2JzIGlzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3UvZGVwbG95LXZpYS1naXQmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGRlcGxveXMgeW91ciBhcHBsaWNhdGlvbiBzdHJhaWdodCBmcm9tIHlvdXIgR2l0SHViIHJlcG8gdG8geW91ciBIZXJva3UgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIGpvYiBhbHJlYWR5IHRha2VzIGNhcmUgb2YgaW5zdGFsbGluZyB0aGUgSGVyb2t1IENMSSwgaW5zdGFsbGluZyBwcm9qZWN0IGRlcGVuZGVuY2llcywgcnVubmluZyB0aGUgYnVpbGQgc2NyaXB0LCBhbmQgZGVwbG95aW5nIHRoZSBhcHBsaWNhdGlvbi4gSXQgYWxzbyBwaWNrcyB1cCBvdXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGggZGVwbG95bWVudCB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgdGhlIG1vbWVudCBvZiB0cnV0aCAoZHJ1bSByb2xsKS4gTGV04oCZcyBjb21taXQgYWxsIHRoZSBjaGFuZ2VzIHdlIGhhdmUgbWFkZSB0byBvdXIgR2F0c2J5LmpzIHByb2plY3QgYW5kIHB1c2ggdG8gb3VyIHJlcG8gdG8gdHJpZ2dlciB0aGUgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTEucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBzZWUgdGhlIGJlaGluZC10aGUtc2NlbmVzIHpjdGlvbiBvZiB0aGUgZGVwbG95bWVudCwgeW91IGNhbiBjbGljayBpbnRvIHRoZSBidWlsZC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTIucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgZm9yIHRoZSBmaW5hbCBjb25maXJtYXRpb24gdGhhdCB0aGUgZGVwbG95bWVudCBvZiBvdXIgR2F0c2J5LmpzIHNpdGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bCwgdmlzaXQgdGhlIGRlZmF1bHQgSGVyb2t1IGFkZHJlc3MgZm9yIHRoZSBzaXRlIGF0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vW0FQUF9OQU1FXS5oZXJva3VhcHAuY29tJmx0Oy9jb2RlJmd0Oy4gSWYgeW91IHVzZWQgdGhlIHNhbWUgbmFtZSBhcyBJIGRpZCBmb3IgdGhpcyBleGVyY2lzZSwgdGhhdCB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vZ2F0c2J5LWhlcm9rdS1kZXBsb3kuaGVyb2t1YXBwLmNvbS8mbHQ7L2NvZGUmZ3Q7LiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93ICh0aGlzIG1pZ2h0IGJlIGRpZmZlcmVudCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IEdhdHNieS5qcyBzdGFydGVyIHRlbXBsYXRlLCBsZWFybiBtb3JlIGFib3V0IHN0YXJ0ZXJzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvcGx1Z2lucy10aGVtZXMtYW5kLXN0YXJ0ZXJzLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OykuJmx0Oy9wJmd0OwoKJmx0O3AgYWxpZ249JnF1b3Q7Y2VudGVyJnF1b3Q7Jmd0OwogICAmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTEzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NvbmNsdXNpb24mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2UgZGVwbG95ZWQgYSBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UgdXNpbmcgQ2lyY2xlQ0kgb3Jicy4gTm93IHdoZW4gd2UgcHVzaCBvdXIgY29kZSwgYWxsIGNoYW5nZXMgd2lsbCBiZSBkZXBsb3llZCBhdXRvbWF0aWNhbGx5LiBUaGlzIHR1dG9yaWFsIGhhcyBhbHNvIGRlbW9uc3RyYXRlZCBob3cgQ2lyY2xlQ0kgb3JicyBtYWtlcyBkZXBsb3ltZW50IGVhc3kuIEluc3RlYWQgb2Ygd3JpdGluZyBtYW55IGxpbmVzIG9mIGNvbmZpZyBuZWVkIHRvIGRlcGxveSB0byBIZXJva3UsIG9yYnMgYWJzdHJhY3QgYWxsIG9mIHRoYXQgaW50byBjb252ZW5pZW50IGNvbW1hbmRzIGZvciB1cyB0byB1c2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2hlY2sgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kgb3JicyByZWdpc3RyeSZsdDsvYSZndDsgZm9yIG9yYnMgdGhhdCBzdWl0IHlvdXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGRlcGxveW1lbnQgZGVzdGluYXRpb24gb2YgY2hvaWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyEmbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5MZXR0aW5nIGNoYW5nZSBhbmQgdW5jZXJ0YWludHkgYWR2YW5jZSB5b3VyIHNvZnR3YXJlIGFyY2hpdGVjdHVyZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VGh1LCAwNyBNYXkgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Sb2IgWnViZXI8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIGZpcnN0IGxpbmVzIG9mIENpcmNsZUNJ4oCZcyBjb2RlYmFzZSB3ZXJlIHdyaXR0ZW4gbmVhcmx5IG5pbmUgeWVhcnMgYWdvLiBMb29raW5nIGJhY2sgb24gd2hhdCB3ZSBoYXZlIGJ1aWx0IHNvIGZhciB3aXRoIHRoZSBjbGFyaXR5IG9mIGhpbmRzaWdodCBleHBvc2VzIHNvbWUgaW50ZXJlc3RpbmcgdGhlbWVzIHRoYXQgY2FuIGJlIGluc3RydWN0aXZlIGluIGlkZW50aWZ5aW5nIGFwcHJvYWNoZXMgdG8gZGVhbGluZyB3aXRoIGNoYW5nZS4gV2hpbGUgdGhleSB3ZXJlbuKAmXQgYWxsIGludGVudGlvbmFsLCBpdCBkb2VzbuKAmXQgbWFrZSB0aGVtIGFueSBsZXNzIHZhbHVhYmxlLiBUaHJlZSBzdWNoIHRoZW1lcyBhcmU6IGRlZmVycmluZyB0aGUgbmVlZCB0byBoYW5kbGUgY2hhbmdlLCB0aGlua2luZyBsaWtlIGEgcHJvZHVjdCBtYW5hZ2VyLCBhbmQga2VlcGluZyB5b3VyIGhlYWQgdXAuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NoYW5nZSBpcyBhIGNvbnN0YW50IGluIHRlY2hub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Q2hhbmdlIG1pZ2h0IGJlIG9uZSBvZiB0aGUgb25seSBjb25zdGFudHMgZW5naW5lZXJzIHdpbGwgZGVhbCB3aXRoIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGVpciBjYXJlZXJzLiBJdCBjZXJ0YWlubHkgZHJpdmVzIG1hbnkgb2Ygb3VyIG1vc3QgaW50ZXJlc3RpbmcgY2hhbGxlbmdlcy4gVGhlIG1hcmtldCBpcyBjaGFuZ2luZywgb3VyIGJ1c2luZXNzIGlzIGV2b2x2aW5nLCBvdXIgY3VzdG9tZXIgYmFzZSBpcyBncm93aW5nLCBhbmQgb3VyIHRlYW0gaXMgc2NhbGluZy4gV2UgbmVlZCB0byBidWlsZCBhIHNvbHV0aW9uIHRoYXQgbWVldHMgdG9kYXnigJlzIG5lZWRzIGJ1dCBzZXRzIHVzIHVwIGZvciB0aGUgZGVtYW5kcyBvZiB0b21vcnJvdy4gSG93IGRvIHdlIGRlc2lnbiBvdXIgc3lzdGVtcyBpbiBhIG1hbm5lciB0aGF0IGNhbiBhZGFwdCBhbmQgY2hhbmdlIHRvIHRoaW5ncyB0aGF0IGRvbuKAmXQgZXZlbiBleGlzdCB3aGVuIHdlIHN0YXJ0IGJ1aWxkaW5nIGl0PyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZXJlIGhhcyBiZWVuIGEgbG90IG9mIHRhbGsgaW4gcmVjZW50IHllYXJzIGFib3V0IGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGV2b2x2ZSBvciBtb3JlIGVhc2lseSBhZGFwdCB0byBjaGFuZ2UuIFRoZW4gd2Ugc3RhcnQgdG8gZGViYXRlIHRoZSBtZXJpdHMgb2YgdGhlc2UgYXJjaGl0ZWN0dXJlcyB1c2luZyBhIGxpbmUgb2YgdGhpbmtpbmcgdGhhdCBzdWdnZXN0cyB5b3UgYXJlIGNob29zaW5nIHRvIGhhdmUgYSDigJxNaWNyb3NlcnZpY2VzIEFyY2hpdGVjdHVyZeKAnSBvciBhbiDigJxFdmVudC1Ecml2ZW4gQXJjaGl0ZWN0dXJl4oCdIG9yIGEg4oCcU2VydmVybGVzcyBBcmNoaXRlY3R1cmUu4oCdIEkgd291bGQgcG9zaXQgdGhhdCB0aGlzIHR5cGUgb2YgZGVzY3JpcHRpb24gY3JlYXRlcyBhIGZhbHNlIHNlbnNlIG9mIGZpbmFsaXR5IHRoYXQgZG9lc27igJl0IGFjdHVhbGx5IGV4aXN0IGluIG1vc3QgcmVhbC13b3JsZCBzeXN0ZW1zLiZsdDsvcCZndDsKCiZsdDtwJmd0O091dHNpZGUgb2YgdGhlIHlvdW5nZXN0IG9mIHByb2plY3RzLCBpdOKAmXMgdW5saWtlbHkgdGhhdCB5b3UgY2FuIGRlc2NyaWJlIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCB5b3UgaGF2ZSB3aXRoIGFueSBzaW1wbGUgb25lLWxpbmVyLiBJdOKAmXMgbW9yZSBsaWtlbHkganVzdCDigJx5b3VyIGFyY2hpdGVjdHVyZSzigJ0gYW5kIGlmIHlvdeKAmXZlIGJlZW4gd29ya2luZyBvbiBpdCBmb3IgYW55IHNpZ25pZmljYW50IGFtb3VudCBvZiB0aW1lLCB5b3UgbWF5IGhhdmUgYXBwbGllZCBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0dGVybnMgYWxvbmcgdGhlIHdheSB0byBzb2x2ZSBzcGVjaWZpYyBwcm9ibGVtcy4gVGhlcmXigJlzIHByb2JhYmx5IGEgbW9ub2xpdGggc29tZXdoZXJlLCBzb21lIG51bWJlciBvZiBtaWNyb3NlcnZpY2VzLCBhIGZldyBldmVudHMsIGFuZCBhIHNlcnZlcmxlc3MgZWxlbWVudCBvciB0d28uIE9uIHRvcCBvZiBhbGwgdGhhdCwgeW91IG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YgdHJhbnNpdGlvbmluZyBzb21lIG9mIHRob3NlIHBpZWNlcyBmcm9tIG9uZSBwYXR0ZXJuIHRvIGFub3RoZXIuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0Rlc2lnbiBhcmNoaXRlY3R1cmUgdG8gc29sdmUgcHJvYmxlbXMmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gb2Z0ZW4gYXNrZWQgYnkgZm9sa3Mgd2hpY2ggYXJjaGl0ZWN0dXJlIHRoZXkgc2hvdWxkIGNob29zZSwgb3Igd2hlbiB0aGV5IHNob3VsZCBzd2l0Y2ggZnJvbSBvbmUgdG8gYW5vdGhlci4gSSBoYXZlIGEgZ3JlYXQgdGVuZGVuY3kgdG8gZGlzYXBwb2ludCB3aXRoIGFuc3dlcnMgbGlrZSDigJx3aGF0IHByb2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gc29sdmU/4oCdJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28sIHdoYXQgJmx0O3N0cm9uZyZndDtzaG91bGQmbHQ7L3N0cm9uZyZndDsgeW91IGJlIHRoaW5raW5nIGFib3V0IGFzIHlvdXIgcHJvZHVjdCBldm9sdmVzIGFuZCB5b3VyIG5lZWRzIGFyZSBjaGFuZ2luZz8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGVyZSBhcmUgYSBsb3Qgb2YgYXBwcm9hY2hlcyB0aGF0IHdlIGNhbiB1c2UgdG8gZGVzaWduIHNvZnR3YXJlIGFuZCBzeXN0ZW1zIHRvIGJlIG1vcmUgcmVzaWxpZW50IHRvIGNoYW5nZS4gVGhlIGFsbHVyZSBvZiBub3QgaGF2aW5nIHRvIGRvIGNvbXBsZXggcmVmYWN0b3Jpbmcgb3IgcmVidWlsZGluZyBkb3duIHRoZSByb2FkIGxlYWRzIHVzIHRvIHdhbnQgdG8gZGVzaWduIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG93IGNvc3Qgb2YgY2hhbmdlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2hpbGUgZ2VuZXJhbGl6ZWQgYWJzdHJhY3Rpb25zIGFuZCByZXVzYWJsZSBjb21wb25lbnRzIGFyZSBhdCB0aGUgY29yZSBvZiByZWR1Y2luZyB0aGUgaW1wYWN0IG9mIGNoYW5nZSwgdGhleSBhcmUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Jsb2cuY29kaW5naG9ycm9yLmNvbS90aGUtZGVsdXNpb24tb2YtcmV1c2UvJnF1b3Q7Jmd0O2hhcmQgdG8gZ2V0IHJpZ2h0IGluIHRoZSBmaXJzdCBwbGFjZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0l04oCZcyBoYXJkIHRvIHByZWRpY3QgdGhlIGZ1dHVyZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtBdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHRlY2huaWNhbCBsYW5kc2NhcGUgaXMgY2hhbmdpbmcsIHlvdXIgYnVzaW5lc3MgYW5kIHlvdXIgb3JnYW5pemF0aW9uIGFyZSBib3RoIGV2b2x2aW5nIGFzIHdlbGwuIFRoZXNlIGJvdGggaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiB5b3VyIGFyY2hpdGVjdHVyYWwgZGVjaXNpb25zLiBUaGUgc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlIHRoYXQgeW91IGFyZSB1bmRlcmdvaW5nIHdpbGwgaW5mbHVlbmNlIHRoZSBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUgYmVzdCBzdWl0ZWQgdG8gYWJzb3JiIHRob3NlIGNoYW5nZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGVhcmx5IGRheXMgb2YgYSBwcm9qZWN0IG9yIGNvbXBhbnksIGl04oCZcyBwb3NzaWJsZSB0byBtYWtlIHN3ZWVwaW5nIGZ1bmRhbWVudGFsIHNoaWZ0cyBpbiB0aGUgb2JqZWN0aXZlLiBFeHRyZW1lLCBidXQgbm90IHVuY29tbW9uLCBleGFtcGxlcyBpbmNsdWRlIFRpbnkgU3BlY2sgYmVjb21pbmcgU2xhY2sgYW5kIE9kZW8gYmVjb21pbmcgVHdpdHRlci4gV2hlbiB0aGUgZG9tYWluIG9mIHlvdXIgYnVzaW5lc3MgY2FuIG1vdmUgdGhhdCBkcmFzdGljYWxseSwgdGhlIGNsZWFuIGJvdW5kYXJpZXMgb2YgeW91ciBEREQgbW9kZWwgYXJlIG91dCB0aGUgd2luZG93LiBJbiBhIHNldCBvZiBtaWNyb3NlcnZpY2VzLCB0aGVzZSBib3VuZGFyaWVzIHdpbGwgYmUgY29kaWZpZWQsIHNvIGlmIHlvdSBoYXZlIHRvIGN1dCB0aHJvdWdoIHRoZW0sIHlvdeKAmWxsIGxpa2VseSBiZSB0aGFua2Z1bCBmb3IgYSBtb3JlIHBsaWFibGUgbW9ub2xpdGguJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB5b3UgZmluZCBwcm9kdWN0IC8gbWFya2V0IGZpdCwgeW91ciBwcmlvcml0aWVzIHdpbGwgc2hpZnQgdG93YXJkcyBzdXBwb3J0aW5nIHlvdXIgcmFwaWQgZ3Jvd3RoLiBXaXRoIHN5c3RlbSBzY2FsZSBhcyBhIGRyaXZlciBvZiBjaGFuZ2UsIHRoZSBhYmlsaXR5IHRvIHJlc3BvbmQgdG8gY2hhbmdlIGlzIG9mdGVuIHRpZWQgdG8gdGhlIGluZGVwZW5kZW5jZSBvZiBzeXN0ZW1zIGJhc2VkIG9uIHRoZWlyIG9wZXJhdGlvbmFsIGNoYXJhY3RlcmlzdGljcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGF0IHNjYWxpbmcgcGhhc2UsIHlvdeKAmWxsIGhhdmUgYSBsYXJnZXIgb3JnYW5pemF0aW9uIGFuZCBmYXIgbW9yZSB0ZWFtcy4gSWYgeW914oCZcmUgbHVja3kgeW914oCZbGwgYmUgYmFjayB0byBzdXN0YWluYWJsZSBwcm9kdWN0IGV2b2x1dGlvbi4gVGhlbiB0aGUgY29zdCBvZiBjaGFuZ2Ugd2lsbCBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIGFtb3VudCBvZiBjcm9zcy10ZWFtIGNvb3JkaW5hdGlvbiByZXF1aXJlZCB0byBtYWtlIGEgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtoMiZndDtEZWZlciByZXNwb25zZSB0byBjaGFuZ2UmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7V2hlbiBhbiBpbmRpdmlkdWFsIG9yIHRlYW0gaGFzIGEgcHJvYmxlbSB0aGV54oCZcmUgdHJ5aW5nIHRvIHNvbHZlLCB0aGV5IGdlbmVyYWxseSBzdGFydCBvZmYgd2l0aCBhIHByZXR0eSBzaW1wbGUgZGlyZWN0aXZlIOKAkyBsZXTigJlzIGJ1aWxkIHRvIHNvbHZlIHRoYXQgcHJvYmxlbS4gV2hhdOKAmXMgdGhlIG1vc3QgZWZmZWN0aXZlIGFyY2hpdGVjdHVyZSB3ZSBjYW4gdXNlIHRvIGJ1aWxkIGEgdmlhYmxlIHByb2R1Y3QgYXQgdGhlIGxvd2VzdCBjb3N0PyBUaGlzIGlzIGdlbmVyYWxseSB0cnVlIHdoZXRoZXIgaXTigJlzIGEgc3RhcnR1cCBvciBhIGh1Z2UgbXVsdGluYXRpb25hbCBjb3Jwb3JhdGlvbi4gQSBuZXcgcHJvamVjdCB3aWxsIGJlIGJ1aWx0IG9uIGEgc3lzdGVtIHRoYXTigJlzIHJlbGF0aXZlbHkgbmV3LCBhbmQgd2lsbCBiZSB1bmxpa2VseSB0byBoYXZlIHByb2R1Y3QtbWFya2V0IGZpdCBiZWNhdXNlIHRoZSBjb21wYW55IHdvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCBpdHMgYnVzaW5lc3MgZG9tYWluIHlldCwgYW5kIHdvbuKAmXQga25vdyB3aGVyZSB0aGUgcHJpbWFyeSBzb3VyY2VzIG9mIGNoYW5nZSB3aWxsIGNvbWUgZnJvbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHNpdHVhdGlvbiwgZGVzaWduaW5nIGZvciBjaGFuZ2UgYmVjb21lcyBhIGxvdCBoYXJkZXIuIElmIGl04oCZcyBhIGxvdCBtb3JlIGV4cGVuc2l2ZSB0byBtYWtlIHRoaW5ncyByZXNpbGllbnQgdG8gY2hhbmdlIGFuZCB5b3UgY2Fu4oCZdCB0ZWxsIHlldCB3aGljaCBwYXJ0cyBvZiB5b3VyIHN5c3RlbSB3aWxsIGNoYW5nZSwgaG93IGRvIHlvdSBtYWtlIHRoZSBkZWNpc2lvbiBhYm91dCB3aGVyZSB0byBtYWtlIHRoYXQgaW52ZXN0bWVudD8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBjb3VudGVyaW50dWl0aXZlIGFzIGl0IG1heSBzb3VuZCwgdGhlIGFuc3dlciBpcyBwcm9iYWJseSBub3doZXJlLiBBdCBsZWFzdCBub3QgeWV0LiBJbnN0ZWFkIHdhdGNoIGNoYW5nZSBjbG9zZWx5IGFuZCBidWlsZCBpbiBhIHdheSB0aGF0IG1pbmltaXplcyB0aGUgY29zdCBvZiBiZWluZyB3cm9uZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiDigJwmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9zaG9wLm9yZWlsbHkuY29tL3Byb2R1Y3QvOTc4MDU5NjUyMjcwNC5kbyZxdW90OyZndDs5NyBUaGluZ3MgRXZlcnkgU29mdHdhcmUgQXJjaGl0ZWN0IFNob3VsZCBLbm93Jmx0Oy9hJmd0O+KAnSBLZXZsaW4gSGVubmV5LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbWVkaXVtLmNvbS9Aa2V2bGluaGVubmV5L2h0dHBzLW1lZGl1bS1jb20ta2V2bGluaGVubmV5LXVzZS11bmNlcnRhaW50eS1hcy1hLWRyaXZlci00OTNlYmViZDU3NWQmcXVvdDsmZ3Q7ZGVzY3JpYmVzIGFuIGltcG9ydGFudCBhcHByb2FjaCB0byB0aGlua2luZyBhYm91dCB1bmNlcnRhaW50eSZsdDsvYSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2Jsb2NrcXVvdGUmZ3Q7CiAgJmx0O3AmZ3Q74oCcVGhlIHByZXNlbmNlIG9mIHR3byBvcHRpb25zIGlzIGFuIGluZGljYXRvciB0aGF0IHlvdSBuZWVkIHRvIGNvbnNpZGVyIHVuY2VydGFpbnR5IGluIHRoZSBkZXNpZ24uIFVzZSB0aGUgdW5jZXJ0YWludHkgYXMgYSBkcml2ZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHlvdSBjYW4gZGVmZXIgY29tbWl0bWVudCB0byBkZXRhaWxzIGFuZCB3aGVyZSB5b3UgY2FuIHBhcnRpdGlvbiBhbmQgYWJzdHJhY3QgdG8gcmVkdWNlIHRoZSBzaWduaWZpY2FuY2Ugb2YgZGVzaWduIGRlY2lzaW9ucy4gSWYgeW91IGhhcmR3aXJlIHRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQsIHlvdeKAmXJlIG1vcmUgbGlrZWx5IHRvIGJlIHN0dWNrIHdpdGggaXQg4oCTIGluY2lkZW50YWwgZGVjaXNpb25zIGJlY29tZSBzaWduaWZpY2FudCBhbmQgdGhlIHNvZnRuZXNzIG9mIHRoZSBzb2Z0d2FyZSBoYXJkZW5zLuKAnSZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7VGhpcyBmcmFtaW5nIGlzIGdyZWF0IGZvciBleHBsaWNpdCBkZWNpc2lvbnMsIGJ1dCB3aGF0IGlmIHlvdSBkb27igJl0IGtub3cgeW914oCZcmUgbWFraW5nIGEgY2hvaWNlPyZsdDsvcCZndDsKCiZsdDtwJmd0O01hbnkgdGltZXMsIHRoZSBjaG9pY2UgaXNu4oCZdCBldmVuIHZpc2libGUgeWV0LCBidXQgd2lsbCByZXZlYWwgaXRzZWxmIGxhdGVyLiBJbiB0aGVzZSBzaXR1YXRpb25zLCB0aGUgYW5zd2VyIGlzIG5vdCB0byBvdmVyIGdlbmVyYWxpemUsIGJ1aWxkaW5nIGFic3RyYWN0aW9ucyBldmVyeXdoZXJlIGp1c3QgaW4gY2FzZS4gSW5zdGVhZCwga2VlcCB0aGluZ3MgYXMgc2ltcGxlIGFzIHBvc3NpYmxlIHNvIHlvdSBjYW4gdW5kZXJzdGFuZCB0aGVtIGxhdGVyIGlmIHlvdSBoYXZlIHRvIG1ha2UgYSBjaGFuZ2UuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O1NpbXBsaWNpdHkgbWFrZXMgaXQgZWFzaWVyIHRvIGFkYXB0IHRvIGNoYW5nZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZWFybHkgZGF5cywgdGhlIENpcmNsZUNJIGFwcGxpY2F0aW9uIHdhcyBhIG1vbm9saXRoIHRoYXQgdG9vayBhIGN1c3RvbWVy4oCZcyBidWlsZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRhdGEgYW5kIHB1c2hlZCBpdCBpbnRvIG9uZSBvZiBzZXZlcmFsIExYQyBjb250YWluZXJzLiBFdmVyeSBjb250YWluZXIgdGhhdCB3ZSBzcHVuIHVwIHdhcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgc2FtZSBpbWFnZSB0aGF0IGNvbnRhaW5lZCBldmVyeXRoaW5nIHRoYXQgd2UgdGhvdWdodCBhbnlvbmUgd291bGQgZXZlciB3YW50IGluIHRoZWlyIHRlc3QgZW52aXJvbm1lbnQuIEluIGhpbmRzaWdodCwgdGhpcyBzb3VuZHMgbGlrZSBhIHRlcnJpYmxlIGlkZWEsIGJ1dCBhdCB0aGUgdGltZSwgaXQgd2FzIGZhbnRhc3RpYy4gSXQgd2FzIHNpbXBsZSB0byBtYWludGFpbiBhbmQgc3VwcG9ydGVkIHRoZSBuZWVkcyBvZiBvdXIgZWFybHkgY3VzdG9tZXJzLCBtYW55IG9mIHdob20gd2VyZSBidWlsZGluZyBSYWlscyBtb25vbGl0aHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXMgdGltZSBwYXNzZWQgYW5kIG91ciBjdXN0b21lciBiYXNlIGdyZXcsIHNvIGRpZCB0aGUgZGl2ZXJzaXR5IG9mIHRoZWlyIG5lZWRzIGluIHRlcm1zIG9mIHRlc3QgZW52aXJvbm1lbnRzLiBVcGdyYWRlZCB2ZXJzaW9ucyBvZiB0aGVpciB1bmRlcmx5aW5nIGRhdGFiYXNlcywgbm92ZWwgbmV3IGRldmVsb3BtZW50IGZyYW1ld29ya3MsIGV2ZW4gbmV3IG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbnMgYmVjYW1lIG5lY2Vzc2FyeS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgb3JpZ2luYWwgY29udGFpbmVyIG1hbmFnZW1lbnQgaW4gQ2lyY2xlQ0kgd2FzbuKAmXQgZGVzaWduZWQgaW4gYSB3YXkgdGhhdCBhbGxvd2VkIHVzIHRvIGFkYXB0IGVhc2lseSB0byB0aGVzZSBjaGFuZ2luZyBuZWVkcy4gQnV0IGl0IHdhcyBmYWlybHkgc2ltcGxlLiBTbyB3aGVuIHdlIHNldCBvdXQgdG8gc29sdmUgdGhlc2UgcHJvYmxlbXMsIHdlIGtuZXcgd2hlcmUgdG8gc3BsaWNlIGluIGEgbmV3IGFwcHJvYWNoIGFuZCBpdCB3YXMgbWluaW1hbCB3b3JrIHRvIGVuYWJsZSB0aGF0IHNwbGljaW5nLiBXZSBhbHNvIGRpZG7igJl0IGhhdmUgdG8gdW5yYXZlbCBhIHBvb3IgZ2VuZXJhbGl6YXRpb24gdGhhdCBkaWRu4oCZdCBzdXBwb3J0IG91ciBuZXcgcHJvYmxlbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3aGlsZSBzZWVtaW5nbHkgc2ltcGxlLCB3ZSB3ZXJlIGZpdmUgeWVhcnMgaW50byBzdWNjZXNzZnVsIGdyb3d0aCBhcyBhIGNvbXBhbnkgbWVldGluZyB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycyBvbiB0aGF0IHNpbXBsZSBzeXN0ZW0gYmVmb3JlIG91ciBmaXJzdCBjdXN0b21lcnMgdGVzdGVkIGl0cyByZXBsYWNlbWVudC4gSW4gdGhvc2UgZml2ZSB5ZWFycywgRG9ja2VyIHdhcyBjcmVhdGVkLCBhcyB3YXMgSGFzaGlDb3Jw4oCZcyBOb21hZC4gQ29tYmluZWQsIHRob3NlIHRvb2xzIGVsaW1pbmF0ZWQgaHVnZSBwb3J0aW9ucyBvZiB0aGUgd29yayBuZWNlc3NhcnkgdG8gZ2V0IHRoZSBmbGV4aWJsZSBhbmQgc2NhbGFibGUgZW52aXJvbm1lbnRzIHRoYXQgd2Ugc3VwcG9ydCBmb3IgY3VzdG9tZXJzIHRvZGF5LiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28sIGFzIHdlIHJldG9vbGVkIHRoZSBzeXN0ZW0gdG8gYWRhcHQgdG8gdGhlIGNoYW5nZWQgbWFya2V0IHdlIHdlcmUgaW4gYSBwb3NpdGlvbiB0byBhc2sg4oCcSG93IGRvIHdlIGRvIHRoaXMgaW4gYSB3YXkgdGhhdCBiZXR0ZXIgcG9zaXRpb25zIHVzIGZvciBpbmNyZW1lbnRhbCBjaGFuZ2U/4oCdIEl0IHdvdWxkIGJlIGRpZmZpY3VsdCB0byBvdmVyc3RhdGUgaG93IG11Y2ggdmFsdWUgdGhhdCBmaXZlIHllYXJzIG9mIGV4cGVyaWVuY2UgcHJvdmlkZWQgd2hlbiBkZXNpZ25pbmcgYSBzb2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdCBzb3VuZHMgd2VpcmQgYW5kIGdyb3NzbHkgdW5mYWlyIHRvIHNheSB0aGlzLCBidXQgbW9zdCBvZiB0aGUgdGltZSB3ZSBkb27igJl0IGV2ZW4ga25vdyB0aGF0IHdl4oCZcmUgbWFraW5nIGEgbW9udW1lbnRhbCBkZXNpZ24gZGVjaXNpb24gYmVjYXVzZSB0aGUgYWx0ZXJuYXRlIHBhdGggaGFzbuKAmXQgc2hvd24gdXAgeWV0LiBIb3cgZG8geW91IGd1YXJkIGFnYWluc3QgdGhpcz8mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7RGVmZXIsIGRlZmVyLCBkZWZlciZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUaGUgY29ycmVjdCBzb2x1dGlvbnMgaGF2ZSBhIGhhYml0IG9mIHJldmVhbGluZyB0aGVtc2VsdmVzIGlmIHlvdSBjYW4gZmluZCBhIHdheSB0byB3YWl0IGxvbmcgZW5vdWdoLiBUZWNobm9sb2d5IGdhaW5zIHRyYWN0aW9uIG9yIGRpZXMuIElmIHlvdSBjaG9zZSBhIGNvbnRhaW5lciBvcmNoZXN0cmF0aW9uIGVuZ2luZSBpbiAyMDE2LCB0aGVyZeKAmXMgYSByb3VnaGx5IDIwJSBjaGFuY2UgdGhhdCB5b3Ugd291bGQgaGF2ZSBjaG9zZW4gS3ViZXJuZXRlcy4gVGhhdCBtZWFucyBieSB0aGUgYmVnaW5uaW5nIG9mIDIwMTgsIGFsbW9zdCA4MCUgb2YgY29tcGFuaWVzIHdlcmUgc3dpdGNoaW5nLiBUaG9zZSBhcmUgbm90IGdyZWF0IG9kZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28gZGVmZXJyaW5nIGNhbiBiZSBnb29kLiBEZWZlcnJpbmcgdG8gdGhlIHBvaW50IG9mIGNyZWF0aW5nIGEgY3Jpc2lzIGlzIG5vdC4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7VGhpbmsgbGlrZSBhIHByb2R1Y3QgbWFuYWdlciZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3VyIGFyY2hpdGVjdHVyZSBpcyBhIGxlYWt5IGFic3RyYWN0aW9uLiBXaGlsZSBDaXJjbGVDSSBpcyBwcm9iYWJseSBhbiBleHRyZW1lIGV4YW1wbGUgb2YgdGhpcyBjYXNlIGR1ZSB0byB0aGUgYWNjZXNzIG91ciBjdXN0b21lcnMgaGF2ZSB0byBzeXN0ZW1zIGluIG91ciBwbGF0Zm9ybSwgdGhlcmUgaXMgYWx3YXlzIHNvbWUgaW1wbGljYXRpb24gZm9yIGN1c3RvbWVycyBvZiB0aGUgZGVjaXNpb25zIHlvdSBtYWtlIGluIGRlZmluaW5nIHlvdXIgYXJjaGl0ZWN0dXJlLiBSZWNvZ25pemluZyB0aGlzIGltcGFjdCBhbmQgYmVpbmcgYWJsZSB0byBjb2hlcmVudGx5IGRpc2N1c3MgYXBwcm9hY2hlcyBhbmQgYWx0ZXJuYXRpdmVzIGlzIGEgaHVnZSBhc3NldCB0aGF0IGFuIGVuZ2luZWVyIGNhbiBicmluZyB0byB0aGVpciBQTSBhbmQgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaGlsZSB3ZSB3ZXJlIHdpdG5lc3NpbmcgYWxsIG9mIHRoaXMgY2hhbmdlIGluIGhvdyBvdXIgY3VzdG9tZXJzIHdlcmUgYnVpbGRpbmcgc29mdHdhcmUsIG9uZSB0aGluZyB3ZSBpZ25vcmVkIGZvciB0b28gbG9uZyB3YXMgdGhlIHJpc2Ugb2YgRG9ja2VyLiBEb2NrZXIgZGlkbuKAmXQgZXZlbiBleGlzdCB3aGVuIENpcmNsZUNJIHN0YXJ0ZWQgaW4gMjAxMSwgdGhlbiBieSAyMDE0IGl0IHdhcyBldmVyeXdoZXJlLiBNYW55IG9mIG91ciBjdXN0b21lcnMgaGFkIHN0YXJ0ZWQgYnVpbGRpbmcgRG9ja2VyIGltYWdlcyBhcyBwYXJ0IG9mIHRoZWlyIGJ1aWxkIHRvIHByZXBhcmUgZm9yIGRlcGxveS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtEb2NrZXIgd2FzIG9yaWdpbmFsbHkgYnVpbHQgb24gdG9wIG9mIExYQywgYW5kIHRoYXQgbWVhbnQgaW4gdGhvc2UgZWFybHkgZGF5cyB3ZSBjb3VsZCBzdXBwb3J0IHRoZSB1c2Ugb2YgRG9ja2VyIGNvbW1hbmRzIHRvIGJ1aWxkIGltYWdlcyBhbmQgcHVzaCB0aGVtIHRvIHJlcG9zaXRvcmllcyBhbGwgaW5zaWRlIG9mIG9uZSBvZiBvdXIgTFhDIGNvbnRhaW5lcnMuIEluIDIwMTQsIERvY2tlciBsYXVuY2hlZCBzb21ldGhpbmcgY2FsbGVkIGxpYmNvbnRhaW5lciBhbmQgdGhleSBwdWxsZWQgYXBhcnQgdGhlIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBzeXN0ZW0gYW5kIGNyZWF0ZWQgZXhlY3V0aW9uIGRyaXZlcnMsIHdoaWNoIHNvb24gbGVkIHRvIHRoZSBkZXByZWNhdGlvbiBvZiB0aGUgTFhDIGRyaXZlci4gRGlzYXBwb2ludGluZywgYnV0IGl0IHN0aWxsIHdvcmtlZC4gVGhlbiBEb2NrZXIgZGVsZXRlZCBhbGwgTFhDIHN1cHBvcnQuIFRoYXQgd2FzIGJhZC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QWx3YXlzIHRoaW5rIGFib3V0IHVzZXJzJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVycyBhbmQgYXJjaGl0ZWN0cywgd2Ugc2F3IHRoaXMgY29taW5nLCBhbmQgZnJhbmtseSwgaXQgd2FzIHVuZGVyIHRoZSByYWRhciBvZiBvdXIgcHJvZHVjdCB0ZWFtLiBPdXIgbm9uLXRlY2huaWNhbCBwcm9kdWN0IGZvbGtzIGRpZG7igJl0IG5lY2Vzc2FyaWx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBidXQgb3VyIGVuZ2luZWVycyB3ZXJlIHRhbGtpbmcgYWJvdXQgaXQgZXZlcnkgZGF5LiBTbyBhcyBhbiBlbmdpbmVlciwgYW4gYXJjaGl0ZWN0LCBvciBhIGxlYWRlciBpbiB0ZWNobm9sb2d5LCB5b3UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBwcm9kdWN0IGFuZCB3b3JraW5nIHdpdGggeW91ciBwcm9kdWN0IG1hbmFnZXJzIHRvIGVuc3VyZSBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGUgaW1wbGljYXRpb25zIG9mIHRlY2huaWNhbCBjaG9pY2VzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0l04oCZcyBpbXBvcnRhbnQgdG8gc2VwYXJhdGUgdGhpcyBkaXNjdXNzaW9uIGZyb20gdGVjaG5pY2FsIGludmVzdG1lbnRzLiBUaGVyZSBpcyBhYnNvbHV0ZWx5IGEgcGxhY2UgZm9yIHRoaXMgdHlwZSBvZiBpbnZlc3RtZW50LCBhbmQsIGFuIGFyZ3VtZW50IHRoYXQgZnJhbWluZyB0aGVzZSBpbnZlc3RtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB5b3UgZnJhbWUgcHJvZHVjdCBpbnZlc3RtZW50cyBtYWtlcyBpdCBtdWNoIGVhc2llciB0byBtYWtlIHRyYWRlb2ZmIGRlY2lzaW9ucy4gSG93ZXZlciwgaWRlbnRpZnlpbmcgdGhlIGRpcmVjdGx5IGN1c3RvbWVyLXZpc2libGUgZmVhdHVyZSBpbXBhY3Qgb2YgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBtb3JlIGNvbW1vbmx5IGRpc2N1c3NlZCBpbXBhY3RzIG9mIGNvc3QsIHBlcmZvcm1hbmNlLCBzZWN1cml0eSwgZXRjLiZsdDsvcCZndDsKCiZsdDtwJmd0O0J1aWxkaW5nIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHlvdXIgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgdmFsdWUgYWNoaWV2ZWQgYnkgeW91ciBjdXN0b21lcnMgd2lsbCBwdXQgeW91IGluIGEgcG9zaXRpb24gdG8gbWFrZSBtb3JlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB3aGF0IGFuZCBob3cgdG8gYnVpbGQgYXMgeW91ciBidXNpbmVzcyBldm9sdmVzLiBUaGVuIHlvdSBjYW4gZm9jdXMgb24gZ2V0dGluZyBhaGVhZCBvZiB0aGF0IGV2b2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7S2VlcCB5b3VyIGhlYWQgdXAmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gQ2FuYWRpYW4gYW5kLCB1bnN1cnByaXNpbmdseSwgSSBncmV3IHVwIHBsYXlpbmcgaWNlIGhvY2tleS4gVGhyb3VnaG91dCBteSBjaGlsZGhvb2QsIEkgc3BlbnQgYW4gZW5kbGVzcyBhbW91bnQgb2YgdGltZSBhdCBwcmFjdGljZSBqdXN0IHNrYXRpbmc6IGZvcndhcmRzLCBiYWNrd2FyZHMsIHR1cm5pbmcsIHN0b3BwaW5nLCBmaWd1cmUgZWlnaHRzIGFyb3VuZCBjb25lcy4gVGhlbiBjYW1lIHN0aWNrIGhhbmRsaW5nLiBUaGUgaWRlYSB3YXMgdG8gaGF2ZSB0aGUgbW92ZW1lbnQgb24gdGhlIGljZSBiZWNvbWUgc2Vjb25kIG5hdHVyZSBzbyBJIGNvdWxkIGZvY3VzIG9uIHdoYXQgcmVhbGx5IG1hdHRlcmVkOiBzZWVpbmcgdGhlIHBsYXkgZGV2ZWxvcCwgZ2V0dGluZyBpbnRvIHNwYWNlLCBhbmQgdHJ5aW5nIHRvIHNjb3JlLiBNYWtlIHRoZSBmdW5kYW1lbnRhbHMgYWxtb3N0IGVmZm9ydGxlc3Mgc28geW91IGNhbiBwdXQgeW91ciBlbmVyZ3kgaW50byB0aGUgbm92ZWwgc3R1ZmYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gc29mdHdhcmUsIHdlIGhhdmUgYSBiYWQgdGVuZGVuY3kgdG8gbWFrZSB0aGUgZnVuZGFtZW50YWxzIGEgbG90IGhhcmRlciB0aGFuIHRoZXkgc2hvdWxkIGJlIGJ5IGFkb3B0aW5nIG5ldyB0ZWNobm9sb2d5IHRoYXQgd2UgdGhpbmsgaXMgZ29pbmcgdG8gYmUgZ2FtZSBjaGFuZ2luZywgYnV0IGVuZHMgdXAgaGF2aW5nIG1vZGVzdCB1cHNpZGUgaWYgYW55LiBUbyBtYWtlIHRoaW5ncyB3b3JzZSwgdGhlIGRvd25zaWRlIGlzIG9mdGVuIHVuYm91bmRlZCBhcyB3ZSBnZXQgb3VyIHRlYW1zIHVwIHRoZSBsZWFybmluZyBjdXJ2ZSwgZmluZCB1bnRlc3RlZCBlZGdlIGNhc2VzIGR1cmluZyBwcm9kdWN0aW9uIGluY2lkZW50cywgYW5kIGludmVudCBvdXIgb3duIOKAnGJlc3QgcHJhY3RpY2VzLuKAnSBBIHdvcmxkIHdoZXJlIFN0YWNrIE92ZXJmbG93IGhhcyBubyBhbnN3ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1doaWxlIHdl4oCZcmUgcHV0dGluZyB0aGlzIGVmZm9ydCBpbnRvIG91ciBub3ZlbCB0ZWNoLCB3ZeKAmXJlIG5vdCBmb2N1c2luZyBvbiBob3cgb3VyIHN5c3RlbXMgbmVlZCB0byBldm9sdmUgdG8gbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QSB0aW1lIHNpbXBsaWNpdHkgd291bGQgaGF2ZSBoZWxwZWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Q2lyY2xlQ0kgaXMgYSBDbG9qdXJlIHNob3AgYW5kLCBpbiBvdXIgZWFybHkgZGF5cywgd2UgZGVjaWRlZCB3ZeKAmWQgYmUgYmV0dGVyIGF0IGZyb250IGVuZCBkZXZlbG9wbWVudCBpZiB3ZSB1c2VkIHRoZSBzYW1lIGxhbmd1YWdlIHRoYXQgd2UgdXNlZCBpbiB0aGUgYmFja2VuZC4gU28gd2UgYWRvcHRlZCBPbSwgYSBDbG9qdXJlU2NyaXB0IHdyYXBwZXIgYXJvdW5kIFJlYWN0LiBBIGZldyB5ZWFycyBsYXRlciwgRGF2aWQgTm9sZW4sIHRoZSBwZXJzb24gd2hvIHN0YXJ0ZWQgT20sIGRlY2lkZWQgaGUgZGlkbuKAmXQgbGlrZSB0aGUgbW9kZWwgc28gaGUgcmVwbGFjZWQgaXQgd2l0aCBzb21ldGhpbmcgaW5jb21wYXRpYmxlIGNhbGxlZCBPbSBOZXh0LiBXZSB0cmllZCB0byBtaWdyYXRlIGluY3JlbWVudGFsbHkgdG8gT20gTmV4dCBhbmQgZW5kZWQgdXAgd2l0aCBhbiBvdmVybHkgY29tcGxleCBmcm9udGVuZCB3aXRoIHR3byBzdGF0ZSBtb2RlbHMgYW5kIG1hc3NpdmUgb3ZlcmhlYWQgdG8gZXZlcnkgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGVuZGVkIHVwIHJld3JpdGluZyBpdCBpbiBSZWFjdC4gSW4gcmV0cm9zcGVjdCwgT20gaGFkIGJvdGggaGlnaCByaXNrIGFuZCBoaWdoIGNvc3QgdG8gY2hhbmdlIGFuZCB3ZSBwYWlkIHRoZSBwcmljZS4gQW5kIHdlIHNwZW50IHRoYXQgdGltZSBsb29raW5nIGF0IG91ciBmZWV0LCBub3QgYWhlYWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm8gY29tcGFueSBoYXMgZXZlciB3b24gYmVjYXVzZSBvZiBhbiBhbWF6aW5nbHkgbm92ZWwgb3IgZXNvdGVyaWMgdGVjaG5vbG9neSBjaG9pY2UuIFRoZXJlIGlzIGFuIGVuZGxlc3MgbGlzdCwgaG93ZXZlciwgb2YgY29tcGFuaWVzIHRoYXQgaGF2ZSB3b24gYmVjYXVzZSB0aGV5IGNhbiBtb3ZlIHF1aWNrbHkgYW5kIHdpdGggYWdpbGl0eSwgYWRhcHRpbmcgdG8gY2hhbmdlIGFzIGl0IGhhcHBlbnMuIFRlY2hub2xvZ3kgc2hvdWxkIGJlIGFuIGFjY2VsZXJhdG9yIGhlbHBpbmcgdXMgbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4gV2VsbC11bmRlcnN0b29kLCBwcm9kdWN0aW9uLXRlc3RlZCB0b29scyBhcmUgZmFyIG1vcmUgbGlrZWx5IHRvIGZpdCB0aGF0IGJpbGwuIEFzIG15IGNvbGxlYWd1ZSBCZWFyIHNheXMsIOKAnElmIGEgdG9vbCBpc27igJl0IGhlbHBpbmcsIGl04oCZcyBub3QgYSB0b29sLCBpdOKAmXMgYSBjaG9yZS4gRHJvcCBpdC7igJ0mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7Q29uY2x1c2lvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtVbmZvcmVzZWVuIGNoYW5nZSBpcyB0b3Atb2YtbWluZCBmb3Igc28gbWFueSBvZiB1cyByaWdodCBub3csIGFuZCBpdOKAmXMgbW9yZSBvYnZpb3VzIHRoYW4gZXZlciB0aGF0LCBpbiBidXNpbmVzcywgbm9ib2R5IGNhbiBwcmVkaWN0IHRoZSBmdXR1cmUuIEl04oCZcyBhIHNhZmUgYmV0IHRoYXQgZm9sa3MgYXQgR00gZGlkbuKAmXQgc3RhcnQgdGhlIHllYXIgdGhpbmtpbmcgYWJvdXQgaG93IHRvIHVzZSB0aGVpciBmYWN0b3JpZXMgdG8gbWFrZSB2ZW50aWxhdG9ycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWluZyBwcmVwYXJlZCB0byBhZGFwdCBpbiB0aGUgZmFjZSBvZiBjaGFuZ2UgcmVxdWlyZXMgdGhpbmtpbmcgYWJvdXQgY2hhbmdlIGFzIGEgZHJpdmVyIGluIGV2ZXJ5dGhpbmcgeW91IGRvLiBXYXRjaCBob3cgeW91ciBtYXJrZXQgaXMgY2hhbmdpbmcgYW5kIHJlZmxlY3Q9IG9uIGhvdyB0aGF0IGltcGFjdHMgeW91ciBhcmNoaXRlY3R1cmUgc28gdGhhdCB5b3UgY2FuIG1ha2UgdGFyZ2V0ZWQsIGluY3JlbWVudGFsIGltcHJvdmVtZW50cyBpbiBpdHMgYWRhcHRhYmlsaXR5LiBUaGlzIHdpbGwgaGVscCBrZWVwIHlvdSBmb2N1c2VkIG9uIGV2b2x1dGlvbiB3aXRob3V0IHdhc3RpbmcgdGltZSBvciBtb25leSBvbiBhcmVhcyB0aGF0IHdvbuKAmXQgbmVlZCBpdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCbGFjayBTd2FuIGV2ZW50cyBhcmUgc28gdW51c3VhbCB0aGF0IHN0dWR5aW5nIHRoZSBzcGVjaWZpY3MgY2FuIGJlIGxvdyB2YWx1ZSwgYnV0IHRoZXkgcmVtaW5kIHVzIGhvdyBmYXIgcmVhbGl0eSBjYW4gYmUgZnJvbSBvdXIgcGxhbnMuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZW5naW5lZXJpbmcgbWFuYWdlcnMgY2FuIGVmZmVjdGl2ZWx5IHN1cHBvcnQgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWVuZ2luZWVyaW5nLW1hbmFnZXJzLWNhbi1lZmZlY3RpdmVseS1zdXBwb3J0LWVuZ2luZWVycy10ZWFtcy1hbmQtb3JnYW5pemF0aW9ucy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+V2VkLCAyOSBBcHIgMjAyMCAxNTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9ob3ctZW5naW5lZXJpbmctbWFuYWdlcnMtY2FuLWVmZmVjdGl2ZWx5LXN1cHBvcnQtZW5naW5lZXJzLXRlYW1zLWFuZC1vcmdhbml6YXRpb25zLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkxlbmEgUmVpbmhhcmQ8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIHR5cGljYWwgam9iIGRlc2NyaXB0aW9uIGZvciBtYW55IGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMgaXMgYWN0aW9uLXBhY2tlZC4gSXQgaXMgYSBtaXggb2YgaGFuZHMtb24gY29kaW5nLCB0ZWNobmljYWwgbGVhZGVyc2hpcCBhbmQgZGVjaXNpb24gbWFraW5nLCBwcm9jZXNzIGFuZCBwcm9qZWN0IG1hbmFnZW1lbnQsIHByb2R1Y3Qgb3ZlcnNpZ2h0LCBwZW9wbGUgbWFuYWdlbWVudCwgZmluZGluZyBhbmQgaGlyaW5nIHRhbGVudCDigKYgdGhlIGxpc3QgZ29lcyBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiBvdXIgd29yaywgd2UgZGVhbCB3aXRoIGJvdGggdGVjaG5pY2FsIGFuZCBwZW9wbGUgc3lzdGVtczogd2Ugc3VwcG9ydCBpbmRpdmlkdWFsIGVuZ2luZWVyc+KAmSBncm93dGg7IGhlbHAgdGVhbXMgYmVjb21lIHN1Y2Nlc3NmdWw7IGFuZCBtYWtlIHRoZSBvcmdhbml6YXRpb24gbW9yZSBwcm9kdWN0aXZlLCBmdW5jdGlvbmFsLCBhbmQgaW5ub3ZhdGl2ZS4gQWJvdmUgYWxsLCBhbiBlbmdpbmVlcmluZyBtYW5hZ2VyIGlzIGEgc2VydmljZSBvciBzdXBwb3J0IHJvbGUgYWNyb3NzIHRoZXNlIHZhcmlvdXMgbGF5ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1BlcmhhcHMgbW9zdCBmYXNjaW5hdGluZyBhbmQgZGlmZmljdWx0IGlzIHRoZSBoaWdoLWxldmVsIG9mIGFtYmlndWl0eSB0aGF0IGNvbWVzIHdpdGggZW5naW5lZXJpbmcgbWFuYWdlbWVudC4gTWFueSBwcm9ibGVtcyBvciBxdWVzdGlvbnMgZG9u4oCZdCBoYXZlIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLiBUaGVyZSBhcmVu4oCZdCBhYnNvbHV0ZSBhbnN3ZXJzIHRvIHdoYXQgaXQgbWVhbnMgdG8gYmUgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgZWl0aGVyLCBidXQgdGhlcmUgYXJlIGNlcnRhaW4gdmFsdWVzIGFuZCBndWlkZXBvc3RzIHRvIGZvbGxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgbG9vayBhdCB3aGF0IGNhbiBzaGFwZSBvdXIgdGhpbmtpbmcgYWJvdXQgb3VyIHJvbGUgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgYW5kIGhvdyB0byBlZmZlY3RpdmVseSBzdXBwb3J0IGluZGl2aWR1YWwgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1doYXQgZG8gZW5naW5lZXJzIG5lZWQgdG8gdGhyaXZlIGF0IHdvcms/Jmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SXQgaGVscHMgdG8gc3RhcnQgc2hhcGluZyBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IHJvbGVzIGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCBlbmdpbmVlcnMgbmVlZCwgYW5kIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGV5IHRocml2ZS4gUmVzZWFyY2ggZnJvbSBwZXJmb3JtYW5jZSBjb2FjaCBhbmQgdHJhaW5lciBQYWxvbWEgTWVkaW5hIGV4cG9zZXMgc2l4IGNvcmUgbmVlZHMgaHVtYW5zIGhhdmUgKGluY2x1ZGluZyBhdCB3b3JrKS4gU2hlIGNhbGxzIHRoaXMgcmVzZWFyY2ggdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGFsb21hbWVkaW5hLmNvbS9iaWNlcHMmcXVvdDsmZ3Q7QklDRVBTIG1vZGVsJmx0Oy9hJmd0OzombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7QmVsb25naW5nLiZsdDsvc3Ryb25nJmd0OyBBcyBodW1hbnMsIHdlIHN0cml2ZSB0byBiZSBwYXJ0IG9mIGEgY29tbXVuaXR5IG9mIGxpa2UtbWluZGVkIHBlb3BsZSB3aGVyZSB3ZSB1bmRlcnN0YW5kIGFuZCBzdXBwb3J0IGVhY2ggb3RoZXIuIFdlIGFsc28gd2FudCB0byBmZWVsIGFzIGlmIHdlIGFyZSBub3QgYmVpbmcgZGlzY3JpbWluYXRlZCBhZ2FpbnN0IG9yIG1hcmdpbmFsaXplZC4gQmVsb25naW5nIGlzIHJlYWxseSBpbXBvcnRhbnQgdG8gbWUgcGVyc29uYWxseTogSSBsb3ZlIHdvcmtpbmcgYXMgcGFydCBvZiBhIGRpc3RyaWJ1dGVkIHRlYW0sIGJ1dCBJIGFsc28gcmVhbGx5IGVuam95IHNlZWluZyBwZW9wbGUgaW4gcGVyc29uIGV2ZXJ5IG9uY2UgaW4gYSB3aGlsZS4gSXQgbWFrZXMgbWUgZmVlbCBtb3JlIGNvbm5lY3RlZCB0byB0aGVtLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7SW1wcm92ZW1lbnQuJmx0Oy9zdHJvbmcmZ3Q7IFdlIGFsc28gc2VlayB0byBjb250aW51b3VzbHkgbGVhcm4sIGltcHJvdmUsIGFuZCBncm93IGluIGFyZWFzIHRoYXQgbWF0dGVyIHRvIHVzLCBhcyB3ZWxsIGFzIHRvIG91ciB0ZWFtIG9yIGNvbXBhbnkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtDaG9pY2UuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8gaGF2ZSBjaG9pY2UsIGNvbnRyb2wsIGFuZCBhdXRvbm9teSBvdmVyIGltcG9ydGFudCBwYXJ0cyBvZiBvdXIgbGl2ZXMuIEluIG9uZSBvZiBteSBwcmV2aW91cyByb2xlcywgSSB0b29rIG9uIGEgbG90IG9mIHdvcmsgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLiBCdXQgdWx0aW1hdGVseSwgdGhlIGNvbnRyb2wgSSBoYWQgb3ZlciBteSBkb21haW4gd2FzIGxpbWl0ZWQgZHVlIHRvIG9yZ2FuaXphdGlvbmFsIGlzc3VlcyDigJMgd2hpY2ggbGVkIG1lIHRvIGxlYXZlIHRoZSBjb21wYW55LiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7RXF1YWxpdHkuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8ga25vdyB0aGF0IG91ciBhY2Nlc3MgdG8gaW5mb3JtYXRpb24sIG1vbmV5LCB0aW1lLCBhbmQgb3RoZXIgcmVzb3VyY2VzIGlzIGZhaXIgYW5kIGVxdWFsIGZvciBldmVyeW9uZSDigJMgbm90IGp1c3QgZm9yIG91cnNlbHZlcywgYnV0IGFsc28gZm9yIHRoZSBwZW9wbGUgYXJvdW5kIHVzLiBFdmVyeW9uZeKAmXMgbmVlZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZXF1YWxseSBpbXBvcnRhbnQuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtQcmVkaWN0YWJpbGl0eS4mbHQ7L3N0cm9uZyZndDsgV2UgbG9vayBmb3IgY2VydGFpbnR5LCBzYWZldHksIGFuZCBzdGFiaWxpdHkgaW4gb3VyIGxpdmVzLiBXZSBhbHNvIHdhbnQgZ29hbHMsIHN0cmF0ZWd5LCBhbmQgZGlyZWN0aW9uIHRvIGJlIGNvbnNpc3RlbnQg4oCTIGFuZCB0byBub3QgY2hhbmdlIHRvbyBxdWlja2x5LiBJ4oCZdmUgYmVlbiBsZWFkaW5nIHRlYW1zIGluIGZhc3QtZ3Jvd2luZyBzdGFydHVwcyBmb3IgdGhlIGxhc3QgY291cGxlIG9mIHllYXJzLCBhbmQgd2hlbiB0aGVyZeKAmXMgYSBsb3Qgb2YgY2hhbmdlIGhhcHBlbmluZywgaXTigJlzIGEgY2hhbGxlbmdlIHRvIGluc3RpbGwgcHJlZGljdGFiaWxpdHkgaW4gdGVhbXMuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtTaWduaWZpY2FuY2UuJmx0Oy9zdHJvbmcmZ3Q7IERlZXAgZG93biwgYWxsIG9mIHVzIHNlZWsgbWVhbmluZywgaW1wb3J0YW5jZSwgYW5kIHN0YXR1cy4gV2UgYWxzbyB3YW50IHRvIGJlIGFwcHJlY2lhdGVkIGZvciBvdXIgd29yayBieSBwZW9wbGUgd2hvc2Ugb3BpbmlvbnMgbWVhbiBzb21ldGhpbmcgdG8gdXMuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0lmIG91ciBjb3JlIG5lZWRzIGFyZSB0aHJlYXRlbmVkLCBwZW9wbGUgcmVzb3J0IHRvIGZpZ2h0LW9yLWZsaWdodCBtb2RlcyBvZiByZWFjdGlvbiwgd2hpY2ggYXJlIHZlcnkgc3RyZXNzZnVsLiBUaGUgZmFpbHVyZSB0byBtZWV0IGNvcmUgbmVlZHMgaGFzIGhpZ2ggY29zdHMgZm9yIG9yZ2FuaXphdGlvbnMgYnkgaGFybWluZyBwZW9wbGUgb24gb3VyIHRlYW1zLiBTbyBob3cgY2FuIGVuZ2luZWVyaW5nIG1hbmFnZXJzIHB1dCB0aGUgQklDRVBTIG1vZGVsIGludG8gYWN0aW9uIHRvIGhlbHAgdGhlaXIgdGVhbXMgdGhyaXZlPyZsdDsvcCZndDsKCiZsdDtoMiZndDtVc2luZyB0cnVzdC1iYXNlZCByZWxhdGlvbnNoaXBzIHRvIGhlbHAgZW5naW5lZXJzIGdyb3cmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgZm91bmRhdGlvbiBvZiBiZWluZyBhIGdvb2QgZW5naW5lZXJpbmcgbWFuYWdlciBpcyBnZXR0aW5nIHRvIGtub3cgb3VyIHRlYW1tYXRlcyBhbmQgdW5kZXJzdGFuZGluZyB3aGF0IGlzIGltcG9ydGFudCB0byB0aGVtLiBIZXJlIGFyZSBhIGZldyBwbGFjZXMgdG8gc3RhcnQgYnVpbGRpbmcgdHJ1c3Qgd2l0aGluIHlvdXIgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0FzayBxdWVzdGlvbnMuJmx0Oy9zdHJvbmcmZ3Q7IE9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCB0b29scyBtYW5hZ2VycyBoYXZlIGlzIGFza2luZyBnb29kIHF1ZXN0aW9ucy4gVGhlIGJhc2lzIGZvciBkb2luZyBvdXIgam9icyB3ZWxsIGlzIGxpc3RlbmluZywgb2JzZXJ2aW5nLCB0YWtpbmcgbm90ZSBvZiB3aGF0IG1vdGl2YXRlcyBvdXIgdGVhbW1hdGVzLCBhbmQgcmVhbGx5IGRpZ2dpbmcgaW50byB0aGVpciByZXNwb25zZXMgdG8gb3VyIHF1ZXN0aW9ucy4gSSB1c3VhbGx5IGdhdGhlciBxdWVzdGlvbnMgYmVmb3JlIEkgbWVldCB3aXRoIG15IHRlYW1tYXRlcyBvbmUtb24tb25lLCBzbyBJIGFtIHByZXBhcmVkIGFuZCBJIGNhbiBndWlkZSB0aGUgY29udmVyc2F0aW9uIHRvd2FyZHMgdW5kZXJzdGFuZGluZyB0aGVtIGJldHRlci4gT3ZlciB0aW1lLCBJIGhhdmUgYnVpbHQgYSBraXQgb2Ygb25lLW9uLW9uZSBxdWVzdGlvbnMgdGhhdCBJIHB1bGwgb3V0IHdoZW4gSSBuZWVkIHNvbWUgaW5zcGlyYXRpb24gZm9yIHRoZXNlIGNvbnZlcnNhdGlvbnMuIEFza2luZyBxdWVzdGlvbnMgaGVscHMgdXMgYWRqdXN0IG91ciBsZWFkZXJzaGlwIHN0eWxlIHRvIHRoZSBwZW9wbGUgd2UgYXJlIGxlYWRpbmcuIEl0IGFsc28gZW5zdXJlcyB0aGF0IHRoZXkgZmVlbCB1bmRlcnN0b29kIGFuZCBoZWFyZCwgd2hpY2ggYXJlIHJlYWxseSBpbXBvcnRhbnQgcGlsbGFycyBvZiBpbmNsdXNpb24gYW5kIGJlbG9uZ2luZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0JlIGN1cmlvdXMuJmx0Oy9zdHJvbmcmZ3Q7IFBlb3BsZSBhcmUgZnVsbCBvZiBzdXJwcmlzZXMsIGFuZCBzb21ldGltZXMgb3VyIHRlYW1tYXRlc+KAmSByZWFjdGlvbnMgbWF5IGJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBleHBlY3RlZC4gSSBvbmNlIHJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIGVuZ2luZWVyIG9uIG15IHRlYW0gd2hvIHdhcyBkZWVwbHkgdXBzZXQgYWJvdXQgdGhlIHNwZWNpZmljIHdvcmRpbmcgdXNlZCBpbiBhIHByb2R1Y3QtcmVsZWFzZSBub3RlIHRvIGN1c3RvbWVycy4gQXQgZmlyc3QgSSBkaWQgbm90IHVuZGVyc3RhbmQgdGhlaXIgc3Ryb25nIHJlYWN0aW9uLiBCdXQgd2hlbiB3ZSB0YWxrZWQsIEkgbGVhcm5lZCB0aGUgZW5naW5lZXIgaGFkIGJlZW4gb3ZlcnJ1bGVkIGJ5IHNvbWVvbmUgd2l0aCBtb3JlIHBvd2VyLCBtYWtpbmcgdGhlbSBmZWVsIGhlbHBsZXNzLCBhbmQgdGhyZWF0ZW5pbmcgdGhlaXIgY29yZSBuZWVkIGZvciBjaG9pY2UgYW5kIGVxdWFsaXR5LiZsdDsvcCZndDsKCiZsdDtwJmd0O1doYXQgbWFuYWdlcnMgbWlnaHQgcGVyY2VpdmUgYXMgbm8gYmlnIGRlYWwgY2FuIGJlIGVub3Jtb3VzIHRocmVhdHMgdG8gb3RoZXIgcGVvcGxlLiBDYXNlcyB3aGVyZSB3ZeKAmXJlIHN1cnByaXNlZCBieSBvdXIgdGVhbW1hdGVz4oCZIHJlYWN0aW9ucyBhcmUgZ29vZCBvcHBvcnR1bml0aWVzIHRvIGZvY3VzIG9uIGh1bWFuLWNlbnRyaWMgcmVzcG9uc2VzLCBsaWtlIGdpdmluZyBwZW9wbGUgdGhlIG9wcG9ydHVuaXR5IHRvIHRhbGsgdGhyb3VnaCB0aGVpciBmZWVsaW5ncy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0Nvbm5lY3QgdG8gdGhlIGJpZ2dlciBwaWN0dXJlLiZsdDsvc3Ryb25nJmd0OyBDcmVhdGluZyBhbiBpbXBhY3QgaXMgYSB2ZXJ5IGdvb2QgbW90aXZhdG9yIGZvciBhbGwgb2YgdXMsIHNvIGhlbHBpbmcgZW5naW5lZXJzIHVuZGVyc3RhbmQgaG93IHRoZWlyIHdvcmsgY29ubmVjdHMgdG8gdGhlIGJpZ2dlciBwaWN0dXJlIChob3cgaXQgaGVscHMgdXNlcnMgb3Igc3VwcG9ydHMgb3RoZXIgdGVhbXMpIGlzIGFuIGV4dHJlbWVseSBpbXBvcnRhbnQgYW5kIHN0cmF0ZWdpYyBza2lsbCBmb3IgbWFuYWdlcnMuIFdoaWxlIGdvYWwtc2V0dGluZyBmcmFtZXdvcmtzIGxpa2UgT0tScyBjYW4gaGVscCwgaXQgaXMgYWxzbyBjcnVjaWFsIHRvIGFsaWduIGVuZ2luZWVyaW5nIGluaXRpYXRpdmVzIHdpdGggaGlnaGVyLWxldmVsIGdvYWxzLCBhbmQgY29ubmVjdCB0aGVtIGNsZWFybHkgd2l0aCB1c2VyIHZhbHVlLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7SW52b2x2ZSBlbmdpbmVlcnMgaW4gZGVjaXNpb24gbWFraW5nLiZsdDsvc3Ryb25nJmd0OyBGZWVsaW5nIHRoYXQgZGVjaXNpb25zIGFyZSBmYWlyIGFuZCBlcXVpdGFibGUgaXMgYW4gaW1wb3J0YW50IGNvbXBvbmVudCBvZiB0aGUgQklDRVBTIG1vZGVsLiBXaGVuIHdlIG1ha2UgZGVjaXNpb25zLCBpdCBpcyBoZWxwZnVsIHRvIGFzayBldmVyeW9uZSBmb3IgdGhlaXIgb3BpbmlvbnMgZmlyc3QsIGFuZCB0YWtlIHRoZWlyIG9waW5pb25zIGludG8gYWNjb3VudC4gSXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBnbyB3aXRoIHdoYXQgZXZlcnlvbmUgd2FudHMuIEJ1dCB3ZSBjYW4gc3RpbGwgZG8gYSBnb29kIGpvYiBhdCBjb250ZXh0dWFsaXppbmcgdGhlIGRlY2lzaW9ucyB3ZSBtYWtlLCBhbmQgaGVscGluZyBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IHRoZWlyIGZlZWRiYWNrIHdhcyBjb25zaWRlcmVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7R2l2ZSBmZWVkYmFjayBmb3IgZ3Jvd3RoLiZsdDsvc3Ryb25nJmd0OyBPbmUgb2YgdGhlIGJlc3QgdGhpbmdzIHdlIGdldCB0byBkbyBhcyBlbmdpbmVlcmluZyBtYW5hZ2VycyBpcyBzdXBwb3J0IGVuZ2luZWVyc+KAmSBncm93dGguIEdpdmUgZmVlZGJhY2sgcmVndWxhcmx5IHRvIGhlbHAgdGhlIHBlb3BsZSBvbiB5b3VyIHRlYW0gdW5kZXJzdGFuZCB3aGVyZSB0aGV5IGFyZSBhdCBhbmQgZ3JvdyDigJMgYnkgY291cnNlLWNvcnJlY3Rpbmcgd2hlcmUgbmVlZGVkLCBhcyB3ZWxsIGFzIGJ5IGRvaW5nIG1vcmUgaW4gdGhlIGFyZWFzIGluIHdoaWNoIHRoZXkgYXJlIGFscmVhZHkgZG9pbmcgZ3JlYXQuIE1hbmFnZXJzIG5lZWQgZmVlZGJhY2sgYXMgd2VsbDogaXTigJlzIGltcG9ydGFudCB0byByZWd1bGFybHkgYXNrIHlvdXIgdGVhbSBmb3IgZmVlZGJhY2sgc28geW91IGNhbiBtYWtlIGFkanVzdG1lbnRzLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Q29hY2ggZW5naW5lZXJzLiZsdDsvc3Ryb25nJmd0OyBDb2FjaGluZyBoZWxwcyBwZW9wbGUgZmluZCBhbnN3ZXJzIHRoZW1zZWx2ZXMsIGltcHJvdmVzIHRoZWlyIHByb2JsZW0tc29sdmluZyBhbmQgbGVhZGVyc2hpcCBza2lsbHMsIGFuZCBpbmNyZWFzZXMgbGVhcm5pbmcsIHJlc2lsaWVuY2UsIGFuZCBzZWxmLW1hbmFnZW1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTcG9uc29yIGVuZ2luZWVycy4mbHQ7L3N0cm9uZyZndDsgVGhpbmsgYmFjayBvbiB5b3VyIGNhcmVlciwgYW5kIHdoZXRoZXIgeW91IGhhdmUgaGFkIGEgbWVudG9yIHdobyBjb25uZWN0ZWQgeW91IHdpdGggc29tZW9uZSwgcHV0IHlvdXIgbmFtZSBmb3J3YXJkLCBhbmQgdXNlZCB0aGVpciBpbmZsdWVuY2UgdG8gbWFrZSBhIGRpZmZlcmVuY2UgaW4geW91ciBjYXJlZXIuIEJlIHRoYXQgcGVyc29uIGZvciBzb21lb25lIGVsc2U6IGludmVzdCBpbiB0aGVpciBncm93dGgsIGxpZnQgdGhlbSB1cCwgYW5kIHB1dCB5b3VyIHdlaWdodCBiZWhpbmQgdGhlaXIgc3VjY2Vzcy4gU3VwcG9ydGluZyB5b3VyIHRlYW3igJlzIHN1Y2Nlc3MgY2FuIG1ha2UgYSByZWFsIGRpZmZlcmVuY2UgZm9yIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhpcyBpcyB0aGUgZm91bmRhdGlvbiBvZiBvdXIgd29yayBhcyBlbmdpbmVlcmluZyBtYW5hZ2Vycy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RHJpdmluZyBhIGN1bHR1cmUgb2YgdHJ1c3QgYW5kIGNvbnRpbnVvdXMgaW1wcm92ZW1lbnQgb24gdGVhbXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgbmV4dCBpbXBvcnRhbnQgYnVpbGRpbmcgYmxvY2sgaW4gb3VyIHdvcmsgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgaXMgdGhlIHRlYW0uIEFjY29yZGluZyB0byByZXNlYXJjaCwgaGlnaC1wZXJmb3JtaW5nIHRlYW1zIG5lZWQgdGhlIGZvbGxvd2luZyBlbGVtZW50cy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7UHN5Y2hvbG9naWNhbCBzYWZldHkuJmx0Oy9zdHJvbmcmZ3Q7IFRoaXMgaXMgYWJvdXQgYmVsaWV2aW5nIHRoYXQgd2Ugd2lsbCBub3QgYmUgcmVqZWN0ZWQsIGFuZCBmZWVsaW5nIGZyZWUgdG8gZXhwcmVzcyBvdXIgd29yay1yZWxhdGVkIHRob3VnaHRzIGFuZCBmZWVsaW5ncyB0byB0aGUgcGVvcGxlIGFyb3VuZCB1cy4gSXQgYWxzbyBtZWFucyBiZWxpZXZpbmcgdGhhdCBvdGhlcnMgd29u4oCZdCB0aGluayBsZXNzIG9mIHVzIGlmIHdlIG1ha2UgYSB3ZWxsLWludGVudGlvbmVkIG1pc3Rha2Ugb3IgYXNrIGZvciBoZWxwLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7U3RydWN0dXJlIGFuZCBjbGFyaXR5LiZsdDsvc3Ryb25nJmd0OyBFdmVyeW9uZSBvbiB0aGUgdGVhbSBzaG91bGQgdW5kZXJzdGFuZCBleHBlY3RhdGlvbnMsIGdvYWxzLCBhbmQgYWNjb3VudGFiaWxpdHkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtNZWFuaW5nIGFuZCBpbXBhY3QuJmx0Oy9zdHJvbmcmZ3Q7IEhpZ2gtcGVyZm9ybWluZyB0ZWFtcyBmaW5kIGEgc2Vuc2Ugb2YgcHVycG9zZSBpbiB0aGVpciB3b3JrLCBhbmQga25vdyB0aGF0IHRoZWlyIHdvcmsgaGFzIGFuIGltcGFjdC4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7THVja2lseSBmb3IgbWFuYWdlcnMsIHRoaXMgcmVzZWFyY2ggbmVhdGx5IGFsaWducyB3aXRoIHRoZSBCSUNFUFMgbW9kZWwuIEFsbCBodW1hbiBjb3JlIG5lZWRzIGFyZSByZXByZXNlbnRlZCBhbmQgaGF2ZSBpbXBhY3QgYXQgdGhlIHRlYW0gbGV2ZWwgYXMgd2VsbC4gQnkgdW5kZXJzdGFuZGluZyBhbmQgcmVzcG9uZGluZyB0byBwZW9wbGXigJlzIG1vdGl2YXRpb25zLCBsZWFkZXJzIGNyZWF0ZSB0aGUgYmFzaXMgZm9yIHRlYW1zICB0byBleHByZXNzIHRoZW1zZWx2ZXMg4oCTIGFuZCBwcm92aWRlIHRoZSBzdHJ1Y3R1cmUsIG1lYW5pbmcsIGFuZCBpbXBhY3QgdGhleSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgdHJ1c3QuJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBmaXJzdCBzdGVwIGluIGNyZWF0aW5nIHN0cnVjdHVyZSBpcyBidWlsZGluZyByZWxhdGlvbnNoaXBzLiBGb3Igb3VyIGRpc3RyaWJ1dGVkIHRlYW1zIGF0IENpcmNsZUNJLCB3ZeKAmXZlIGJ1aWx0IGRpZmZlcmVudCBzdHJ1Y3R1cmVzIHRvIGhlbHAgdGVhbW1hdGVzIGRvIHRoYXQsIHN1Y2ggYXMgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucyBhbmQgZW5naW5lZXJpbmcgdGFsa3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTdHJ1Y3R1cmUgYXJvdW5kIGhvdyB3ZSBjb2xsYWJvcmF0ZS4mbHQ7L3N0cm9uZyZndDsgT3VyIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0kgaGFzIGRvdWJsZWQgaW4gc2l6ZSBmb3IgdGhyZWUgeWVhcnMgaW4gYSByb3cuIE92ZXIgdGhpcyB0aW1lLCB3ZeKAmXZlIG1vdmVkIHRvIGEgbW9yZSBzdHJlYW1saW5lZCBlbmdpbmVlcmluZyBkZWxpdmVyeSBwcm9jZXNzIGZvciBhbGwgdGVhbXMuIEJ1dCB3ZSBzdGlsbCBsZWF2ZSBpdCB0byB0aGUgdGVhbXMgdG8gZGVjaWRlIGhvdyB0byBpbXBsZW1lbnQgdCBkYXktdG8tZGF5IHByb2Nlc3NlcywgaW5jbHVkaW5nIGRhaWx5IHN0YW5kdXAgbWVldGluZ3MsIHBsYW5uaW5nIHNlc3Npb25zLCBvciBjb2xsYWJvcmF0aW9uLiBFdmVyeSB0ZWFtIGhhcyBzcGVjaWZpYyBuZWVkcywgYW5kIHRoZXkga25vdyBiZXN0IGhvdyB0byBhZGRyZXNzIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtSZW1vdmUgYmxvY2tlcnMuJmx0Oy9zdHJvbmcmZ3Q7IFN0cnVjdHVyZXMgY2FuIGFsc28gaGVscCBtaXRpZ2F0ZSB0aGUgaW1wYWN0IG9mIGdldHRpbmcgYmxvY2tlZCBhdCB3b3JrLiBXZSBhbGwga25vdyBob3cgZnJ1c3RyYXRpbmcgaXQgaXMgdG8gYmUgc3R1Y2suIFB1dHRpbmcgdXAgcGF0aHdheXMgdG8gaGVscCBwZW9wbGUgZ2V0IHVuYmxvY2tlZCBjYW4gYmUgcmVhbGx5IGltcG9ydGFudCDigJMgZm9yIGV4YW1wbGUsIHNldHRpbmcgdXAgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucywgaW52ZXN0aW5nIGluIHNlbGYtc2VydmUgaW5mb3JtYXRpb24gYWNjZXNzLCBzdXBwb3J0aW5nIGVhY2ggb3RoZXIgYWNyb3NzIHRlYW1zLCBwdXR0aW5nIHVwIGVzY2FsYXRpb24gcGF0aHMgZm9yIHBlb3BsZSB0byBnZXQgaGVscCB3aGVuIHRoZXkgbmVlZCBpdCwgb3IgaGVscGluZyBwZW9wbGUgc3VwcG9ydCBlYWNoIG90aGVyIHRocm91Z2gga25vd2xlZGdlLXNoYXJpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtDb250aW51b3VzbHkgaW1wcm92ZS4mbHQ7L3N0cm9uZyZndDsgV2UgY2FuIHVzZSByZXRyb3NwZWN0aXZlcyB0byBkaXNjdXNzIGFuZCBpbXByb3ZlIGhvdyB3ZSB3b3JrIHRvZ2V0aGVyLiBCbGFtZWxlc3MgcG9zdG1vcnRlbXMgYXJlIGFsc28gYSBncmVhdCB0b29sIHRvIGhlbHAgdW5kZXJzdGFuZCBwcm9ibGVtcyBhbmQgZHJpdmUgdG93YXJkcyBzb2x1dGlvbnMuIENvZGUgcmV2aWV3cywgbWVudG9yaW5nLCBvciBrbm93bGVkZ2Ugc2hhcmluZyBjYW4gaGVscCB0ZWFtIG1lbWJlcnMgbGVhcm4gZnJvbSBlYWNoIG90aGVyLiBUaGUgd2F5IHdlIHRhbGsgYWJvdXQgbGVhcm5pbmcgbWF0dGVycyDigJMgZXNwZWNpYWxseSB0aGUgd2F5IHdlIGRpc2N1c3MgbWlzdGFrZXMuIFRoZXNlIGRlY2lzaW9ucyB3aWxsIGZ1bmRhbWVudGFsbHkgc2hhcGUgdGhlIGN1bHR1cmUgb2Ygb3VyIHRlYW1zLCBhbmQgZGV0ZXJtaW5lIHdoZXRoZXIgcGVvcGxlIGZlZWwgc2FmZSBvciB0aHJlYXRlbmVkIGluIHRoZWlyIGNvcmUgbmVlZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtEcml2ZSB0b3dhcmQgYWxpZ25tZW50LiZsdDsvc3Ryb25nJmd0OyBDb21tdW5pY2F0ZSBzdHJhdGVneSwgZGlyZWN0aW9uLCBhbmQgcmVsZXZhbnQgdGFjdGljYWwgZGV0YWlscyB0byBvdXIgdGVhbXMg4oCTIGFuZCByZW1lbWJlciBpdOKAmXMgYWxtb3N0IGltcG9zc2libGUgdG8gb3Zlci1jb21tdW5pY2F0ZSB0aGVzZSBkZXRhaWxzLiBBbHdheXMgcmVwZWF0IHdoYXTigJlzIGltcG9ydGFudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBlbmdpbmVlcmluZyBtYW5hZ2Vycywgd2UgYXJlIGxpa2UgbW9ydGFyOiBXZSBjb25uZWN0IHN0cnVjdHVyZXMsIHRlYW1zLCBhbmQgcGVvcGxlLiBXZSBob2xkIHRoZW0gdG9nZXRoZXIsIGJ1dCBhbHNvIGlkZW50aWZ5IGFuZCBmaWxsIGdhcHMgYXMgbmVlZGVkLiBIYW5kbGluZyBhbWJpZ3VpdHkgaXMgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgZGlmZmljdWx0IGFzcGVjdHMgb2YgZW5naW5lZXJpbmcgbWFuYWdlbWVudC4uIEZvciBhIGxvdCBvZiB3b3JrIGluIG91ciBmaWVsZCwgdGhlcmUgYXJlIG5vIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLCBsZXQgYWxvbmUgcmVzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T3VyIHdvcmsgaXNu4oCZdCBzbyBtdWNoIGFib3V0IHVzOyBpdOKAmXMgYWJvdXQgdGhlIHBlb3BsZSwgdGVhbXMsIGFuZCBvcmdhbml6YXRpb25zIHdlIHN1cHBvcnQuIFdlIGJ1aWxkIHN0cnVjdHVyZXMgdG8gaGVscCBvdGhlcnMgc2hpbmUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1N1cHBvcnRpbmcgb3JnYW5pemF0aW9uYWwgY2hhbmdlJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7TGFzdGx5LCBjcmVhdGluZyBlbnZpcm9ubWVudHMgaW4gd2hpY2ggZW5naW5lZXJzIGNhbiB0aHJpdmUgaXMgYWJvdXQgc3VwcG9ydGluZyBvdXIgb3JnYW5pemF0aW9uLiBXZSBuZWVkIHRvIHVzZSBvdXIgcG93ZXIgYXMgbWFuYWdlcnMgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLCBubyBtYXR0ZXIgdGhlIHNpemUgb2Ygb3VyIGJ1c2luZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtBZHZvY2F0ZSBmb3IgY2hhbmdlLiZsdDsvc3Ryb25nJmd0OyBUbyBiZSBlZmZlY3RpdmUgYXMgbWFuYWdlcnMsIHdlIG5lZWQgdG8gcHVzaCBmb3Igb3JnYW5pemF0aW9uYWwgY2hhbmdlIHRvIGltcHJvdmUgdGhlIGxhcmdlciBzdHJ1Y3R1cmVzIGFyb3VuZCB1cy4gRm9yIGV4YW1wbGUsIHdlIG1heSBuZWVkIHRvIGFkdm9jYXRlIGZvciBtb3JlIGNsYXJpdHkgYXJvdW5kIGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMsIGhhdmUgY29udmVyc2F0aW9ucyBhYm91dCB3aGF0IGVuZ2luZWVyaW5nIG1hbmFnZW1lbnQgc2hvdWxkIGJlIGxpa2UgaW4gb3VyIGNvbXBhbnksIGFuZCBkZXRlcm1pbmUgcmVxdWlyZW1lbnRzIGZvciBoaXJpbmcgZW5naW5lZXJpbmcgbWFuYWdlcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtNYW5hZ2UgdXAuJmx0Oy9zdHJvbmcmZ3Q7IE1hbmFnaW5nIG91ciBvd24gbWFuYWdlcnMgaXMgYSB1c2VmdWwgYnV0IGRpZmZpY3VsdCBza2lsbC4gRHJpdmluZyBvcmdhbml6YXRpb25hbCBjaGFuZ2UgYWxzbyBtZWFucyBtYWtpbmcgc3VyZSB0aGF0IG91ciBlbmdpbmVlcnPigJkgY29uY2VybnMgYXJlIGhlYXJkIGF0IHRoZSBoaWdoZXN0IGxldmVscywgYW5kIHRoYXQgd2UgdXNlIG91ciBwb3dlciB0byBtYWtlIHN1cmUgZW5naW5lZXJzIGhhdmUgYSB2b2ljZSBpbiB0aGUgcmVzdCBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgZnJhbWV3b3JrcyBhbmQgc3RhbmRhcmRzLiZsdDsvc3Ryb25nJmd0OyBXaGlsZSBpdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIG1ha2Ugcm9vbSBmb3IgaW5kaXZpZHVhbCBuZWVkcywgc3RydWN0dXJlcyBhbmQgZnJhbWV3b3JrcyBmb3IgbWFuYWdlcnMgaGVscCB1cyBob2xkIGVhY2ggb3RoZXIgYWNjb3VudGFibGUuIFRoZXkgYWxzbyAgaGVscCBsZXZlbCB0aGUgcGxheWluZyBmaWVsZCBhbmQgYnVpbGQgaW4gZXF1YWxpdHkgZm9yIHRoZSBwZW9wbGUgb24gb3VyIHRlYW1zLiBPbiBteSBjdXJyZW50IHRlYW0sIGV2ZXJ5IHF1YXJ0ZXIgd2UgcGljayBzb21lIGhpZ2gtcHJpb3JpdHkgcHJvamVjdHMgIHRvIGltcHJvdmUgaG93IHdlIHdvcmsgYXMgYW4gb3JnYW5pemF0aW9uLiBNb3N0IHJlY2VudGx5LCB3ZeKAmXZlIHdvcmtlZCBvbiBvdXIgaGlyaW5nIHByb2Nlc3MgYW5kIGluY2lkZW50IHJlbWVkaWF0aW9uOyBsYXN0IHllYXIsIHdlIGRldmVsb3BlZCBhbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvd2h5LXdlLXJlLWRlc2lnbmVkLW91ci1lbmdpbmVlcmluZy1jYXJlZXItcGF0aHMtYXQtY2lyY2xlY2kvJnF1b3Q7Jmd0O2ludGVybmFsIGNhcmVlciBncm93dGggZnJhbWV3b3JrIGZvciBlbmdpbmVlcnMmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtHcm93aW5nIGFzIGEgbGVhZGVyJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7QmVpbmcgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgaXNu4oCZdCBhbHdheXMgYSBzdHJhaWdodGZvcndhcmQgcGF0aDsgYSBsb3QgZGVwZW5kcyBvbiB3aGVyZSB3ZSBhcmUgYXQgaW4gb3VyIGNhcmVlcnMgYW5kIHdoZXJlIHdlIGFyZSBsb29raW5nIHRvIGdvLCBhcyB3ZWxsIGFzIHRoZSBncm93dGggc3RhZ2UsIHNpemUsIGFuZCBuZWVkcyBvZiBvdXIgb3JnYW5pemF0aW9ucy4gSW4gb3VyIGRhaWx5IHdvcmssIHdlIGhvbGQgdmFzdCBhbW91bnRzIG9mIHVuY2VydGFpbnR5IHdoaWxlIGFsc28gdHJ5aW5nIHRvIG1ha2UgcHJvZ3Jlc3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QW4gb3ZlcmFyY2hpbmcgdGhlbWUgaW4gbXkgd29yayBpbiBlbmdpbmVlcmluZyBtYW5hZ2VtZW50ICBoYXMgYmVlbiBncm93dGggYW5kIGltcHJvdmVtZW50LiBXZSByYXJlbHkgZGVhbCB3aXRoIGdyZWVuZmllbGQgcHJvamVjdHMgb3IgYXJlIGFibGUgdG8gYnVpbGQgYSB0ZWFtIG9yIGRlcGFydG1lbnQgZnJvbSBzY3JhdGNoLiBFdmVuIHdoZW4gd2UgZG8sIHdlIGJ1aWxkIG9uIGV4aXN0aW5nIHN0cnVjdHVyZXMgaW4gb3VyIG9yZ2FuaXphdGlvbi4gSSBiZWxpZXZlIG91ciBzdXBwb3J0aW5nIHJvbGUgbGFyZ2VseSBtZWFucyBoZWxwaW5nIGVuZ2luZWVycyBncm93LCBzdXBwb3J0aW5nIHRlYW1zIGF0IGNvbnRpbnVvdXNseSBsZWFybmluZywgYW5kIGhlbHBpbmcgb3JnYW5pemF0aW9ucyBiZWNvbWUgYmV0dGVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVyaW5nIG1hbmFnZXJzLCB3ZSBmcmVxdWVudGx5IGZhY2UgcXVlc3Rpb25zIHRoYXQgZG9u4oCZdCBjbGVhciByaWdodCBvciB3cm9uZyBhbnN3ZXJzLiBNYW55IHllYXJzIGFnbywgbXkgbGVhZGVyc2hpcCBjb2FjaCBlbmNvdXJhZ2VkIG1lIHRvIHVzZSB0aG9zZSBraW5kcyBvZiB1bmNlcnRhaW4gc2l0dWF0aW9ucyB0byBhc2sgbXlzZWxmLCDigJxXaGF0IGtpbmQgb2YgbGVhZGVyIGRvIEkgd2FudCB0byBiZT/igJ0mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJIHdhbnQgdG8gbGVhdmUgdGhlIGxhc3QgY2FsbCB0byBncm93dGggYW5kIGltcHJvdmVtZW50IHdpdGggeW91IChhbmQgbWUpOiBObyBtYXR0ZXIgd2hhdCB5b3VyIHJvbGUgb3IgY29tcGFueSBpcyBsaWtlLCB3b3JrIG9uIHNoYXBpbmcgeW91ciBhcHByb2FjaCB0byBlbmdpbmVlcmluZyBtYW5hZ2VtZW50LiBHZXQgdG8ga25vdyB0aGUgcGVvcGxlIHRoYXQgeW91IHdvcmsgd2l0aCwgYW5kIHVzZSBmZWVkYmFjayB0byBoZWxwIHRoZW0gY291cnNlLWNvcnJlY3QuIEJ1aWxkIHRlYW1zIHRoYXQgYXJlIHBzeWNob2xvZ2ljYWxseSBzYWZlIHBsYWNlcywgd2hlcmUgcGVvcGxlIGZpbmQgbWVhbmluZyBpbiBhIHNoYXJlZCBwdXJwb3NlLiBBbmQgdXNlIHlvdXIgcG93ZXIgYW5kIHByaXZpbGVnZSB0byBkcml2ZSBjaGFuZ2UgaW4geW91ciBvcmdhbml6YXRpb24uIE1ha2UgcGVvcGxlIHRoZSBjZW50ZXIgYW5kIGZvY3VzIG9mIHlvdXIgd29yaywgYW5kIGJ1aWxkIG9uIHRoYXQgZm91bmRhdGlvbiB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhleSBjYW4gdGhyaXZlLiAgQWx3YXlzIHB1c2ggdG8gY29udGludW91c2x5IGltcHJvdmUuIExlYWQgd2l0aCBodW1ibGVuZXNzLCBlbXBhdGh5LCBhbmQgbG90cyBvZiBjdXJpb3NpdHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2hhdCBraW5kIG9mIGxlYWRlciBkbyB5b3Ugd2FudCB0byBiZT8mbHQ7L3AmZ3Q7CgombHQ7aHIgLyZndDsKJmx0O3AmZ3Q7SWYgeW914oCZcmUgY3VyaW91cyBhYm91dCBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IGF0IENpcmNsZUNJIGFuZCB3b3JraW5nIHdpdGggdXM6IGpvaW4gdXMhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9ib2FyZHMuZ3JlZW5ob3VzZS5pby9jaXJjbGVjaSZxdW90OyZndDtXZeKAmXJlIGhpcmluZyBlbmdpbmVlcmluZyBtYW5hZ2VycyZsdDsvYSZndDsuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5CdWlsZGluZyBhbmQgZGVwbG95aW5nIEZsdXR0ZXIgYXBwcyB3aXRoIEZhc3RsYW5lPC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RlcGxveS1mbHV0dGVyLWFuZHJvaWQvPC9saW5rPgogICAgICAgIDxwdWJEYXRlPldlZCwgMjkgQXByIDIwMjAgMTA6MDA6MDAgLTA3MDA8L3B1YkRhdGU+CiAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9InRydWUiPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZGVwbG95LWZsdXR0ZXItYW5kcm9pZC88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5HYWJyaWVsIFNpbW1lcjwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvJnF1b3Q7Jmd0O0ZsdXR0ZXImbHQ7L2EmZ3Q7IGlzIGEgdG9vbGtpdCBwcm92aWRlZCBieSBHb29nbGUgZm9yIGJ1aWxkaW5nIGNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9ucywgaW5jbHVkaW5nIEFuZHJvaWQsIGlPUywgYW5kIHdlYiBhcHBzLiBBcyBtb3JlIGFwcHMgYXJlIHdyaXR0ZW4gdXNpbmcgaXQgYW5kIERhcnQgKHRoZSB1bmRlcmx5aW5nIGxhbmd1YWdlKSwgaXTigJlzIGJlY29taW5nIG1vcmUgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyBkZXZlbG9wZXJzIGNhbiBwYWNrYWdlIGFuZCBkZWxpdmVyIHRoZWlyIGNvZGUgdG8gdGhlaXIgdXNlcnMuIExldmVyYWdpbmcgQ2lyY2xlQ0kgYW5kIEZhc3RsYW5lLCB0aGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcHJvY2VzcyB0aGF0IGNhbiBiZSBhdXRvbWF0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbGluZyBGbHV0dGVyIGFuZCBjcmVhdGluZyB5b3VyIGZpcnN0IGFwcCBjYW4gYmUgZG9uZSBieSBmb2xsb3dpbmcgdGhlc2UgZ3VpZGVzOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvZG9jcy9nZXQtc3RhcnRlZC9pbnN0YWxsJnF1b3Q7Jmd0O0luc3RhbGwmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2ZsdXR0ZXIuZGV2L2RvY3MvZ2V0LXN0YXJ0ZWQvY29kZWxhYiZxdW90OyZndDtXcml0ZSB5b3VyIGZpcnN0IGFwcCZsdDsvYSZndDsuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBkZWZhdWx0IOKAnGhlbGxvIHdvcmxk4oCdIGFwcCB3aWxsIHN1ZmZpY2UuIFdlIHdvbuKAmXQgYmUgZGVhbGluZyBtdWNoIHdpdGggdGhlIGFwcGxpY2F0aW9uIGl0c2VsZi4gUHVzaCBpdCB0byBhIHJlcG9zaXRvcnkgb24gR2l0SHViLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Vuc3VyZSB0aGF0IHlvdSBhcmUgc2V0IHVwIHRvIHB1Ymxpc2ggYXBwcyB1c2luZyBHb29nbGUgUGxheSBvciB0aGUgQXBwbGUgQXBwIFN0b3JlIC0gc3RlcHMgZm9yIGVhY2ggd2lsbCB2YXJ5LCBzbyBiZSBzdXJlIHRvIGZvbGxvdyB0aGUgc3RlcHMgb3V0bGluZWQgZm9yIHRoZSByZXNwZWN0aXZlIHByb3ZpZGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBbmRyb2lkJmx0Oy9oMiZndDsKCiZsdDtwJmd0O1doZW4gcHVibGlzaGluZyBBbmRyb2lkIGFwcHMsIHRoZXJlIGFyZSBhIGZldyByZXF1aXJlbWVudHMgdG8gc2F0aXNmeSBiZWZvcmUgaW1wbGVtZW50aW5nIEZhc3RsYW5lLiBBbiDigJx1cGxvYWQga2V54oCdIGlzIHJlcXVpcmVkIHNvIHRoYXQgR29vZ2xlIGNhbiB2ZXJpZnkgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUgYXBwIGJlZm9yZSBhY2NlcHRpbmcgaXQuIFN0ZXBzIGZvciBzZXR0aW5nIHRoaXMgdXAgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9mbHV0dGVyLmRldi9kb2NzL2RlcGxveW1lbnQvYW5kcm9pZCZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oy4gSXTigJlzIHJlY29tbWVuZGVkIHRvIHVzZSBBcHBCdW5kbGVzIHdoZW4gYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBhcyBpdCBhbGxvd3MgR29vZ2xlIHRvIGJ1aWxkIGluZGl2aWR1YWwgQVBLcyBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyB3aGlsZSBrZWVwaW5nIGZpbGVzaXplIGRvd24uIFRha2Ugbm90ZSBvZiB3aGVyZSB5b3Ugc2F2ZSB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5qa3MmbHQ7L2NvZGUmZ3Q7IGZpbGUuIFdoaWxlIGl0IGNhbiBsaXZlIGluIHlvdXIgaG9tZSBkaXJlY3RvcnksIGhhdmluZyBpdCBzYXZlZCB0byBhIGdpdC1pZ25vcmVkIGRpcmVjdG9yeSBpbiB5b3VyIHByb2plY3Qgd2lsbCBjb21lIGluIGhhbmR5IHdoZW4gY29uZmlndXJpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1R3byB0aGluZ3MgZnJvbSB0aGlzIGd1aWRlIHdpbGwgbmVlZCB0byBiZSBhZGRlZCB0byBDaXJjbGVDSSBhcyAmbHQ7YSBocmVmPSZxdW90Oy9kb2NzLzIuMC9lbnYtdmFycy8mcXVvdDsmZ3Q7ZW52aW9ybm1lbnQgdmFyaWFibGVzJmx0Oy9hJmd0OzogdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlIGFuZCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7a2V5LmprcyZsdDsvY29kZSZndDsgZmlsZS4gVGhpcyB3aWxsIGFsbG93IHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBzaWduIHRoZSBhcHBsaWNhdGlvbi4gU2luY2Ugb25lIGZpbGUgcmVxdWlyZXMgbmV3bGluZXMgdG8gYmUgcHJlc2VudCwgYW5kIGFub3RoZXIgaXMgYSBiaW5hcnkgZmlsZSwgaXTigJlzIHJlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgYmFzZTY0LWVuY29kZWQgcHJpb3IgdG8gYWRkaW5nIHRoZW0gYXMgZW52aW9ybm1lbnQgdmFyaWFibGVzIHRvIHByZXNlcnZlIHRoZSBkYXRhLiZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBjYW4gZW5jb2RlIHRoZW0gYnkgcnVpbm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2F0ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7IHwgYmFzZTY0IC13IDAgIyAtdyAwIHdpbGwgZW5zdXJlIG5vIG5ld2xpbmVzIGFyZSBwcmVzZW50LgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBmaWxlcyBjYW4gdGhlbiBiZSByZS1hZGRlZCBkdXJpbmcgdGhlIGpvYiB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2VjaG8gJnF1b3Q7JEVOVl9WQVJJQUJMRV9OQU1FJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIGFsc28gd2FudCB0byBzZXQgdXAgYSBGYXN0bGFuZSBzZXJ2aWNlIGFjY291bnQgd2hpbGUgY3JlYXRpbmcgeW91ciBBbmRyb2lkIHNldHVwLiBZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5mYXN0bGFuZS50b29scy9nZXR0aW5nLXN0YXJ0ZWQvYW5kcm9pZC9zZXR1cC8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuIEJlIHN1cmUgdG8ga2VlcCB5b3VyIFNlcnZpY2UgQWNjb3VudCBKU09OIGZpbGUgaGFuZHkuIFdl4oCZbGwgYmUgYWRkaW5nIHRoYXQgdG8gdGhlIHBpcGVsaW5lIHNob3J0bHkuIEFsc28gbm90ZSB0aGF0IGNvbW1hbmRzIHNob3VsZCBiZSBydW4gZnJvbSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZCZsdDsvY29kZSZndDsgZGlyZWN0b3J5IHVuZGVyIHlvdXIgRmx1dHRlciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IHJlcXVpcmVkIGJ5IEZhc3RsYW5lIGNhbiBiZSBkb25lIGJ5IGFkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IEpTT04gZmlsZSBjb250ZW50cyBhcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IGVudmlvcm5tZW50IHZhcmlhYmxlLiBUaGlzIGlzIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1NVUFBMWV9KU09OX0tFWSZsdDsvY29kZSZndDsgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgYSBmaWxlIHBhdGggdG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0Zhc3RsYW5lJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05vdyB0aGF0IG91ciBlbnZpb3JubWVudCB2YXJpYWJsZXMgYXJlIGluIHBsYWNlIGFuZCB3ZSBjYW4gYnVpbGQgYSBzaWduZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LmFhYiZsdDsvY29kZSZndDsgZmlsZSB1c2luZyBGbHV0dGVyLCBpdOKAmXMgdGltZSB0byB0ZWxsIEZhc3RsYW5lIGhvdyB0byBkbyB0aGlzIGZvciB1cy4gV2XigJlsbCBzdGFydCB3aXRoIEFuZHJvaWQuIE9wZW5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZC9mYXN0bGFuZS9GYXN0ZmlsZSZsdDsvY29kZSZndDsgd2lsbCByZXZlYWwgc29tZSBkZWZhdWx0cyBmb3IgYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBidXQgdGhleSB3b27igJl0IHdvcmsgZm9yIG91ciB1c2UgY2FzZS4gV2XigJlyZSBidWlsZGluZyB3aXRoIEZsdXR0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rmlyc3QsIGxldOKAmXMgZGVmaW5lIGEgbmV3IOKAnGxhbmXigJ0uIFRoaXMgaXMgYSBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgRmFzdGxhbmUgd2lsbCBleGVjdXRlIHdoZW4gY2FsbGVkLiBGb3Igbm93LCB3ZeKAmWxsIGJlIHB1c2hpbmcgb3VyIGFwcCB0byB0aGUg4oCcYmV0YeKAnSBjaGFubmVsLCBub3QgdG8gcHJvZHVjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwoKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgaXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIGxhbmUuIE5leHQsIHdl4oCZbGwgd2FudCB0byBncmFiIGEgYnVpbGQgbnVtYmVyIHdoaWNoIGlzIGFuIGluY3JlbWVudGluZyBudW1iZXIgdXNlZCBhcyBhIHJlZmVyZW5jZSBmb3IgdGhlIHZlcnNpb24gb2YgdGhlIGFwcCAod2hpY2ggZGlmZmVycyBmcm9tIHRoZSB1c2VyLWZhY2luZyBzZW12ZXIpLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHRvIHRoZSBsYW5lOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ICBidWlsZF9udW1iZXIgPSBudW1iZXJfb2ZfY29tbWl0cygpCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgZW5zdXJlcyB0aGF0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZF9udW1iZXImbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0aGF0IGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBHaXQgcmVwb3NpdG9yeS4gVGhpcyBjYW4gYWxzbyBiZSBtYW51YWxseSBpbmNyZW1lbnRlZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVic3BlYy55YW1sJmx0Oy9jb2RlJmd0OyBmaWxlIHRoYXQgRmx1dHRlciB1c2VzIHRvIGJ1aWxkIHRoZSBwYWNrYWdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdl4oCZbGwgZG8gdGhlIGJ1aWxkaW5nLiBXZSBuZWVkIHRvIGdvIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5LCBydW4gYSBmZXcgc2hlbGwgY29tbWFuZHMgdG8gZmV0Y2ggb3VyIHBhY2thZ2VzLCBjbGVhbiB0aGUgcHJldmlvdXMgYnVpbGQgKGlmIGF2YWlsYWJsZSksIHRoZW4gYnVpbGQgdGhlIGFwcGJ1bmRsZSB3aXRoIG91ciBidWlsZCBudW1iZXIuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIERpci5jaGRpciAmcXVvdDsuLi8uLiZxdW90OyBkbwogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7cGFja2FnZXMmcXVvdDssICZxdW90O2dldCZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2NsZWFuJnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7YnVpbGQmcXVvdDssICZxdW90O2FwcGJ1bmRsZSZxdW90OywgJnF1b3Q7LS1idWlsZC1udW1iZXI9I3tidWlsZF9udW1iZXJ9JnF1b3Q7KQogIGVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtGaW5hbGx5LCB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYXBwIHN0b3JlIG9uIHRoZSBiZXRhIGNoYW5uZWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIHVwbG9hZF90b19wbGF5X3N0b3JlKHRyYWNrOiAnYmV0YScsIGFhYjogJy4uL2J1aWxkL2FwcC9vdXRwdXRzL2J1bmRsZS9yZWxlYXNlL2FwcC5hYWInKQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGxhbmUgd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwogIGJ1aWxkX251bWJlciA9IG51bWJlcl9vZl9jb21taXRzKCkKICBEaXIuY2hkaXIgJnF1b3Q7Li4vLi4mcXVvdDsgZG8KICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O3BhY2thZ2VzJnF1b3Q7LCAmcXVvdDtnZXQmcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtjbGVhbiZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2J1aWxkJnF1b3Q7LCAmcXVvdDthcHBidW5kbGUmcXVvdDssICZxdW90Oy0tYnVpbGQtbnVtYmVyPSN7YnVpbGRfbnVtYmVyfSZxdW90OykKICBlbmQKICB1cGxvYWRfdG9fcGxheV9zdG9yZSh0cmFjazogJ2JldGEnLCBhYWI6ICcuLi9idWlsZC9hcHAvb3V0cHV0cy9idW5kbGUvcmVsZWFzZS9hcHAuYWFiJykKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dvIGFoZWFkIGFuZCBzYXZlIHRoZSBmaWxlLCBhbmQgdGhlbiBydW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZmFzdGxhbmUgYmV0YSZsdDsvY29kZSZndDsuIEl0IHdpbGwgcnVuIHRocm91Z2ggdGhlIHN0ZXBzLCBidWlsZGluZyB0aGUgYXBwIGFuZCBwdXNoaW5nIHRoZSBhcHBsaWNhdGlvbiBmb3IgeW91LiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgd2XigJlsbCBkbyB0aGUgc2FtZSBmb3IgaU9TLCBidXQgcmVwbGFjaW5nIHNvbWUgb2YgdGhlIGNvbW1hbmRzIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBpT1MgY29tbWFuZHMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lvcy9GYXN0bGFuZSZsdDsvY29kZSZndDsgZGlyZWN0b3J5LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZGVzYyAmcXVvdDtEZXBsb3kgYSBuZXcgYnVpbGQgdG8gVGVzdGZsaWdodCZxdW90OwpsYW5lIDpiZXRhIGRvCiAgRGlyLmNoZGlyICZxdW90Oy4uLy4uJnF1b3Q7IGRvCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtwYWNrYWdlcyZxdW90OywgJnF1b3Q7Z2V0JnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7Y2xlYW4mcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtidWlsZCZxdW90OywgJnF1b3Q7aW9zJnF1b3Q7LCAmcXVvdDstLXJlbGVhc2UmcXVvdDssICZxdW90Oy0tbm8tY29kZXNpZ24mcXVvdDspCiAgZW5kCiAgYnVpbGRfaW9zX2FwcChzY2hlbWU6ICZxdW90O015QXBwJnF1b3Q7KQogIHVwbG9hZF90b190ZXN0ZmxpZ2h0CmVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhcHAgaXMgYnVpbHQgdHdpY2UuIFRoZSBmaXJzdCBidWlsZCBidWlsZHMgYWdhaW5zdCB0aGUgbGF0ZXN0IEZsdXR0ZXIgdG9vbGNoYWluLCB3aGlsZSB0aGUgc2Vjb25kIGJ1aWxkIGJ1aWxkcyB0aGUgYWN0dWFsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5pcGEmbHQ7L2NvZGUmZ3Q7IGZpbGUgdGhhdCB3aWxsIGJlIHVwbG9hZGVkIHRvIFRlc3RmbGlnaHQuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O05vdywgd2l0aCBDaXJjbGVDSSZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gcGxhY2UsIGl04oCZcyB0aW1lIHRvIGdldCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB3cml0dGVuIHNvIHRoYXQgYSBwdXNoIHRvIGEgYnJhbmNoIGlzIHRyYW5zbGF0ZWQgdG8gYSBuZXcgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7aU9TJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0ZvciBkZXBsb3lpbmcgd2l0aCBpT1MsIENpcmNsZUNJIGFscmVhZHkgaGFzIGRvY3MgdG8gY292ZXIgdGhpcyEgU3RlcHMgZm9yIHNldHRpbmcgdXAgRmFzdGxhbmUgZGVwbG95bWVudCB3aXRoIEZsdXR0ZXIgaXMgc2ltaWxhciB0byB0aGUgc3RlcHMgb3V0bGluZWQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvaW9zLWNvZGVzaWduaW5nLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OyBhbmQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZGVwbG95aW5nLWlvcy8jYXBwLXN0b3JlLWNvbm5lY3QmcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0FuZHJvaWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7V2hlbiBpdCBjb21lcyB0byB0aGUgRG9ja2VyIGltYWdlIHRvIHBpY2ssIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gRWl0aGVyIHlvdSBjYW4gYnVpbGQgYW5kIHB1c2ggdGhlIERvY2tlciBpbWFnZSB1c2VkIGJ5IHRoZSBGbHV0dGVyIHByb2plY3QgZm91bmQgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2Jsb2IvbWFzdGVyL2Rldi9jaS9kb2NrZXJfbGludXgvRG9ja2VyZmlsZSZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oywgb3IgeW91IGNhbiBwdWxsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dtZW1zdHIvZmx1dHRlci1mYXN0bGFuZTpsYXRlc3QmbHQ7L2NvZGUmZ3Q7LCB3aGljaCBpcyBidWlsdCBvbiB0b3Agb2YgYW4gZXhpc3RpbmcgRmx1dHRlciBEb2NrZXIgaW1hZ2UgYW5kIGluc3RhbGxzIEZhc3RsYW5lIGFsb25nc2lkZSBpdCwgYXZvaWRpbmcgYWRkaXRpb25hbCBvdmVyaGVhZCBvZiBpbnN0YWxsaW5nIGl0IGR1cmluZyBydW50aW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28gZW5zdXJlIHRoYXQgdGhlIGVudmlvcm5tZW50IHZhcmlhYmxlcyBtZW50aW9uZWQgZWFybGllciBhcmUgYWRkZWQgdG8geW91ciBwcm9qZWN0LiBOYW1lbHk6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQTEFZX1NUT1JFX1VQTE9BRF9LRVkmbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtrZXkuamtzJmx0Oy9jb2RlJmd0OyBmaWxlJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7UExBWV9TVE9SRV9VUExPQURfS0VZX0lORk8mbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCBmaWxlIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIGFuZCBvdGhlciBpbmZvIHJlZ2FyZGluZyB0aGUgdXBsb2FkIHNpZ25pbmcga2V5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IC0gWW91ciBHb29nbGUgU2VydmljZSBBY2NvdW50IEpTT04gc3RyaW5nIGZvciBhdXRoZW50aWNhdGlvbiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtJbiB5b3VyIHByb2plY3RzIHJvb3QsIGFkZCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLCBhbmQgaW4gdGhhdCBmb2xkZXIgYWRkIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y2lyY2xlY2kueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLiBBZGQgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSBuZXdseSBjcmVhdGVkIGZpbGU6Jmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7JwogIAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgc25pcHBldCBhYm92ZSBkZWZpbmVzIGFuIGV4ZWN1dG9yIHdlIGNhbiByZXVzZSBsYXRlciBpbiBvdXIgY29uZmlndXJhdGlvbiB0aGFua3MgdG8gdGhlIHVzZSBvZiByZXVzYWJsZSBjb25maWd1cmF0aW9uIGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYnMmbHQ7L2EmZ3Q7IGluIENpcmNsZUNJIDIuMS4gSXQgYWxzbyBpbmNsdWRlcyBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBlbnN1cmUgSmF2YSBkb2VzbuKAmXQgY29uc3VtZSBhbGwgb2Ygb3VyIG1lbW9yeSB3aGlsZSBidWlsZGluZyB0aGUgYXBwLiBOZXh0LCB3ZeKAmWxsIGRlZmluZSB0aGUgam9iIHdlIHdhbnQgdG8gcnVuIHRoZSBjb21tYW5kcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2pvYnM6CiAgYmV0YV9kZXBsb3k6CiAgICBleGVjdXRvcjogYW5kcm9pZC1mbHV0dGVyCiAgICBzdGVwczoKICAgICAgLSBjaGVja291dAogICAgICAtIHJ1bjogZWNobyAmcXVvdDskUExBWV9TVE9SRV9VUExPQURfS0VZJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGtleS5qa3MKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWV9JTkZPJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGFuZHJvaWQva2V5LnByb3BlcnRpZXMKICAgICAgLSBydW46IGNkIGFuZHJvaWQgJmFtcDthbXA7JmFtcDthbXA7IGZhc3RsYW5lIGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgd2XigJlsbCBkZWZpbmUgb3VyIHdvcmtmbG93IHdoaWNoIHdpbGwgb25seSBydW4gdGhlIGpvYiB3aGVuIHRoZSBuZXcgY29kZSBpcyBwdXNoZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2JldGEmbHQ7L2NvZGUmZ3Q7IGJyYW5jaC4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3dvcmtmbG93czoKICBkZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGJldGFfZGVwbG95OgogICAgICAgICAgZmlsdGVyczoKICAgICAgICAgICAgYnJhbmNoZXM6CiAgICAgICAgICAgICAgb25seTogYmV0YQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7Jwpqb2JzOgogIGJldGFfZGVwbG95OgogICAgZXhlY3V0b3I6IGFuZHJvaWQtZmx1dHRlcgogICAgc3RlcHM6CiAgICAgIC0gY2hlY2tvdXQKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWSZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBrZXkuamtzCiAgICAgIC0gcnVuOiBlY2hvICZxdW90OyRQTEFZX1NUT1JFX1VQTE9BRF9LRVlfSU5GTyZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBhbmRyb2lkL2tleS5wcm9wZXJ0aWVzCiAgICAgIC0gcnVuOiBjZCBhbmRyb2lkICZhbXA7YW1wOyZhbXA7YW1wOyBmYXN0bGFuZSBiZXRhCgp3b3JrZmxvd3M6CiAgZGVwbG95OgogICAgam9iczoKICAgICAgLSBiZXRhX2RlcGxveToKICAgICAgICAgIGZpbHRlcnM6CiAgICAgICAgICAgIGJyYW5jaGVzOgogICAgICAgICAgICAgIG9ubHk6IGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvcHJvamVjdHMvJnF1b3Q7Jmd0O1NldCB1cCB5b3VyIHByb2plY3Qgb24gQ2lyY2xlQ0kmbHQ7L2EmZ3Q7LiBPbmNlIHlvdSBjbGljayAmbHQ7c3Ryb25nJmd0O1NldCBVcCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7LCB5b3Ugd2lsbCBiZSBicm91Z2h0IHRvIGEgdGV4dCBlZGl0b3IgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBjb3B5IGluIHRoZSBjb25maWcgZnJvbSBhYm92ZS4gQ2xpY2sgJmx0O3N0cm9uZyZndDtTdGFydCBCdWlsZGluZyZsdDsvc3Ryb25nJmd0Oy4gTm93IGV2ZXJ5IG5ldyBjb21taXQgdG8gdGhlIGJldGEgYnJhbmNoIHdpbGwgcmVzdWx0IGluIGEgZGVwbG95LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIGFuIEV4cHJlc3MgR3JhcGhRTCBzZXJ2ZXIgdG8gSGVyb2t1PC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1hbi1leHByZXNzLWdyYXBocWwtc2VydmVyLXRvLWhlcm9rdS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VHVlLCAyOCBBcHIgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtYW4tZXhwcmVzcy1ncmFwaHFsLXNlcnZlci10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dyYXBocWwub3JnLyZxdW90OyZndDtHcmFwaFFMJmx0Oy9hJmd0OyBjb250aW51ZXMgdG8gZ3JvdyBpbiBwb3B1bGFyaXR5IHdpdGggZWFjaCBwYXNzaW5nIGRheSwgc2luY2UgaXRzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9lbmdpbmVlcmluZy5mYi5jb20vY29yZS1kYXRhL2dyYXBocWwtYS1kYXRhLXF1ZXJ5LWxhbmd1YWdlLyZxdW90OyZndDtwdWJsaWMgcmVsZWFzZSBieSBGYWNlYm9vayZsdDsvYSZndDsgaW4gMjAxNS4gVGhlIHRlY2hub2xvZ3kgZW5hYmxlcyBmcm9udCBlbmQgY2xpZW50cyB0byBxdWVyeSBleGFjdGx5IHdoYXQgdGhleSBuZWVkIGZyb20gdGhlIGJhY2tlbmQsIGFuZCBpcyBnYWluaW5nIHdpZGUgcmVjb2duaXRpb24gYW5kIGFkb3B0aW9uIGJ5IHJlcHV0YWJsZSBjb21wYW5pZXMgc3VjaCBhcyBQaW50ZXJlc3QsIENvdXJzZXJhLCBBaXJibmIsIGFuZCBGYWNlYm9vayBpdHNlbGYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBwb3N0LCB3ZSB3aWxsIGxlYXJuIGhvdyB0byBkZXBsb3kgYSBzaW1wbGUgR3JhcGhRTCBzZXJ2ZXIgd3JpdHRlbiBpbiBOb2RlLmpzIHRvIEhlcm9rdSB2aWEgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IChDSSkgcGlwZWxpbmUgdXNpbmcgQ2lyY2xlQ0kuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1ByZXJlcXVpc2l0ZXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUbyBmb2xsb3cgYWxvbmcgd2l0aCB0aGlzIHBvc3QsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhbHJlYWR5IHNldCB1cDombHQ7L3AmZ3Q7CiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL25vZGVqcy5vcmcvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlIC12Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsIHRvIHByaW50IG91dCB5b3VyIHZlcnNpb24gb2YgTm9kZS5qcyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdC1zY20uY29tLyZxdW90OyZndDtHaXQmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnaXQmbHQ7L2NvZGUmZ3Q7IG9uIHlvdXIgdGVybWluYWw7IHRoaXMgc2hvdWxkIHByaW50IG91dCBhdmFpbGFibGUgZ2l0IGNvbW1hbmRzKSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5oZXJva3UuY29tLyZxdW90OyZndDtIZXJva3UmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tLyZxdW90OyZndDtHaXRIdWImbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vc2lnbnVwLyZxdW90OyZndDtDaXJjbGVDSSZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDsjI1NjYWZmb2xkaW5nIHRoZSBHcmFwaFFMIHNlcnZlciBwcm9qZWN0ClRvIGJlZ2luIHNldHRpbmcgdXAgYSBHcmFwaFFMIHNlcnZlciwgY3JlYXRlIGEgbmV3IGZvbGRlciBmb3IgdGhlIHByb2plY3QgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtta2RpciBncmFwaHFsLXRlc3Qtc2VydmVyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7Tm93IGdvIGludG8gdGhlIHJvb3Qgb2YgdGhlIGZvbGRlciBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBzY2FmZm9sZCBhIG5ldyBOb2RlLmpzIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5pdCAteQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDtwJmd0O1RoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsteSZsdDsvY29kZSZndDsgb3B0aW9uYWwgZmxhZyBhbGxvd3MgeW91IHRvIHNraXAgY29uZmlybWluZyB0aGUgZGVmYXVsdCBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwYWNrYWdlLmpzb24mbHQ7L2NvZGUmZ3Q7IGZpbGUgYW5kIGp1c3QgYWNjZXB0cyB0aGVtLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGFyZSBnb2luZyB0byBjcmVhdGUgYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2V4cHJlc3Nqcy5jb20vJnF1b3Q7Jmd0O0V4cHJlc3NKUyZsdDsvYSZndDsgTm9kZS5qcyBhcHBsaWNhdGlvbiBhbmQgYnVpbGQgdGhlIEdyYXBoUUwgc2VydmVyLiBUbyBkbyB0aGlzLCB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIGZvbGxvd2luZyBwYWNrYWdlczombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2V4cHJlc3MmbHQ7L2NvZGUmZ3Q7OiB0byBjcmVhdGUgb3VyIEV4cHJlc3NKUyBOb2RlLmpzIGFwcGxpY2F0aW9uJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z3JhcGhxbCZsdDsvY29kZSZndDs6IHRoZSBHcmFwaFFMIG5wbSBwYWNrYWdlIGZvciBOb2RlLmpzJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OzogRXhwcmVzc0pTIG1pZGRsZXdhcmUgZm9yIEdyYXBoUUwmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbCB0aGVzZSBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBpbnN0YWxsIC0tc2F2ZSBleHByZXNzIGdyYXBocWwgZXhwcmVzcy1ncmFwaHFsCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIHRoZSByZXF1aXJlZCBwYWNrYWdlcyB0byBzdGFydCBwdXR0aW5nIHRvZ2V0aGVyIG91ciBHcmFwaFFMIHNlcnZlci4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgdGhlIEdyYXBoUUwgc2NoZW1hJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7Q3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bWtkaXIgc3JjCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1dpdGhpbiB0aGlzIGZvbGRlciwgY3JlYXRlIGEgbmV3IGZpbGUgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEuanMmbHQ7L2NvZGUmZ3Q7IGFuZCBwYXN0ZSBpbiB0aGUgY29kZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Owpjb25zdCB7IGJ1aWxkU2NoZW1hIH0gPSByZXF1aXJlKCZxdW90O2dyYXBocWwmcXVvdDspOwoKY29uc3Qgc2NoZW1hID0gYnVpbGRTY2hlbWEoYAogICAgdHlwZSBRdWVyeSB7CiAgICAgICAgdXNlcnM6IFtVc2VyIV0hLAogICAgICAgIHVzZXIoaWQ6IEludCEpOiBVc2VyIQogICAgfQoKICAgIHR5cGUgTXV0YXRpb24gewogICAgICAgIGVkaXRVc2VyKGlkOiBJbnQhLCBuYW1lOiBTdHJpbmchLCBlbWFpbDogU3RyaW5nISk6IFVzZXIhCiAgICB9CgogICAgdHlwZSBVc2VyIHsKICAgICAgICBpZDogSUQhCiAgICAgICAgbmFtZTogU3RyaW5nIQogICAgICAgIGVtYWlsOiBTdHJpbmcKICAgICAgICBwb3N0czogW1Bvc3QhXQogICAgfQoKICAgIHR5cGUgUG9zdCB7CiAgICAgICAgaWQ6IElEIQogICAgICAgIHRpdGxlOiBTdHJpbmchCiAgICAgICAgcHVibGlzaGVkOiBCb29sZWFuIQogICAgICAgIGxpbms6IFN0cmluZwogICAgfQpgKTsKCm1vZHVsZS5leHBvcnRzID0gc2NoZW1hOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBhYm92ZSBjb2RlLCB3ZSBoYXZlIGNyZWF0ZWQgZm91ciB0eXBlcywgY29uc2lzdGluZyBvZiB0d28gYnVpbHQtaW4gdHlwZXMgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7KSBhbmQgdHdvIGN1c3RvbSB0eXBlcyAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXNlciZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1Bvc3QmbHQ7L2NvZGUmZ3Q7KS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWdpbm5pbmcgd2l0aCB0aGUgY3VzdG9tIHR5cGVzLCB3ZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmc6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VyJmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHVzZXIgaW4gdGhlIGFwcGxpY2F0aW9uIHdpdGggaXRzIHJlc3BlY3RpdmUgZmllbGRzIGFuZCBhIHJlbGF0aW9uYWwgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cG9zdHMmbHQ7L2NvZGUmZ3Q7IGZpZWxkLCB3aGljaCByZXR1cm5zIGFuIGFycmF5IG9mIHBvc3RzIGNyZWF0ZWQgYnkgdGhlIHVzZXImbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQb3N0Jmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHB1YmxpY2F0aW9uIGNyZWF0ZWQgYnkgYSB1c2VyIGluIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGl0cyByZXNwZWN0aXZlIGZpZWxkcyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OzogaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyB0eXBlLCB3ZSBkZWZpbmVkIHR3byBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgcXVlcmllZCBmcm9tIG91ciBHcmFwaFFMIHNlcnZlciBhcyBmb2xsb3dzOgogICAgJmx0O3VsJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlcnMmbHQ7L2NvZGUmZ3Q7OiBhbiBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VycyZsdDsvY29kZSZndDsmbHQ7L2xpJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlciZsdDsvY29kZSZndDs6IGEgc2luZ2xlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1VzZXImbHQ7L2NvZGUmZ3Q7IHdpdGggdGhlIHNwZWNpZmllZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgaW4gdGhlIGFyZ3VtZW50cyBsaXN0Jmx0Oy9saSZndDsKICAgICZsdDsvdWwmZ3Q7CiAgJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7OiBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7IHR5cGUsIHdlIGRlZmluZWQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VkaXRVc2VyJmx0Oy9jb2RlJmd0OyBtdXRhdGlvbiwgd2hpY2gsIGdpdmVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgb2YgdGhlIHVzZXIsIGNhbiBiZSBjYWxsZWQgdG8gZWRpdCBhIHVzZXIgYW5kIHRoZW4gdXBkYXRlIHRoZSBpbmZvcm1hdGlvbiAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bmFtZSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VtYWlsJmx0Oy9jb2RlJmd0OykmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhlIHNjaGVtYSBpcyBjcmVhdGVkIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZFNjaGVtYSZsdDsvY29kZSZndDsgb2YgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dyYXBocWwmbHQ7L2NvZGUmZ3Q7IHBhY2thZ2UgYW5kIGV4cG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O01vY2tpbmcgZGF0YSZsdDsvaDImZ3Q7CiZsdDtwJmd0O0luIG9yZGVyIHRvIGhhdmUgcmVzdWx0cyBmb3Igb3VyIHF1ZXJpZXMsIHdlIG5lZWQgZGF0YS4gRm9yIHRoaXMgZXhlcmNpc2UsIHdlIHdpbGwgYmUgdXNpbmcgTW9uZ29EQi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIb3dldmVyLCBzaW5jZSB0aGUgZ29hbCBvZiB0aGlzIHBvc3QgaXMgdG8gZGVtb25zdHJhdGUgZGVwbG95aW5nIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyLCB3ZSB3b27igJl0IGJvdGhlciB3aXRoIHNldHRpbmcgdXAgYSBNb25nb0RCIHNlcnZlci4gSW5zdGVhZCwgd2Ugd2lsbCAgdXNlIGEgbW9ja2VkIHZlcnNpb24gdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O21vbmdvZGItbWVtb3J5LXNlcnZlciZsdDsvY29kZSZndDsuIFRoaXMgcGFja2FnZSBhbGxvd3MgdXMgdG8gY3JlYXRlIGFuZCB1c2UgYW4gaW4tbWVtb3J5IE1vbmdvREIgZGF0YWJhc2Ugc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHNldCB0aGlzIHVwLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhdCB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5zdGFsbCAtLXNhdmUgbW9uZ29kYiBtb25nb2RiLW1lbW9yeS1zZXJ2ZXIKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwombHQ7cCZndDtUaGlzIGluc3RhbGxhdGlvbiBtaWdodCB0YWtlIGEgd2hpbGUsIGRlcGVuZGluZyBvbiB5b3VyIGRvd25sb2FkIHNwZWVkLiBNb25nb0RCIHdhcyBhdCBsZWFzdCA2NiBtZWdhYnl0ZXMgaW4gc2l6ZSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhLmpzJmx0Oy9jb2RlJmd0OyBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3JjJmx0Oy9jb2RlJmd0OyBmb2xkZXIuIFRoaXMgZmlsZSB3aWxsIGV4cG9ydCBhbiBhcnJheSBvZiBoYXJkLWNvZGVkIHVzZXIgZGF0YS4gUGFzdGUgdGhlIGZvbGxvd2luZyBjb2RlIGJlbG93IGludG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBVc2VycyA9IFsKICB7CiAgICBpZDogMSwKICAgIG5hbWU6ICZxdW90O0Zpa2F5byBBZGVwb2p1JnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2ZpazRjaHJpc3RAeWFob28uY29tJnF1b3Q7LAogICAgcG9zdHM6IFsKICAgICAgewogICAgICAgIGlkOiAxLAogICAgICAgIHRpdGxlOiAmcXVvdDtDcmVhdGluZyBhbiBFbW9qaSBHYW1lIHdpdGggVnVlLCBBdXRoMCwgYW5kIEdvb2dsZSBWaXNpb24gQVBJJnF1b3Q7LAogICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSwKICAgICAgICBsaW5rOgogICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hdXRoMC5jb20vYmxvZy9jcmVhdGluZy1hbi1lbW9qaS1nYW1lLXdpdGgtdnVlLWF1dGgwLWFuZC1nb29nbGUtdmlzaW9uLWFwaS8mcXVvdDssCiAgICAgICAgYXV0aG9yOiAxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBpZDogMiwKICAgICAgICB0aXRsZTogJnF1b3Q7RWxlY3Ryb24gVHV0b3JpYWw6IEJ1aWxkaW5nIE1vZGVybiBEZXNrdG9wIEFwcHMgd2l0aCBWdWUuanMmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2F1dGgwLmNvbS9ibG9nL2VsZWN0cm9uLXR1dG9yaWFsLWJ1aWxkaW5nLW1vZGVybi1kZXNrdG9wLWFwcHMtd2l0aC12dWUtanMvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDMsCiAgICAgICAgdGl0bGU6ICZxdW90O1N0YXRlIE1hbmFnZW1lbnQgd2l0aCBWdWV4OiBhIFByYWN0aWNhbCBUdXRvcmlhbCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazoKICAgICAgICAgICZxdW90O2h0dHBzOi8vYXV0aDAuY29tL2Jsb2cvc3RhdGUtbWFuYWdlbWVudC13aXRoLXZ1ZXgtYS1wcmFjdGljYWwtdHV0b3JpYWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMiwKICAgIG5hbWU6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2pvaG5AY29tcGFueS5jb20mcXVvdDssCiAgICBwb3N0czogWwogICAgICB7CiAgICAgICAgaWQ6IDQsCiAgICAgICAgdGl0bGU6ICZxdW90O0J1aWxkIGEgQ0kgcG93ZXJlZCBSRVNUZnVsIEFQSSB3aXRoIExhcmF2ZWwmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2J1aWxkLWEtY2ktcG93ZXJlZC1yZXN0ZnVsLWFwaS13aXRoLWxhcmF2ZWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDUsCiAgICAgICAgdGl0bGU6ICZxdW90O0F1dG9tYXRlIHlvdXIgTnV4dC5qcyBhcHAgZGVwbG95bWVudCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazogJnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hdXRvbWF0ZS15b3VyLW51eHQtanMtYXBwLWRlcGxveW1lbnQvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMywKICAgIG5hbWU6ICZxdW90O0phbmUgUGF1bCZxdW90OywKICAgIGVtYWlsOiAmcXVvdDtqYW5lQGNvbXBhbnkuY29tJnF1b3Q7LAogICAgcG9zdHM6IFtdCiAgfQpdOwoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgVXNlcnMKfTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBjb2RlIGFib3ZlLCB3ZSBoYXZlIGFuIGFycmF5IG9mIHVzZXIgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgcG9zdHMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIHNlZWQgb3VyIGluLW1lbW9yeSBkYXRhYmFzZSBvbmNlIGl0IGlzIGluc3RhbnRpYXRlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCB0YXNrIGlzIHRvIHNldCB1cCBvdXIgbW9jayBNb25nb0RCIGRhdGFiYXNlIHNlcnZlci4gSW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhYmFzZS5qcyZsdDsvY29kZSZndDsgYW5kIGluc2VydCB0aGUgZm9sbG93aW5nIGNvZGUgaW50byB0aGUgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O01vbmdvTWVtb3J5U2VydmVyJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtyZXF1aXJlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtzMiZxdW90OyZndDsmcXVvdDttb25nb2RiLW1lbW9yeS1zZXJ2ZXImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O21vbmdvZGImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtjb25zdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bm8mcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90Oy4vZGF0YSZxdW90OyZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0Oyk7Jmx0Oy9zcGFuJmd0OwoKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7bGV0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDtudWxsJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXN5bmMmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7ZnVuY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25mJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoKSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDt7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7bmV3Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtNb25nb01lbW9yeVNlcnZlciZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygpOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtubyZxdW90OyZndDttb25nb0RCVVJMJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXdhaXQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7LiZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtnZXRDb25uZWN0aW9uU3RyaW5nJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3QmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvREJVUkwmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDssJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7CiAgICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDt1c2VOZXdVcmxQYXJzZXImbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs6Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDt0cnVlJmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSk7Jmx0Oy9zcGFuJmd0OwoKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtjMSZxdW90OyZndDsvL1NlZWQgRGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7CiAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtpZiZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7ISZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OykmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsKICAgICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RhdGFiYXNlJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RiJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbGxlY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O3VzZXJzJnF1b3Q7Jmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7aW5zZXJ0TWFueSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7VXNlcnMmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7CgogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7cmV0dXJuJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OzsmbHQ7L3NwYW4mZ3Q7CiZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vZHVsZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZXhwb3J0cyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtzdGFydERhdGFiYXNlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGNvZGUgYWJvdmUsIHdlIGV4cG9ydCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L2NvZGUmZ3Q7IGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBzdGFydHMgYSBuZXcgKG1vY2tlZCkgTW9uZ29EQiBzZXJ2ZXIgaW5zdGFuY2UgYW5kIGdldHMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuIEl0IHRoZW4gY3JlYXRlcyBhIG5ldyBNb25nb0RCIGNsaWVudCBjb25uZWN0aW9uIHVzaW5nIHRoZSBjb25uZWN0aW9uIHN0cmluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwgd2Ugc2VlZCBpdCB3aXRoIG91ciB1c2VyIGRhdGEgZXhwb3J0ZWQgZnJvbSBvdXIgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZGF0YS5qcyZsdDsvY29kZSZndDsgZmlsZS4gQSBjaGVjayBpcyBtYWRlIHRvIHNlZSBpZiB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIGlzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O251bGwmbHQ7L2NvZGUmZ3Q7IGJlZm9yZSBzZWVkaW5nIGl0IHdpdGggZGF0YSwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBmcm9tIGJlaW5nIGVudGVyZWQgaW50byB0aGUgZGF0YWJhc2UgZWFjaCB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdXAuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGRhdGFiYXNlIHJlZmVyZW5jZS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgb3VyIHJlc29sdmVycyZsdDsvaDImZ3Q7CiZsdDtwJmd0O05leHQgdXAsIHdlIG5lZWQgdG8gZGVmaW5lIHJlc29sdmVycyBmb3Igb3VyIEdyYXBoUUwgcXVlcmllcyBpbiBvcmRlciB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGRhdGEgZm9yIGVhY2ggcXVlcnkgb3BlcmF0aW9uLiBXZSB3aWxsIGRlZmluZSByZXNvbHZlcnMgZm9yIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt1c2VycyZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3VzZXImbHQ7L2NvZGUmZ3Q7IHF1ZXJpZXMgYW5kIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtlZGl0VXNlciZsdDsvY29kZSZndDsgbXV0YXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Jlc29sdmVycy5qcyZsdDsvY29kZSZndDsgYW5kIHBhc3RlIGluIHRoZSBmb2xsb3dpbmcgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IHJlc29sdmVycyA9IHsKICB1c2VyczogYXN5bmMgKF8sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIKICAgICAgLmNvbGxlY3Rpb24oJnF1b3Q7dXNlcnMmcXVvdDspCiAgICAgIC5maW5kKCkKICAgICAgLnRvQXJyYXkoKTsKICB9LAogIHVzZXI6IGFzeW5jICh7IGlkIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIuY29sbGVjdGlvbigmcXVvdDt1c2VycyZxdW90OykuZmluZE9uZSh7IGlkIH0pOwogIH0sCiAgLy9NdXRhdGlvbiByZXNvbHZlcnMKICBlZGl0VXNlcjogYXN5bmMgKHsgaWQsIG5hbWUsIGVtYWlsIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CgogICAgcmV0dXJuIGRiCiAgICAgIC5jb2xsZWN0aW9uKCZxdW90O3VzZXJzJnF1b3Q7KQogICAgICAuZmluZE9uZUFuZFVwZGF0ZSgKICAgICAgICB7IGlkIH0sCiAgICAgICAgeyAkc2V0OiB7IG5hbWUsIGVtYWlsIH0gfSwKICAgICAgICB7IHJldHVybk9yaWdpbmFsOiBmYWxzZSB9CiAgICAgICkKICAgICAgLnRoZW4ocmVzcCA9JmFtcDtndDsgcmVzcC52YWx1ZSk7CiAgfSAKfTsKCm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZXJzOwoKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgc2VlbiBhYm92ZSwgd2Ugbm93IGhhdmUgcmVzb2x2ZXJzIGZvciB0aGUgdGhyZWUgR3JhcGhRTCByZXF1ZXN0cyBhdmFpbGFibGUgb24gb3VyIHNlcnZlci4gVGhlc2UgcmVzb2x2ZXJzIGZldGNoIGFuZCB1cGRhdGUgZGF0YSB1c2luZyB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIHdlIGNyZWF0ZWQgZWFybGllciBieSByZWZlcmVuY2luZyBpdCBmcm9tIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb250ZXh0Jmx0Oy9jb2RlJmd0OyBvYmplY3Qgb2YgdGhlIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgcmVmZXJlbmNlIHdpbGwgYmUgYWRkZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbnRleHQmbHQ7L2NvZGUmZ3Q7IG9iamVjdCBvZiBvdXIgR3JhcGhRTCBzZXJ2ZXIgc2V0dXAgaW4gdGhlIG5leHQgc2VjdGlvbiB3aGVuIHdlIHB1dCBldmVyeXRoaW5nIHRvZ2V0aGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTZXR0aW5nIHVwIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O0l0IGlzIHRpbWUgdG8gcHV0IGV2ZXJ5IGNvbXBvbmVudCB3ZSBidWlsdCB0b2dldGhlciB0byBzZXQgdXAgb3VyIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlZm9yZSB3ZSBiZWdpbiwgd2UgbmVlZCB0byBpbnN0YWxsIG9uZSBtb3JlIHBhY2thZ2UuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIGNvbWVzIHdpdGggdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0dyYXBoaVFMJmx0Oy9jb2RlJmd0OyBhcHBsaWNhdGlvbiwgd2hpY2ggYWxsb3dzIHlvdSB0byBxdWVyeSB5b3VyIEdyYXBoUUwgZW5kcG9pbnQsIGJ1dCBsZXTigJlzIGFkZCBhIHRvb2wgdGhhdCBpcyBtb3JlIHJvYnVzdC4gV2Ugd2lsbCBpbnN0YWxsIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIHRvIGdpdmUgdXMgYSBmYW5jaWVyIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgb3VyIEdyYXBoUUwgZW5kcG9pbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSBmb2xsb3dpbmcgY29kZSB0byBpbnN0YWxsIHRoZSBwYWNrYWdlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGluc3RhbGwgLS1zYXZlIGdyYXBocWwtcGxheWdyb3VuZC1taWRkbGV3YXJlLWV4cHJlc3MKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7V2Ugd2lsbCB1c2UgdGhpcyBtaWRkbGV3YXJlIHRvIHNldCB1cCB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kIGZvciBxdWVyeWluZyBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0xldOKAmXMgc2V0IHVwIG91ciBzZXJ2ZXIgYnkgY3JlYXRpbmcgYSBmaWxlIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2luZGV4LmpzJmx0Oy9jb2RlJmd0OyBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBhbmQgcGxhY2luZyB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBleHByZXNzID0gcmVxdWlyZSgmcXVvdDtleHByZXNzJnF1b3Q7KTsKY29uc3QgZ3JhcGhxbEhUVFAgPSByZXF1aXJlKCZxdW90O2V4cHJlc3MtZ3JhcGhxbCZxdW90Oyk7CmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoJnF1b3Q7Li9zcmMvc2NoZW1hJnF1b3Q7KTsKY29uc3QgcmVzb2x2ZXJzID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9yZXNvbHZlcnMmcXVvdDspOwpjb25zdCBzdGFydERhdGFiYXNlID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9kYXRhYmFzZSZxdW90Oyk7CmNvbnN0IGV4cHJlc3NQbGF5Z3JvdW5kID0gcmVxdWlyZSgmcXVvdDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJnF1b3Q7KS5kZWZhdWx0OwoKLy8gQ3JlYXRlIGEgY29udGV4dCBmb3IgaG9sZGluZyBjb250ZXh0dWFsIGRhdGEgCmNvbnN0IGNvbnRleHQgPSBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IGRiID0gYXdhaXQgc3RhcnREYXRhYmFzZSgpOwoKICByZXR1cm4geyBkYiB9Owp9OwoKY29uc3QgYXBwID0gZXhwcmVzcygpOwoKYXBwLnVzZSgKICAmcXVvdDsvZ3JhcGhxbCZxdW90OywKICBncmFwaHFsSFRUUCh7CiAgICBzY2hlbWEsCiAgICByb290VmFsdWU6IHJlc29sdmVycywKICAgIGNvbnRleHQKICB9KQopOwoKLy9HcmFwaHFsIFBsYXlncm91bmQgcm91dGUKYXBwLmdldCgmcXVvdDsvcGxheWdyb3VuZCZxdW90OywgZXhwcmVzc1BsYXlncm91bmQoeyBlbmRwb2ludDogJnF1b3Q7L2dyYXBocWwmcXVvdDsgfSkpOwoKY29uc3QgcG9ydCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgJnF1b3Q7NDAwMCZxdW90OzsKCmFwcC5saXN0ZW4ocG9ydCk7Cgpjb25zb2xlLmxvZyhg8J+agCBTZXJ2ZXIgcmVhZHkgYXQgaHR0cDovL2xvY2FsaG9zdDo0MDAwL2dyYXBocWxgKTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBmaWxlIGFib3ZlLCB3ZSBzdGFydCBieSBpbXBvcnRpbmcgYWxsIG5lY2Vzc2FyeSBtb2R1bGVzLiBUaGVuLCB3ZSBjcmVhdGUgb3VyIEdyYXBoUUwgY29udGV4dCBhbmQgcmV0dXJuIGFuIG9iamVjdCBmcm9tIGl0IGNvbnRhaW5pbmcgdGhlIHJlZmVyZW5jZSB0byBvdXIgTW9uZ29EQiBpbnN0YW5jZS4gTmV4dCwgd2UgY3JlYXRlIG91ciBFeHByZXNzSlMgYXBwbGljYXRpb24gYW5kIHNldCB1cCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OyBtaWRkbGV3YXJlIHdpdGggR3JhcGhRTCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEmbHQ7L2NvZGUmZ3Q7LCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtyZXNvbHZlcnMmbHQ7L2NvZGUmZ3Q7LCBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29udGV4dCZsdDsvY29kZSZndDsuIFdlIHRoZW4gc2V0IHVwIHRoZSBHcmFwaFFMIFBsYXlncm91bmQgYXQgdGhlIHJvdXRlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBsb2FkIG91ciBHcmFwaFFMIGVuZHBvaW50LiBGaW5hbGx5LCB3ZSBzdGFydCBvdXIgRXhwcmVzc0pTIHNlcnZlciB0byBsaXN0ZW4gYXQgcG9ydCA0MDAwIGFuZCBwcmludCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1F1ZXJ5aW5nIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O05vdyB0aGF0IHdlIGhhdmUgb3VyIHNlcnZlciBzZXQgdXAsIGxldOKAmXMgdGFrZSBpdCBmb3IgYSBzcGluLiBGaXJzdCwgbGV04oCZcyBjcmVhdGUgYSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzdGFydCZsdDsvY29kZSZndDsgc2NyaXB0IGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3BhY2thZ2UuanNvbiZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHNjcmlwdCB0byB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2NyaXB0cyZsdDsvY29kZSZndDsgc2VjdGlvbiBvZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Li4uCgrigJxzY3JpcHRz4oCdIDogewoJLi4uLAoJ4oCcc3RhcnTigJ0gOiDigJxub2RlIGluZGV4Lmpz4oCdCn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25wbSBzdGFydCZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCB0aGUgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNlcnZlciBpcyB1cCBhbmQgcnVubmluZywgb3BlbiB1cCB5b3VyIGJyb3dzZXIgYW5kIHZpc2l0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMC9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBvcGVuIHVwIHRoZSBwbGF5Z3JvdW5kLiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDEucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgcGxheWdyb3VuZCBhdXRvbWF0aWNhbGx5IHBvaW50cyB0byBvdXIgR3JhcGhRTCBlbmRwb2ludC4gRnJvbSBoZXJlIHdlIGNhbiB3cml0ZSBxdWVyaWVzIGFnYWluc3Qgb3VyIGVuZHBvaW50IGFuZCBnZXQgdGhlIHJlc3VsdHMuIFBhc3RlIHRoZSBxdWVyeSBiZWxvdyBpbnRvIHRoZSBxdWVyeSBzZWN0aW9uIG9mIHRoZSBwbGF5Z3JvdW5kIGFuZCBoaXQgUGxheSB0byBydW4gaXQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt7CiAgdXNlcnMgewogICAgbmFtZQogICAgZW1haWwKICAgIHBvc3RzIHsKICAgICAgdGl0bGUKICAgICAgcHVibGlzaGVkCiAgICB9CiAgfQp9CgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtSdW5uaW5nIHRoZSBhYm92ZSBxdWVyeSB3aWxsIHByb2R1Y2UgdGhlIHJlc3VsdCBzaG93biBvbiB0aGUgc2NyZWVuIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsMi5wbmcmcXVvdDsgd2lkdGg9JnF1b3Q7ODc1JnF1b3Q7IC8mZ3Q7CiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIHNlZW4gYWJvdmUsIG91ciBHcmFwaFFMIHNlcnZlciBpcyB3b3JraW5nIGZpbmUgYW5kIHJldHVybmluZyB0aGUgZXhwZWN0ZWQgZGF0YS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRvIEhlcm9rdSB3aXRoIENpcmNsZUNJJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7T3VyIGZpbmFsIHRhc2sgaXMgdG8gZGVwbG95IG91ciBHcmFwaFFMIHNlcnZlciB0aHJvdWdoIGEgQ0kgcGlwZWxpbmUgd2l0aCBDaXJjbGVDSSBvbiB0aGUgSGVyb2t1IGhvc3RpbmcgcGxhdGZvcm0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2UgYXJlIGdvaW5nIHRvIHRha2UgdGhlIGZvbGxvd2luZyBzdGVwcyB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7UHVzaCB0aGUgcHJvamVjdCB0byBhIEdpdEh1YiByZXBvc2l0b3J5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgbmV3IEhlcm9rdSBhcHAgYW5kIGdldCB0aGUgSGVyb2t1IEFQSSBrZXkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgYSBuZXcgcHJvamVjdCB0byBvdXIgQ2lyY2xlQ0kgYWNjb3VudCBhbmQgY29ubmVjdCBpdCB0byB0aGUgR2l0SHViIHJlcG8mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgb3VyIEhlcm9rdSBhcHAgbmFtZSBhbmQgQVBJIGtleSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gb3VyIG5ldyBwcm9qZWN0Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7V3JpdGUgb3VyIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgZGVwbG95bWVudCB0byBIZXJva3UmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIHRoZSBjb25maWd1cmF0aW9uIHRvIG91ciBHaXRIdWIgcmVwbyB0byBkZXBsb3kgdG8gSGVyb2t1Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0xldOKAmXMgYmVnaW4uIEZpcnN0LCBwdXNoIHRoZSBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG8uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY3JlYXRlIGEgSGVyb2t1IGFwcGxpY2F0aW9uIGFzIHNob3duIGJlbG93LiBUaGUgbmFtZSB5b3UgZW50ZXIgaXMgdGhlIG5hbWUgeW91IHdpbGwgc2F2ZSBhcyB5b3VyIEhlcm9rdSBhcHAgbmFtZSBvbiBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWwzLnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7WW91IGNhbiBnZXQgeW91ciBIZXJva3UgQVBJIGtleSBieSBnb2luZyB0byAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgYW5kIHNjcm9sbGluZyBkb3duIHRvIHRoZSAmbHQ7c3Ryb25nJmd0O0FQSSBLZXkmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIHRvIGRlcGxveWluZyBvdXIgYXBwbGljYXRpb24gdG8gSGVyb2t1IGlzIHRvIGNvbm5lY3QgdGhlIGFwcGxpY2F0aW9uIG9uIG91ciBHaXRIdWIgcmVwb3NpdG9yeSB0byBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIZWFkIHRvIHlvdXIgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9kYXNoYm9hcmQmcXVvdDsmZ3Q7Q2lyY2xlQ0kgZGFzaGJvYXJkJmx0Oy9hJmd0OyBhbmQgYWRkIHRoZSBwcm9qZWN0IGluIHRoZSAmbHQ7c3Ryb25nJmd0O0FkZCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7IHNlY3Rpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsNC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCAoaW4gdGhpcyBjYXNlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NpbXBsZS1ncmFwaHFsLW5vZGUtc2VydmVyJmx0Oy9jb2RlJmd0OyksIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0IFVwIFByb2plY3QmbHQ7L3N0cm9uZyZndDsuIFRoaXMgd2lsbCBicmluZyB5b3UgdG8gYSBwYWdlIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDUucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IGJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIHByb2plY3QuIFRoaXMgd2lsbCBpbW1lZGlhdGVseSBnaXZlIHVzIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCBhIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIHByb2plY3QuIFRoaXMgaXMgdW5kZXJzdGFuZGFibGUsIGFzIHdlIGFyZSB5ZXQgdG8gaW5jbHVkZSBvdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlLiBXZSB3aWxsIGJlIGRvaW5nIHRoYXQgbGF0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIG5leHQgc3RlcCBpcyB0byBhZGQgb3VyIEhlcm9rdSBkZXRhaWxzIGFzICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wL2Vudi12YXJzLyZxdW90OyZndDtlbnZpcm9ubWVudCB2YXJpYWJsZXMmbHQ7L2EmZ3Q7IHRvIHRoZSBuZXdseSBzZXQgdXAgcHJvamVjdC4KSW4gb3JkZXIgdG8gcHVzaCBvdXIgcHJvamVjdCB0byBIZXJva3UgZnJvbSBDaXJjbGVDSSwgd2UgbmVlZCB0byBjb25maWd1cmUgYW4gYXV0aGVudGljYXRlZCBoYW5kc2hha2UgYmV0d2VlbiBDaXJjbGVDSSBhbmQgSGVyb2t1LiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcgdHdvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgc2V0dGluZ3MgZm9yIHlvdXIgQ2lyY2xlQ0kgcHJvamVjdC4gVGhlIHR3byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtIRVJPS1VfQVBQX05BTUUmbHQ7L2NvZGUmZ3Q7OiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIChpbiB0aGlzIGNhc2UgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2ltcGxlLWdyYXBocWwtbm9kZS1zZXJ2ZXImbHQ7L2NvZGUmZ3Q7KSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OzogWW91ciBIZXJva3UgYWNjb3VudCBBUEkga2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBvbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50Jmx0Oy9zdHJvbmcmZ3Q7IHRhYiBvZiB5b3VyIEhlcm9rdSBhY2NvdW50IHVuZGVyICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VG8gYWRkIHRoZXNlIGRldGFpbHMsIGhlYWQgb3ZlciB0byB5b3VyIENpcmNsZUNJIGRhc2hib2FyZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBmb3IgeW91ciBwcm9qZWN0LiBPbiB0aGUgc2lkZWJhciBtZW51IG9uIHRoZSBzZXR0aW5ncyBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O0Vudmlyb25tZW50IFZhcmlhYmxlcyZsdDsvc3Ryb25nJmd0OyB1bmRlciAmbHQ7c3Ryb25nJmd0O0J1aWxkIFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDYucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIHBhZ2UsIGNyZWF0ZSB0d28gdmFyaWFibGVzIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OyBhbmQgYWRkIHRoZSByZXNwZWN0aXZlIHZhbHVlcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZXNlIGluIHBsYWNlLCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBjYW4gdXNlIHRoZW0gdG8gbWFrZSBhdXRoZW50aWNhdGVkIGRlcGxveW1lbnRzIHRvIHRoZSBIZXJva3UgcGxhdGZvcm0uCk5vdywgbGV04oCZcyB3cml0ZSBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyIHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtDcmVhdGUgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsuY2lyY2xlY2kmbHQ7L2NvZGUmZ3Q7IGF0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCBhbmQgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgaXQuIEFkZCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uJmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpvcmJzOgogIGhlcm9rdTogY2lyY2xlY2kvaGVyb2t1QDAuMC4xMAp3b3JrZmxvd3M6CiAgaGVyb2t1X2RlcGxveToKICAgIGpvYnM6CiAgICAgIC0gaGVyb2t1L2RlcGxveS12aWEtZ2l0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7VGhlIGNvZGUgYWJvdmUgdXNlcyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7SGVyb2t1IG9yYiZsdDsvYSZndDsgdG8gcGVyZm9ybSBhIHNlYW1sZXNzIGRlcGxveW1lbnQgdG8gSGVyb2t1LiBBbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYiZsdDsvYSZndDsgaXMgYSByZXVzYWJsZSBwYWNrYWdlIG9mIGEgWUFNTCBjb25maWd1cmF0aW9uIHRoYXQgY29uZGVuc2VzIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoaXMgb25lIG1ha2VzIGl0IHZlcnkgZWFzeSB0byBkZXBsb3kgdG8gSGVyb2t1IHdpdGhvdXQgd3JpdGluZyBhIHNvcGhpc3RpY2F0ZWQgY29uZmlnIHlvdXJzZWxmLiZsdDsvcCZndDsKCiZsdDtwJmd0O1NhdmUgdGhpcyBmaWxlIGFuZCBwdXNoIHlvdXIgY2hhbmdlcyB0byB0aGUgR2l0SHViIHJlcG9zaXRvcnkuIFRoZW4gd2F0Y2ggeW91ciBDaXJjbGVDSSBkYXNoYm9hcmQgdHJpZ2dlciBhIGRlcGxveW1lbnQgYWZ0ZXIgdGhlIHN1Y2Nlc3NmdWwgcHVzaC4gWW91IHdpbGwgc2VlIGEgc3VjY2Vzc2Z1bCBkZXBsb3ltZW50IG9uIHlvdXIgZGFzaGJvYXJkIHNpbWlsYXIgdG8gdGhlIHNjcmVlbiBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWw3LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXdlc29tZSEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXTigJlzIG5vdyB2aXNpdCBvdXIgUGxheWdyb3VuZCBvbiB0aGUgbGl2ZSBhcHBsaWNhdGlvbiB0byBjb25maXJtIHRoYXQgb3VyIGRlcGxveW1lbnQgaXMgZmluZS4gVmlzaXQgdGhlIGxpbmsgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9ZT1VSX0hFUk9LVV9BUFBfTkFNRS5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7LiBGb3Igb3VyIGV4ZXJjaXNlLCB0aGlzIHdpbGwgYmUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9zaW1wbGUtZ3JhcGhxbC1ub2RlLXNlcnZlci5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7IGFzIHNlZW4gYmVsb3cuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsOC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SW4gdGhpcyBhcnRpY2xlLCB3ZSBoYXZlIGJlZW4gYWJsZSB0byBzdWNjZXNzZnVsbHkgcHV0IHRvZ2V0aGVyIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyIGFuZCBhdXRvbWF0ZSBpdHMgZGVwbG95bWVudCB1c2luZyBDaXJjbGVDSS4gR3JhcGhRTCBpcyBoZXJlIHRvIHN0YXkgYW5kIGlzIGV4cGVjdGVkIHRvIGdhaW4gbW9yZSBhZG9wdGlvbiwgc2luY2UgaXRzIG1hbnkgYmVuZWZpdHMgbWFrZSBpdCB3b3J0aHkgb2YgaW5jcmVhc2VkIHVzZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIYXBweSBjb2RpbmchJmx0Oy9wJmd0OwoKJmx0O2hyIC8mZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Eb2NrZXIgYW5kIENJL0NEIHR1dG9yaWFsOiBhIGRlZXAgZGl2ZSBpbnRvIGNvbnRhaW5lcnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZG9ja2VyLWFuZC1jaWNkLXR1dG9yaWFsLWEtZGVlcC1kaXZlLWludG8tY29udGFpbmVycy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+RnJpLCAyNCBBcHIgMjAyMCAxMjowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9kb2NrZXItYW5kLWNpY2QtdHV0b3JpYWwtYS1kZWVwLWRpdmUtaW50by1jb250YWluZXJzLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkFuZ2VsIFJpdmVyYTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtUaGlzIGlzIGEgZm9sbG93LXVwIHRvIGEgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7IHRoYXQgSSB3cm90ZSBhZnRlciBDaXJjbGVDSSAyLjAgd2FzIHJlbGVhc2VkLiBUaGlzIHJlbGVhc2UgaW1wbGVtZW50ZWQgYnVpbGQgc3VwcG9ydCB1c2luZyBEb2NrZXIgZXhlY3V0b3JzLiBBZnRlciB0aGUgcmVsZWFzZSwgd2UgcmVhbGl6ZWQgdGhhdCBvbmUgb2YgdGhlIGJpZ2dlc3QgYmFycmllcnMgdGhhdCBDaXJjbGVDSSB1c2VycyBlbmNvdW50ZXJlZCB3YXMgYSBsYWNrIG9mIGV4cGVyaWVuY2Ugd2l0aCBEb2NrZXIuIFRoaXMgd2FzIGNvbmZpcm1lZCB0aHJvdWdoIG15IGNvbnZlcnNhdGlvbnMgd2l0aCBudW1lcm91cyBkZXZlbG9wZXJzLCBpbiB0aGUgY29tbXVuaXR5IGFuZCBhdCBldmVudHMsIGFib3V0IHRoZWlyIHVzZSBvZiBjb250YWluZXIgdGVjaG5vbG9naWVzIGluIHRoZWlyICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmVzLiBUaGVzZSBjb252ZXJzYXRpb25zIGhhdmUgaGlnaGxpZ2h0ZWQgdGhhdCBtYW55IGRldmVsb3BlcnMgZG9u4oCZdCBoYXZlIGEgZnVsbCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byB1c2UgY29udGFpbmVyIHRlY2hub2xvZ2llcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgd2lsbCBleHBhbmQgb24gYW5kIGRlbW9uc3RyYXRlIHNvbWUgb2YgdGhlIG1vcmUgdXNlZnVsIERvY2tlciBjb21tYW5kcyBkaXNjdXNzZWQgaW4gbXkgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtXaGF0IGlzIERvY2tlcj8mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZSBpcyB0aGUgc2ltcGxpZmllZCBkZWZpbml0aW9uIG9mIERvY2tlciB0aGF0IEkgdXNlZCBpbiBteSBwcmV2aW91cyBwb3N0OiZsdDsvcCZndDsKCiZsdDtibG9ja3F1b3RlJmd0OwogICZsdDtwJmd0O0RvY2tlciBpcyBhIHBsYXRmb3JtIGZvciBkZXZlbG9wZXJzIGFuZCBzeXNhZG1pbnMgdG8gZGV2ZWxvcCwgZGVwbG95LCBhbmQgcnVuIGFwcGxpY2F0aW9ucyB1c2luZyBjb250YWluZXJzLiZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7RG9ja2VyIGlzIGFsc28gcmVmZXJyZWQgdG8gYXMgYW4gYXBwbGljYXRpb24gcGFja2FnaW5nIHRvb2wgdGhhdCBlbmFibGVzIGFwcGxpY2F0aW9ucyB0byBiZSBjb25maWd1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZC8jaW1hZ2VzLWFuZC1jb250YWluZXJzJnF1b3Q7Jmd0O0RvY2tlciBpbWFnZSZsdDsvYSZndDsgdGhhdCBjYW4gYmUgdXNlZCB0byBzcGF3biAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyNpbWFnZXMtYW5kLWNvbnRhaW5lcnMmcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IHRoYXQgcnVuIGluc3RhbmNlcyBvZiB0aGUgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIG1hbnkgYmVuZWZpdHMgaW5jbHVkaW5nIHJ1bnRpbWUgZW52aXJvbm1lbnQgaXNvbGF0aW9uLCBjb25zaXN0ZW5jeSB2aWEgY29kZSwgYW5kIHBvcnRhYmlsaXR5LiBEb2NrZXIgY29udGFpbmVycyBjYW4gcnVuIG9uIGFueSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgc3VwcG9ydHMgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZW5naW5lJnF1b3Q7Jmd0O0RvY2tlciBFbmdpbmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtCYXNpYyBEb2NrZXIgdGVybWlub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZeKAmXMgYSBsaXN0IG9mIGJhc2ljIERvY2tlciBjb21tYW5kcyBhbmQgdGVybXMgd2l0aCBsaW5rcyB0byBtb3JlIGluZm9ybWF0aW9uLiBUaGVzZSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgRG9ja2VyIGFuZCBjb250cm9sIHRoZSBleGVjdXRvci4gVGhlIGNvbW1hbmRzIGNhbiBiZSBydW4gbG9jYWxseSBvbiBhbnkgY29tcHV0ZXIgdGhhdCBoYXMgdGhlIERvY2tlciBlbmdpbmUgaW5zdGFsbGVkLiZsdDsvcCZndDsKCiZsdDtoMyZndDtCdWlsZGluZyBEb2NrZXIgaW1hZ2VzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBhIHRleHQgZG9jdW1lbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNvbW1hbmRzIGEgdXNlciBjb3VsZCBjYWxsIG9uIHRoZSBjb21tYW5kIGxpbmUgdG8gYXNzZW1ibGUgYW4gaW1hZ2UuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBEb2NrZXJmaWxlIGlzIGEgYmx1ZXByaW50IGZvciBidWlsZGluZyBEb2NrZXIgaW1hZ2VzLiBEb2NrZXJmaWxlIHRlbXBsYXRlcyBob2xkIGVsZW1lbnRzIHN1Y2ggYXMgdGhlIGJhc2Ugb3BlcmF0aW5nIHN5c3RlbSBpbWFnZSB1c2VkIGFzIGEgZm91bmRhdGlvbiwgZXhlY3V0aW9uIGNvbW1hbmRzIHRoYXQgaW5zdGFsbC9jb25maWd1cmUgZGVwZW5kZW5jaWVzLCBhbmQgY29weSBjb21tYW5kcyB0aGF0IHB1c2ggbG9jYWwgc291cmNlIGNvZGUgb3IgYXJ0aWZhY3RzIGludG8gdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBEb2NrZXJmaWxlIGZvciBhIHNpbXBsZSBOb2RlLmpzIGFwcGxpY2F0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7RlJPTSBub2RlOjEwCgojIENyZWF0ZSBhcHAgZGlyZWN0b3J5CldPUktESVIgL3Vzci9zcmMvYXBwCgojIEluc3RhbGwgYXBwIGRlcGVuZGVuY2llcwojIEEgd2lsZGNhcmQgaXMgdXNlZCB0byBlbnN1cmUgYm90aCBwYWNrYWdlLmpzb24gQU5EIHBhY2thZ2UtbG9jay5qc29uIGFyZSBjb3BpZWQKIyB3aGVyZSBhdmFpbGFibGUgKG5wbUA1KykKQ09QWSBwYWNrYWdlKi5qc29uIC4vCgpSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIyBJZiB5b3UgYXJlIGJ1aWxkaW5nIHlvdXIgY29kZSBmb3IgcHJvZHVjdGlvbgojIFJVTiBucG0gaW5zdGFsbCAtLW9ubHk9cHJvZHVjdGlvbgoKIyBCdW5kbGUgYXBwIHNvdXJjZQpDT1BZIC4gLgoKRVhQT1NFIDUwMDAKQ01EIFsgJnF1b3Q7bnBtJnF1b3Q7LCAmcXVvdDtzdGFydCZxdW90OyBdCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2ltYWdlcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7IGxpc3RzIERvY2tlciBpbWFnZXMgZm91bmQgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gbGlzdCBhbGwgb2YgdGhlIERvY2tlciBpbWFnZXMgYW5kIHJlbGF0ZWQgZGF0YSB0aGF0IGN1cnJlbnRseSBleGlzdCBvbiB0aGUgbG9jYWwgbWFjaGluZS4gSXTigJlzIGNvbXBhcmFibGUgdG8gYSBsaW51eCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtscyZsdDsvY29kZSZndDsgb3Igd2luZG93cyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkaXImbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdXNlZCB0byBzaG93IHRoZSBjb250ZW50cyBvZiBkaXJlY3RvcmllcyBpbiBhIHRlcm1pbmFsLiBUaGlzIGNvbW1hbmQgaXMgdmVyeSB1c2VmdWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRvIG1hbmFnZSwgbWFpbnRhaW4sIGFuZCBidWlsZCBEb2NrZXIgaW1hZ2VzIGxvY2FsbHkuIEJlbG93IGlzIGFuIGV4YW1wbGUgcmVzdWx0IG9mIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgZXhlY3V0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UkVQT1NJVE9SWSAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHICAgICAgICAgICAgICAgICBJTUFHRSBJRCAgICAgICAgICAgIENSRUFURUQgICAgICAgICAgICAgU0laRQphcml2M3JhL25vZGVqcy1jaXJjbGVjaSAgICAgICAgICAgICBsYXRlc3QgICAgICAgICAgICAgIGY0MTllNGE2YjFiOCAgICAgICAgMTEgZGF5cyBhZ28gICAgICAgICA5NDNNQgpub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAgICAgICAgICAgICAgICAgIDAxYjgxNjA1MWQzNCAgICAgICAgMiB3ZWVrcyBhZ28gICAgICAgICA5MTFNQgpjaXJjbGVjaS9weXRob24gICAgICAgICAgICAgICAgICAgICAzLjcuNiAgICAgICAgICAgICAgIDBkMjk3NTg5NmM3MyAgICAgICAgNSB3ZWVrcyBhZ28gICAgICAgICAxLjQzR0IKYXJpdjNyYS9pbmZyYXN0cnVjdHVyZS1hcy1jb2RlMTAxICAgbGF0ZXN0ICAgICAgICAgICAgICBjYjIxYTM2YTI5NzMgICAgICAgIDggd2Vla3MgYWdvICAgICAgICAgOTI5TUIKcHl0aG9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43LjYgICAgICAgICAgICAgICA4NzkxNjU1MzVhNTQgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgOTE5TUIKY2lyY2xlY2kvcnVzdCAgICAgICAgICAgICAgICAgICAgICAgMS1idXN0ZXIgICAgICAgICAgICAyMTgzMjliOTI5Y2YgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgMS42OEdCCnJ1c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtYnVzdGVyICAgICAgICAgICAgZjVmZGUwOTJhMWNkICAgICAgICAyIG1vbnRocyBhZ28gICAgICAgIDEuMTlHQgpweXRob24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcuNCAgICAgICAgICAgICAgIDlmYTU2ZDBhZGRhZSAgICAgICAgNiBtb250aHMgYWdvICAgICAgICA5MThNQgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGJ1aWxkIC10ICZhbXA7bHQ7aW1hZ2UgbmFtZSZhbXA7Z3Q7IC4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBjcmVhdGVzIGEgRG9ja2VyIGltYWdlIHdpdGggYSB0YWcgdXNpbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LXQmbHQ7L2NvZGUmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhYm92ZSBjb21tYW5kLCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgdmFsaWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDssIGJ1aWxkcyBhIERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgZXhlY3V0aW9uIGNvbW1hbmRzIGRlZmluZWQgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7LiBPbmUgY3JpdGljYWwgZWxlbWVudCB0byBidWlsZGluZyBpbWFnZXMgYW5kIHN0YXJ0aW5nIGNvbnRhaW5lcnMgaXMgdW5kZXJzdGFuZGluZyB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9hJmd0Oy4gQnVpbGRpbmcgRG9ja2VyIGltYWdlcyB1c2luZyB0aGlzIGNvbW1hbmQgc3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIERvY2tlciBpbWFnZXMgdXRpbGl6ZXMgYSBuYW1pbmcgY29udmVudGlvbiBtYWRlIHVwIG9mIHNsYXNoLXNlcGFyYXRlZCBuYW1lIGNvbXBvbmVudHMgdGhhdCBtYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgc2VwYXJhdG9ycy4gQSBzZXBhcmF0b3IgaXMgZGVmaW5lZCBhcyBhIHBlcmlvZCwgb25lIG9yIHR3byB1bmRlcnNjb3Jlcywgb3Igb25lIG9yIG1vcmUgZGFzaGVzLiBBIG5hbWUgY29tcG9uZW50IG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggYSBzZXBhcmF0b3IuIEEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7ZG9ja2VyIHRhZyZsdDsvYSZndDsgbmFtZSBtdXN0IGJlIHZhbGlkIEFTQ0lJIGFuZCBtYXkgY29udGFpbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHVuZGVyc2NvcmVzLCBwZXJpb2RzLCBhbmQgZGFzaGVzLiBBIHRhZyBuYW1lIG1heSBub3Qgc3RhcnQgd2l0aCBhIHBlcmlvZCBvciBhIGRhc2ggYW5kIG1heSBjb250YWluIGEgbWF4aW11bSBvZiAxMjggY2hhcmFjdGVycy4gWW91IGNhbiBncm91cCB5b3VyIGltYWdlcyB0b2dldGhlciB1c2luZyBuYW1lcyBhbmQgdGFncy4gSW4gdGhpcyBwb3N0LCB3ZSB3aWxsIHVzZSB0aGlzIG5hbWluZyBjb252ZW50aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB0aGF0IHdl4oCZdmUgZGlzY3Vzc2VkIG5hbWluZyBjb252ZW50aW9ucyBsZXTigJlzIGJ1aWxkIGEgRG9ja2VyIGltYWdlIGJhc2VkIG9uIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXJmaWxlJmx0Oy9jb2RlJmd0OyBpbiBvdXIgZXhhbXBsZSBhYm92ZS4gSW4gdGhpcyBwb3N0IHdlIGNhbiB1dGlsaXplIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9wdW5rZGF0YS9ub2RlanMtY2lyY2xlY2kmcXVvdDsmZ3Q7cHVua2RhdGEvbm9kZWpzLWNpcmNsZWNpJmx0Oy9hJmd0OyBnaXQgcmVwby4gQ2xvbmUgaXQgbG9jYWxseSBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7JCBjZCZsdDsvY29kZSZndDsgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlbiBydW4gdGhpcyBjb21tYW5kIHRvIGJ1aWxkIGEgbmV3IERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgcHJvamVjdCBzb3VyY2UgY29kZSBhbmQgdGhlIGV4YW1wbGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgYnVpbGQgLXQgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0FmdGVyIHJ1bm5pbmcgdGhpcyBidWlsZCBjb21tYW5kLCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtTZW5kaW5nIGJ1aWxkIGNvbnRleHQgdG8gRG9ja2VyIGRhZW1vbiAgOTguMDdNQgpTdGVwIDEvNyA6IEZST00gbm9kZToxMAogLS0tJmFtcDtndDsgMDFiODE2MDUxZDM0ClN0ZXAgMi83IDogV09SS0RJUiAvdXNyL3NyYy9hcHAKIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyAxMmIyZWRjMmI5N2MKU3RlcCAzLzcgOiBDT1BZIHBhY2thZ2UqLmpzb24gLi8KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyA1M2I1YjhlNGU2NTQKU3RlcCA0LzcgOiBSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyBlZWZkZjU2MGJjNGQKU3RlcCA1LzcgOiBDT1BZIC4gLgogLS0tJmFtcDtndDsgYWE3ZDU0ZTk1NWM2ClN0ZXAgNi83IDogRVhQT1NFIDUwMDAKIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gY2M0MjdkYmFmZGNjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgY2M0MjdkYmFmZGNjCiAtLS0mYW1wO2d0OyA0Y2U5MDg0ZTM5ZWIKU3RlcCA3LzcgOiBDTUQgWyAmcXVvdDtucG0mcXVvdDssICZxdW90O3N0YXJ0JnF1b3Q7IF0KIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gZjZlODU0NTk5ZGRjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgZjZlODU0NTk5ZGRjCiAtLS0mYW1wO2d0OyA3OWE4ZDk0Y2JmNDIKU3VjY2Vzc2Z1bGx5IGJ1aWx0IDc5YThkOTRjYmY0MgpTdWNjZXNzZnVsbHkgdGFnZ2VkIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2VzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgeW91ciBuZXdseSBjcmVhdGVkIERvY2tlciBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDskIGRvY2tlciBpbWFnZXMKClJFUE9TSVRPUlkgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRyAgICAgICAgICAgICAgICAgSU1BR0UgSUQgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNJWkUKdHV0b3JpYWwvY2lyY2xlY2ktbm9kZSAgICAgICAgICAgICAgMTAgICAgICAgICAgICAgICAgICA3OWE4ZDk0Y2JmNDIgICAgICAgIDQgbWludXRlcyBhZ28gICAgICAgMS4wM0dCCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyB5b3UgaGF2ZSBhbiBhd2Vzb21lIERvY2tlciBpbWFnZSBidWlsdCBhbmQgcmVhZHkgdG8gdXNlLiBJbiB0aGUgbmV4dCBzZWN0aW9uIEnigJlsbCBjcmVhdGUgbmV3IGluc3RhbmNlcyBvZiB0aGlzIERvY2tlciBpbWFnZSBpbiB0aGUgZm9ybSBvZiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvY29udGFpbmVyLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXIgY29udGFpbmVycyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBjb250YWluZXJzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IGFyZSBkZXNpZ25lZCB0byBydW4gYXBwbGljYXRpb25zIGluIGlzb2xhdGlvbiBhbmQgYXQgc2NhbGUuICBUaGV5IGFsbG93IGZvciBzdHJlYW1saW5pbmcgdGhlIG1hbmFnZW1lbnQgYW5kIGltcGxlbWVudGF0aW9uIG9mIGFwcGxpY2F0aW9ucy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7QmVmb3JlIHdlIHN0YXJ0IGNyZWF0aW5nIGFuZCBydW5uaW5nIERvY2tlciBjb250YWluZXJzLCBJ4oCZbGwgYWRkIHNvbWUgY29udGV4dC4gRG9ja2VyIGNvbnRhaW5lcnMgYXJlIG9iamVjdHMgdGhhdCBhcmUgYmFzZWQgb24gYW5kIHNwYXduZWQgZnJvbSBEb2NrZXIgaW1hZ2VzLiBEb2NrZXIgaW1hZ2VzIGFyZSB0ZW1wbGF0ZXMuIEkgbGlrZW4gdGhlbSB0byBjb29raWUgY3V0dGVyIG1vbGRzLiBDb29raWUgY3V0dGVyIG1vbGRzIGVuYWJsZSB5b3UgdG8gcXVpY2tseSBhbmQgY29uc2lzdGVudGx5IHByb2R1Y2UgaW5kaXZpZHVhbCBjb29raWVzIGZyb20gZG91Z2guIEkgbGlrZW4gdGhlc2UgY29va2llcyB0byBEb2NrZXIgY29udGFpbmVycyB3aGljaCBhcmUgZGlzdGluZ3Vpc2hlZCBpbiBzaGFwZSBieSB0aGUgdHlwZSBvZiBjb29raWUgbW9sZCwgb3IgRG9ja2VyIGNvbnRhaW5lciwgdXNlZCBpbiB0aGUgY3V0dGluZy9idWlsZGluZyBwcm9jZXNzLiBTbyB1c2luZyBteSBjb29raWUgY3V0dGVyIGFuYWxvZ3ksIERvY2tlciBpbWFnZXMgYXJlIHRoZSBjb29raWUgY3V0dGVyIGFuZCB0aGUgaW5kaXZpZHVhbCBjb29raWVzIGN1dCB1c2luZyB0aGF0IGN1dHRlciBhcmUgZXF1aXZhbGVudCB0byBEb2NrZXIgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCBJ4oCZdmUgcHJvYmFibHkgbWFkZSB5b3UgYSBiaXQgaHVuZ2FyeSBmb3IgY29va2llcywgbGV04oCZcyBzdGFydCBydW5uaW5nIHNvbWUgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBydW5zIGEgY29tbWFuZCBpbiBhIG5ldyBjb250YWluZXIuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY29tbWFuZCBvZiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgc3RhcnRpbmcgRG9ja2VyIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCBhIG5ldyBjb250YWluZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcnVuIC1kIC1wIDUwMDA6NTAwMCAtLW5hbWUgbm9kZXRlc3QwMSB0dXRvcmlhbC9jaXJjbGVjaS1ub2RlOjEwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NvbmdyYXRzISBZb3Ugc2hvdWxkIG5vdyBoYXZlIHRoZSBOb2RlLmpzIGltYWdlIHJ1bm5pbmcgaW4gdGhlIG5ldyBjb250YWluZXIgdGhhdCB5b3UganVzdCBjcmVhdGVkIGF2YWlsYWJsZSBvbiBwb3J0IDUwMDAuIE9wZW4gYSB3ZWIgYnJvd3NlciBhbmQgZ28gdG8gdGhpcyBhZGRyZXNzOiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtodHRwOi8vbG9jYWxob3N0OjUwMDAmbHQ7L2NvZGUmZ3Q7LiBJdCB3aWxsIHRha2UgeW91IHRoZSBzdGF0aWMg4oCcV2VsY29tZSB0byBDSS9DRCAxMDEgdXNpbmcgQ2lyY2xlQ0kh4oCdIHdlYiBwYWdlIHNlcnZlZCBieSB0aGlzIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsc28gdmVyaWZ5IHlvdXIgY29udGFpbmVyIGlzIHJ1bm5pbmcgYnkgZXhlY3V0aW5nIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbC4gV2XigJlsbCBkaXNjdXNzIHRoaXMgaW4gdGhlIG5leHQgc2VjdGlvbi4gQmVmb3JlIHRoYXQsIGxldOKAmXMgc3RhcnQgYW4gb3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGFwcGxpY2F0aW9uIGJ5IHJ1bm5pbmcgYW5vdGhlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnRlZCBvdXIgZmlyc3QgY29udGFpbmVyIHdpdGggdGhlIG5hbWUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDsgYW5kIHNpbmNlIGNvbnRhaW5lciBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgd2XigJlyZSBnb2luZyB0byBuYW1lIG91ciBuZXcgY29udGFpbmVyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7LiBBbm90aGVyIGNoYW5nZSB0aGF0IG11c3QgYmUgbWFkZSBpbiBvdXIgbmV3IGNvbnRhaW5lciBpcyB0aGUgcG9ydCBudW1iZXIuIFdl4oCZbGwgY2hhbmdlIGl0IGZyb20gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMCZsdDsvY29kZSZndDsgdG8gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMSZsdDsvY29kZSZndDsgc2luY2UgYXBwbGljYXRpb25zIGNhbm5vdCBvY2N1cHkgdGhlIHNhbWUgcG9ydCBudW1iZXIgb24gdGhlIHNhbWUgbmV0d29yayBpbnRlcmZhY2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RXhlY3V0ZSB0aGUgZm9sbG93aW5nICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtZCAtcCA1MDAxOjUwMDAgLS1uYW1lIG5vZGV0ZXN0MDIgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISBZb3Ugbm93IGhhdmUgdHdvIGNvbnRhaW5lcnMgcnVubmluZyBvbiB5b3VyIGxvY2FsIG1hY2hpbmUuIFlvdSBjYW4gZ28gdG8gdGhpcyBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMSZsdDsvY29kZSZndDsgaW4gYSBicm93c2VyIGFuZCBzZWUgdGhlIGFwcCBydW5uaW5nIGluIHlvdXIgc2Vjb25kIERvY2tlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaXMgdmVyeSByb2J1c3QgYW5kIGhhcyBtYW55IHByb3BlcnR5IGFuZCBjb25maWd1cmF0aW9uIGZsYWdzIHdoaWNoIEkgd29u4oCZdCBiZSBhYmxlIHRvIGFkZHJlc3Mgb3IgZGVtb25zdHJhdGUgaW4gdGhpcyBwb3N0LiBJIGhpZ2hseSByZWNvbW1lbmQgdGhhdCB5b3UgcmVhZCBhbmQgZmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgbWFueSB3YXlzIHRoYXQgeW91IGNhbiBleGVjdXRlIGFuZCBydW4gRG9ja2VyIGNvbnRhaW5lcnMuIFlvdSBjYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7cmVhZCB1cCBvbiBEb2NrZXIgY29udGFpbmVycyBjb21tYW5kcyBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9wcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbGlzdHMgYWxsIG9mIHRoZSBydW5uaW5nIERvY2tlciBjb250YWluZXJzLiBUaGlzIGNvbW1hbmQgc2VydmVzIGEgc2ltaWxhciBwdXJwb3NlIGFzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2UmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgYW5kIGxpc3RzIGFjdGl2ZWx5IHJ1bm5pbmcgY29udGFpbmVycy4gVXNlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDstYSZsdDsvY29kZSZndDsgZmxhZyB0byBzaG93IGFsbCBvZiB0aGUgcnVubmluZyBhbmQgbm90IHJ1bm5pbmcgY29udGFpbmVycy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoaXMgY29tbWFuZCBpbiBhIHRlcm1pbmFsIGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIGJvdGggb2YgdGhlIHByZXZpb3VzbHkgY3JlYXRlZCBjb250YWluZXJzIHJ1bm5pbmcgaW4gdGhlIHJlc3VsdHM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlIHJlc3VsdHMgd2lsbCBiZSBzaW1pbGFyIHRvIHRoaXMgc2hvd2luZyBib3RoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDEmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcnMgc3RpbGwgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0NPTlRBSU5FUiBJRCAgICAgICAgSU1BR0UgICAgICAgICAgICAgICAgICAgICAgIENPTU1BTkQgICAgICAgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNUQVRVUyAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICAgICAgIE5BTUVTCmRmZDMwMTgxZTE1YyAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAxMiBtaW51dGVzIGFnbyAgICAgIFVwIDEyIG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAxLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAyOCBtaW51dGVzIGFnbyAgICAgIFVwIDI4IG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAwLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7CiAgICAmbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvc3RhcnQvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdGFydHMgYW4gZXhpc3RpbmcgY29udGFpbmVyLiZsdDsvcCZndDsKICAmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsKICAgICZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9zdG9wLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdG9wcyBhbiBleGlzdGluZyBjb250YWluZXIuJmx0Oy9wJmd0OwogICZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgaXMgb25seSB1c2VkIHRvIHN0YXJ0ICZsdDtzdHJvbmcmZ3Q7ZXhpc3RpbmcmbHQ7L3N0cm9uZyZndDsgY29udGFpbmVycyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcnVuJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBVbmxlc3MgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy0tcm09dHJ1ZSZsdDsvY29kZSZndDsgZmxhZyBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgbmV3bHkgY3JlYXRlZCBjb250YWluZXJzIHdpbGwgcGVyc2lzdCBhbmQgY2FuIGJlIHJldXNlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RhcnQmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCZsdDsvY29kZSZndDsgY29tbWFuZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdG9wIHNvbWUgcnVubmluZyBjb250YWluZXJzIGJ5IGV4ZWN1dGluZyB0aGVzZSBjb21tYW5kczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBzdG9wIG5vZGV0ZXN0MDEgbm9kZXRlc3QwMgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBydW5uaW5nIGNvbnRhaW5lcnMgc2hvdWxkIG5vdyBiZSBpbmFjdGl2ZSBhbmQgc3RvcHBlZC4gU2luY2UgdGhleeKAmXJlIHN0b3BwZWQsIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgaW5kaWNhdGluZyBzdG9wcGVkIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtDT05UQUlORVIgSUQgICAgICAgIElNQUdFICAgICAgICAgICAgICAgICAgICAgICBDT01NQU5EICAgICAgICAgICAgICAgICAgQ1JFQVRFRCAgICAgICAgICAgICBTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICBOQU1FUwpkZmQzMDE4MWUxNWMgICAgICAgIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAgICAmcXVvdDtkb2NrZXItZW50cnlwb2ludC5z4oCmJnF1b3Q7ICAgMzEgbWludXRlcyBhZ28gICAgICBFeGl0ZWQgKDApIDM4IHNlY29uZHMgYWdvICAgICAgICAgICAgICAgICAgICAgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICBBYm91dCBhbiBob3VyIGFnbyAgIEV4aXRlZCAoMCkgMzggc2Vjb25kcyBhZ28gICAgICAgICAgICAgICAgICAgICAgIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhvdWdoIHRoZXNlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQgdGhleSB3aWxsIHBlcnNpc3QgYW5kIGNhbiBiZSByZXN0YXJ0ZWQgdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCZsdDsvY29kZSZndDsgY29tbWFuZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXRzIHN0YXJ0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAxJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgc28gd2UgY2FuIGxlYXJuIGhvdyB0byB1c2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBmZWF0dXJlcyBpbiB0aGUgbmV4dCBzZWN0aW9uLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHN0YXJ0IG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Tm93IHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBOb3RpY2UgdGhlIHN0YXR1cyBmb3IgdGhpcyBjb250YWluZXIgcmVhZHMgc2ltaWxhciB0byAgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXAgYWJvdXQgYSAzMCBzZWNvbmRzJmx0Oy9jb2RlJmd0OyBvciBzb21ldGhpbmcgdG8gdGhhdCBlZmZlY3QuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9ncy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ3MmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBmZXRjaGVzIGEgY29udGFpbmVy4oCZcyBsb2dzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIHNlZSBsb2dzIHRoYXQgYXJlIHByZXNlbnQgYXQgdGhlIHRpbWUgb2YgZXhlY3V0aW9uLiBTaW5jZSB5b3VyIGFwcHMgYXJlIHJ1bm5pbmcgaW5zaWRlIHRoZXNlIGNvbnRhaW5lcnMsIHRoZSBsb2dzIGNvbW1hbmQgaXMgdXNlZnVsIGZvciByZWFkaW5nIG91dCBjcml0aWNhbCBhcHAgb3V0cHV0cy4gVGhpcyBoZWxwcyBpbiB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgYXBwIGlzIHBlcmZvcm1pbmcgYW5kIGFueSBkZWJ1Z2dpbmcvdHJvdWJsZXNob290aW5nIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBydW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDEmbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBsb2dzIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIGNvbW1hbmQgeW91IHNob3VsZCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHdoYXTigJlzIHNob3duIGJlbG93LiBJdCBzaG93cyB0aGF0IHRoZSBhcHAgaW5zaWRlIGNvbnRhaW5lciBpcyB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O05vZGUgc2VydmVyIGlzIHJ1bm5pbmcuLgoKJmFtcDtndDsgbm9kZWpzLWNpcmNsZWNpQDAuMC4xIHN0YXJ0IC91c3Ivc3JjL2FwcAomYW1wO2d0OyBub2RlIGFwcC5qcwoKTm9kZSBzZXJ2ZXIgaXMgcnVubmluZy4uCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0gJmFtcDtsdDtjb250YWluZXIgbmFtZSZhbXA7Z3Q7Jmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgZGVsZXRlcyBhIGNvbnRhaW5lciBvciBtdWx0aXBsZSBjb250YWluZXJzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtQZXJzaXN0aW5nIERvY2tlciBjb250YWluZXJzIGNvbnN1bWVzIGRpc2sgc3BhY2UgYW5kIHJlc291cmNlcyBvbiBpdHMgaG9zdC4gT3BlcmF0aW9uYWxseSwgaXQgZG9lc27igJl0IG1ha2UgbXVjaCBzZW5zZSB0byBwZXJzaXN0IGV2ZXJ5IGNvbnRhaW5lciBvbiBkaXNrIHNpbmNlIGluIG1vc3QgY2FzZXMgY29udGFpbmVycyBhcmUgZGlzcG9zYWJsZSBhbmQgc2hvdWxkIGJlIHVzZWQgdGhhdCB3YXkuIFNvIHdoZW4gYSBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpdCBzaG91bGQgYmUgcGVybWFuZW50bHkgZGlzY2FyZGVkIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgcGVybWFuZW50bHkgZGVsZXRlcyBjb250YWluZXJzIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAyJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBzbyBsZXTigJlzIHNhdmUgc29tZSBkaXNrIHNwYWNlIGFuZCBkZWxldGUgaXQuIE5vdGUgdGhpcyBjb21tYW5kIHdpbGwgb25seSBkZWxldGUgaW5hY3RpdmUvc3RvcHBlZCBjb250YWluZXJzIGFuZCB3aWxsIGVycm9yIG91dCBpZiBpdOKAmXMgcnVuIGFnYWluc3QgYW4gYWN0aXZlL3J1bm5pbmcgY29udGFpbmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBybSBub2RldGVzdDAyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm8gbG9uZ2VyIHNlZSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMiZsdDsvY29kZSZndDsgY29udGFpbmVyIG9uIHRoZSBob3N0IGFmdGVyIHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGhhcyBvdGhlciBwcm9wZXJ0aWVzIGFuZCBmbGFncyBhbmQgeW91IHNob3VsZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcm0vJnF1b3Q7Jmd0O2ZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggdGhlbSBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ybWkvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBybWkmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBkZWxldGVzIERvY2tlciBpbWFnZXMgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGFwcGxpZXMgdG8gZGVsZXRpbmcgRG9ja2VyIGltYWdlcyBmcm9tIGEgaG9zdC4gSWYgdGhlcmUgYXJlIGV4aXN0aW5nIGNvbnRhaW5lcnMgb24gdGhlIGhvc3QgdGhhdCBhcmUgYmFzZWQgb24gYSBzcGVjaWZpYyBpbWFnZSwgdGhlbiB0aGlzIGNvbW1hbmQgd2lsbCBub3QgYWxsb3cgdGhlIGRlbGV0aW9uIG9mIHRoZSBjb250YWluZXIgYmFzZWQgb24gdGhlIGltYWdlLiBZb3UgbXVzdCBmaXJzdCBlbnN1cmUgdGhlIGNvbnRhaW5lciBpcyBzdG9wcGVkIGFuZCBkZWxldGVkIGJlZm9yZSB5b3UgY2FuIGRlbGV0ZSBEb2NrZXIgaW1hZ2VzIHVzaW5nIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtaSZsdDsvY29kZSZndDsgY29tbWFuZC4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtaS8mcXVvdDsmZ3Q7UmVhZCB1cCBvbiB0aGUgZG9ja2VyIHJtaSBjb21tYW5kIGhlcmUmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBpbWFnZSBkZXBsb3ltZW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtNYW55IERvY2tlciBpbWFnZXMgYXJlIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgaG9zdGVkIG9uIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2RvY2tlci1odWIvJnF1b3Q7Jmd0O0RvY2tlciBIdWIgUmVnaXN0cnkmbHQ7L2EmZ3Q7IHdoaWNoIGlzIGFuIG9ubGluZSBjZW50cmFsIGhvc3Rpbmcgc29sdXRpb24gZm9yIERvY2tlciBpbWFnZXMuIERvY2tlciBIdWIgZW5hYmxlcyBhbnlvbmUgd2l0aCBhbiBpbnRlcm5ldCBjb25uZWN0aW9uIHRvIHB1bGwgZG93biBwdWJsaWNseSBhdmFpbGFibGUgaW1hZ2VzIGZyb20gdGhlIHJlZ2lzdHJ5IHRvIHRoZWlyIGxvY2FsIG1hY2hpbmVzIG9yIHNlcnZlcnMuIEl0IGFsc28gZW5hYmxlcyByZWdpc3RlcmVkIHVzZXJzIHRvIHVwbG9hZCBhbmQgcHVibGljbHkgc2hhcmUgYW55IG9mIHRoZWlyIGNvbnRhaW5lcnMgc28gdGhhdCBhbnlvbmUgY2FuIHB1bGwgZG93biB0aGF0IGltYWdlIGZyb20gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2h1Yi5kb2NrZXIuY29tLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIEnigJlsbCBicmllZmx5IGRpc2N1c3Mgc29tZSBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItaHViLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0OyByZWxhdGVkIGNvbW1hbmRzLiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3B1bGwvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBwdWxsJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgcHVsbHMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IGZyb20gYSByZWdpc3RyeS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGVuYWJsZXMgeW91IHRvIGRvd25sb2FkIGEgdmFsaWQgRG9ja2VyIGltYWdlIGZyb20gRG9ja2VyIEh1Yi4gUHVibGljbHkgYXZhaWxhYmxlIERvY2tlciBpbWFnZXMgZG8gbm90IHJlcXVpcmUgYXV0aGVudGljYXRpb24uIElmIHRoZSByZWdpc3RyeSBpcyBwcml2YXRlIHlvdSB3aWxsIG5lZWQgdG8gYXV0aGVudGljYXRlIHVzaW5nIGFuIGFzc2lnbmVkIGNyZWRlbnRpYWwgdXN1YWxseSBpbiB0aGUgZm9ybSBvZiBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ2luJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbG9ncyBpbnRvIGEgRG9ja2VyIHJlZ2lzdHJ5LiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyB5b3UgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgYSBEb2NrZXIgUmVnaXN0cnkuIElmIHlvdeKAmXJlIHVzaW5nIHRoaXMgbG9naW4gY29tbWFuZCB5b3Ugc2hvdWxkICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8jcHJvdmlkZS1hLXBhc3N3b3JkLXVzaW5nLXN0ZGluJnF1b3Q7Jmd0O3BvcHVsYXRlIGEgLnR4dCBmaWxlJmx0Oy9hJmd0OyB3aXRoIHlvdXIgRG9ja2VyIEh1YiBhY2NvdW50IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBwcm90ZWN0IHRoZXNlIGNyZWRlbnRpYWxzIGZyb20gZXhwb3N1cmUuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcHVzaC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHB1c2gmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBwdXNoZXMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IHRvIGEgcmVnaXN0cnkuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBlbmFibGVzIHVzZXJzIHRvIHVwbG9hZCBpbWFnZXMgdG8gYSBEb2NrZXIgcmVnaXN0cnkgYW5kIHJlcXVpcmVzIHZhbGlkIGNyZWRlbnRpYWxzLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O1NvIHRoZXJlIHlvdSBoYXZlIGl0LiBJbiB0aGlzIHBvc3QgSSB3ZW50IGEgYml0IGRlZXBlciBpbiBleHBsYWluaW5nIERvY2tlciB0ZXJtaW5vbG9neSBhbmQgY29tbWFuZHMgYXMgd2VsbCBhcyBjb250YWluZXJzIGFuZCB0aGVpciB1c2FnZS4gVGhlIGNvbW1hbmRzIEkgZGlzY3Vzc2VkIGFuZCBkZW1vbnN0cmF0ZWQsIGFyZSB0aGUgbW9zdCB3aWRlbHkgdXNlZCBjb21tYW5kcyBpbiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGxlYXJuaW5nIGEgYml0IG1vcmUgYWJvdXQgdGhlbSBhbmQgdGhlaXIgcHJvcGVydGllcyBhbmQgZmxhZ3Mgd2lsbCBkZWZpbml0ZWx5IGhlbHAgeW91IGxldmVsIHVwIHlvdXIgRG9ja2VyIGFuZCBjb250YWluZXIgc2tpbGxzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZhbWlsaWFyaXppbmcgeW91cnNlbGYgd2l0aCB0aGVzZSBiYXNpYyBjb21tYW5kcyB3aWxsIHJlbW92ZSBvbmUgb2YgdGhlIGxhcmdlciBiYXJyaWVycyB0aGF0IG5ldyB1c2VycyBvZiBDaXJjbGVDSSBlbmNvdW50ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SWYgeW91IHdhbnQgdG8gbGVhcm4gbW9yZSBhYm91dCBDaXJjbGVDSSBjaGVjayBvdXQgdGhlICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wLyZxdW90OyZndDtkb2N1bWVudGF0aW9uIHNpdGUmbHQ7L2EmZ3Q7LCBhbmQgaWYgeW91IHJlYWxseSBnZXQgc3R1Y2sgeW91IGNhbiByZWFjaCBvdXQgdG8gdGhlIENpcmNsZUNJIGNvbW11bml0eSB2aWEgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mbHQ7L2EmZ3Q7IGNvbW11bml0eS9mb3J1bSBzaXRlLiZsdDsvcCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogIDwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:53 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:56:53 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"20bba47a30a9724c","ot-tracer-traceid":"5709f72c3db93960","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889413799:ba354f7f5717
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:11:53 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da323d97f0f5a-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce644a6200000f5aff229200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:53 GMT
+recorded_with: VCR 5.1.0
diff --git a/spec/support/fixtures/vcr_cassettes/RssReader/_get_all_articles/logs_an_article_creation_error.yml b/spec/support/fixtures/vcr_cassettes/RssReader/_get_all_articles/logs_an_article_creation_error.yml
new file mode 100644
index 000000000..8a93041af
--- /dev/null
+++ b/spec/support/fixtures/vcr_cassettes/RssReader/_get_all_articles/logs_an_article_creation_error.yml
@@ -0,0 +1,443 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:56:50 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"56fe575a23be4390","ot-tracer-traceid":"7a6392bd7d2b861c","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889410087:39fde228a7df
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:11:50 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da30ca8b3be2d-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce643be40000be2d3eaf0200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDExOjQ4OjUyIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:50 GMT
+- request:
+ method: get
+ uri: https://circleci.com/blog/feed.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/xml
+ Date:
+ - Tue, 19 May 2020 11:56:50 GMT
+ Etag:
+ - '"d148e5f0c8f6530989f97099948abd37"'
+ Last-Modified:
+ - Tue, 19 May 2020 02:33:22 GMT
+ Server:
+ - nginx
+ Strict-Transport-Security:
+ - max-age=15724800
+ X-Amz-Id-2:
+ - f+NuhWZb97lY4Ow9mvlz03WMBiApXz+kT6aGEANiRL16WPQUr8Jw1OCtCy9ELNL1tOtmoDn9+zE=
+ X-Amz-Request-Id:
+ - F7E75F4A31412704
+ X-Frame-Options:
+ - SAMEORIGIN
+ Content-Length:
+ - '183502'
+ Connection:
+ - keep-alive
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiCiAgeG1sOmJhc2U9Imh0dHBzOi8vY2lyY2xlY2kuY29tLyIKICB4bWxuczphdG9tPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8Y2hhbm5lbD4KICAgIDx0aXRsZT5UaGUgQ2lyY2xlQ0kgQmxvZyBGZWVkIC0gQ2lyY2xlQ0k8L3RpdGxlPgogICAgPGRlc2NyaXB0aW9uPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgbmV3cywgdXBkYXRlcywgYW5kIGhhY2tzIGZyb20gQ2lyY2xlQ0kuPC9kZXNjcmlwdGlvbj4KICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvPC9saW5rPgogICAgPGF0b206bGluayBocmVmPSJodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2ZlZWQueG1sIiByZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Db250aW51b3VzIGludGVncmF0aW9uIGZvciBJb25pYyBhcHBsaWNhdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvY29udGlub3VzLWludGVncmF0aW9uLWZvci1pb25pYy1hcHBzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDE4IE1heSAyMDIwIDE3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbm91cy1pbnRlZ3JhdGlvbi1mb3ItaW9uaWMtYXBwcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5GaWtheW8gQWRlcG9qdTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtJbiB0aGUgd29ybGQgb2YgaHlicmlkIG1vYmlsZSBkZXZlbG9wbWVudCwgbm8gb3RoZXIgZnJhbWV3b3JrIGhhcyBkb25lIG1vcmUgZm9yIHRoZSBpbmR1c3RyeSB0aGFuIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tLyZxdW90OyZndDtJb25pYyBmcmFtZXdvcmsmbHQ7L2EmZ3Q7LiBDcmVhdGVkIGluIDIwMTMgYW5kIG9yaWdpbmFsbHkgYnVpbHQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXJqcy5vcmcvJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7IGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY29yZG92YS5hcGFjaGUub3JnLyZxdW90OyZndDtBcGFjaGUgQ29yZG92YSZsdDsvYSZndDssIElvbmljIGhhcyBncm93biB0byBhIGZ1bGwtZmVhdHVyZWQgYXBwbGljYXRpb24gZnJhbWV3b3JrIGZvciBkZXZlbG9waW5nIG1vYmlsZSwgZGVza3RvcCwgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93ZWIuZGV2L3Byb2dyZXNzaXZlLXdlYi1hcHBzLyZxdW90OyZndDtwcm9ncmVzc2l2ZSB3ZWIgYXBwbGljYXRpb25zJmx0Oy9hJmd0Oy4gSW9uaWMgaGFzIGFsc28gYmVjb21lIGZyYW1ld29yay1hZ25vc3RpYywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byB1c2UgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXIuaW8vJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oywgb3IgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3Z1ZWpzLm9yZy8mcXVvdDsmZ3Q7VnVlLmpzJmx0Oy9hJmd0OyBmb3IgZGV2ZWxvcG1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2Ugd2lsbCBiZSBidWlsZGluZyBhIGhhbmR5IHRhc2sgbWFuYWdlci4gV2Ugd2lsbCB3cml0ZSB0ZXN0cyBmb3IgZmVhdHVyZXMgaW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBzZXQgdXAgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbm91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgKENJKSBwaXBlbGluZSB0byBhdXRvbWF0ZSBvdXIgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFdlIHdpbGwgYmUgZGV2ZWxvcGluZyBvdXIgYXBwbGljYXRpb24gdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9yZWFjdCZxdW90OyZndDtJb25pYyBSZWFjdCZsdDsvYSZndDssIHRoZSBJb25pYyB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgZGV2ZWxvcGluZyB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBmb2xsb3cgdGhpcyBwb3N0LCBhIGZldyB0aGluZ3MgYXJlIHJlcXVpcmVkOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QmFzaWMga25vd2xlZGdlIG9mIFJlYWN0LmpzIChOb3QgYSBkZWFsLWJyZWFrZXIsIHlvdSBvbmx5IGhhdmUgdG8gY29weS1wYXN0ZSB0aGUgY29kZSBzbmlwcGV0cykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbm9kZWpzLm9yZyZxdW90OyZndDtOb2RlLmpzJmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtUaGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2NsaSZxdW90OyZndDtJb25pYyBDTEkmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L29sJmd0OwoKJmx0O2gyJmd0O1NjYWZmb2xkaW5nIHRoZSBJb25pYyBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBiZWdpbiwgbGV04oCZcyBzY2FmZm9sZCBhIG5ldyBJb25pYyBhcHBsaWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2lvbmljIHN0YXJ0IHRhc2stbWFuYWdlciB0YWJzIC0tdHlwZT1yZWFjdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgSW9uaWMgQ0xJIHRvIHNjYWZmb2xkIGEgbmV3IHByb2plY3QgZm9yIHVzIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0YWJzJmx0Oy9jb2RlJmd0OyB0ZW1wbGF0ZSBpbnNpZGUgYSBmb2xkZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGFzay1tYW5hZ2VyJmx0Oy9jb2RlJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1lvdSBtaWdodCBiZSBwcm9tcHRlZCBhdCBzb21lIHBvaW50IHdpdGggJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Q3JlYXRlIGZyZWUgSW9uaWMgYWNjb3VudD8mbHQ7L2NvZGUmZ3Q7LiBIaXQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7biZsdDsvY29kZSZndDsgdG8gZGVjbGluZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYW4gSW9uaWMgYWNjb3VudCBzZWUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9hcHBmbG93JnF1b3Q7Jmd0O2hlcmUmbHQ7L2EmZ3Q7LiZsdDsvaSZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmNlIHRoaXMgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb24gKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIHRhc2stbWFuYWdlciZsdDsvY29kZSZndDspIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHNlcnZlIHRoZSBhcHBsaWNhdGlvbiBpbiB5b3VyIHdlYiBicm93c2VyOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7aW9uaWMgc2VydmUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGlzIGNvbW1hbmQgaGFzIGNvbXBsZXRlZCwgeW91IHdpbGwgc2VlIGFuIGFwcGxpY2F0aW9uIHZpZXcgaW4geW91ciBicm93c2VyIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O0kgYW0gdXNpbmcgYSBtb2JpbGUgcHJldmlldyBhY3RpdmF0ZWQgaW4gQ2hyb21l4oCZcyBkZXZlbG9wbWVudCB0b29scy4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXNjYWZmb2xkLXByZXZpZXcucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtEb27igJl0IGJlIHN1cnByaXNlZCBpZiB5b3VycyBoYXMgYSBibGFjayBiYWNrZ3JvdW5kIGFuZCB3aGl0ZSBmb250LiBJdCB1c2VzIHRoZSBkZWZhdWx0IG1vZGUgb2YgeW91ciBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMiZndDtCdWlsZGluZyB0aGUgVGFzayBNYW5hZ2VyIGFwcGxpY2F0aW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05leHQsIGxldOKAmXMgYmVnaW4gYnVpbGRpbmcgdGhlIG1haW4gYXBwbGljYXRpb24uIEdvIGludG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyIG9mIHlvdXIgYXBwbGljYXRpb24gYW5kIG9wZW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGhvbWUgcGFnZSBmb3IgdGhlIG5ld2x5IHNjYWZmb2xkZWQgYXBwbGljYXRpb24uIFJlbW92ZSBldmVyeXRoaW5nIGluIHRoaXMgZmlsZSBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRzeAoKaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsKICBJb25Db250ZW50LAogIElvbkhlYWRlciwKICBJb25QYWdlLAogIElvblRpdGxlLAogIElvblRvb2xiYXIsCiAgSW9uTGlzdCwKICBJb25JdGVtU2xpZGluZywKICBJb25JdGVtLAogIElvbkxhYmVsLAogIElvbkl0ZW1PcHRpb25zLAogIElvbkl0ZW1PcHRpb24sCiAgSW9uRmFiLAogIElvbkZhYkJ1dHRvbiwKICBJb25JY29uLAogIElvbk1vZGFsLAogIElvbkJ1dHRvbiwKICBJb25DYXJkLAogIElvbkNhcmRDb250ZW50LAogIElvbklucHV0LAp9IGZyb20gJnF1b3Q7QGlvbmljL3JlYWN0JnF1b3Q7OwoKaW1wb3J0IHsgYWRkIH0gZnJvbSAmcXVvdDtpb25pY29ucy9pY29ucyZxdW90OzsKCmltcG9ydCAmcXVvdDsuL1RhYjEuY3NzJnF1b3Q7OwoKaW50ZXJmYWNlIFRhc2sgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwp9Cgpjb25zdCBUYWIxOiBSZWFjdC5GQyA9ICgpID0mYW1wO2d0OyB7CiAgY29uc3QgW3Rhc2tzLCBzZXRUYXNrc10gPSB1c2VTdGF0ZSZhbXA7bHQ7VGFza1tdJmFtcDtndDsoW10pOwogIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7CiAgY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKCiAgZnVuY3Rpb24gYWRkTmV3VGFzaygpIHsKICAgIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogICAgY29uc3QgbmV3VGFzayA9IHsKICAgICAgaWQ6IG5ld19pZCwKICAgICAgbmFtZTogdGFza05hbWUsCiAgICB9OwoKICAgIHRhc2tzLnB1c2gobmV3VGFzayk7CgogICAgc2V0VGFza3ModGFza3MpOwoKICAgIHNldFRhc2tOYW1lKCZxdW90OyZxdW90Oyk7CgogICAgc2V0U2hvd01vZGFsKGZhbHNlKTsKICB9CgogIHJldHVybiAoCiAgICAmYW1wO2x0O0lvblBhZ2UmYW1wO2d0OwogICAgICAmYW1wO2x0O0lvbkhlYWRlciZhbXA7Z3Q7CiAgICAgICAgJmFtcDtsdDtJb25Ub29sYmFyJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uVGl0bGUmYW1wO2d0O1Rhc2sgTWFuYWdlciZhbXA7bHQ7L0lvblRpdGxlJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25Ub29sYmFyJmFtcDtndDsKICAgICAgJmFtcDtsdDsvSW9uSGVhZGVyJmFtcDtndDsKICAgICAgJmFtcDtsdDtJb25Db250ZW50JmFtcDtndDsKICAgICAgICAmYW1wO2x0O0lvbkxpc3QmYW1wO2d0OwogICAgICAgICAge3Rhc2tzLmxlbmd0aCAmYW1wO2d0OyAwID8gKAogICAgICAgICAgICB0YXNrcy5tYXAoKGl0ZW06IFRhc2spID0mYW1wO2d0OyB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbVNsaWRpbmcga2V5PXtpdGVtLmlkfSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbSBjbGFzc05hbWU9JnF1b3Q7dG9kby1pdGVtJnF1b3Q7JmFtcDtndDsKICAgICAgICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDt7aXRlbS5uYW1lfSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbnMgc2lkZT0mcXVvdDtlbmQmcXVvdDsmYW1wO2d0OwogICAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsge319JmFtcDtndDtEb25lJmFtcDtsdDsvSW9uSXRlbU9wdGlvbiZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1PcHRpb25zJmFtcDtndDsKICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1TbGlkaW5nJmFtcDtndDsKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KQogICAgICAgICAgKSA6ICgKICAgICAgICAgICAgJmFtcDtsdDtJb25JdGVtJmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICApfQogICAgICAgICZhbXA7bHQ7L0lvbkxpc3QmYW1wO2d0OwoKICAgICAgICB7LyogTW9kYWwqL30KICAgICAgICAmYW1wO2x0O0lvbk1vZGFsIGlzT3Blbj17c2hvd01vZGFsfSZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkNhcmQmYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICZhbXA7bHQ7SW9uTGFiZWwmYW1wO2d0O0FkZCBOZXcgVGFzayZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAmYW1wO2x0O0lvbkNhcmRDb250ZW50JmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICAgJmFtcDtsdDtJb25JbnB1dAogICAgICAgICAgICAgICAgICB2YWx1ZT17dGFza05hbWV9CiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSZxdW90O0VudGVyIFRhc2sgTmFtZS4uLiZxdW90OwogICAgICAgICAgICAgICAgICBvbklvbkNoYW5nZT17KGUpID0mYW1wO2d0OyBzZXRUYXNrTmFtZShlLmRldGFpbC52YWx1ZSEpfQogICAgICAgICAgICAgICAgJmFtcDtndDsmYW1wO2x0Oy9Jb25JbnB1dCZhbXA7Z3Q7CiAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uCiAgICAgICAgICAgICAgICBleHBhbmQ9JnF1b3Q7ZnVsbCZxdW90OwogICAgICAgICAgICAgICAgY29sb3I9JnF1b3Q7cHJpbWFyeSZxdW90OwogICAgICAgICAgICAgICAgb25DbGljaz17KCkgPSZhbXA7Z3Q7IGFkZE5ld1Rhc2soKX0KICAgICAgICAgICAgICAmYW1wO2d0OwogICAgICAgICAgICAgICAgQWRkIFRhc2sKICAgICAgICAgICAgICAmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkQ29udGVudCZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uIG9uQ2xpY2s9eygpID0mYW1wO2d0OyBzZXRTaG93TW9kYWwoZmFsc2UpfSZhbXA7Z3Q7Q2xvc2UgTW9kYWwmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICZhbXA7bHQ7L0lvbk1vZGFsJmFtcDtndDsKCiAgICAgICAgey8qIEFkZCBUYXNrIEJ1dHRvbiAqL30KICAgICAgICAmYW1wO2x0O0lvbkZhYiB2ZXJ0aWNhbD0mcXVvdDtib3R0b20mcXVvdDsgaG9yaXpvbnRhbD0mcXVvdDtlbmQmcXVvdDsgc2xvdD0mcXVvdDtmaXhlZCZxdW90OyZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkZhYkJ1dHRvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsgc2V0U2hvd01vZGFsKHRydWUpfSZhbXA7Z3Q7CiAgICAgICAgICAgICZhbXA7bHQ7SW9uSWNvbiBpY29uPXthZGR9IC8mYW1wO2d0OwogICAgICAgICAgJmFtcDtsdDsvSW9uRmFiQnV0dG9uJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25GYWImYW1wO2d0OwogICAgICAmYW1wO2x0Oy9Jb25Db250ZW50JmFtcDtndDsKICAgICZhbXA7bHQ7L0lvblBhZ2UmYW1wO2d0OwogICk7Cn07CgpleHBvcnQgZGVmYXVsdCBUYWIxOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyBsZXTigJlzIGdvIHRocm91Z2ggdGhlIGNvZGUgc25pcHBldCBhYm92ZS4gVGhpcyBpcyB0aGUgZW50aXJlIGNvZGUgZm9yIG91ciBUYXNrIE1hbmFnZXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnQgYnkgaW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzIGluY2x1ZGluZyB0aGUgY3NzIGZpbGUgZm9yIG91ciBwYWdlLiBXZSB0aGVuIGRlZmluZSBhbiBpbnRlcmZhY2UgdG8gZGVmaW5lIG91ciB0YXNrIG9iamVjdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtpbnRlcmZhY2UgVGFzayB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7Cn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7TmV4dCwgd2UgY3JlYXRlIG91ciBjb21wb25lbnQgYXMgYSBSZWFjdCBmdW5jdGlvbiBjb21wb25lbnQgdHlwZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtSZWFjdC5GQyZsdDsvY29kZSZndDsgYW5kIGJlZ2luIHRoZSBmdW5jdGlvbiBieSBkZWZpbmluZyB0aGUgZGF0YSB3ZSB3YW50IHRvIGhvbGQgaW4gb3VyIHN0YXRlIHVzaW5nIGhvb2tzOiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tzJmx0Oy9jb2RlJmd0OyBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYXNrJmx0Oy9jb2RlJmd0O3MsIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2hvd01vZGFsJmx0Oy9jb2RlJmd0OyBib29sZWFuIHRvIGNvbnRyb2wgdGhlIG9wZW5pbmcgYW5kIGNsb3Npbmcgb2Ygb3VyIHRhc2sgY3JlYXRpb24gZm9ybSwgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tOYW1lJmx0Oy9jb2RlJmd0OyB3aGljaCBob2xkcyB0aGUgdmFsdWUgb2YgYSBuZXcgdGFzayBpbiB0aGUgcHJvY2VzcyBvZiBjcmVhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IFt0YXNrcywgc2V0VGFza3NdID0gdXNlU3RhdGUmYW1wO2x0O1Rhc2tbXSZhbXA7Z3Q7KFtdKTsKY29uc3QgW3Nob3dNb2RhbCwgc2V0U2hvd01vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTsKY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Rm9sbG93aW5nIHRoZXNlIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdlIGNhbGwgdG8gYWRkIGEgbmV3IHRhc2suIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyB0YXNrIGJ5IHNldHRpbmcgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lkJmx0Oy9jb2RlJmd0OyBiYXNlZCBvbiB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBhbmQgY2xlYXJzIHRoZSBmb3JtIGFmdGVyIGFkZGluZyB0aGUgbmV3IHRhc2sgdG8gb3VyIGV4aXN0aW5nIGxpc3Qgb2YgdGFza3MuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtmdW5jdGlvbiBhZGROZXdUYXNrKCkgewogIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogIGNvbnN0IG5ld1Rhc2sgPSB7CiAgICBpZDogbmV3X2lkLAogICAgbmFtZTogdGFza05hbWUsCiAgfTsKCiAgdGFza3MucHVzaChuZXdUYXNrKTsKCiAgc2V0VGFza3ModGFza3MpOwoKICBzZXRUYXNrTmFtZSgmcXVvdDsmcXVvdDspOwoKICBzZXRTaG93TW9kYWwoZmFsc2UpOwp9CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05leHQsIHdlIHJlbmRlciBvdXIgdGVtcGxhdGUgdG8gZGlzcGxheSBvdXIgbGlzdCBvZiB0YXNrcyBhbmQgYWxzbyBkaXNwbGF5IGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgcmVhZHMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmbHQ7L2NvZGUmZ3Q7IHdoZW4gdGhlIHRhc2sgbGlzdCBpcyBlbXB0eS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtGb2xsb3dpbmcgdGhlIGxpc3QgaXMgYSBtb2RhbCBjb21wb25lbnQgdGhhdCBjb250YWlucyBvdXIgdGFzayBmb3JtIGZvciBhZGRpbmcgbmV3IHRhc2tzLiBCZWxvdyB0aGUgY29tcG9uZW50IGlzIGEgZmxvYXRpbmcgYWN0aW9uIGJ1dHRvbiB0aGF0IHRoZSB1c2VyIGNsaWNrcyB0byBvcGVuIHRoZSBtb2RhbC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWZvcmUgd2UgcHJldmlldyB0aGlzLCBvcGVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEuY3NzJmx0Oy9jb2RlJmd0OyBsb2NhdGVkIGluIHRoZSBzYW1lIGZvbGRlciBhcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRzeCZsdDsvY29kZSZndDsgYW5kIHJlcGxhY2UgaXRzIGNvbnRlbnRzIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Lyogc3JjL3BhZ2VzL1RhYjEuY3NzICovCgoudG9kby1pdGVtIHsKICAtLW1pbi1oZWlnaHQ6IDcwcHg7CiAgZm9udC1zaXplOiAxLjJlbTsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHNpbXBseSBidW1wcyB1cCB0aGUgaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgdGhlIGxpc3QgaXRlbXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm93LCBnbyB0byB5b3VyIGJyb3dzZXIgYW5kIGxvYWQgdGhlIGhvbWVwYWdlIG9mIHlvdXIgYXBwbGljYXRpb24gKFRhYjEpLiBZb3Ugd2lsbCBzZWUgdGhlIHBhZ2UgZGlzcGxheWVkIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1ob21lLW5vLXRhc2tzLnBuZyZxdW90OyAvJmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QmVjYXVzZSB3ZSBoYXZlbuKAmXQgYWRkZWQgYW55IHRhc2tzIHlldCwgd2UgaGF2ZSB0aGUgbWVzc2FnZSAmbHQ7c3Ryb25nJmd0O1lvdSBoYXZlIHlldCB0byBhZGQgdGFza3MgZm9yIHRvZGF5Jmx0Oy9zdHJvbmcmZ3Q7IGRpc3BsYXllZC4gV2UgYWxzbyBoYXZlIG91ciAmbHQ7c3Ryb25nJmd0O0FkZCBUYXNrJmx0Oy9zdHJvbmcmZ3Q7IGJ1dHRvbiBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lciB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwbHVzJmx0Oy9jb2RlJmd0OyBzeW1ib2wuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0FkZGluZyB0YXNrcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBhZGQgYSBuZXcgdGFzaywgY2xpY2sgdGhlIGJvdHRvbS1yaWdodCBibHVlIGJ1dHRvbiB0byBwdWxsIHVwIHRoZSB0YXNrIGNyZWF0aW9uIGZvcm0gYW5kIHR5cGUgaW4gYSB0YXNrIGFzIHNob3duIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtdGFzay5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7QUREIFRBU0smbHQ7L3N0cm9uZyZndDsgdG8gYWRkIHRoZSB0YXNrIGFuZCBnbyBhaGVhZCB0byBhZGQgMiB0byAzIG1vcmUgdGFza3MuIFdlIHNob3VsZCBub3cgaGF2ZSBlbm91Z2ggdGFza3Mgb24gdGhlIHBhZ2UgZm9yIG91ciBhcHBsaWNhdGlvbiB0byBsb29rIGZ1bmN0aW9uYWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXRhc2stbGlzdC5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB3ZSBoYXZlIGEgZnVuY3Rpb25hbCBhcHBsaWNhdGlvbi4gTm90IHByb2R1Y3Rpb24tcmVhZHksIGJ1dCBnb29kIGVub3VnaCB0byBzdGFydCB0ZXN0aW5nLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBZGRpbmcgdGVzdHMgdG8gdGhlIFRhc2sgTWFuYWdlciBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtPbmUgYWR2YW50YWdlIHRoYXQgd2UgaGF2ZSB3aXRoIHRlc3Rpbmcgb3VyIElvbmljIGFwcGxpY2F0aW9ucyBpcyB0aGF0IHdoaWxlIHNjYWZmb2xkaW5nIHRoZSBhcHBsaWNhdGlvbiwgdGhlIElvbmljIENMSSBoYXMgc2V0IHVwIGFsbCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcywgaW4gdGVybXMgb2YgcGFja2FnZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCBmb3IgdGVzdGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUZXN0aW5nIElvbmljIFJlYWN0IGFwcGxpY2F0aW9ucyBpcyBkb25lIHVzaW5nIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vamVzdGpzLmlvLyZxdW90OyZndDtKZXN0Jmx0Oy9hJmd0OyB0ZXN0aW5nIGZyYW1ld29yayB0b2dldGhlciB3aXRoIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdGVzdGluZy1saWJyYXJ5LmNvbS9kb2NzL3JlYWN0LXRlc3RpbmctbGlicmFyeS9pbnRybyZxdW90OyZndDtSZWFjdCBUZXN0aW5nIExpYnJhcnkmbHQ7L2EmZ3Q7IGFuZCB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1yZWFjdC10ZXN0LXV0aWxzJnF1b3Q7Jmd0O0lvbmljIFJlYWN0IFRlc3QgVXRpbHMmbHQ7L2EmZ3Q7IGxpYnJhcnkgd2hpY2ggaXMgYSBzbWFsbCBzdWl0ZSBvZiB1dGlsaXRpZXMgdG8gc2ltdWxhdGUgY29tbW9uIGZlYXR1cmVzIGluIElvbmljIGxpa2UgZmlyaW5nIGN1c3RvbSBJb25pYyBldmVudHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIHByb2plY3QgYWxyZWFkeSBjb21lcyB3aXRoIGEgdGVzdCBmaWxlIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7QXBwLnRzeCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLiBBcyB5b3UgbWF5IGhhdmUgZ3Vlc3NlZCwgdGhlIHRlc3QgZmlsZSBpcyBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtBcHAudGVzdC50c3gmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGZvbGxvd3MgdGhlIGNvbnZlbnRpb24gZm9yIEplc3QgdGVzdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsvLyBzcmMvQXBwLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgQXBwIGZyb20gJnF1b3Q7Li9BcHAmcXVvdDs7Cgp0ZXN0KCZxdW90O3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZyZxdW90OywgKCkgPSZhbXA7Z3Q7IHsKICBjb25zdCB7IGJhc2VFbGVtZW50IH0gPSByZW5kZXIoJmFtcDtsdDtBcHAgLyZhbXA7Z3Q7KTsKICBleHBlY3QoYmFzZUVsZW1lbnQpLnRvQmVEZWZpbmVkKCk7Cn0pOwombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHRlc3Qgc2ltcGx5IGNoZWNrcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiByZW5kZXJzIHByb3Blcmx5IGFuZCBkb2VzIG5vdCBjcmFzaC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBydW4gdGhpcyB0ZXN0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBpbnZva2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2plc3QmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gcnVuIHRoZSB0ZXN0IGRlZmluZWQgaW4gdGhlIGZpbGUuIEFzIGRpcmVjdGVkLCBwcmVzcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDthJmx0Oy9jb2RlJmd0OyB0byBydW4gYWxsIHRlc3RzLiBUaGUgYWJvdmUgY29tbWFuZCBpcyB0aGUgY29tbWFuZCB3ZSB3aWxsIGJlIHVzaW5nIHRvIHJ1biBhbGwgdGVzdHMgaW4gb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgbGV04oCZcyBhZGQgc29tZSB0ZXN0cyBvZiBvdXIgb3duLiBXZSB3aWxsIGJlIGNyZWF0aW5nIGEgdGVzdCBmaWxlIHRvIHRlc3QgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIHdlIGhhdmUgaW4gb3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlIHdoaWNoIGhvdXNlcyBvdXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRlc3QudHN4Jmx0Oy9jb2RlJmd0OyBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyLiBJdOKAmXMgdGhlIHNhbWUgcGxhY2UgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VGFiMS50c3gmbHQ7L2NvZGUmZ3Q7IGZpbGUgaXMgbG9jYXRlZC4gSW5zaWRlIHRoZSBuZXdseSBjcmVhdGVkIGZpbGUsIHBsYWNlIGluIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgVGFiMSBmcm9tICZxdW90Oy4vVGFiMSZxdW90OzsKCnRlc3QoJnF1b3Q7UGFnZSB0aXRsZSBpcyBUYXNrIE1hbmFnZXImcXVvdDssIGFzeW5jICgpID0mYW1wO2d0OyB7CiAgY29uc3QgeyBmaW5kQnlUZXh0IH0gPSByZW5kZXIoJmFtcDtsdDtUYWIxIC8mYW1wO2d0Oyk7CiAgYXdhaXQgZmluZEJ5VGV4dCgmcXVvdDtUYXNrIE1hbmFnZXImcXVvdDspOwp9KTsKCnRlc3QoJnF1b3Q7V2hlbiB0aGVyZSBhcmUgbm8gVGFza3MsIGluZm9ybSB0aGUgdXNlciB0aGF0IG5vIHRhc2tzIGhhdmUgYmVlbiBjcmVhdGVkJnF1b3Q7LCBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IHsgZmluZEJ5VGV4dCB9ID0gcmVuZGVyKCZhbXA7bHQ7VGFiMSAvJmFtcDtndDspOwogIGF3YWl0IGZpbmRCeVRleHQoJnF1b3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmcXVvdDspOwp9KTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBmaWxlLCB3ZSBoYXZlIGFkZGVkIHR3byB0ZXN0cy4gVGhlIGZpcnN0IHRlc3QgY2hlY2tzIGlmIG91ciBwYWdlIGRpc3BsYXlzIHdpdGggdGhlIGNvcnJlY3QgdGl0bGUgd2hpY2ggaXMgJmx0O3N0cm9uZyZndDtUYXNrIE1hbmFnZXImbHQ7L3N0cm9uZyZndDsuIFRoZSBzZWNvbmQgdGVzdCBjaGVja3MgaWYgb3VyIGFwcGxpY2F0aW9uIGluaXRpYWxseSBsb2FkcyB3aXRob3V0IHRhc2tzLCBhbmQgaWYgaXQgZG9lcywgaXQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgJmx0O3N0cm9uZyZndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3csIGxldOKAmXMgcnVuIHRoZXNlIHRlc3RzIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGF0IHRoZSByb290IG9mIG91ciBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSBhIHNjcmVlbiBzaW1pbGFyIHRvIHRoZSBvbmUgYmVsb3cgb24geW91ciBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi10ZXN0cy1sb2NhbC1ydW4ucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIG91ciB0ZXN0cyBydW5uaW5nIGFzIGV4cGVjdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBdXRvbWF0aW5nIG91ciB0ZXN0aW5nJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBmaW5hbCB0YXNrIGlzIHRvIGF1dG9tYXRlIG91ciBjb250aW51b3VzIGludGVncmF0aW9uIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhhdCwgd2Ugd2lsbCBiZSBkb2luZyB0aGUgZm9sbG93aW5nOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QWRkIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgdG8gb3VyIHByb2plY3QgdG8gc2V0IHVwIGEgQ0kgcGlwZWxpbmUgb24gQ2lyY2xlQ0kmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIG91ciBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG9zaXRvcnkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDcmVhdGUgYSBDaXJjbGVDSSBwcm9qZWN0IGZvciBvdXIgYXBwbGljYXRpb24mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtSdW4gdGhlIENJIHBpcGVsaW5lIG9uIENpcmNsZUNJJmx0Oy9saSZndDsKJmx0Oy9vbCZndDsKCiZsdDtwJmd0O0xldOKAmXMgZ2V0IHRvIGl0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZpcnN0LCBsZXTigJlzIGFkZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3Igb3VyIENJIHBpcGVsaW5lIHRvIG91ciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLiBJbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbmZpZy55bWwmbHQ7L2NvZGUmZ3Q7IGZpbGUsIGVudGVyIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpqb2JzOgogIGJ1aWxkOgogICAgd29ya2luZ19kaXJlY3Rvcnk6IH4vcmVwbwogICAgZG9ja2VyOgogICAgICAtIGltYWdlOiBjaW1nL25vZGU6MTIuMTYKICAgIHN0ZXBzOgogICAgICAtIGNoZWNrb3V0CiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdXBkYXRlLW5wbQogICAgICAgICAgY29tbWFuZDogJnF1b3Q7c3VkbyBucG0gaW5zdGFsbCAtZyBucG1ANSZxdW90OwogICAgICAtIHJlc3RvcmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgLSBydW46CiAgICAgICAgICBuYW1lOiBpbnN0YWxsLXBhY2thZ2VzCiAgICAgICAgICBjb21tYW5kOiBucG0gaW5zdGFsbAogICAgICAtIHNhdmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgICAgIHBhdGhzOgogICAgICAgICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdGVzdAogICAgICAgICAgY29tbWFuZDogbnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgY29uZmlndXJhdGlvbiBwdWxscyBpbiBhIE5vZGUuanMgaW1hZ2UgYW5kIGluc3RhbGxzIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGRlZmluZWQgaW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0Oy4gT25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCB0aGUgdGVzdCBzY3JpcHQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bnBtIHJ1biB0ZXN0Jmx0Oy9jb2RlJmd0OyBpcyB0aGVuIGV4ZWN1dGVkIHRvIHJ1biBhbGwgdGhlIHRlc3RzIGluIG91ciBhcHBsaWNhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGdvb2QgdG8gZ28uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY29tbWl0IGFsbCB5b3VyIGNoYW5nZXMgYW5kIHB1c2ggdGhlIHByb2plY3QgdG8gYSBHaXRIdWIgcmVwb3NpdG9yeSBvbiB0aGUgR2l0SHViIGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgQ2lyY2xlQ0kgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIGlzIHRvIHNldCB1cCB0aGUgcmVwb3NpdG9yeSBmb3Igb3VyIHByb2plY3QgYXMgYSBDaXJjbGVDSSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBDaXJjbGVDSSBjb25zb2xlLCBnbyB0byB0aGUgJmx0O3N0cm9uZyZndDtBZGQgUHJvamVjdHMmbHQ7L3N0cm9uZyZndDsgcGFnZSB0byBhZGQgdGhlIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtcHJvamVjdC5wbmcmcXVvdDsgYWx0PSZxdW90O0FkZCBQcm9qZWN0JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0Oy4gVGhpcyB3aWxsIGxvYWQgdGhlIG5leHQgc2NyZWVuLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3N0YXJ0LWJ1aWxkaW5nMS5wbmcmcXVvdDsgYWx0PSZxdW90O1N0YXJ0IEJ1aWxkaW5nIC0gQ29uZmlnIHNhbXBsZSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBzZXR1cCBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7LiBCZWZvcmUgdGhlIGJ1aWxkIHN0YXJ0cywgeW91IGdldCBhIHByb21wdCB0byBlaXRoZXIgZG93bmxvYWQgYW5kIHVzZSB0aGUgcHJvdmlkZWQgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBoYXZlIGl0IG9uIGEgc2VwYXJhdGUgYnJhbmNoIG9yIHNldCB1cCBvbmUgbWFudWFsbHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzIucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIEFkZCBtYW51YWxseSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1NlbGVjdCAmbHQ7c3Ryb25nJmd0O0FkZCBNYW51YWxseSZsdDsvc3Ryb25nJmd0OyB0byBwcm9jZWVkLiBUaGlzIHdpbGwgcHJvbXB0IGFub3RoZXIgZGlhbG9nIHRoYXQgY2hlY2tzIHRvIGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXQgdXAgdG8gYmVnaW4gYnVpbGRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzMucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIENvbmZpcm0gY29uZmlndXJhdGlvbiZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsgdG8gY29tcGxldGUgdGhlIHNldHVwLiBUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgcGlwZWxpbmUgdXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBvdXIgcHJvamVjdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGUgYnVpbGQgaXMgZG9uZSBydW5uaW5nLCB5b3Ugd2lsbCBnZXQgYSBzdWNjZXNzZnVsIGJ1aWxkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtc3VjY2Vzc2Z1bC5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHN1Y2Nlc3NmdWwmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O2J1aWxkJmx0Oy9zdHJvbmcmZ3Q7IHRvIHNlZSB0aGUgYmVoaW5kLXRoZS1zY2VuZXMgcHJvY2VzcyhJIGhhdmUgY29sbGFwc2VkIHRoZSAmbHQ7ZW0mZ3Q7dGVzdCZsdDsvZW0mZ3Q7IHN0ZXApLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtcHJvY2Vzcy5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHByb2Nlc3MmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBzY3JlZW4sIG91ciBwcm9qZWN0IGlzIHByb3Blcmx5IHNldCB1cCBhbmQgYWxsIG91ciB0ZXN0cyBhcmUgcnVubmluZyBmaW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgYXMgeW91IGRldmVsb3AsIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgbW9yZSBmZWF0dXJlcywgYWRkIHRlc3RzIHRvIHRoZW0gYW5kIHB1c2ggdG8gR2l0SHViLiBPbmNlIHlvdSBwdXNoLCB0aGUgQ0kgcGlwZWxpbmUgd2lsbCBydW4gYW5kIGFsbCB5b3VyIHRlc3RzIHdpbGwgYmUgZXhlY3V0ZWQuIElmIGFueSB0ZXN0IGZhaWxzLCB5b3VyIGJ1aWxkIHdpbGwgZmFpbCB3aGljaCB3aWxsIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbiB0byBiZSBmaXhlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW914oCZcmUgbm90IHB1c2hpbmcgYW55IGJ1Z3MgaW50byB5b3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIHRoaXMgYXJ0aWNsZSwgd2UgaGF2ZSBzZXQgdXAgYW4gYXV0b21hdGVkIENJIHBpcGVsaW5lIGZvciBvdXIgSW9uaWMgYXBwbGljYXRpb25zIHRvIGltcHJvdmUgb3VyIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGF1dG9tYXRpbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4gSGF2aW5nIGEgQ0kgcGlwZWxpbmUgdGhhdCBwcm9wZXJseSBydW5zIG91ciB0ZXN0cyBwcm90ZWN0cyB1cyBhZ2FpbnN0IG91cnNlbHZlcyBieSBlbnN1cmluZyB0aGF0IHdlIGRvbuKAmXQgZW5kIHVwIHdpdGggYnJva2VuIGFwcGxpY2F0aW9ucyBvciB0aGF0IHdlIGRvbuKAmXQgcHVzaCBidWdneSBjb2RlIHRvIG91ciB0ZWFt4oCZcyByZXBvc2l0b3J5IHdoaWxlIHdvcmtpbmcgdG9nZXRoZXIgb24gYSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyA6KSZsdDsvcCZndDsKCiZsdDtociAvJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3R3aXR0ZXIuY29tL2NvZGVyb25mbGVlaz9sYW5nPWVuJnF1b3Q7Jmd0O0Zpa2F5byZsdDsvYSZndDsgaXMgYSBmdWxsc3RhY2sgZGV2ZWxvcGVyIGFuZCBhdXRob3Igd2l0aCBvdmVyIGEgZGVjYWRlIG9mIGV4cGVyaWVuY2UgZGV2ZWxvcGluZyB3ZWIgYW5kIG1vYmlsZSBzb2x1dGlvbnMuIEhlIGlzIGN1cnJlbnRseSB0aGUgU29mdHdhcmUgTGVhZCBhdCBUZWNoIFNwZWNpYWxpc3QgQ29uc3VsdGluZyBhbmQgZGV2ZWxvcHMgY291cnNlcyBmb3IgUGFja3QgYW5kIFVkZW15LiBIZSBoYXMgYSBzdHJvbmcgcGFzc2lvbiBmb3IgdGVhY2hpbmcgYW5kIGhvcGVzIHRvIGJlY29tZSBhIGZ1bGwtdGltZSBhdXRob3IuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5EcmF3biBPdXQgQ29udmVyc2F0aW9ucywgZmVhdHVyaW5nIENpcmNsZUNJIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlciwgUGF0IFNoaWVsZHM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZHJhd24tb3V0LWNvbnZlcnNhdGlvbi1mZWF0dXJpbmctY2lyY2xlY2ktcHJpbmNpcGFsLXNvZnR3YXJlLWVuZ2luZWVyLXBhdC1zaGllbGRzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5GcmksIDE1IE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RyYXduLW91dC1jb252ZXJzYXRpb24tZmVhdHVyaW5nLWNpcmNsZWNpLXByaW5jaXBhbC1zb2Z0d2FyZS1lbmdpbmVlci1wYXQtc2hpZWxkcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Db3JleSBMZXdpczwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtPbiB0aGlzIGVwaXNvZGUgb2YgRHJhd24gT3V0IENvbnZlcnNhdGlvbnMsIHdlIHRhbGsgYWJvdXQgc29tZXRoaW5nIG5lYXIgYW5kIGRlYXIgdG8gb3VyIGhlYXJ0cyDigJMgQ2lyY2xlQ0kuIFdlLCBhbG9uZyB3aXRoIGh1bmRyZWQgb2YgdGhvdXNhbmRzIG9mIG90aGVyIGRldmVsb3BlcnMgYXQgY29tcGFuaWVzIGxpa2UgU3BvdGlmeSwgRmFjZWJvb2ssIEZvcmQgYW5kIEFldG5hLCB1c2UgQ2lyY2xlQ0kgZXZlcnkgZGF5IHRvIG1ha2Ugc3VyZSB0aGF0IHdl4oCZcmUgZGVwbG95aW5nIHF1YWxpdHkgY29kZSwgYW5kIGJ1aWxkaW5nIGVmZmljaWVuY2llcyBpbnRvIG91ciBlbmdpbmVlcmluZyBwcm9jZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0LCB3aGF0IGV4YWN0bHkgaXMgdW5kZXJuZWF0aCBvdXIgcGxhdGZvcm3igJlzIGhvb2Q/Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Sm9pbiBvdXIgQ1RPIFJvYiBadWJlciBhcyBoZSBob3N0cyBDaXJjbGVDSeKAmXMgUHJpbmNpcGFsIFNvZnR3YXJlIEVuZ2luZWVyIFBhdCBTaGllbGRzIHRvIGRpc2N1c3MgdGhlIGlubmVyLXdvcmtpbmdzIG9mIG91ciB0ZWNobm9sb2d5IGFuZCBwbGF0Zm9ybS4gVGhleSBkaXNjdXNzIGV2ZXJ5dGhpbmcgZnJvbSBwcm9kdWN0IGZlYXR1cmVzIHRvIGFyY2hpdGVjdHVyZSBhbmQgdGFsayBhYm91dCBob3cgYW5kIHdoeSB0aGUgY29yZSBlbGVtZW50cyBvZiBvdXIgcGxhdGZvcm0gZ290IGJ1aWx0LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3JvYi1wYXQucG5nJnF1b3Q7IGFsdD0mcXVvdDtyb2ItcGF0LnBuZyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1JvYiBldmVuIHRha2VzIGEgdHVybiB3aXRoIHRoZSBtYXJrZXJzIHRvIGRpc2N1c3MgZG9tYWluLWRyaXZlbiBkZXNpZ24sIGF1dGhlbnRpY2F0aW9uIGFuZCBtb3JlLiBMZWFybiBldmVyeXRoaW5nIHlvdSBldmVyIHdhbnRlZCB0byBrbm93IGFib3V0IENpcmNsZUNJIGFuZCBtb3JlIGluIHRvZGF54oCZcyBjb252ZXJzYXRpb24uJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXImcXVvdDsmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3lvdXR1LmJlL1dMOVJRNmZNbGUwJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvY2lyY2xlY2kuZ2lmJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsKICAmbHQ7L2EmZ3Q7CgombHQ7YnIgLyZndDsKCiAgJmx0O3AmZ3Q7CiAgICAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8veW91dHUuYmUvV0w5UlE2Zk1sZTAmcXVvdDsgc3R5bGU9JnF1b3Q7Y29sb3I6IzAwMDBFRTsmcXVvdDsmZ3Q7CiAgICAgIFdhdGNoIHRoZSBmdWxsIHZpZGVvIGhlcmUKICAgICZsdDsvYSZndDsKICAmbHQ7L3AmZ3Q7CiZsdDsvZGl2Jmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZG8gSSB1c2UgSW5mcmFzdHJ1Y3R1cmUgYXMgQ29kZT88L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWRvLWktaWFjLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE1heSAyMDIwIDEyOjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2hvdy1kby1pLWlhYy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5BbmdlbCBSaXZlcmE8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7SW5mcmFzdHJ1Y3R1cmUgYXMgY29kZSAoSWFDKSBpcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBhbmQgcHJvdmlzaW9uaW5nIGNsb3VkIGFuZCBJVCByZXNvdXJjZXMgdmlhIG1hY2hpbmUgcmVhZGFibGUgZGVmaW5pdGlvbiBmaWxlcyBhbmQgaXMgYSBwYXJ0IG9mIG1vZGVybiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lcy4gSWFDIGVuYWJsZXMgb3JnYW5pemF0aW9ucyB0byBwcm92aXNpb24sIG1hbmFnZSwgYW5kIGRlc3Ryb3kgY29tcHV0ZSByZXNvdXJjZXMgdXNpbmcgbW9kZXJuIERldk9wcyB0b29scy4gSWFDIGVuYWJsZXMgdGhpcyBieSBzdGF0aWNhbGx5IGRlZmluaW5nIGFuZCBkZWNsYXJpbmcgdGhlc2UgcmVzb3VyY2VzIGluIGNvZGUsIHRoZW4gZGVwbG95aW5nIGFuZCBkeW5hbWljYWxseSBtYWludGFpbmluZyB0aGVzZSByZXNvdXJjZXMgdmlhIGNvZGUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gcmVjZW50IGludGVyYWN0aW9ucyB3aXRoIGRldmVsb3BlcnMsIEnigJl2ZSByZWFsaXplZCB0aGF0IG1hbnkgYXJlIGVpdGhlciBub3QgYXdhcmUgb2YgSWFDLCBvciBhcmUgYXdhcmUgYnV0IGhhdmUgYWJhbmRvbmVkIHRoZWlyIGluaXRpYWwgZWZmb3J0cyBiZWNhdXNlIHJhbXBpbmcgdXAgd2FzIHRvbyBjdW1iZXJzb21lLiBJbiB0aGlzIHBvc3QsIEkgd2lsbCBkaXNjdXNzIHRoZSBiZW5lZml0cyBvZiBJYUMgYW5kIHNvbWUgb2YgdGhlIHRvb2xpbmcgb3B0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgYWxvbmcgd2l0aCBhIGJyaWVmIGRlbW9uc3RyYXRpb24gb24gaG93IHRvIHVzZSB0aGVtIGluIGhvcGVzIG9mIGVhc2luZyB0aGUgdHJhbnNpdGlvbiB0byB1c2luZyBJYUMuIEkgd2lsbCBmb2N1cyBvbiB0aGUgdHdvIG1vc3QgcG9wdWxhciBJYUMgdG9vbHMgdXNlZCBpbiB0aGUgaW5kdXN0cnkgdG9kYXk6ICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cudGVycmFmb3JtLmlvLyZxdW90OyZndDtIYXNoaUNvcnDigJlzIFRlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtCZWZvcmUgeW91IGdldCBzdGFydGVkLCB5b3XigJlsbCBuZWVkIHRvIGhhdmUgdGhlc2UgdGhpbmdzOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9mcmVlJnF1b3Q7Jmd0O0dvb2dsZSBDbG91ZCZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NyZWF0ZSBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3Jlc291cmNlLW1hbmFnZXIvZG9jcy9jcmVhdGluZy1tYW5hZ2luZy1wcm9qZWN0cyNjcmVhdGluZ19hX3Byb2plY3QmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIHByb2plY3QmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FwcC5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkgQVBJIHRva2VuJmx0Oy9hJmd0OyBhbmQgc2F2ZSBpdCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgbG9jYWwgaW5zdGFsbCBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vc2RrL2RvY3MvcXVpY2tzdGFydHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIFNESyBDTEkmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSBsb2NhbCBpbnN0YWxsIG9mIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaHViLmRvY2tlci5jb20vc2VhcmNoLz90eXBlPWVkaXRpb24mYW1wO2FtcDtvZmZlcmluZz1jb21tdW5pdHkmcXVvdDsmZ3Q7RG9ja2VyIGNsaWVudCZsdDsvYSZndDsmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBHb29nbGUgQ2xvdWQgcHJvamVjdCBjcmVkZW50aWFscyZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDbG91ZFBsYXRmb3JtL2NvbW11bml0eS9ibG9iL21hc3Rlci90dXRvcmlhbHMvZ2V0dGluZy1zdGFydGVkLW9uLWdjcC13aXRoLXRlcnJhZm9ybS9pbmRleC5tZCNnZXR0aW5nLXByb2plY3QtY3JlZGVudGlhbHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIGNyZWRlbnRpYWxzJmx0Oy9hJmd0OyBpbiBvcmRlciB0byBwZXJmb3JtIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgdXNpbmcgSWFDIHRvb2xpbmcuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9hcGlzL2NyZWRlbnRpYWxzL3NlcnZpY2VhY2NvdW50a2V5JnF1b3Q7Jmd0O0NyZWF0ZSBTZXJ2aWNlIEFjY291bnQgS2V5IHBhZ2UmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7U2VsZWN0IHRoZSBkZWZhdWx0IHNlcnZpY2UgYWNjb3VudCBvciBjcmVhdGUgYSBuZXcgb25lLCBzZWxlY3QgSlNPTiBhcyB0aGUga2V5IHR5cGUsIGFuZCBjbGljayAmbHQ7c3Ryb25nJmd0O0NyZWF0ZSZsdDsvc3Ryb25nJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O1NhdmUgdGhpcyBKU09OIGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgYW5kIHJlbmFtZSB0aGUgZmlsZSB0byAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaWNkX2RlbW9fZ2NwX2NyZWRzLmpzb24mbHQ7L2NvZGUmZ3Q7LiBUaGlzIGlzICZsdDtzdHJvbmcmZ3Q7dmVyeSBpbXBvcnRhbnQmbHQ7L3N0cm9uZyZndDsgZm9yIGVuYWJsaW5nIHRoZSBHb29nbGUgQ2xvdWQgQ0xJIGluIHRoZSBjb250YWluZXIgbGF0ZXIgb24mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBhIFB1bHVtaSBBUEkgdG9rZW4mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7WW91IHdpbGwgbmVlZCB0byBnZXQgYSBQdWx1bWkgQVBJIHRva2VuIHRvIHN0b3JlIHlvdXIgcHJvamVjdCBzdGF0ZSBvbiBQdWx1bWnigJlzIGJhY2tlbmQgY2xvdWQuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vYXBwLnB1bHVtaS5jb20vJnF1b3Q7Jmd0O2FwcC5wdWx1bWkuY29tLyZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1NlbGVjdCBhbiBPcmdhbml6YXRpb24mbHQ7L3N0cm9uZyZndDsgb24gdGhlIHVwcGVyIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSBhbmQgc2VsZWN0IHlvdXIgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O0FjY2VzcyBUb2tlbnMmbHQ7L3N0cm9uZyZndDsgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7TmV3IEFjY2VzcyBUb2tlbiZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7Q3JlYXRlJmx0Oy9zdHJvbmcmZ3Q7IGFuZCBzYXZlIHRoZSBuZXcgQVBJIHRva2VuIHRoYXQgd2FzIGNyZWF0ZWQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemUgeW91ciBQdWx1bWkgcHJvamVjdCBsYXRlciZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7aDImZ3Q7RG9ja2VyIHB1bGwgSWFDMTAxIERvY2tlciBpbWFnZSZsdDsvaDImZ3Q7CgombHQ7cCZndDtBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlZCBhbmQgeW914oCZcmUgcmVhZHkgdG8gcHVsbCB0aGUgZG9ja2VyIGltYWdlIGZvciB0aGlzIHdvcmtzaG9wLiBJbiB0ZXJtaW5hbCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBwdWxsIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm93IGhhdmUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2FyaXYzcmEvaWFjMTAxJmx0Oy9jb2RlJmd0OyBkb2NrZXIgaW1hZ2UgbG9jYWxseS4gWW91IGNhbiB2ZXJpZnkgYnV5IHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgYW5kIHlvdSBzaG91bGQgc2VlIHRoZSBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0RvY2tlciBydW4gSWFDMTAxIGNvbnRhaW5lciZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgd2XigJlsbCBjcmVhdGUgYSBuZXcgRG9ja2VyIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YXJpdjNyYS9pYWMxMDEmbHQ7L2NvZGUmZ3Q7IGltYWdlIHdoaWNoIGhhcyBhbGwgdGhlIElhQyB0b29scyBhbmQgY29kZSBwcmUtYmFrZWQuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O01vdW50aW5nIHRoZSAvLmNvbmZpZy9nY2xvdWQvIGRpcmVjdG9yeSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtCZWZvcmUgcnVubmluZyB0aGUgbmV3IGNvbnRhaW5lciB5b3UgbmVlZCB0aGUgYWJzb2x1dGUgcGF0aCB0byB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkuIE9uIG15IE1hY09TIG1hY2hpbmUsIG15IGFic29sdXRlIHBhdGggaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7L1VzZXJzL2FuZ2VsLy5jb25maWcvZ2Nsb3VkLyZsdDsvY29kZSZndDsuIEJlIHN1cmUgdG8gZ2V0IHlvdXIgYWJzb2x1dGUgZmlsZSBwYXRoIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2Nsb3VkJmx0Oy9jb2RlJmd0OyBkaXJlY3Rvcnkgb24geW91ciBsb2NhbCBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtSdW4gSWFDMTAxIGNvbnRhaW5lciB3aXRoIG1vdW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtSdW4gdGhpcyBjb21tYW5kIGluIGEgdGVybWluYWwgcnVuIGJ1dCBiZSBzdXJlIHRvIHJlcGxhY2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0OyZsdDsvY29kZSZndDsgYml0IHdpdGggeW91ciBhY3R1YWwgYWJzb2x1dGUgcGF0aCB0byB5b3VyIGxvY2FsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dsb2N1ZC8mbHQ7L2NvZGUmZ3Q7ZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtaXQgLS1uYW1lIGlhY3Rlc3QgLS1tb3VudCB0eXBlPWJpbmQsc291cmNlPSZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0Oy5jb25maWcvZ2Nsb3VkLyx0YXJnZXQ9L3Jvb3QvLmNvbmZpZy9nY2xvdWQvIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJYUMxMDEgY29udGFpbmVyIGlzIHJ1bm5pbmcmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGUgcHJldmlvdXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgeW91ciBJYUMxMDEgY29udGFpbmVyIHdpbGwgYmUgdXAgYW5kIHJ1bm5pbmcgYW5kIHlvdXIgdGVybWluYWwgc2hlbGwgaGFzIGRyb3BwZWQgeW91IGludG8gdGhlIHJ1bm5pbmcgY29udGFpbmVyLiBFdmVyeSBjb21tYW5kIHlvdSBydW4gaW4geW91ciB0ZXJtaW5hbCBzaGVsbCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBEb2NrZXIgY29udGFpbmVyIGZyb20gbm93IG9uIHVudGlsIHlvdSBtYW51YWxseSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtleGl0Jmx0Oy9jb2RlJmd0OyB0aGUgY29udGFpbmVyLiBUaGUgY29udGFpbmVyIGhhcyB0aGUgVGVycmFmb3JtIGFuZCBQdWx1bWkgQ0xJIHRvb2xzIGluc3RhbGxlZCwgYXMgd2VsbCBhcyBleGFtcGxlIGNvZGUgZm9yIGVhY2ggdGhhdCBjcmVhdGVzIGluZnJhc3RydWN0dXJlIGluIHRoZWlyIHJlc3BlY3RpdmUgdG9vbHMuIFRoZSBjb250YWluZXIgcHJvamVjdHMgZmlsZXMgYXJlIG1hcHBlZCBhcyBmb2xsb3dzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHJvamVjdHMvCnxfIHRlcnJhZm9ybS9nY3AvY29tcHV0ZS8gICAjIENvbnRhaW5zIHRoZSBUZXJyYWZvcm0gY29kZSBmaWxlcwp8XyBwdWx1bWkvZ2NwL2NvbXB1dGUvICAgICAgIyBDb250YWlucyB0aGUgUHVsdW1pIGNvZGUgZmlsZXMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gyJmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2EmZ3Q7IGlzIGEgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgYnVpbGRpbmcsIGNoYW5naW5nLCBhbmQgdmVyc2lvbmluZyBpbmZyYXN0cnVjdHVyZSBzYWZlbHkgYW5kIGVmZmljaWVudGx5LiBUZXJyYWZvcm0gY2FuIG1hbmFnZSBleGlzdGluZyBzZXJ2aWNlIHByb3ZpZGVycyBhcyB3ZWxsIGFzIGN1c3RvbSBpbi1ob3VzZSBzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q29uZmlndXJhdGlvbiBmaWxlcyBkZXNjcmliZSB0aGUgY29tcG9uZW50cyBuZWVkZWQgdG8gcnVuIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yIHlvdXIgZW50aXJlIGRhdGFjZW50ZXIgb24gVGVycmFmb3JtLiBUZXJyYWZvcm0gZ2VuZXJhdGVzIGFuIGV4ZWN1dGlvbiBwbGFuIGRlc2NyaWJpbmcgd2hhdCBpdCB3aWxsIGRvIHRvIHJlYWNoIHRoZSBkZXNpcmVkIHN0YXRlLCBhbmQgdGhlbiBleGVjdXRlcyBpdCB0byBidWlsZCB0aGUgZGVzY3JpYmVkIGluZnJhc3RydWN0dXJlLiBBcyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBUZXJyYWZvcm0gaXMgYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBjaGFuZ2VkIGFuZCBjcmVhdGUgaW5jcmVtZW50YWwgZXhlY3V0aW9uIHBsYW5zIHdoaWNoIGNhbiBiZSBhcHBsaWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZSBpbmZyYXN0cnVjdHVyZSBUZXJyYWZvcm0gY2FuIG1hbmFnZSBpbmNsdWRlcyBsb3ctbGV2ZWwgY29tcG9uZW50cyBzdWNoIGFzIGNvbXB1dGUgaW5zdGFuY2VzLCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZywgYXMgd2VsbCBhcyBoaWdoLWxldmVsIGNvbXBvbmVudHMgc3VjaCBhcyBETlMgZW50cmllcywgU2FhUyBmZWF0dXJlcywgZXRjLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBUZXJyYWZvcm0mbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCB3aXRoIHByb3Zpc2lvbmluZyBzb21lIHJlc291cmNlcyBpbiBHQ1AgdXNpbmcgVGVycmFmb3JtIGNvZGUuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDttYWluLnRmICZsdDsvY29kZSZndDsgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBjb2RlIHRoYXQgaGFzIG91ciBpbmZyYXN0cnVjdHVyZSBkZWZpbmVkLiBJbiB0aGlzIGZpbGUgd2XigJlyZSBjcmVhdGluZyBhIG5ldyBjb21wdXRlIGluc3RhbmNlIHRoYXQgd2lsbCBpbnN0YWxsIGFuZCBydW4gYSBQeXRob24gRmxhc2sgYXBwIHBhY2thZ2VkIGluIGEgRG9ja2VyIGNvbnRhaW5lci4gVGhlIFRlcnJhZm9ybSBjb2RlIHdpbGwgYWxzbyBjcmVhdGUgc29tZSBmaXJld2FsbCBydWxlcyB0aGF0IHdpbGwgYWxsb3cgcHVibGljIGFjY2VzcyB0byB0aGUgYXBwIG92ZXIgcG9ydCA1MDAwLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHByb3Zpc2lvbiB0aGlzLCBydW4gdGhpcyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NkIH4vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJbml0aWFsaXppbmcgVGVycmFmb3JtJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1doaWxlIGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBydW4gdGhpcyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7dGVycmZvcm0gaW5pdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSByZXN1bHRzIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cm9vdEBkOWNlNzIxMjkzZTI6fi9wcm9qZWN0L3RlcnJhZm9ybS9nY3AvY29tcHV0ZSMgdGVycmFmb3JtIGluaXQKCkluaXRpYWxpemluZyB0aGUgYmFja2VuZC4uLgoKSW5pdGlhbGl6aW5nIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBDaGVja2luZyBmb3IgYXZhaWxhYmxlIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBEb3dubG9hZGluZyBwbHVnaW4gZm9yIHByb3ZpZGVyICZxdW90O2dvb2dsZSZxdW90OyAoaGFzaGljb3JwL2dvb2dsZSkgMy4xMC4wLi4uCgoqIHByb3ZpZGVyLmdvb2dsZTogdmVyc2lvbiA9ICZxdW90O34mYW1wO2d0OyAzLjEwJnF1b3Q7CgpUZXJyYWZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7aDMmZ3Q7UHJldmlld2luZyB3aXRoIFRlcnJhZm9ybSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUZXJyYWZvcm0gaGFzIGEgY29tbWFuZCB0aGF0IGFsbG93cyB5b3UgdG8gZHJ5IHJ1biBhbmQgdmFsaWRhdGUgeW91ciBUZXJyYWZvcm0gY29kZSB3aXRob3V0IGFjdHVhbGx5IGV4ZWN1dGluZyBhbnl0aGluZy4gVGhlIGNvbW1hbmQgaXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybSBwbGFuJmx0Oy9jb2RlJmd0OyB3aGljaCBhbHNvIGdyYXBocyBhbGwgdGhlIGFjdGlvbnMgYW5kIGNoYW5nZXMgdGhhdCBUZXJyYWZvcm0gd2lsbCBleGVjdXRlIGFnYWluc3QgeW91ciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS4gSW4gdGhlIHRlcm1pbmFsIHJ1bjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3RlcnJhZm9ybSBwbGFuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSByZXN1bHRzIHNpbWlsYXIgdG8gdGhpcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0FuIGV4ZWN1dGlvbiBwbGFuIGhhcyBiZWVuIGdlbmVyYXRlZCBhbmQgaXMgc2hvd24gYmVsb3cuClJlc291cmNlIGFjdGlvbnMgYXJlIGluZGljYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKICArIGNyZWF0ZQoKVGVycmFmb3JtIHdpbGwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGFjdGlvbnM6CgogICMgZ29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwuaHR0cC01MDAwIHdpbGwgYmUgY3JlYXRlZAogICsgcmVzb3VyY2UgJnF1b3Q7Z29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwmcXVvdDsgJnF1b3Q7aHR0cC01MDAwJnF1b3Q7IHsKICAgICAgKyBjcmVhdGlvbl90aW1lc3RhbXAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVzdGluYXRpb25fcmFuZ2VzID0gKGtub3duIGFmdGVyIGFwcGx5KQogIH0KCiAgICAjIGdvb2dsZV9jb21wdXRlX2luc3RhbmNlLmRlZmF1bHQgd2lsbCBiZSBjcmVhdGVkCiAgKyByZXNvdXJjZSAmcXVvdDtnb29nbGVfY29tcHV0ZV9pbnN0YW5jZSZxdW90OyAmcXVvdDtkZWZhdWx0JnF1b3Q7IHsKICAgICAgKyBjYW5faXBfZm9yd2FyZCAgICAgICA9IGZhbHNlCiAgICAgICsgY3B1X3BsYXRmb3JtICAgICAgICAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVsZXRpb25fcHJvdGVjdGlvbiAgPSBmYWxzZQogICAgICArIGd1ZXN0X2FjY2VsZXJhdG9yICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGlkICAgICAgICAgICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGluc3RhbmNlX2lkICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVsX2ZpbmdlcnByaW50ICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVscyAgICAgICAgICAgICAgID0gewogICAgICAgICAgKyAmcXVvdDtjb250YWluZXItdm0mcXVvdDsgPSAmcXVvdDtjb3Mtc3RhYmxlLTY5LTEwODk1LTYyLTAmcXVvdDsKICAgICAgICB9CiAgICAgICsgbWFjaGluZV90eXBlICAgICAgICAgPSAmcXVvdDtnMS1zbWFsbCZxdW90OwogIH0KICBQbGFuOiAyIHRvIGFkZCwgMCB0byBjaGFuZ2UsIDAgdG8gZGVzdHJveS4KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgeW91IGNhbiBzZWUsIFRlcnJhZm9ybSBpcyBnb2luZyB0byBjcmVhdGUgbmV3IEdDUCByZXNvdXJjZXMgZm9yIHlvdSBiYXNlZCBvbiB0aGUgY29kZSBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bWFpbi50ZiZsdDsvY29kZSZndDsgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGFwcGx5Jmx0Oy9oMyZndDsKCiZsdDtwJmd0O05vdyB5b3XigJlyZSByZWFkeSB0byBjcmVhdGUgdGhlIG5ldyBpbmZyYXN0cnVjdHVyZSBhbmQgZGVwbG95IHRoZSBhcHBsaWNhdGlvbi4gUnVuIHRoaXMgY29tbWFuZCBpbiB0aGUgdGVybWluYWw6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt0ZXJyYWZvcm0gYXBwbHkKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGVycmFmb3JtIHdpbGwgcHJvbXB0IHlvdSB0byBjb25maXJtIHlvdXIgY29tbWFuZC4gVHlwZSB5ZXMgYW5kIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0RvIHlvdSB3YW50IHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucz8KICBUZXJyYWZvcm0gd2lsbCBwZXJmb3JtIHRoZSBhY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KICBPbmx5ICd5ZXMnIHdpbGwgYmUgYWNjZXB0ZWQgdG8gYXBwcm92ZS4KCiAgRW50ZXIgYSB2YWx1ZTogeWVzCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RlcnJhZm9ybSB3aWxsIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgYW5kIHlvdSB3aWxsIGhhdmUgYW4gYXBwbGljYXRpb24gdXAgYW5kIHJ1bm5pbmcgb24gR0NQIHNob3J0bHkgYWZ0ZXIgaXQgY29tcGxldGVzLiBQbGVhc2Ugbm90ZSB0aGF0IGl0IHdpbGwgdGFrZSAzLTUgbWludXRlcyBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbWUgb25saW5lIGFmdGVyIFRlcnJhZm9ybSBjb21wbGV0ZXMuIEl04oCZcyBub3QgYW4gaW5zdGFudCBwcm9jZXNzIGJlY2F1c2UgdGhlIGJhY2tlbmQgc3lzdGVtcyBhcmUgcHJvdmlzaW9uaW5nIGFuZCBicmluZ2luZyB0aGluZ3Mgb25saW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgZG9uZSwgeW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7bGFuZ3VhZ2Utc2hlbGwgaGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7T3V0cHV0czoKClB1YmxpY19JUF9BZGRyZXNzICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgMzQuNzQuNzUuMTcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1B1YmxpY19JUF9BZGRyZXNzJmx0Oy9jb2RlJmd0OyB2YWx1ZSBpcyB0aGUgSVAgQWRkcmVzcyB0aGF0IHlvdXIgYXBwIGlzIHJ1bm5pbmcgb24sIHNvIGlmIHlvdSBnbyB0byBhIGJyb3dzZXIgYW5kIHBsdWcgdGhhdCBudW1iZXIgaW4gcGx1cyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7OjUwMDAmbHQ7L2NvZGUmZ3Q7IHBvcnQgYWRkcmVzcyAoaXQgd291bGQgbG9vayBsaWtlIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7MzQuNzQuNzUuMTc6NTAwMCZsdDsvY29kZSZndDspIHlvdSB3aWxsIHNlZSB5b3VyIGFwcCBydW5uaW5nIGluIEdDUC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Tm93IHRoYXQgeW91IGhhdmUgcHJvb2YgdGhhdCB5b3VyIEdvb2dsZSBDb21wdXRlIGluc3RhbmNlIGFuZCB5b3VyIGFwcGxpY2F0aW9uIHdvcmssIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gZGVzdHJveSB0aGUgYXNzZXRzIHRoYXQgeW91IGNyZWF0ZWQgaW4gdGhpcyB0dXRvcmlhbC4gWW91IGNhbiBsZWF2ZSBpdCB1cCBhbmQgcnVubmluZywgYnV0IGJlIGF3YXJlIHRoYXQgdGhlcmUgaXMgYSBjb3N0IGFzc29jaWF0ZWQgd2l0aCBhbnkgYXNzZXRzIHJ1bm5pbmcgb24gdGhlIEdvb2dsZSBDbG91ZCBQbGF0Zm9ybSBhbmQgeW91IHdpbGwgYmUgbGlhYmxlIGZvciB0aG9zZSBjb3N0cy4gR29vZ2xlIGdpdmVzIGEgZ2VuZXJvdXMgJDMwMCBjcmVkaXQgZm9yIGl0cyBmcmVlIHRyaWFsIHNpZ24tdXAsIGJ1dCB5b3UgY291bGQgZWFzaWx5IGVhdCB0aHJvdWdoIHRoYXQgaWYgeW91IGxlYXZlIGFzc2V0cyBydW5uaW5nLiBJdOKAmXMgdXAgdG8geW91LCBidXQgcnVubmluZyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0ZXJyYWZvcm0gZGVzdHJveSZsdDsvY29kZSZndDsgd2lsbCB0ZXJtaW5hdGUgYW55IHJ1bm5pbmcgYXNzZXRzLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIEnigJlsbCBkZW1vbnN0cmF0ZSBob3cgdG8gcGVyZm9ybSBpbmZyYXN0cnVjdHVyZSBwcm92aXNpb25pbmcgdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtQdWx1bWkgU0RLJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9wcm9kdWN0LyNzZGsmcXVvdDsmZ3Q7UHVsdW1pIFNESyZsdDsvYSZndDsgaXMgYW4gb3BlbiBzb3VyY2UgZnJhbWV3b3JrIGZvciBkZWZpbmluZyBhbmQgZGVwbG95aW5nIGNsb3VkIGFwcHMgYW5kIElhQy4gUHVsdW1pIGVuYWJsZXMgZGV2ZWxvcGVycyB0byB3cml0ZSBjb2RlIGluIHRoZWlyIGZhdm9yaXRlIGxhbmd1YWdlIHN1Y2ggYXMgVHlwZVNjcmlwdCwgSmF2YVNjcmlwdCwgUHl0aG9uLCBhbmQgR28uIFRoaXMgZW5hYmxlcyBtb2Rlcm4gYXBwcm9hY2hlcyB0byBjbG91ZCBhcHBsaWNhdGlvbnMgYW5kIGluZnJhc3RydWN0dXJlIHdpdGhvdXQgbmVlZGluZyB0byBsZWFybiBhbm90aGVyIFlBTUwgb3IgRFNMIGRpYWxlY3QuIFRoaXMgdW5sb2NrcyBhYnN0cmFjdGlvbnMgYW5kIHJldXNlLCBhcyB3ZWxsIGFzIGFjY2VzcyB0byB5b3VyIGZhdm9yaXRlIElERXMsIHJlZmFjdG9yaW5nLCBhbmQgdGVzdGluZyB0b29scy4gTWFzdGVyIG9uZSB0b29sY2hhaW4gYW5kIHNldCBvZiBmcmFtZXdvcmtzIGFuZCBnbyB0byBhbnkgY2xvdWQgKEFXUywgQXp1cmUsIEdDUCwgb3IgS3ViZXJuZXRlcykgd2l0aCBlYXNlLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBQdWx1bWkmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUgZXhwZXJpZW5jZWQgYnVpbGRpbmcgaW5mcmFzdHJ1Y3R1cmUgdXNpbmcgVGVycmFmb3JtLCBub3cgeW914oCZbGwgbGVhcm4gaG93IHRvIHByb3Zpc2lvbiBhbmQgZGVwbG95IG5ldyBpbmZyYXN0cnVjdHVyZSB1c2luZyBQdWx1bWkuIFRoZSBQdWx1bWkgZXhhbXBsZSB3aWxsIGNyZWF0ZSB0aGUgc2FtZSBHQ1AgcmVzb3VyY2VzIHByZXZpb3VzbHkgdXNpbmcgUHVsdW1pIGNvZGUgYW5kIHRvb2xzLiBQdWx1bWkgZW5hYmxlcyB5b3UgdG8gZGVmaW5lIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgaW4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHdoaWNoIHByb3ZpZGVzIGxvdHMgb2YgZmxleGliaWxpdHkuIEluIHRoaXMgZXhhbXBsZSwgd2XigJlyZSB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vd3d3LnB5dGhvbi5vcmcvJnF1b3Q7Jmd0O1B5dGhvbiZsdDsvYSZndDsgYXMgb3VyIGxhbmd1YWdlLiBUaGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7X19tYWluLnB5X18mbHQ7L2NvZGUmZ3Q7IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC9wdWx1bWkvZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgaXMgd2hlcmUgd2VyZSBnb2luZyB0byBkZWZpbmUgb3VyIGluZnJhc3RydWN0dXJlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlIHN1cmUgdG8gaGF2ZSB5b3VyIFB1bHVtaSBBUEkgdG9rZW4gYXZhaWxhYmxlLiBZb3XigJlsbCBuZWVkIGl0IGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIFB1bHVtaSBleGFtcGxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7fi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGRpcmVjdG9yeS4gUnVuIHRoaXMgY29tbWFuZCB0byBjaGFuZ2UgaW50byB0aGUgUHVsdW1pIGV4YW1wbGUgZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2Qgfi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gzJmd0O0luc3RhbGxpbmcgZGVwZW5kaWVuY2llcyBmb3IgUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1NpbmNlIHdl4oCZcmUgZGVmaW5pbmcgb3VyIElhQyBzcGVjcyB1c2luZyBQeXRob24gd2XigJlsbCBuZWVkIHRvIGZpcnN0IGluc3RhbGwgdGhlIFB1bHVtaSBQeXRob24gU0RLIGRlcGVuZGVuY2llcy4gSW4gdGhlIHRlcm1pbmFsIHJ1biB0aGlzIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtwaXAgaW5zdGFsbCAtciAuLi9yZXF1aXJlbWVudHMudHh0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtQcmV2aWV3aW5nIHdpdGggUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1B1bHVtaSBoYXMgYSBkcnktcnVuIGNvbW1hbmQgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBwcmV2aWV3Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRpc3BsYXlzIGEgcHJldmlldyBvZiB0aGUgdXBkYXRlcyB0byBhbiBleGlzdGluZyBzdGFjayB3aG9zZSBzdGF0ZSBpcyByZXByZXNlbnRlZCBieSBhbiBleGlzdGluZyBzdGF0ZSBmaWxlLiBUaGUgbmV3IGRlc2lyZWQgc3RhdGUgaXMgY29tcHV0ZWQgYnkgcnVubmluZyBhIFB1bHVtaSBwcm9ncmFtLCBhbmQgZXh0cmFjdGluZyBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbnMgZnJvbSBpdHMgcmVzdWx0aW5nIG9iamVjdCBncmFwaC4gVGhlc2UgYWxsb2NhdGlvbnMgYXJlIHRoZW4gY29tcGFyZWQgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc3RhdGUgdG8gZGV0ZXJtaW5lIHdoYXQgb3BlcmF0aW9ucyBtdXN0IHRha2UgcGxhY2UgdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZCBzdGF0ZS4gTm8gY2hhbmdlcyB0byB0aGUgc3RhY2sgd2lsbCBhY3R1YWxseSB0YWtlIHBsYWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGlzIGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHByZXZpZXcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHJlc3VsdHMgcHJvbXB0aW5nIHlvdSBmb3IgdGhlIFB1bHVtaSBBUEkgdG9rZW4geW91IGNyZWF0ZWQgZWFybGllci4gUGFzdGUgdGhlIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLiBBZnRlciB5b3UgcGFzdGUgdGhlIHRva2VuIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O01hbmFnZSB5b3VyIFB1bHVtaSBzdGFja3MgYnkgbG9nZ2luZyBpbi4KUnVuIGBwdWx1bWkgbG9naW4gLS1oZWxwYCBmb3IgYWx0ZXJuYXRpdmUgbG9naW4gb3B0aW9ucy4KRW50ZXIgeW91ciBhY2Nlc3MgdG9rZW4gZnJvbSBodHRwczovL2FwcC5wdWx1bWkuY29tL2FjY291bnQvdG9rZW5zCiAgICBvciBoaXQgJmFtcDtsdDtFTlRFUiZhbXA7Z3Q7IHRvIGxvZyBpbiB1c2luZyB5b3VyIGJyb3dzZXIgICAgICAgICAgICAgICAgICAgOgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1doZW4gcGFzdGluZyB0aGUgQVBJIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLCBubyB2YWx1ZXMgd2lsbCBiZSBkaXNwbGF5ZWQuIEl0IHdpbGwgcmVtYWluIGludmlzaWJsZSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuJmx0Oy9pJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBtYXkgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGEgc3RhY2sgaW4gdGhlIHRlcm1pbmFsLiBJZiBzbywgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkZXYmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB0aGVuIGhpdCBlbnRlci4gWW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UHJldmlld2luZyB1cGRhdGUgKGRldik6CiAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICAgICBQbGFuCiArICAgcHVsdW1pOnB1bHVtaTpTdGFjayAgICAgIGNvbXB1dGUtZGV2ICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6TmV0d29yayAgIG5ldHdvcmsgICAgICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6SW5zdGFuY2UgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJTilIAgZ2NwOmNvbXB1dGU6RmlyZXdhbGwgIGZpcmV3YWxsICAgICAgICAgICAgICAgICAgICBjcmVhdGUKClJlc291cmNlczoKICAgICsgNSB0byBjcmVhdGUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUganVzdCBlbmFibGVkIGFjY2VzcyB0byB0aGUgUHVsdW1pIGJhY2tlbmQgY2xvdWQgd2hpY2gga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXRlIG9mIHlvdXIgaW5mcmFzdHJ1Y3R1cmVzLiBOb3cgeW914oCZcmUgcmVhZHkgdG8gcnVuIHNvbWUgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7UHVsdW1pIHVwJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1RvIGV4ZWN1dGUgdGhlIFB1bHVtaSBjb2RlLCB1c2UgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIHVwJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGNyZWF0ZXMgb3IgdXBkYXRlcyByZXNvdXJjZXMgaW4gYSBzdGFjay4gVGhlIG5ldyBkZXNpcmVkIGdvYWwgc3RhdGUgZm9yIHRoZSB0YXJnZXQgc3RhY2sgaXMgY29tcHV0ZWQgYnkgcnVubmluZyB0aGUgY3VycmVudCBQdWx1bWkgcHJvZ3JhbSBhbmQgb2JzZXJ2aW5nIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9ucyB0byBwcm9kdWNlIGEgcmVzb3VyY2UgZ3JhcGguIFRoaXMgZ29hbCBzdGF0ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIGV4aXN0aW5nIHN0YXRlIHRvIGRldGVybWluZSB3aGF0IGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQvb3IgZGVsZXRlIG9wZXJhdGlvbnMgbXVzdCB0YWtlIHBsYWNlIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgZ29hbCBzdGF0ZSBpbiB0aGUgbW9zdCBtaW5pbWFsbHkgZGlzcnVwdGl2ZSB3YXkuIEFmdGVyd2FyZCwgdGhpcyBjb21tYW5kIHJlY29yZHMgYSBmdWxsIHRyYW5zYWN0aW9uYWwgc25hcHNob3Qgb2YgdGhlIHN0YWNr4oCZcyBuZXcgc3RhdGUgc28gdGhhdCB0aGUgc3RhY2sgbWF5IGJlIHVwZGF0ZWQgaW5jcmVtZW50YWxseSBhZ2FpbiBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgdGVybWluYWwgcnVuOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHVwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1NlbGVjdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7eWVzJmx0Oy9jb2RlJmd0OyBvcHRpb24gYW5kIGhpdCBlbnRlci4gVGhlIFB1bHVtaSBhcHAgd2lsbCBleGVjdXRlLCBhbmQgc2hvcnRseSBhZnRlciB5b3XigJlsbCBoYXZlIGEgY29tcGxldGUgc2VydmVyIHJ1bm5pbmcgYW4gYXBwbGljYXRpb24gb24gR0NQLiBZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtVcGRhdGluZyAoZGV2KToKICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cwogKyAgIHB1bHVtaTpwdWx1bWk6U3RhY2sgICAgICBjb21wdXRlLWRldiAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUnOKUgCBnY3A6Y29tcHV0ZTpOZXR3b3JrICAgbmV0d29yayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGVkCiArICAg4pSc4pSAIGdjcDpjb21wdXRlOkZpcmV3YWxsICBmaXJld2FsbCAgICAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUlOKUgCBnY3A6Y29tcHV0ZTpJbnN0YW5jZSAgd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDEgIGNyZWF0ZWQKCk91dHB1dHM6CiAgICBleHRlcm5hbF9pcCAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICBpbnN0YW5jZV9tZXRhX2RhdGE6IHsKICAgICAgICBnY2UtY29udGFpbmVyLWRlY2xhcmF0aW9uOiAmcXVvdDtzcGVjOlxuICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDFcbiAgICAgIGltYWdlOiBhcml2M3JhL3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxOmxhdGVzdFxuICAgICAgc3RkaW46IGZhbHNlXG4gICAgICB0dHk6IGZhbHNlXG4gIHJlc3RhcnRQb2xpY3k6IEFsd2F5c1xuJnF1b3Q7CiAgICB9CiAgICBpbnN0YW5jZV9uYW1lICAgICA6ICZxdW90O3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxJnF1b3Q7CiAgICBpbnN0YW5jZV9uZXR3b3JrICA6IFsKICAgICAgICBbMF06IHsKICAgICAgICAgICAgYWNjZXNzQ29uZmlncyAgICA6IFsKICAgICAgICAgICAgICAgIFswXTogewogICAgICAgICAgICAgICAgICAgIG5hdElwICAgICAgICAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICAgICAgICAgICAgICAgICAgbmV0d29ya190aWVyICAgICAgIDogJnF1b3Q7UFJFTUlVTSZxdW90OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgOiAmcXVvdDtuaWMwJnF1b3Q7CiAgICAgICAgfQogICAgXQoKUmVzb3VyY2VzOgogICAgKyA1IGNyZWF0ZWQKCkR1cmF0aW9uOiA1OHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlc2UgcmVzdWx0cywgeW914oCZbGwgc2VlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXh0ZXJuYWxfaXAmbHQ7L2NvZGUmZ3Q7IGtleS4gSXTigJlzIHZhbHVlIGlzIHRoZSBJUCBBZGRyZXNzIHRvIHRoZSBwdWJsaWMgZmFjaW5nIGFwcGxpY2F0aW9uIGV4cG9zZWQgb24gcG9ydCA1MDAwLiBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIFRlcnJhZm9ybSBleGFtcGxlLCB5b3UgY2FuIGFjY2VzcyB0aGUgYXBwbGljYXRpb24gaW4gYSBicm93c2VyLiBSZW1lbWJlciB0byBhbGxvdyBmb3IgYSBmZXcgbWludXRlcyBzbyB0aGUgYmFja2VuZCBzeXN0ZW0gY2FuIGJyaW5nIGV2ZXJ5dGhpbmcgb25saW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQdWx1bWkgZGVzdHJveSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtQdWx1bWkgaGFzIGEgY29tbWFuZCB0byB0ZXJtaW5hdGUgYWxsIG9mIHRoZSBjbG91ZCByZXNvdXJjZXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBkZXN0cm95Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRlbGV0ZXMgYW4gZW50aXJlIGV4aXN0aW5nIHN0YWNrIGJ5IG5hbWUuIFRoZSBjdXJyZW50IHN0YXRlIGlzIGxvYWRlZCBmcm9tIHRoZSBhc3NvY2lhdGVkIHN0YXRlIGZpbGUgaW4gdGhlIHdvcmtzcGFjZS4gQWZ0ZXIgcnVubmluZyB0byBjb21wbGV0aW9uLCBhbGwgb2YgdGhpcyBzdGFja+KAmXMgcmVzb3VyY2VzIGFuZCBhc3NvY2lhdGVkIHN0YXRlIHdpbGwgYmUgZ29uZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtSdW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGluIHRoZSB0ZXJtaW5hbCBhbmQgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5ZXMmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB3aGVuIHByb21wdGVkIHRvICZsdDtzdHJvbmcmZ3Q7cGVybWFuZW50bHkmbHQ7L3N0cm9uZyZndDsgZGVzdHJveSB0aGUgR0NQIHJlc291cmNlcyBjcmVhdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O0NvbmdyYXR1bGF0aW9ucyEgWW914oCZdmUganVzdCBsZXZlbGVkIHVwIGFuZCBub3cgaGF2ZSBleHBlcmllbmNlIHByb3Zpc2lvbmluZyBhbmQgZGVwbG95aW5nIGFwcGxpY2F0aW9ucyB0byBHQ1AgdXNpbmcgdGhlIG1vZGVybiBJYUMgdG9vbHMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O1RlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4gVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2lsbCBoZWxwIHlvdSBleHBhbmQgeW91ciBrbm93bGVkZ2UgZnJvbSBoZXJlOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9jbGktaW5kZXguaHRtbCZxdW90OyZndDtUZXJyYWZvcm0gR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9kb2NzL2dldC1zdGFydGVkLyZxdW90OyZndDtQdWx1bWkgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS9vcmIvcHVsdW1pL3B1bHVtaSZxdW90OyZndDtQdWx1bWkgb3JiIGZvciBDaXJjbGVDSSZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyZxdW90OyZndDtEb2NrZXIgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm0vY29tbXVuaXR5L2Jsb2IvbWFzdGVyL3R1dG9yaWFscy9nZXR0aW5nLXN0YXJ0ZWQtb24tZ2NwLXdpdGgtdGVycmFmb3JtL2luZGV4Lm1kI2dldHRpbmctcHJvamVjdC1jcmVkZW50aWFscyZxdW90OyZndDtHb29nbGUgQ2xvdWQgUGxhdGZvcm0mbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogICAgICAKICAgICAgPGl0ZW0+CiAgICAgICAgPHRpdGxlPkEgbG9vayBhdCBDaXJjbGVDSeKAmXMgaW5kdXN0cnktbGVhZGluZyBzdXBwb3J0IGZvciB0cmFuc2l0aW9uLXJlbGF0ZWQgbWVkaWNhbCBsZWF2ZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hLWxvb2stYXQtY2lyY2xlY2ktcy1pbmR1c3RyeS1sZWFkaW5nLXN1cHBvcnQtZm9yLXRyYW5zaXRpb24tcmVsYXRlZC1tZWRpY2FsLWxlYXZlLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5XZWQsIDEzIE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2EtbG9vay1hdC1jaXJjbGVjaS1zLWluZHVzdHJ5LWxlYWRpbmctc3VwcG9ydC1mb3ItdHJhbnNpdGlvbi1yZWxhdGVkLW1lZGljYWwtbGVhdmUvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RWxpemFiZXRoIEJlbGw8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7T25lIG9mIHRoZSBncmVhdCB0aGluZ3MgYWJvdXQgd29ya2luZyBhdCBDaXJjbGVDSSBpcyB0aGF0IHRoZSBjb21wYW55IGJlbGlldmVzIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGJlIGFibGUgdG8gYmUgdGhlaXIgd2hvbGUgc2VsZiBhdCB3b3JrLiBJbmNsdXNpdml0eSwgZGVtb25zdHJhdGluZyB0cnVzdCBhbmQgcmVzcGVjdCwgYW5kIG1ha2luZyBzdXJlIGV2ZXJ5b25lIGhhcyB0aGUgdG9vbHMgYW5kIHN1cHBvcnQgdGhleSBuZWVkIGFyZSBhbGwgYnVyaWVkIGRlZXAgaW4gdGhlIGN1bHR1cmUgaGVyZSDigJMgaXQgaXMgYSBiaWcgcGFydCBvZiBob3cgd2UgZGVsaXZlciB0aGUgYmVzdCB2YWx1ZSBmb3Igb3VyIGN1c3RvbWVycy4gV2l0aCB0aGF0IGluIG1pbmQsIHRoZSBjb21wYW55IHJlY2VudGx5IHJvbGxlZCBvdXQgYSBuZXcgaGVhbHRoY2FyZSBwb2xpY3kgZm9yIG91ciB0cmFuc2dlbmRlciBjby13b3JrZXJzLiBJbiBhIGZpcnN0IGZvciBjb21wYW5pZXMgaW4gdGhlIENJL0NEIHNwYWNlLCBDaXJjbGVDSSBub3cgb2ZmZXJzIGZ1bGx5LWNvbXBlbnNhdGVkIHBhaWQgbGVhdmUgZm9yIGVtcGxveWVlcyByZWNvdmVyaW5nIGZyb20gdHJhbnNpdGlvbi1yZWxhdGVkIG1lZGljYWwgcHJvY2VkdXJlcy4gVGhpcyBwb2xpY3kgaXMgYW4gZXh0cmVtZWx5IGltcG9ydGFudCBhZGRpdGlvbiB0byBDaXJjbGVDSeKAmXMgYmVuZWZpdHMgcGFja2FnZSBhbmQgYW5vdGhlciBleGFtcGxlIG9mIHRoZSBjb21wYW554oCZcyBkZWRpY2F0aW9uIHRvIHRoZSB3ZWxsLWJlaW5nIG9mIGFsbCBlbXBsb3llZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VHJhbnNpdGlvbiBpcyBhbiBpbW1lbnNlbHkgc3RyZXNzZnVsIHByb2Nlc3MsIGFuZCB0aGUgbWVkaWNhbCBwcm9jZWR1cmVzIHJlcXVpcmVkIHRvIHRyZWF0IHRoZSBkeXNwaG9yaWEgZXhwZXJpZW5jZWQgYnkgc29tZSB0cmFuc2dlbmRlciBwZW9wbGUgb2Z0ZW4gbmVlZCBhIHZlcnkgY2FyZWZ1bCBhcHByb2FjaCB0byByZWNvdmVyeS4mbHQ7L3AmZ3Q7CgombHQ7YmxvY2txdW90ZSZndDsKICAmbHQ7cCZndDtUaGUgZ29hbCBvZiB0aGUgcG9saWN5IGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRyYW5zZ2VuZGVyIGVtcGxveWVlcyBmZWVsIHN1cHBvcnRlZCBkdXJpbmcgdGhpcyBkaWZmaWN1bHQgdGltZSwgYW5kIGJ5IGVuc3VyaW5nIHRoYXQgdHJhbnNnZW5kZXIgZW1wbG95ZWVzIGhhdmUgYWNjZXNzIHRvIGFwcHJvcHJpYXRlbHkgY29tcGVuc2F0ZWQgbWVkaWNhbCBsZWF2ZSwgdGhlIGNvbXBhbnkgY2FuIHJlbW92ZSBtYWpvciBzb3VyY2VzIG9mIHVubmVjZXNzYXJ5IHN0cmVzcy4gVGhpcyB3YXksIHdlIGNhbiByZXR1cm4gdG8gd29yayBoYXBwaWVyLCBoZWFsdGhpZXIsIGFuZCBiZXR0ZXIgYWJsZSB0byBkbyBvdXIgYmVzdCBmb3Igb3VyIGN1c3RvbWVycyBhbmQgb3VyIGNvbGxlYWd1ZXMuJmx0Oy9wJmd0OwombHQ7L2Jsb2NrcXVvdGUmZ3Q7CgombHQ7aDImZ3Q7SG93IHRoaXMgcG9saWN5IGNhbWUgdG9nZXRoZXImbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgcHVzaCBmb3IgdGhlIGZvcm1hbGl6YXRpb24gb2YgdGhlc2UgYmVuZWZpdHMgZ3JldyBvdXQgb2YgdGhlIGVmZm9ydHMgb2YgbWFueSBpbmRpdmlkdWFscy4gVG9nZXRoZXIsIHRoZSB0cmFucyBlbXBsb3llZXMgYXQgQ2lyY2xlQ0kgZGlzY3Vzc2VkIHRoZSBpc3N1ZSBhbW9uZ3N0IG91cnNlbHZlcywgb3VyIG1hbmFnZXJzLCBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIHdobyBzdXBwb3J0ZWQgdXMgaW4gYnJpbmdpbmcgdGhlIHRvcGljIHRvIG91ciBleGVjdXRpdmUgdGVhbS4gQnkgYnVpbGRpbmcgY29uc2Vuc3VzLCBib3RoIHdpdGhpbiB0aGUgdHJhbnMgcG9wdWxhdGlvbiBhdCB0aGUgY29tcGFueSBhbmQgb3VyIGNpc2dlbmRlciBjb2xsZWFndWVzLCB3ZSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IGFkdm9jYXRlIGZvciBhIGZvcm1hbGl6YXRpb24gb2YsIGFuZCBhIGNvbW1pdG1lbnQgdG8sIHRoaXMgaW5kdXN0cnktbGVhZGluZyB0cmFucyBoZWFsdGhjYXJlIGJlbmVmaXQuIFF1ZWVyU3BoZXJlLCB0aGUgRW1wbG95ZWUgUmVzb3VyY2UgR3JvdXAgaGVyZSBhdCBDaXJjbGVDSSBmb3IgTEdCVFFJQSsgZW1wbG95ZWVzLCBoZWxwZWQgY29vcmRpbmF0ZSB0aGUgZWZmb3J0IHRvIGFkdm9jYXRlLCBhbmQgdGhlIHJlc3VsdCB3YXMgYSBwb2xpY3kgdGhhdCBoZWxwcyBlbnN1cmUgdHJhbnMgZW1wbG95ZWVzIGdldCB0aGUgc3VwcG9ydCB3ZSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uZSBvZiB0aGUgYmVzdCB0aGluZ3MgZm9yIG1lIGFib3V0IHdvcmtpbmcgYXQgQ2lyY2xlQ0kgaXMgaG93IGVtcG93ZXJlZCBJIGZlZWwgdG8gY2FsbCBhdHRlbnRpb24gdG8gaXNzdWVzIG9yIHByYWN0aWNlcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCBhbmQgYnJpbmcgcGVvcGxlIHRvZ2V0aGVyIHRvIHdvcmsgb24gdGhlbSwgdG8gdGhlIGJlbmVmaXQgb2YgYm90aCB0aGUgY29tcGFueSBhcyBhIHdob2xlIGFuZCB1bmRlcnJlcHJlc2VudGVkIG9yIG1hcmdpbmFsaXplZCBlbXBsb3llZXMuIFRyYW5zIHBlb3BsZSBmYWNlIHN5c3RlbWljIGJpYXM6IHRoZXJlIGFyZSBubyBmZWRlcmFsLWxldmVsIHByb3RlY3Rpb25zIGZyb20gZGlzY3JpbWluYXRpb24gb24gdGhlIGJhc2lzIG9mIGdlbmRlciBpZGVudGl0eSBpbiB0aGUgVW5pdGVkIFN0YXRlcywgYW5kIG9mIHRoZSB0cmFucyBwb3B1bGF0aW9uIHN1cnZleWVkIGJ5IHRoZSBOYXRpb25hbCBDZW50ZXIgZm9yIFRyYW5zZ2VuZGVyIEVxdWFsaXR5IGluIDIwMTUsIDgwJSBvZiB0aG9zZSB3aG8gd2VyZSBlbXBsb3llZCByZXBvcnRlZCBleHBlcmllbmNpbmcgaGFyYXNzbWVudCwgbWlzdHJlYXRtZW50LCBvciBoYWQgdG8gdGFrZSBzdGVwcyB0byBhdm9pZCB0aG9zZSBob3N0aWxlIHdvcmtwbGFjZSBiZWhhdmlvcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SSBrbm93IGZpcnN0aGFuZCBob3cgZGlmZmljdWx0IGJlaW5nIG91dCBhdCB3b3JrIGNhbiBiZS4gQXQgYSBwcmV2aW91cyBlbXBsb3llciBlYXJseSBpbiBteSB0cmFuc2l0aW9uLCBJIGZlbHQgYWxpZW5hdGVkIGFuZCBkaXNsaWtlZCBieSBjb2xsZWFndWVzIHdobyBoYWQgcHJldmlvdXNseSBiZWVuIGZyaWVuZGx5IGJlZm9yZSB0aGV5IGtuZXcgSSB3YXMgdHJhbnNnZW5kZXIuIEkgaGF2ZSBoYWQgdG8gbWluaW1pemUgdGhlIGZhY3QgdGhhdCBJ4oCZbSB0cmFucywgdG9sZXJhdGUgYWN0aXZlIGhvc3RpbGl0eSBmcm9tIGNvd29ya2Vycywgb3IgcHJldGVuZCB0aGF0IEkgd2FzIGNpc2dlbmRlciwgaW4gb3JkZXIgdG8gcHJvdGVjdCBteSBqb2IuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgQ2lyY2xlQ0ksIEkgaGF2ZSBmZWx0IHN1cHBvcnRlZCwgcmVzcGVjdGVkLCBhbmQgYWJsZSB0byBjb25maWRlbnRseSBiZSBteXNlbGYuIEkgZmVlbCBleGNlcHRpb25hbGx5IGZvcnR1bmF0ZSB0byBoYXZlIGEgd29uZGVyZnVsIGdyb3VwIG9mIHRyYW5zZ2VuZGVyIGNvbGxlYWd1ZXMgYW5kIGZyaWVuZHMgKHdlIG1ha2UgdXAgNyUgb2YgdGhlIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0ksIGFuZCAzJSBvZiB0aGUgb3JnIGluIHRvdGFsLCBjb21wYXJlZCB0byAwLjYlIG9mIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24pLCBhbmQgdG8gd29yayBzb21ld2hlcmUgd2hlcmUgb3VyIHZpZXdzIGFuZCBleHBlcmllbmNlcyBhcmUgdmFsdWVkIGF0IHRoZSBoaWdoZXN0IGxldmVscyBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0lmIHlvdSBsaWtlIHRoZSBzb3VuZCBvZiB3b3JraW5nIHNvbWV3aGVyZSB3aXRoIGEgcmVtb3RlLWZpcnN0IGN1bHR1cmUgYW5kIGNvbGxhYm9yYXRpbmcgb24gaW50ZXJlc3RpbmcgcHJvYmxlbXMgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIHRyYW5zIGZvbHggYW5kIGFsbGllcywgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9jYXJlZXJzLyZxdW90OyZndDtjaGVjayBvdXQgb3VyIG9wZW5pbmdzIGhlcmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIEdhdHNieSBhcHBzIHRvIEhlcm9rdTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtZ2F0c2J5LWFwcHMtdG8taGVyb2t1LzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDExIE1heSAyMDIwIDA5OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1nYXRzYnktYXBwcy10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9qYW1zdGFjay5vcmcvJnF1b3Q7Jmd0O0pBTVN0YWNrJmx0Oy9hJmd0OyBpcyBxdWlja2x5IGJlY29taW5nIGEgYmlnIGRlYWwgaW4gdGhlIHdvcmxkIG9mIHdlYiBkZXZlbG9wbWVudC4gSkFNU3RhY2ssIHdoaWNoIHN0YW5kcyBmb3IgSmF2YXNjcmlwdCwgQVBJcywgYW5kIEhUTUwgbWFya3VwLCBpcyBhIG1vZGVybiBhcmNoaXRlY3R1cmUgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMgYW5kIG9uZSBvZiBpdHMgbWFqb3IgZmVhdHVyZXMgaXMgdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBhIGRhdGFiYXNlIGFuZCBhIHdlYiBzZXJ2ZXIgaXMgb3B0aW9uYWwuIFRoZSBKQU1TdGFjayBhcmNoaXRlY3R1cmUgaXMgYWltZWQgYXQgZGVjb3VwbGluZyB0aGUgZnJvbnRlbmQgYW5kIHRoZSBiYWNrZW5kIGJ5IGdlbmVyYXRpbmcgYSBmcm9udGVuZCBtYWRlIG9mIEhUTUwsIENTUywgYW5kIEphdmFzY3JpcHQgYW5kIGEgYmFja2VuZCB0aGF0IGlzIHNpbXBseSBhIGNvbnRlbnQgQVBJIHJldHVybmluZyBKU09OIG9yIFhNTC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmUgb2YgdGhlIGxlYWRpbmcgSkFNU3RhY2sgcGxhdGZvcm1zIHRvZGF5IGlzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnLyZxdW90OyZndDtHYXRzYnkuanMmbHQ7L2EmZ3Q7LiBHYXRzYnkuanMgaXMgYSBmcmVlIGFuZCBvcGVuLXNvdXJjZSBmcmFtZXdvcmsgYmFzZWQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3JlYWN0anMub3JnLyZxdW90OyZndDtSZWFjdC5qcyZsdDsvYSZndDsgdGhhdCBoZWxwcyBkZXZlbG9wZXJzIGJ1aWxkIGhpZ2gtc3BlZWQgd2ViIGFwcGxpY2F0aW9ucy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHR1dG9yaWFsLCB3ZSB3aWxsIGJlIGRlbW9uc3RyYXRpbmcgaG93IHRvIGRlcGxveSBhIEdhdHNieS5qcyBzaXRlIHRvIHRoZSBwb3B1bGFyIEhlcm9rdSBwbGF0Zm9ybSBieSBidWlsZGluZyBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmUgZm9yIGl0cyBkZXBsb3ltZW50IHVzaW5nIENpcmNsZUNJLiZsdDsvcCZndDsKCiZsdDtoMiZndDtQcmVyZXF1aXNpdGVzJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIG9yZGVyIHRvIGZvbGxvdyBhbG9uZyB3aXRoIHRoaXMgcG9zdCwgeW91IHdpbGwgbmVlZCBhIGZldyB0aGluZ3MgaW4gcGxhY2U6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7ICZhbXA7Z3Q7PSAxMC4xNiBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZSAtdiZsdDsvY29kZSZndDsgb24geW91ciB0ZXJtaW5hbCB0byBwcmludCBvdXQgeW91ciB2ZXJzaW9uIG9mIE5vZGVKUyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7R2l0Jmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2l0Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsLiBUaGlzIHNob3VsZCBwcmludCBvdXQgYXZhaWxhYmxlIGdpdCBjb21tYW5kcykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuaGVyb2t1LmNvbS8mcXVvdDsmZ3Q7SGVyb2t1Jmx0Oy9hJmd0OyBhY2NvdW50Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O0dpdEh1YiZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7V2l0aCB0aGVzZSwgeW91IGFyZSByZWFkeSB0byBmb2xsb3cgYWxvbmcuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NyZWF0aW5nIGEgR2F0c2J5LmpzIHByb2plY3QmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7VG8gYmVnaW4sIHdlIG5lZWQgdG8gY3JlYXRlIG91ciBHYXRzYnkuanMgcHJvamVjdC4gSW4gYW4gYXBwcm9wcmlhdGUgbG9jYXRpb24gd2l0aGluIHlvdXIgc3lzdGVtLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGdhdHNieSBuZXcgZ2F0c2J5LWhlcm9rdS1kZXBsb3kKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBwYXJ0IG9mIHRoaXMgY29tbWFuZCBpcyB0aGUgZm9sZGVyIG5hbWUgZm9yIG15IHByb2plY3QgdG8gYmUgc2NhZmZvbGRlZCBpbi4gWW91IGNhbiB1c2UgYW55IHByZWZlcnJlZCBuYW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCB3aWxsIGltbWVkaWF0ZWx5IGJlZ2luIHNjYWZmb2xkaW5nIGEgbmV3IEdhdHNieS5qcyBwcm9qZWN0LiBZb3UgbWlnaHQgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGVpdGhlciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5YXJuJmx0Oy9jb2RlJmd0OyBvciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7IGFzIHlvdXIgcGFja2FnZSBtYW5hZ2VyLCBmb3IgdGhpcyB0dXRvcmlhbCwgZ28gd2l0aCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNjYWZmb2xkaW5nIHByb2Nlc3MgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIGdhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OykgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gYm9vdCB1cCBhIHNlcnZlciB0byBzZXJ2ZSB0aGUgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBydW4gZGV2ZWxvcAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgc2VydmUgdGhlIGFwcGxpY2F0aW9uIGF0IHRoZSBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8mbHQ7L2NvZGUmZ3Q7IGFuZCBkaXNwbGF5IHRoZSBwYWdlIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MS5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIGEgZnVuY3Rpb25hbCBHYXRzYnkuanMgc2l0ZSB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7U2V0dGluZyB1cCBhIEhlcm9rdSBBcHAgZm9yIEdhdHNieSZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBzZXQgdXAgYSBIZXJva3UgYXBwIGZvciBvdXIgR2F0c2J5IGFwcGxpY2F0aW9uLCB3ZSBuZWVkIHRvIGxvZyBpbnRvIEhlcm9rdSBhbmQgY3JlYXRlIGEgbmV3IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5Mi5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdlIG5lZWQgdG8gZ2V0IHRoZSBuYW1lIG9mIG91ciBhcHBsaWNhdGlvbiAodGhpcyB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBmb3IgdGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgYWJvdmUpIGFuZCB0aGUgQVBJIGtleSBmb3Igb3VyIEhlcm9rdSBhY2NvdW50LiBUaGUgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIEhlcm9rdSAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXZSB3aWxsIG5lZWQgdGhlc2UgdHdvIHZhbHVlcyAodGhlIGFwcCBuYW1lIGFuZCBBUEkga2V5KSBsYXRlciBvbiB0byBjcmVhdGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9uIG91ciBDaXJjbGVDSSBwcm9qZWN0IGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiBvdXIgSGVyb2t1IGFjY291bnQgaXMgdG8gaW5zdGFsbCBzb21lIG5lY2Vzc2FyeSBidWlsZHBhY2tzLiBCdWlsZHBhY2tzIGFyZSBzY3JpcHRzIHRoYXQgcnVuIHdoZW4geW91ciBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZC4gV2Ugd2lsbCBuZWVkIHR3byBidWlsZCBwYWNrcyBmb3IgdGhpcyBleGVyY2lzZTombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0O2hlcm9rdS9ub2RlanM6IFJlcXVpcmVkIGZvciBhbGwgTm9kZS5qcyBhcHBsaWNhdGlvbnMmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtoZXJva3UvaGVyb2t1LWJ1aWxkcGFjay1zdGF0aWM6IFRoZSBIZXJva3UgQnVpbGRwYWNrIFN0YXRpYyBwYWNrYWdlIChiZWNhdXNlIEdhdHNieS5qc+KAmXMgYnVpbGQgaXMgbWFkZSB1cCBvZiBzdGF0aWMgZmlsZXMsIHRoaXMgd2lsbCBoZWxwIHVzIHNlcnZlIHRoZSBzdGF0aWMgZmlsZXMgb24gdGhlIEhlcm9rdSBwbGF0Zm9ybSkmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7R28gdG8geW91ciBIZXJva3UgYXBwbGljYXRpb27igJlzICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgcGFnZSBhbmQgc2Nyb2xsIGRvd24gdG8gJmx0O3N0cm9uZyZndDtCdWlsZHBhY2tzJmx0Oy9zdHJvbmcmZ3Q7ICh5b3UgbWlnaHQgYWxyZWFkeSBzZWUgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgYnVpbGRwYWNrIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQpLiBDbGljayAmbHQ7c3Ryb25nJmd0O0FkZCBidWlsZHBhY2smbHQ7L3N0cm9uZyZndDsgYW5kIHlvdSB3aWxsIHNlZSBhIGRpYWxvZyBwb3AgdXAgc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnkzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rm9yIGVhY2ggYnVpbGRwYWNrICgmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3Uvbm9kZWpzJmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L2hlcm9rdS1idWlsZHBhY2stc3RhdGljJmx0Oy9jb2RlJmd0OykgZW50ZXIgdGhlIGlkZW50aWZpZXIgaW50byB0aGUgdGV4dCBmaWVsZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTYXZlIENoYW5nZXMmbHQ7L3N0cm9uZyZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtOb3RlOiZsdDsvc3Ryb25nJmd0OyAmbHQ7aSZndDtJZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCwgb25seSBhZGQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2hlcm9rdS9oZXJva3UtYnVpbGRwYWNrLXN0YXRpYyZsdDsvY29kZSZndDsgYnVpbGQgcGFjay4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgZG9pbmcgdGhpcyBmb3IgYm90aCBidWlsZHBhY2tzLCB5b3Ugd2lsbCBzZWUgdGhlIHR3byBidWlsZCBwYWNrcyBub3cgbGlzdGVkIGluICZsdDtzdHJvbmcmZ3Q7QnVpbGRwYWNrcyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGF0IGNvbXBsZXRlcyB0aGUgc2V0IHVwIHJlcXVpcmVkIGZvciBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1NldHRpbmcgdXAgdGhlIEdhdHNieS5qcyBwcm9qZWN0IG9uIENpcmNsZUNJJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBuZXh0IHRhc2sgaXMgdG8gZ2V0IG91ciBHYXRzYnkuanMgcHJvamVjdCBzZXQgdXAgb24gQ2lyY2xlQ0kuIFdlIG5lZWQgdG8gcHVzaCBvdXIgY29kZSB0byBhIEdpdEh1YiByZXBvc2l0b3J5IG9uIHRoZSBhY2NvdW50IHlvdSBoYXZlIGxpbmtlZCB0byB5b3VyIENpcmNsZUNJIGFjY291bnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgZ28gdG8gdGhlICZsdDtzdHJvbmcmZ3Q7QWRkIFByb2plY3RzJmx0Oy9zdHJvbmcmZ3Q7IHBhZ2UgdG8gYWRkIHRoZSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk0LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0OyB0byBiZWdpbiBzZXR0aW5nIHVwIHRoZSBwcm9qZWN0LiBUaGlzIHdpbGwgbG9hZCB0aGUgbmV4dCBzY3JlZW4uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk1LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhlIHNldHVwIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsuIEJlZm9yZSB0aGUgYnVpbGQgc3RhcnRzLCB5b3Ugd2lsbCBnZXQgYSBwcm9tcHQgdG8gZWl0aGVyIGRvd25sb2FkIGFuZCB1c2UgdGhlIHByb3ZpZGVkIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgaGF2ZSBpdCBhZGRlZCBvbiBhIHNlcGFyYXRlIGJyYW5jaCBvciBzZXQgb25lIHVwIG1hbnVhbGx5LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk2LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U2VsZWN0ICZsdDtzdHJvbmcmZ3Q7QWRkIE1hbnVhbGx5Jmx0Oy9zdHJvbmcmZ3Q7IHRvIHByb2NlZWQuIFRoaXMgd2lsbCBwcm9tcHQgYW5vdGhlciBkaWFsb2cgdGhhdCBjaGVja3MgdG8gY29uZmlybSB0aGF0IHlvdSBoYXZlIGEgY29uZmlndXJhdGlvbiBmaWxlIHNldCB1cCB0byBiZWdpbiBidWlsZGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTcucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGNvbXBsZXRlIHRoZSBzZXR1cC4gVGhlIGJ1aWxkIHdpbGwgc3VyZWx5IGZhaWwgYmVjYXVzZSB3ZSBoYXZlIG5vdCBzZXQgdXAgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB5ZXQsIHRoaXMgd2Ugd2lsbCBkbyBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiB0aGUgQ2lyY2xlQ0kgY29uc29sZSBpcyB0byBzZXQgdXAgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZW52LXZhcnMvJnF1b3Q7Jmd0O2Vudmlyb25tZW50IHZhcmlhYmxlcyZsdDsvYSZndDsgZm9yIHRoZSBwcm9qZWN0IHdlIGp1c3QgYWRkZWQuIFRoaXMgd2lsbCBlbmFibGUgaXQgdG8gaGF2ZSBhdXRoZW50aWNhdGVkIGFjY2VzcyB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIGZvciBkZXBsb3ltZW50cy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHbyB0byB5b3VyIHByb2plY3TigJlzIHNldHRpbmdzIGJ5IGNsaWNraW5nICZsdDtzdHJvbmcmZ3Q7UHJvamVjdCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgJmx0O3N0cm9uZyZndDtQaXBlbGluZXMmbHQ7L3N0cm9uZyZndDsgcGFnZSAobWFrZSBzdXJlIHlvdXIgcHJvamVjdCBpcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2plY3QpLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5OC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBuYXZpZ2F0ZSB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBwYWdlLiBPbiB0aGlzIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7RW52aXJvbm1lbnQgVmFyaWFibGVzJmx0Oy9zdHJvbmcmZ3Q7IG9uIHRoZSBzaWRlIG1lbnUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk5LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFnZSwgY2xpY2sgJmx0O3N0cm9uZyZndDtBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUgYnV0dG9uJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTAucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZGQgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Jmx0Oy9wJmd0OwombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDs6IFRoaXMgaXMgdGhlIG5hbWUgb2YgeW91ciBIZXJva3UgYXBwbGljYXRpb24gKGluIHRoaXMgY2FzZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnYXRzYnktaGVyb2t1LWRlcGxveSZsdDsvY29kZSZndDspJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7SEVST0tVX0FQSV9LRVkmbHQ7L2NvZGUmZ3Q7OiBZb3VyIEhlcm9rdSBhY2NvdW50IEFQSSBrZXkgZm91bmQgdW5kZXIgdGhlICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCZsdDsvc3Ryb25nJmd0OyB0YWIgb2YgeW91ciBIZXJva3UgYWNjb3VudCBpbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50IFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O09uY2UgYWRkZWQsIHlvdSB3aWxsIGhhdmUgZXZlcnl0aGluZyBzZXQgdXAgb24geW91ciBDaXJjbGVDSSBjb25zb2xlIGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRoZSBHYXRic3kuanMgc2l0ZSB1c2luZyBvcmJzJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy8mcXVvdDsmZ3Q7T3JicyZsdDsvYSZndDsgYXJlIHJldXNhYmxlIHBhY2thZ2VzIG9mIFlBTUwgY29uZmlndXJhdGlvbiB0aGF0IGNvbmRlbnNlIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoZXkgZW5hYmxlIGRldmVsb3BlcnMgdG8gZWFzaWx5IHVzZSBwb3dlcmZ1bCBwaXBlbGluZSBmdW5jdGlvbmFsaXRpZXMgd2l0aCBhbGwgdGhlIGJvaWxlcnBsYXRlIGFic3RyYWN0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBleGVyY2lzZSwgd2Ugd2lsbCBiZSB1c2luZyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7b3JiIGZvciBIZXJva3UmbHQ7L2EmZ3Q7IHRvIGNvbmZpZ3VyZSBvdXIgcGlwZWxpbmUgdG8gZGVwbG95IG91ciBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0IGJlZm9yZSB0aGF0LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGZpbGUgdG8gaW5zdHJ1Y3Qgb3VyIEhlcm9rdSBCdWlsZHBhY2sgU3RhdGljIHBhY2thZ2Ugb24gaG93IHRvIGRlcGxveSBhbmQgc2VydmUgb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgbmV3IGZpbGUgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3RhdGljLmpzb24mbHQ7L2NvZGUmZ3Q7IGFuZCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGUgaW50byBpdDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3sKICAmcXVvdDtyb290JnF1b3Q7OiAmcXVvdDtwdWJsaWMvJnF1b3Q7LAogICZxdW90O2hlYWRlcnMmcXVvdDs6IHsKICAgICZxdW90Oy8qKiZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJnF1b3Q7CiAgICB9LAogICAgJnF1b3Q7LyoqLmNzcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy8qKi5qcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy9zdGF0aWMvKiomcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0sCiAgICAmcXVvdDsvaWNvbnMvKi5wbmcmcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0KICB9LAogICZxdW90O2h0dHBzX29ubHkmcXVvdDs6IHRydWUsCiAgJnF1b3Q7ZXJyb3JfcGFnZSZxdW90OzogJnF1b3Q7NDA0Lmh0bWwmcXVvdDsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgbW9zdCBpbXBvcnRhbnQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaGVyZSBpcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkuIFdoZW4gR2F0c2J5LmpzIHJ1bnMgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2J1aWxkJmx0Oy9jb2RlJmd0OyBzY3JpcHQgKHRoaXMgaXMgYWxzbyB0aGUgc2NyaXB0IHVzZWQgYnkgSGVyb2t1IHRvIHJ1biB0aGUgYnVpbGQgYmVmb3JlIGRlcGxveW1lbnQpLCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1YmxpYyZsdDsvY29kZSZndDsgZm9sZGVyIGlzIGdlbmVyYXRlZCBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBjb250YWluaW5nIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb2R1Y3Rpb24gdmVyc2lvbiBpcyB3aGF0IHRoZSBob3N0IHNlcnZlcyB0byB1c2Vycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaHVzLCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkgaXMgdXNlZCB0byBwb2ludCB0byB0aGlzIGZvbGRlciBzbyB0aGF0IHRoZSBob3N0IHNlcnZlcyB0aGUgYXBwcm9wcmlhdGUgY29kZS4gT3RoZXIgcGFyYW1ldGVycyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gYXJlIHNpbXBseSBiZXN0LXByYWN0aWNlIGNvbmZpZ3VyYXRpb25zIGZvciBHYXRzYnkuanMgc2l0ZXMuIEZvciBleGFtcGxlLCBjYWNoaW5nIGd1aWRlbGluZXMgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvY2FjaGluZy8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7R29vZCEgTm93IHdlIGNhbiB3cml0ZSBvdXIgZGVwbG95bWVudCBzY3JpcHQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgdGhlIHJvb3Qgb2YgeW91ciBHYXRzYnkuanMgcHJvamVjdCwgY3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgYW5kIGEgZmlsZSB3aXRoaW4gaXQgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0Oy4gSW5zaWRlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGU6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt2ZXJzaW9uOiAyLjEKb3JiczoKICBoZXJva3U6IGNpcmNsZWNpL2hlcm9rdUAwLjAuMTAKd29ya2Zsb3dzOgogIGhlcm9rdV9kZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGhlcm9rdS9kZXBsb3ktdmlhLWdpdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGF04oCZcyBpdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgY29uZmlndXJhdGlvbiBhYm92ZSwgd2UgcHVsbCBpbiB0aGUgSGVyb2t1IG9yYiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaXJjbGVjaS9oZXJva3VAMC4wLjEwJmx0Oy9jb2RlJmd0OyB3aGljaCBhdXRvbWF0aWNhbGx5IGdpdmVzIHVzIGFjY2VzcyB0byBhIHBvd2VyZnVsIHNldCBvZiBIZXJva3Ugam9icyBhbmQgY29tbWFuZHMuIE9uZSBvZiB0aG9zZSBqb2JzIGlzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3UvZGVwbG95LXZpYS1naXQmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGRlcGxveXMgeW91ciBhcHBsaWNhdGlvbiBzdHJhaWdodCBmcm9tIHlvdXIgR2l0SHViIHJlcG8gdG8geW91ciBIZXJva3UgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIGpvYiBhbHJlYWR5IHRha2VzIGNhcmUgb2YgaW5zdGFsbGluZyB0aGUgSGVyb2t1IENMSSwgaW5zdGFsbGluZyBwcm9qZWN0IGRlcGVuZGVuY2llcywgcnVubmluZyB0aGUgYnVpbGQgc2NyaXB0LCBhbmQgZGVwbG95aW5nIHRoZSBhcHBsaWNhdGlvbi4gSXQgYWxzbyBwaWNrcyB1cCBvdXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGggZGVwbG95bWVudCB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgdGhlIG1vbWVudCBvZiB0cnV0aCAoZHJ1bSByb2xsKS4gTGV04oCZcyBjb21taXQgYWxsIHRoZSBjaGFuZ2VzIHdlIGhhdmUgbWFkZSB0byBvdXIgR2F0c2J5LmpzIHByb2plY3QgYW5kIHB1c2ggdG8gb3VyIHJlcG8gdG8gdHJpZ2dlciB0aGUgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTEucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBzZWUgdGhlIGJlaGluZC10aGUtc2NlbmVzIHpjdGlvbiBvZiB0aGUgZGVwbG95bWVudCwgeW91IGNhbiBjbGljayBpbnRvIHRoZSBidWlsZC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTIucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgZm9yIHRoZSBmaW5hbCBjb25maXJtYXRpb24gdGhhdCB0aGUgZGVwbG95bWVudCBvZiBvdXIgR2F0c2J5LmpzIHNpdGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bCwgdmlzaXQgdGhlIGRlZmF1bHQgSGVyb2t1IGFkZHJlc3MgZm9yIHRoZSBzaXRlIGF0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vW0FQUF9OQU1FXS5oZXJva3VhcHAuY29tJmx0Oy9jb2RlJmd0Oy4gSWYgeW91IHVzZWQgdGhlIHNhbWUgbmFtZSBhcyBJIGRpZCBmb3IgdGhpcyBleGVyY2lzZSwgdGhhdCB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vZ2F0c2J5LWhlcm9rdS1kZXBsb3kuaGVyb2t1YXBwLmNvbS8mbHQ7L2NvZGUmZ3Q7LiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93ICh0aGlzIG1pZ2h0IGJlIGRpZmZlcmVudCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IEdhdHNieS5qcyBzdGFydGVyIHRlbXBsYXRlLCBsZWFybiBtb3JlIGFib3V0IHN0YXJ0ZXJzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvcGx1Z2lucy10aGVtZXMtYW5kLXN0YXJ0ZXJzLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OykuJmx0Oy9wJmd0OwoKJmx0O3AgYWxpZ249JnF1b3Q7Y2VudGVyJnF1b3Q7Jmd0OwogICAmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTEzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NvbmNsdXNpb24mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2UgZGVwbG95ZWQgYSBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UgdXNpbmcgQ2lyY2xlQ0kgb3Jicy4gTm93IHdoZW4gd2UgcHVzaCBvdXIgY29kZSwgYWxsIGNoYW5nZXMgd2lsbCBiZSBkZXBsb3llZCBhdXRvbWF0aWNhbGx5LiBUaGlzIHR1dG9yaWFsIGhhcyBhbHNvIGRlbW9uc3RyYXRlZCBob3cgQ2lyY2xlQ0kgb3JicyBtYWtlcyBkZXBsb3ltZW50IGVhc3kuIEluc3RlYWQgb2Ygd3JpdGluZyBtYW55IGxpbmVzIG9mIGNvbmZpZyBuZWVkIHRvIGRlcGxveSB0byBIZXJva3UsIG9yYnMgYWJzdHJhY3QgYWxsIG9mIHRoYXQgaW50byBjb252ZW5pZW50IGNvbW1hbmRzIGZvciB1cyB0byB1c2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2hlY2sgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kgb3JicyByZWdpc3RyeSZsdDsvYSZndDsgZm9yIG9yYnMgdGhhdCBzdWl0IHlvdXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGRlcGxveW1lbnQgZGVzdGluYXRpb24gb2YgY2hvaWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyEmbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5MZXR0aW5nIGNoYW5nZSBhbmQgdW5jZXJ0YWludHkgYWR2YW5jZSB5b3VyIHNvZnR3YXJlIGFyY2hpdGVjdHVyZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VGh1LCAwNyBNYXkgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Sb2IgWnViZXI8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIGZpcnN0IGxpbmVzIG9mIENpcmNsZUNJ4oCZcyBjb2RlYmFzZSB3ZXJlIHdyaXR0ZW4gbmVhcmx5IG5pbmUgeWVhcnMgYWdvLiBMb29raW5nIGJhY2sgb24gd2hhdCB3ZSBoYXZlIGJ1aWx0IHNvIGZhciB3aXRoIHRoZSBjbGFyaXR5IG9mIGhpbmRzaWdodCBleHBvc2VzIHNvbWUgaW50ZXJlc3RpbmcgdGhlbWVzIHRoYXQgY2FuIGJlIGluc3RydWN0aXZlIGluIGlkZW50aWZ5aW5nIGFwcHJvYWNoZXMgdG8gZGVhbGluZyB3aXRoIGNoYW5nZS4gV2hpbGUgdGhleSB3ZXJlbuKAmXQgYWxsIGludGVudGlvbmFsLCBpdCBkb2VzbuKAmXQgbWFrZSB0aGVtIGFueSBsZXNzIHZhbHVhYmxlLiBUaHJlZSBzdWNoIHRoZW1lcyBhcmU6IGRlZmVycmluZyB0aGUgbmVlZCB0byBoYW5kbGUgY2hhbmdlLCB0aGlua2luZyBsaWtlIGEgcHJvZHVjdCBtYW5hZ2VyLCBhbmQga2VlcGluZyB5b3VyIGhlYWQgdXAuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NoYW5nZSBpcyBhIGNvbnN0YW50IGluIHRlY2hub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Q2hhbmdlIG1pZ2h0IGJlIG9uZSBvZiB0aGUgb25seSBjb25zdGFudHMgZW5naW5lZXJzIHdpbGwgZGVhbCB3aXRoIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGVpciBjYXJlZXJzLiBJdCBjZXJ0YWlubHkgZHJpdmVzIG1hbnkgb2Ygb3VyIG1vc3QgaW50ZXJlc3RpbmcgY2hhbGxlbmdlcy4gVGhlIG1hcmtldCBpcyBjaGFuZ2luZywgb3VyIGJ1c2luZXNzIGlzIGV2b2x2aW5nLCBvdXIgY3VzdG9tZXIgYmFzZSBpcyBncm93aW5nLCBhbmQgb3VyIHRlYW0gaXMgc2NhbGluZy4gV2UgbmVlZCB0byBidWlsZCBhIHNvbHV0aW9uIHRoYXQgbWVldHMgdG9kYXnigJlzIG5lZWRzIGJ1dCBzZXRzIHVzIHVwIGZvciB0aGUgZGVtYW5kcyBvZiB0b21vcnJvdy4gSG93IGRvIHdlIGRlc2lnbiBvdXIgc3lzdGVtcyBpbiBhIG1hbm5lciB0aGF0IGNhbiBhZGFwdCBhbmQgY2hhbmdlIHRvIHRoaW5ncyB0aGF0IGRvbuKAmXQgZXZlbiBleGlzdCB3aGVuIHdlIHN0YXJ0IGJ1aWxkaW5nIGl0PyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZXJlIGhhcyBiZWVuIGEgbG90IG9mIHRhbGsgaW4gcmVjZW50IHllYXJzIGFib3V0IGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGV2b2x2ZSBvciBtb3JlIGVhc2lseSBhZGFwdCB0byBjaGFuZ2UuIFRoZW4gd2Ugc3RhcnQgdG8gZGViYXRlIHRoZSBtZXJpdHMgb2YgdGhlc2UgYXJjaGl0ZWN0dXJlcyB1c2luZyBhIGxpbmUgb2YgdGhpbmtpbmcgdGhhdCBzdWdnZXN0cyB5b3UgYXJlIGNob29zaW5nIHRvIGhhdmUgYSDigJxNaWNyb3NlcnZpY2VzIEFyY2hpdGVjdHVyZeKAnSBvciBhbiDigJxFdmVudC1Ecml2ZW4gQXJjaGl0ZWN0dXJl4oCdIG9yIGEg4oCcU2VydmVybGVzcyBBcmNoaXRlY3R1cmUu4oCdIEkgd291bGQgcG9zaXQgdGhhdCB0aGlzIHR5cGUgb2YgZGVzY3JpcHRpb24gY3JlYXRlcyBhIGZhbHNlIHNlbnNlIG9mIGZpbmFsaXR5IHRoYXQgZG9lc27igJl0IGFjdHVhbGx5IGV4aXN0IGluIG1vc3QgcmVhbC13b3JsZCBzeXN0ZW1zLiZsdDsvcCZndDsKCiZsdDtwJmd0O091dHNpZGUgb2YgdGhlIHlvdW5nZXN0IG9mIHByb2plY3RzLCBpdOKAmXMgdW5saWtlbHkgdGhhdCB5b3UgY2FuIGRlc2NyaWJlIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCB5b3UgaGF2ZSB3aXRoIGFueSBzaW1wbGUgb25lLWxpbmVyLiBJdOKAmXMgbW9yZSBsaWtlbHkganVzdCDigJx5b3VyIGFyY2hpdGVjdHVyZSzigJ0gYW5kIGlmIHlvdeKAmXZlIGJlZW4gd29ya2luZyBvbiBpdCBmb3IgYW55IHNpZ25pZmljYW50IGFtb3VudCBvZiB0aW1lLCB5b3UgbWF5IGhhdmUgYXBwbGllZCBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0dGVybnMgYWxvbmcgdGhlIHdheSB0byBzb2x2ZSBzcGVjaWZpYyBwcm9ibGVtcy4gVGhlcmXigJlzIHByb2JhYmx5IGEgbW9ub2xpdGggc29tZXdoZXJlLCBzb21lIG51bWJlciBvZiBtaWNyb3NlcnZpY2VzLCBhIGZldyBldmVudHMsIGFuZCBhIHNlcnZlcmxlc3MgZWxlbWVudCBvciB0d28uIE9uIHRvcCBvZiBhbGwgdGhhdCwgeW91IG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YgdHJhbnNpdGlvbmluZyBzb21lIG9mIHRob3NlIHBpZWNlcyBmcm9tIG9uZSBwYXR0ZXJuIHRvIGFub3RoZXIuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0Rlc2lnbiBhcmNoaXRlY3R1cmUgdG8gc29sdmUgcHJvYmxlbXMmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gb2Z0ZW4gYXNrZWQgYnkgZm9sa3Mgd2hpY2ggYXJjaGl0ZWN0dXJlIHRoZXkgc2hvdWxkIGNob29zZSwgb3Igd2hlbiB0aGV5IHNob3VsZCBzd2l0Y2ggZnJvbSBvbmUgdG8gYW5vdGhlci4gSSBoYXZlIGEgZ3JlYXQgdGVuZGVuY3kgdG8gZGlzYXBwb2ludCB3aXRoIGFuc3dlcnMgbGlrZSDigJx3aGF0IHByb2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gc29sdmU/4oCdJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28sIHdoYXQgJmx0O3N0cm9uZyZndDtzaG91bGQmbHQ7L3N0cm9uZyZndDsgeW91IGJlIHRoaW5raW5nIGFib3V0IGFzIHlvdXIgcHJvZHVjdCBldm9sdmVzIGFuZCB5b3VyIG5lZWRzIGFyZSBjaGFuZ2luZz8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGVyZSBhcmUgYSBsb3Qgb2YgYXBwcm9hY2hlcyB0aGF0IHdlIGNhbiB1c2UgdG8gZGVzaWduIHNvZnR3YXJlIGFuZCBzeXN0ZW1zIHRvIGJlIG1vcmUgcmVzaWxpZW50IHRvIGNoYW5nZS4gVGhlIGFsbHVyZSBvZiBub3QgaGF2aW5nIHRvIGRvIGNvbXBsZXggcmVmYWN0b3Jpbmcgb3IgcmVidWlsZGluZyBkb3duIHRoZSByb2FkIGxlYWRzIHVzIHRvIHdhbnQgdG8gZGVzaWduIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG93IGNvc3Qgb2YgY2hhbmdlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2hpbGUgZ2VuZXJhbGl6ZWQgYWJzdHJhY3Rpb25zIGFuZCByZXVzYWJsZSBjb21wb25lbnRzIGFyZSBhdCB0aGUgY29yZSBvZiByZWR1Y2luZyB0aGUgaW1wYWN0IG9mIGNoYW5nZSwgdGhleSBhcmUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Jsb2cuY29kaW5naG9ycm9yLmNvbS90aGUtZGVsdXNpb24tb2YtcmV1c2UvJnF1b3Q7Jmd0O2hhcmQgdG8gZ2V0IHJpZ2h0IGluIHRoZSBmaXJzdCBwbGFjZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0l04oCZcyBoYXJkIHRvIHByZWRpY3QgdGhlIGZ1dHVyZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtBdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHRlY2huaWNhbCBsYW5kc2NhcGUgaXMgY2hhbmdpbmcsIHlvdXIgYnVzaW5lc3MgYW5kIHlvdXIgb3JnYW5pemF0aW9uIGFyZSBib3RoIGV2b2x2aW5nIGFzIHdlbGwuIFRoZXNlIGJvdGggaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiB5b3VyIGFyY2hpdGVjdHVyYWwgZGVjaXNpb25zLiBUaGUgc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlIHRoYXQgeW91IGFyZSB1bmRlcmdvaW5nIHdpbGwgaW5mbHVlbmNlIHRoZSBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUgYmVzdCBzdWl0ZWQgdG8gYWJzb3JiIHRob3NlIGNoYW5nZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGVhcmx5IGRheXMgb2YgYSBwcm9qZWN0IG9yIGNvbXBhbnksIGl04oCZcyBwb3NzaWJsZSB0byBtYWtlIHN3ZWVwaW5nIGZ1bmRhbWVudGFsIHNoaWZ0cyBpbiB0aGUgb2JqZWN0aXZlLiBFeHRyZW1lLCBidXQgbm90IHVuY29tbW9uLCBleGFtcGxlcyBpbmNsdWRlIFRpbnkgU3BlY2sgYmVjb21pbmcgU2xhY2sgYW5kIE9kZW8gYmVjb21pbmcgVHdpdHRlci4gV2hlbiB0aGUgZG9tYWluIG9mIHlvdXIgYnVzaW5lc3MgY2FuIG1vdmUgdGhhdCBkcmFzdGljYWxseSwgdGhlIGNsZWFuIGJvdW5kYXJpZXMgb2YgeW91ciBEREQgbW9kZWwgYXJlIG91dCB0aGUgd2luZG93LiBJbiBhIHNldCBvZiBtaWNyb3NlcnZpY2VzLCB0aGVzZSBib3VuZGFyaWVzIHdpbGwgYmUgY29kaWZpZWQsIHNvIGlmIHlvdSBoYXZlIHRvIGN1dCB0aHJvdWdoIHRoZW0sIHlvdeKAmWxsIGxpa2VseSBiZSB0aGFua2Z1bCBmb3IgYSBtb3JlIHBsaWFibGUgbW9ub2xpdGguJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB5b3UgZmluZCBwcm9kdWN0IC8gbWFya2V0IGZpdCwgeW91ciBwcmlvcml0aWVzIHdpbGwgc2hpZnQgdG93YXJkcyBzdXBwb3J0aW5nIHlvdXIgcmFwaWQgZ3Jvd3RoLiBXaXRoIHN5c3RlbSBzY2FsZSBhcyBhIGRyaXZlciBvZiBjaGFuZ2UsIHRoZSBhYmlsaXR5IHRvIHJlc3BvbmQgdG8gY2hhbmdlIGlzIG9mdGVuIHRpZWQgdG8gdGhlIGluZGVwZW5kZW5jZSBvZiBzeXN0ZW1zIGJhc2VkIG9uIHRoZWlyIG9wZXJhdGlvbmFsIGNoYXJhY3RlcmlzdGljcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGF0IHNjYWxpbmcgcGhhc2UsIHlvdeKAmWxsIGhhdmUgYSBsYXJnZXIgb3JnYW5pemF0aW9uIGFuZCBmYXIgbW9yZSB0ZWFtcy4gSWYgeW914oCZcmUgbHVja3kgeW914oCZbGwgYmUgYmFjayB0byBzdXN0YWluYWJsZSBwcm9kdWN0IGV2b2x1dGlvbi4gVGhlbiB0aGUgY29zdCBvZiBjaGFuZ2Ugd2lsbCBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIGFtb3VudCBvZiBjcm9zcy10ZWFtIGNvb3JkaW5hdGlvbiByZXF1aXJlZCB0byBtYWtlIGEgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtoMiZndDtEZWZlciByZXNwb25zZSB0byBjaGFuZ2UmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7V2hlbiBhbiBpbmRpdmlkdWFsIG9yIHRlYW0gaGFzIGEgcHJvYmxlbSB0aGV54oCZcmUgdHJ5aW5nIHRvIHNvbHZlLCB0aGV5IGdlbmVyYWxseSBzdGFydCBvZmYgd2l0aCBhIHByZXR0eSBzaW1wbGUgZGlyZWN0aXZlIOKAkyBsZXTigJlzIGJ1aWxkIHRvIHNvbHZlIHRoYXQgcHJvYmxlbS4gV2hhdOKAmXMgdGhlIG1vc3QgZWZmZWN0aXZlIGFyY2hpdGVjdHVyZSB3ZSBjYW4gdXNlIHRvIGJ1aWxkIGEgdmlhYmxlIHByb2R1Y3QgYXQgdGhlIGxvd2VzdCBjb3N0PyBUaGlzIGlzIGdlbmVyYWxseSB0cnVlIHdoZXRoZXIgaXTigJlzIGEgc3RhcnR1cCBvciBhIGh1Z2UgbXVsdGluYXRpb25hbCBjb3Jwb3JhdGlvbi4gQSBuZXcgcHJvamVjdCB3aWxsIGJlIGJ1aWx0IG9uIGEgc3lzdGVtIHRoYXTigJlzIHJlbGF0aXZlbHkgbmV3LCBhbmQgd2lsbCBiZSB1bmxpa2VseSB0byBoYXZlIHByb2R1Y3QtbWFya2V0IGZpdCBiZWNhdXNlIHRoZSBjb21wYW55IHdvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCBpdHMgYnVzaW5lc3MgZG9tYWluIHlldCwgYW5kIHdvbuKAmXQga25vdyB3aGVyZSB0aGUgcHJpbWFyeSBzb3VyY2VzIG9mIGNoYW5nZSB3aWxsIGNvbWUgZnJvbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHNpdHVhdGlvbiwgZGVzaWduaW5nIGZvciBjaGFuZ2UgYmVjb21lcyBhIGxvdCBoYXJkZXIuIElmIGl04oCZcyBhIGxvdCBtb3JlIGV4cGVuc2l2ZSB0byBtYWtlIHRoaW5ncyByZXNpbGllbnQgdG8gY2hhbmdlIGFuZCB5b3UgY2Fu4oCZdCB0ZWxsIHlldCB3aGljaCBwYXJ0cyBvZiB5b3VyIHN5c3RlbSB3aWxsIGNoYW5nZSwgaG93IGRvIHlvdSBtYWtlIHRoZSBkZWNpc2lvbiBhYm91dCB3aGVyZSB0byBtYWtlIHRoYXQgaW52ZXN0bWVudD8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBjb3VudGVyaW50dWl0aXZlIGFzIGl0IG1heSBzb3VuZCwgdGhlIGFuc3dlciBpcyBwcm9iYWJseSBub3doZXJlLiBBdCBsZWFzdCBub3QgeWV0LiBJbnN0ZWFkIHdhdGNoIGNoYW5nZSBjbG9zZWx5IGFuZCBidWlsZCBpbiBhIHdheSB0aGF0IG1pbmltaXplcyB0aGUgY29zdCBvZiBiZWluZyB3cm9uZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiDigJwmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9zaG9wLm9yZWlsbHkuY29tL3Byb2R1Y3QvOTc4MDU5NjUyMjcwNC5kbyZxdW90OyZndDs5NyBUaGluZ3MgRXZlcnkgU29mdHdhcmUgQXJjaGl0ZWN0IFNob3VsZCBLbm93Jmx0Oy9hJmd0O+KAnSBLZXZsaW4gSGVubmV5LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbWVkaXVtLmNvbS9Aa2V2bGluaGVubmV5L2h0dHBzLW1lZGl1bS1jb20ta2V2bGluaGVubmV5LXVzZS11bmNlcnRhaW50eS1hcy1hLWRyaXZlci00OTNlYmViZDU3NWQmcXVvdDsmZ3Q7ZGVzY3JpYmVzIGFuIGltcG9ydGFudCBhcHByb2FjaCB0byB0aGlua2luZyBhYm91dCB1bmNlcnRhaW50eSZsdDsvYSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2Jsb2NrcXVvdGUmZ3Q7CiAgJmx0O3AmZ3Q74oCcVGhlIHByZXNlbmNlIG9mIHR3byBvcHRpb25zIGlzIGFuIGluZGljYXRvciB0aGF0IHlvdSBuZWVkIHRvIGNvbnNpZGVyIHVuY2VydGFpbnR5IGluIHRoZSBkZXNpZ24uIFVzZSB0aGUgdW5jZXJ0YWludHkgYXMgYSBkcml2ZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHlvdSBjYW4gZGVmZXIgY29tbWl0bWVudCB0byBkZXRhaWxzIGFuZCB3aGVyZSB5b3UgY2FuIHBhcnRpdGlvbiBhbmQgYWJzdHJhY3QgdG8gcmVkdWNlIHRoZSBzaWduaWZpY2FuY2Ugb2YgZGVzaWduIGRlY2lzaW9ucy4gSWYgeW91IGhhcmR3aXJlIHRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQsIHlvdeKAmXJlIG1vcmUgbGlrZWx5IHRvIGJlIHN0dWNrIHdpdGggaXQg4oCTIGluY2lkZW50YWwgZGVjaXNpb25zIGJlY29tZSBzaWduaWZpY2FudCBhbmQgdGhlIHNvZnRuZXNzIG9mIHRoZSBzb2Z0d2FyZSBoYXJkZW5zLuKAnSZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7VGhpcyBmcmFtaW5nIGlzIGdyZWF0IGZvciBleHBsaWNpdCBkZWNpc2lvbnMsIGJ1dCB3aGF0IGlmIHlvdSBkb27igJl0IGtub3cgeW914oCZcmUgbWFraW5nIGEgY2hvaWNlPyZsdDsvcCZndDsKCiZsdDtwJmd0O01hbnkgdGltZXMsIHRoZSBjaG9pY2UgaXNu4oCZdCBldmVuIHZpc2libGUgeWV0LCBidXQgd2lsbCByZXZlYWwgaXRzZWxmIGxhdGVyLiBJbiB0aGVzZSBzaXR1YXRpb25zLCB0aGUgYW5zd2VyIGlzIG5vdCB0byBvdmVyIGdlbmVyYWxpemUsIGJ1aWxkaW5nIGFic3RyYWN0aW9ucyBldmVyeXdoZXJlIGp1c3QgaW4gY2FzZS4gSW5zdGVhZCwga2VlcCB0aGluZ3MgYXMgc2ltcGxlIGFzIHBvc3NpYmxlIHNvIHlvdSBjYW4gdW5kZXJzdGFuZCB0aGVtIGxhdGVyIGlmIHlvdSBoYXZlIHRvIG1ha2UgYSBjaGFuZ2UuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O1NpbXBsaWNpdHkgbWFrZXMgaXQgZWFzaWVyIHRvIGFkYXB0IHRvIGNoYW5nZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZWFybHkgZGF5cywgdGhlIENpcmNsZUNJIGFwcGxpY2F0aW9uIHdhcyBhIG1vbm9saXRoIHRoYXQgdG9vayBhIGN1c3RvbWVy4oCZcyBidWlsZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRhdGEgYW5kIHB1c2hlZCBpdCBpbnRvIG9uZSBvZiBzZXZlcmFsIExYQyBjb250YWluZXJzLiBFdmVyeSBjb250YWluZXIgdGhhdCB3ZSBzcHVuIHVwIHdhcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgc2FtZSBpbWFnZSB0aGF0IGNvbnRhaW5lZCBldmVyeXRoaW5nIHRoYXQgd2UgdGhvdWdodCBhbnlvbmUgd291bGQgZXZlciB3YW50IGluIHRoZWlyIHRlc3QgZW52aXJvbm1lbnQuIEluIGhpbmRzaWdodCwgdGhpcyBzb3VuZHMgbGlrZSBhIHRlcnJpYmxlIGlkZWEsIGJ1dCBhdCB0aGUgdGltZSwgaXQgd2FzIGZhbnRhc3RpYy4gSXQgd2FzIHNpbXBsZSB0byBtYWludGFpbiBhbmQgc3VwcG9ydGVkIHRoZSBuZWVkcyBvZiBvdXIgZWFybHkgY3VzdG9tZXJzLCBtYW55IG9mIHdob20gd2VyZSBidWlsZGluZyBSYWlscyBtb25vbGl0aHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXMgdGltZSBwYXNzZWQgYW5kIG91ciBjdXN0b21lciBiYXNlIGdyZXcsIHNvIGRpZCB0aGUgZGl2ZXJzaXR5IG9mIHRoZWlyIG5lZWRzIGluIHRlcm1zIG9mIHRlc3QgZW52aXJvbm1lbnRzLiBVcGdyYWRlZCB2ZXJzaW9ucyBvZiB0aGVpciB1bmRlcmx5aW5nIGRhdGFiYXNlcywgbm92ZWwgbmV3IGRldmVsb3BtZW50IGZyYW1ld29ya3MsIGV2ZW4gbmV3IG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbnMgYmVjYW1lIG5lY2Vzc2FyeS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgb3JpZ2luYWwgY29udGFpbmVyIG1hbmFnZW1lbnQgaW4gQ2lyY2xlQ0kgd2FzbuKAmXQgZGVzaWduZWQgaW4gYSB3YXkgdGhhdCBhbGxvd2VkIHVzIHRvIGFkYXB0IGVhc2lseSB0byB0aGVzZSBjaGFuZ2luZyBuZWVkcy4gQnV0IGl0IHdhcyBmYWlybHkgc2ltcGxlLiBTbyB3aGVuIHdlIHNldCBvdXQgdG8gc29sdmUgdGhlc2UgcHJvYmxlbXMsIHdlIGtuZXcgd2hlcmUgdG8gc3BsaWNlIGluIGEgbmV3IGFwcHJvYWNoIGFuZCBpdCB3YXMgbWluaW1hbCB3b3JrIHRvIGVuYWJsZSB0aGF0IHNwbGljaW5nLiBXZSBhbHNvIGRpZG7igJl0IGhhdmUgdG8gdW5yYXZlbCBhIHBvb3IgZ2VuZXJhbGl6YXRpb24gdGhhdCBkaWRu4oCZdCBzdXBwb3J0IG91ciBuZXcgcHJvYmxlbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3aGlsZSBzZWVtaW5nbHkgc2ltcGxlLCB3ZSB3ZXJlIGZpdmUgeWVhcnMgaW50byBzdWNjZXNzZnVsIGdyb3d0aCBhcyBhIGNvbXBhbnkgbWVldGluZyB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycyBvbiB0aGF0IHNpbXBsZSBzeXN0ZW0gYmVmb3JlIG91ciBmaXJzdCBjdXN0b21lcnMgdGVzdGVkIGl0cyByZXBsYWNlbWVudC4gSW4gdGhvc2UgZml2ZSB5ZWFycywgRG9ja2VyIHdhcyBjcmVhdGVkLCBhcyB3YXMgSGFzaGlDb3Jw4oCZcyBOb21hZC4gQ29tYmluZWQsIHRob3NlIHRvb2xzIGVsaW1pbmF0ZWQgaHVnZSBwb3J0aW9ucyBvZiB0aGUgd29yayBuZWNlc3NhcnkgdG8gZ2V0IHRoZSBmbGV4aWJsZSBhbmQgc2NhbGFibGUgZW52aXJvbm1lbnRzIHRoYXQgd2Ugc3VwcG9ydCBmb3IgY3VzdG9tZXJzIHRvZGF5LiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28sIGFzIHdlIHJldG9vbGVkIHRoZSBzeXN0ZW0gdG8gYWRhcHQgdG8gdGhlIGNoYW5nZWQgbWFya2V0IHdlIHdlcmUgaW4gYSBwb3NpdGlvbiB0byBhc2sg4oCcSG93IGRvIHdlIGRvIHRoaXMgaW4gYSB3YXkgdGhhdCBiZXR0ZXIgcG9zaXRpb25zIHVzIGZvciBpbmNyZW1lbnRhbCBjaGFuZ2U/4oCdIEl0IHdvdWxkIGJlIGRpZmZpY3VsdCB0byBvdmVyc3RhdGUgaG93IG11Y2ggdmFsdWUgdGhhdCBmaXZlIHllYXJzIG9mIGV4cGVyaWVuY2UgcHJvdmlkZWQgd2hlbiBkZXNpZ25pbmcgYSBzb2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdCBzb3VuZHMgd2VpcmQgYW5kIGdyb3NzbHkgdW5mYWlyIHRvIHNheSB0aGlzLCBidXQgbW9zdCBvZiB0aGUgdGltZSB3ZSBkb27igJl0IGV2ZW4ga25vdyB0aGF0IHdl4oCZcmUgbWFraW5nIGEgbW9udW1lbnRhbCBkZXNpZ24gZGVjaXNpb24gYmVjYXVzZSB0aGUgYWx0ZXJuYXRlIHBhdGggaGFzbuKAmXQgc2hvd24gdXAgeWV0LiBIb3cgZG8geW91IGd1YXJkIGFnYWluc3QgdGhpcz8mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7RGVmZXIsIGRlZmVyLCBkZWZlciZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUaGUgY29ycmVjdCBzb2x1dGlvbnMgaGF2ZSBhIGhhYml0IG9mIHJldmVhbGluZyB0aGVtc2VsdmVzIGlmIHlvdSBjYW4gZmluZCBhIHdheSB0byB3YWl0IGxvbmcgZW5vdWdoLiBUZWNobm9sb2d5IGdhaW5zIHRyYWN0aW9uIG9yIGRpZXMuIElmIHlvdSBjaG9zZSBhIGNvbnRhaW5lciBvcmNoZXN0cmF0aW9uIGVuZ2luZSBpbiAyMDE2LCB0aGVyZeKAmXMgYSByb3VnaGx5IDIwJSBjaGFuY2UgdGhhdCB5b3Ugd291bGQgaGF2ZSBjaG9zZW4gS3ViZXJuZXRlcy4gVGhhdCBtZWFucyBieSB0aGUgYmVnaW5uaW5nIG9mIDIwMTgsIGFsbW9zdCA4MCUgb2YgY29tcGFuaWVzIHdlcmUgc3dpdGNoaW5nLiBUaG9zZSBhcmUgbm90IGdyZWF0IG9kZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28gZGVmZXJyaW5nIGNhbiBiZSBnb29kLiBEZWZlcnJpbmcgdG8gdGhlIHBvaW50IG9mIGNyZWF0aW5nIGEgY3Jpc2lzIGlzIG5vdC4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7VGhpbmsgbGlrZSBhIHByb2R1Y3QgbWFuYWdlciZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3VyIGFyY2hpdGVjdHVyZSBpcyBhIGxlYWt5IGFic3RyYWN0aW9uLiBXaGlsZSBDaXJjbGVDSSBpcyBwcm9iYWJseSBhbiBleHRyZW1lIGV4YW1wbGUgb2YgdGhpcyBjYXNlIGR1ZSB0byB0aGUgYWNjZXNzIG91ciBjdXN0b21lcnMgaGF2ZSB0byBzeXN0ZW1zIGluIG91ciBwbGF0Zm9ybSwgdGhlcmUgaXMgYWx3YXlzIHNvbWUgaW1wbGljYXRpb24gZm9yIGN1c3RvbWVycyBvZiB0aGUgZGVjaXNpb25zIHlvdSBtYWtlIGluIGRlZmluaW5nIHlvdXIgYXJjaGl0ZWN0dXJlLiBSZWNvZ25pemluZyB0aGlzIGltcGFjdCBhbmQgYmVpbmcgYWJsZSB0byBjb2hlcmVudGx5IGRpc2N1c3MgYXBwcm9hY2hlcyBhbmQgYWx0ZXJuYXRpdmVzIGlzIGEgaHVnZSBhc3NldCB0aGF0IGFuIGVuZ2luZWVyIGNhbiBicmluZyB0byB0aGVpciBQTSBhbmQgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaGlsZSB3ZSB3ZXJlIHdpdG5lc3NpbmcgYWxsIG9mIHRoaXMgY2hhbmdlIGluIGhvdyBvdXIgY3VzdG9tZXJzIHdlcmUgYnVpbGRpbmcgc29mdHdhcmUsIG9uZSB0aGluZyB3ZSBpZ25vcmVkIGZvciB0b28gbG9uZyB3YXMgdGhlIHJpc2Ugb2YgRG9ja2VyLiBEb2NrZXIgZGlkbuKAmXQgZXZlbiBleGlzdCB3aGVuIENpcmNsZUNJIHN0YXJ0ZWQgaW4gMjAxMSwgdGhlbiBieSAyMDE0IGl0IHdhcyBldmVyeXdoZXJlLiBNYW55IG9mIG91ciBjdXN0b21lcnMgaGFkIHN0YXJ0ZWQgYnVpbGRpbmcgRG9ja2VyIGltYWdlcyBhcyBwYXJ0IG9mIHRoZWlyIGJ1aWxkIHRvIHByZXBhcmUgZm9yIGRlcGxveS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtEb2NrZXIgd2FzIG9yaWdpbmFsbHkgYnVpbHQgb24gdG9wIG9mIExYQywgYW5kIHRoYXQgbWVhbnQgaW4gdGhvc2UgZWFybHkgZGF5cyB3ZSBjb3VsZCBzdXBwb3J0IHRoZSB1c2Ugb2YgRG9ja2VyIGNvbW1hbmRzIHRvIGJ1aWxkIGltYWdlcyBhbmQgcHVzaCB0aGVtIHRvIHJlcG9zaXRvcmllcyBhbGwgaW5zaWRlIG9mIG9uZSBvZiBvdXIgTFhDIGNvbnRhaW5lcnMuIEluIDIwMTQsIERvY2tlciBsYXVuY2hlZCBzb21ldGhpbmcgY2FsbGVkIGxpYmNvbnRhaW5lciBhbmQgdGhleSBwdWxsZWQgYXBhcnQgdGhlIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBzeXN0ZW0gYW5kIGNyZWF0ZWQgZXhlY3V0aW9uIGRyaXZlcnMsIHdoaWNoIHNvb24gbGVkIHRvIHRoZSBkZXByZWNhdGlvbiBvZiB0aGUgTFhDIGRyaXZlci4gRGlzYXBwb2ludGluZywgYnV0IGl0IHN0aWxsIHdvcmtlZC4gVGhlbiBEb2NrZXIgZGVsZXRlZCBhbGwgTFhDIHN1cHBvcnQuIFRoYXQgd2FzIGJhZC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QWx3YXlzIHRoaW5rIGFib3V0IHVzZXJzJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVycyBhbmQgYXJjaGl0ZWN0cywgd2Ugc2F3IHRoaXMgY29taW5nLCBhbmQgZnJhbmtseSwgaXQgd2FzIHVuZGVyIHRoZSByYWRhciBvZiBvdXIgcHJvZHVjdCB0ZWFtLiBPdXIgbm9uLXRlY2huaWNhbCBwcm9kdWN0IGZvbGtzIGRpZG7igJl0IG5lY2Vzc2FyaWx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBidXQgb3VyIGVuZ2luZWVycyB3ZXJlIHRhbGtpbmcgYWJvdXQgaXQgZXZlcnkgZGF5LiBTbyBhcyBhbiBlbmdpbmVlciwgYW4gYXJjaGl0ZWN0LCBvciBhIGxlYWRlciBpbiB0ZWNobm9sb2d5LCB5b3UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBwcm9kdWN0IGFuZCB3b3JraW5nIHdpdGggeW91ciBwcm9kdWN0IG1hbmFnZXJzIHRvIGVuc3VyZSBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGUgaW1wbGljYXRpb25zIG9mIHRlY2huaWNhbCBjaG9pY2VzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0l04oCZcyBpbXBvcnRhbnQgdG8gc2VwYXJhdGUgdGhpcyBkaXNjdXNzaW9uIGZyb20gdGVjaG5pY2FsIGludmVzdG1lbnRzLiBUaGVyZSBpcyBhYnNvbHV0ZWx5IGEgcGxhY2UgZm9yIHRoaXMgdHlwZSBvZiBpbnZlc3RtZW50LCBhbmQsIGFuIGFyZ3VtZW50IHRoYXQgZnJhbWluZyB0aGVzZSBpbnZlc3RtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB5b3UgZnJhbWUgcHJvZHVjdCBpbnZlc3RtZW50cyBtYWtlcyBpdCBtdWNoIGVhc2llciB0byBtYWtlIHRyYWRlb2ZmIGRlY2lzaW9ucy4gSG93ZXZlciwgaWRlbnRpZnlpbmcgdGhlIGRpcmVjdGx5IGN1c3RvbWVyLXZpc2libGUgZmVhdHVyZSBpbXBhY3Qgb2YgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBtb3JlIGNvbW1vbmx5IGRpc2N1c3NlZCBpbXBhY3RzIG9mIGNvc3QsIHBlcmZvcm1hbmNlLCBzZWN1cml0eSwgZXRjLiZsdDsvcCZndDsKCiZsdDtwJmd0O0J1aWxkaW5nIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHlvdXIgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgdmFsdWUgYWNoaWV2ZWQgYnkgeW91ciBjdXN0b21lcnMgd2lsbCBwdXQgeW91IGluIGEgcG9zaXRpb24gdG8gbWFrZSBtb3JlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB3aGF0IGFuZCBob3cgdG8gYnVpbGQgYXMgeW91ciBidXNpbmVzcyBldm9sdmVzLiBUaGVuIHlvdSBjYW4gZm9jdXMgb24gZ2V0dGluZyBhaGVhZCBvZiB0aGF0IGV2b2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7S2VlcCB5b3VyIGhlYWQgdXAmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gQ2FuYWRpYW4gYW5kLCB1bnN1cnByaXNpbmdseSwgSSBncmV3IHVwIHBsYXlpbmcgaWNlIGhvY2tleS4gVGhyb3VnaG91dCBteSBjaGlsZGhvb2QsIEkgc3BlbnQgYW4gZW5kbGVzcyBhbW91bnQgb2YgdGltZSBhdCBwcmFjdGljZSBqdXN0IHNrYXRpbmc6IGZvcndhcmRzLCBiYWNrd2FyZHMsIHR1cm5pbmcsIHN0b3BwaW5nLCBmaWd1cmUgZWlnaHRzIGFyb3VuZCBjb25lcy4gVGhlbiBjYW1lIHN0aWNrIGhhbmRsaW5nLiBUaGUgaWRlYSB3YXMgdG8gaGF2ZSB0aGUgbW92ZW1lbnQgb24gdGhlIGljZSBiZWNvbWUgc2Vjb25kIG5hdHVyZSBzbyBJIGNvdWxkIGZvY3VzIG9uIHdoYXQgcmVhbGx5IG1hdHRlcmVkOiBzZWVpbmcgdGhlIHBsYXkgZGV2ZWxvcCwgZ2V0dGluZyBpbnRvIHNwYWNlLCBhbmQgdHJ5aW5nIHRvIHNjb3JlLiBNYWtlIHRoZSBmdW5kYW1lbnRhbHMgYWxtb3N0IGVmZm9ydGxlc3Mgc28geW91IGNhbiBwdXQgeW91ciBlbmVyZ3kgaW50byB0aGUgbm92ZWwgc3R1ZmYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gc29mdHdhcmUsIHdlIGhhdmUgYSBiYWQgdGVuZGVuY3kgdG8gbWFrZSB0aGUgZnVuZGFtZW50YWxzIGEgbG90IGhhcmRlciB0aGFuIHRoZXkgc2hvdWxkIGJlIGJ5IGFkb3B0aW5nIG5ldyB0ZWNobm9sb2d5IHRoYXQgd2UgdGhpbmsgaXMgZ29pbmcgdG8gYmUgZ2FtZSBjaGFuZ2luZywgYnV0IGVuZHMgdXAgaGF2aW5nIG1vZGVzdCB1cHNpZGUgaWYgYW55LiBUbyBtYWtlIHRoaW5ncyB3b3JzZSwgdGhlIGRvd25zaWRlIGlzIG9mdGVuIHVuYm91bmRlZCBhcyB3ZSBnZXQgb3VyIHRlYW1zIHVwIHRoZSBsZWFybmluZyBjdXJ2ZSwgZmluZCB1bnRlc3RlZCBlZGdlIGNhc2VzIGR1cmluZyBwcm9kdWN0aW9uIGluY2lkZW50cywgYW5kIGludmVudCBvdXIgb3duIOKAnGJlc3QgcHJhY3RpY2VzLuKAnSBBIHdvcmxkIHdoZXJlIFN0YWNrIE92ZXJmbG93IGhhcyBubyBhbnN3ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1doaWxlIHdl4oCZcmUgcHV0dGluZyB0aGlzIGVmZm9ydCBpbnRvIG91ciBub3ZlbCB0ZWNoLCB3ZeKAmXJlIG5vdCBmb2N1c2luZyBvbiBob3cgb3VyIHN5c3RlbXMgbmVlZCB0byBldm9sdmUgdG8gbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QSB0aW1lIHNpbXBsaWNpdHkgd291bGQgaGF2ZSBoZWxwZWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Q2lyY2xlQ0kgaXMgYSBDbG9qdXJlIHNob3AgYW5kLCBpbiBvdXIgZWFybHkgZGF5cywgd2UgZGVjaWRlZCB3ZeKAmWQgYmUgYmV0dGVyIGF0IGZyb250IGVuZCBkZXZlbG9wbWVudCBpZiB3ZSB1c2VkIHRoZSBzYW1lIGxhbmd1YWdlIHRoYXQgd2UgdXNlZCBpbiB0aGUgYmFja2VuZC4gU28gd2UgYWRvcHRlZCBPbSwgYSBDbG9qdXJlU2NyaXB0IHdyYXBwZXIgYXJvdW5kIFJlYWN0LiBBIGZldyB5ZWFycyBsYXRlciwgRGF2aWQgTm9sZW4sIHRoZSBwZXJzb24gd2hvIHN0YXJ0ZWQgT20sIGRlY2lkZWQgaGUgZGlkbuKAmXQgbGlrZSB0aGUgbW9kZWwgc28gaGUgcmVwbGFjZWQgaXQgd2l0aCBzb21ldGhpbmcgaW5jb21wYXRpYmxlIGNhbGxlZCBPbSBOZXh0LiBXZSB0cmllZCB0byBtaWdyYXRlIGluY3JlbWVudGFsbHkgdG8gT20gTmV4dCBhbmQgZW5kZWQgdXAgd2l0aCBhbiBvdmVybHkgY29tcGxleCBmcm9udGVuZCB3aXRoIHR3byBzdGF0ZSBtb2RlbHMgYW5kIG1hc3NpdmUgb3ZlcmhlYWQgdG8gZXZlcnkgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGVuZGVkIHVwIHJld3JpdGluZyBpdCBpbiBSZWFjdC4gSW4gcmV0cm9zcGVjdCwgT20gaGFkIGJvdGggaGlnaCByaXNrIGFuZCBoaWdoIGNvc3QgdG8gY2hhbmdlIGFuZCB3ZSBwYWlkIHRoZSBwcmljZS4gQW5kIHdlIHNwZW50IHRoYXQgdGltZSBsb29raW5nIGF0IG91ciBmZWV0LCBub3QgYWhlYWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm8gY29tcGFueSBoYXMgZXZlciB3b24gYmVjYXVzZSBvZiBhbiBhbWF6aW5nbHkgbm92ZWwgb3IgZXNvdGVyaWMgdGVjaG5vbG9neSBjaG9pY2UuIFRoZXJlIGlzIGFuIGVuZGxlc3MgbGlzdCwgaG93ZXZlciwgb2YgY29tcGFuaWVzIHRoYXQgaGF2ZSB3b24gYmVjYXVzZSB0aGV5IGNhbiBtb3ZlIHF1aWNrbHkgYW5kIHdpdGggYWdpbGl0eSwgYWRhcHRpbmcgdG8gY2hhbmdlIGFzIGl0IGhhcHBlbnMuIFRlY2hub2xvZ3kgc2hvdWxkIGJlIGFuIGFjY2VsZXJhdG9yIGhlbHBpbmcgdXMgbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4gV2VsbC11bmRlcnN0b29kLCBwcm9kdWN0aW9uLXRlc3RlZCB0b29scyBhcmUgZmFyIG1vcmUgbGlrZWx5IHRvIGZpdCB0aGF0IGJpbGwuIEFzIG15IGNvbGxlYWd1ZSBCZWFyIHNheXMsIOKAnElmIGEgdG9vbCBpc27igJl0IGhlbHBpbmcsIGl04oCZcyBub3QgYSB0b29sLCBpdOKAmXMgYSBjaG9yZS4gRHJvcCBpdC7igJ0mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7Q29uY2x1c2lvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtVbmZvcmVzZWVuIGNoYW5nZSBpcyB0b3Atb2YtbWluZCBmb3Igc28gbWFueSBvZiB1cyByaWdodCBub3csIGFuZCBpdOKAmXMgbW9yZSBvYnZpb3VzIHRoYW4gZXZlciB0aGF0LCBpbiBidXNpbmVzcywgbm9ib2R5IGNhbiBwcmVkaWN0IHRoZSBmdXR1cmUuIEl04oCZcyBhIHNhZmUgYmV0IHRoYXQgZm9sa3MgYXQgR00gZGlkbuKAmXQgc3RhcnQgdGhlIHllYXIgdGhpbmtpbmcgYWJvdXQgaG93IHRvIHVzZSB0aGVpciBmYWN0b3JpZXMgdG8gbWFrZSB2ZW50aWxhdG9ycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWluZyBwcmVwYXJlZCB0byBhZGFwdCBpbiB0aGUgZmFjZSBvZiBjaGFuZ2UgcmVxdWlyZXMgdGhpbmtpbmcgYWJvdXQgY2hhbmdlIGFzIGEgZHJpdmVyIGluIGV2ZXJ5dGhpbmcgeW91IGRvLiBXYXRjaCBob3cgeW91ciBtYXJrZXQgaXMgY2hhbmdpbmcgYW5kIHJlZmxlY3Q9IG9uIGhvdyB0aGF0IGltcGFjdHMgeW91ciBhcmNoaXRlY3R1cmUgc28gdGhhdCB5b3UgY2FuIG1ha2UgdGFyZ2V0ZWQsIGluY3JlbWVudGFsIGltcHJvdmVtZW50cyBpbiBpdHMgYWRhcHRhYmlsaXR5LiBUaGlzIHdpbGwgaGVscCBrZWVwIHlvdSBmb2N1c2VkIG9uIGV2b2x1dGlvbiB3aXRob3V0IHdhc3RpbmcgdGltZSBvciBtb25leSBvbiBhcmVhcyB0aGF0IHdvbuKAmXQgbmVlZCBpdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCbGFjayBTd2FuIGV2ZW50cyBhcmUgc28gdW51c3VhbCB0aGF0IHN0dWR5aW5nIHRoZSBzcGVjaWZpY3MgY2FuIGJlIGxvdyB2YWx1ZSwgYnV0IHRoZXkgcmVtaW5kIHVzIGhvdyBmYXIgcmVhbGl0eSBjYW4gYmUgZnJvbSBvdXIgcGxhbnMuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZW5naW5lZXJpbmcgbWFuYWdlcnMgY2FuIGVmZmVjdGl2ZWx5IHN1cHBvcnQgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWVuZ2luZWVyaW5nLW1hbmFnZXJzLWNhbi1lZmZlY3RpdmVseS1zdXBwb3J0LWVuZ2luZWVycy10ZWFtcy1hbmQtb3JnYW5pemF0aW9ucy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+V2VkLCAyOSBBcHIgMjAyMCAxNTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9ob3ctZW5naW5lZXJpbmctbWFuYWdlcnMtY2FuLWVmZmVjdGl2ZWx5LXN1cHBvcnQtZW5naW5lZXJzLXRlYW1zLWFuZC1vcmdhbml6YXRpb25zLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkxlbmEgUmVpbmhhcmQ8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIHR5cGljYWwgam9iIGRlc2NyaXB0aW9uIGZvciBtYW55IGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMgaXMgYWN0aW9uLXBhY2tlZC4gSXQgaXMgYSBtaXggb2YgaGFuZHMtb24gY29kaW5nLCB0ZWNobmljYWwgbGVhZGVyc2hpcCBhbmQgZGVjaXNpb24gbWFraW5nLCBwcm9jZXNzIGFuZCBwcm9qZWN0IG1hbmFnZW1lbnQsIHByb2R1Y3Qgb3ZlcnNpZ2h0LCBwZW9wbGUgbWFuYWdlbWVudCwgZmluZGluZyBhbmQgaGlyaW5nIHRhbGVudCDigKYgdGhlIGxpc3QgZ29lcyBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiBvdXIgd29yaywgd2UgZGVhbCB3aXRoIGJvdGggdGVjaG5pY2FsIGFuZCBwZW9wbGUgc3lzdGVtczogd2Ugc3VwcG9ydCBpbmRpdmlkdWFsIGVuZ2luZWVyc+KAmSBncm93dGg7IGhlbHAgdGVhbXMgYmVjb21lIHN1Y2Nlc3NmdWw7IGFuZCBtYWtlIHRoZSBvcmdhbml6YXRpb24gbW9yZSBwcm9kdWN0aXZlLCBmdW5jdGlvbmFsLCBhbmQgaW5ub3ZhdGl2ZS4gQWJvdmUgYWxsLCBhbiBlbmdpbmVlcmluZyBtYW5hZ2VyIGlzIGEgc2VydmljZSBvciBzdXBwb3J0IHJvbGUgYWNyb3NzIHRoZXNlIHZhcmlvdXMgbGF5ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1BlcmhhcHMgbW9zdCBmYXNjaW5hdGluZyBhbmQgZGlmZmljdWx0IGlzIHRoZSBoaWdoLWxldmVsIG9mIGFtYmlndWl0eSB0aGF0IGNvbWVzIHdpdGggZW5naW5lZXJpbmcgbWFuYWdlbWVudC4gTWFueSBwcm9ibGVtcyBvciBxdWVzdGlvbnMgZG9u4oCZdCBoYXZlIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLiBUaGVyZSBhcmVu4oCZdCBhYnNvbHV0ZSBhbnN3ZXJzIHRvIHdoYXQgaXQgbWVhbnMgdG8gYmUgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgZWl0aGVyLCBidXQgdGhlcmUgYXJlIGNlcnRhaW4gdmFsdWVzIGFuZCBndWlkZXBvc3RzIHRvIGZvbGxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgbG9vayBhdCB3aGF0IGNhbiBzaGFwZSBvdXIgdGhpbmtpbmcgYWJvdXQgb3VyIHJvbGUgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgYW5kIGhvdyB0byBlZmZlY3RpdmVseSBzdXBwb3J0IGluZGl2aWR1YWwgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1doYXQgZG8gZW5naW5lZXJzIG5lZWQgdG8gdGhyaXZlIGF0IHdvcms/Jmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SXQgaGVscHMgdG8gc3RhcnQgc2hhcGluZyBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IHJvbGVzIGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCBlbmdpbmVlcnMgbmVlZCwgYW5kIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGV5IHRocml2ZS4gUmVzZWFyY2ggZnJvbSBwZXJmb3JtYW5jZSBjb2FjaCBhbmQgdHJhaW5lciBQYWxvbWEgTWVkaW5hIGV4cG9zZXMgc2l4IGNvcmUgbmVlZHMgaHVtYW5zIGhhdmUgKGluY2x1ZGluZyBhdCB3b3JrKS4gU2hlIGNhbGxzIHRoaXMgcmVzZWFyY2ggdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGFsb21hbWVkaW5hLmNvbS9iaWNlcHMmcXVvdDsmZ3Q7QklDRVBTIG1vZGVsJmx0Oy9hJmd0OzombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7QmVsb25naW5nLiZsdDsvc3Ryb25nJmd0OyBBcyBodW1hbnMsIHdlIHN0cml2ZSB0byBiZSBwYXJ0IG9mIGEgY29tbXVuaXR5IG9mIGxpa2UtbWluZGVkIHBlb3BsZSB3aGVyZSB3ZSB1bmRlcnN0YW5kIGFuZCBzdXBwb3J0IGVhY2ggb3RoZXIuIFdlIGFsc28gd2FudCB0byBmZWVsIGFzIGlmIHdlIGFyZSBub3QgYmVpbmcgZGlzY3JpbWluYXRlZCBhZ2FpbnN0IG9yIG1hcmdpbmFsaXplZC4gQmVsb25naW5nIGlzIHJlYWxseSBpbXBvcnRhbnQgdG8gbWUgcGVyc29uYWxseTogSSBsb3ZlIHdvcmtpbmcgYXMgcGFydCBvZiBhIGRpc3RyaWJ1dGVkIHRlYW0sIGJ1dCBJIGFsc28gcmVhbGx5IGVuam95IHNlZWluZyBwZW9wbGUgaW4gcGVyc29uIGV2ZXJ5IG9uY2UgaW4gYSB3aGlsZS4gSXQgbWFrZXMgbWUgZmVlbCBtb3JlIGNvbm5lY3RlZCB0byB0aGVtLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7SW1wcm92ZW1lbnQuJmx0Oy9zdHJvbmcmZ3Q7IFdlIGFsc28gc2VlayB0byBjb250aW51b3VzbHkgbGVhcm4sIGltcHJvdmUsIGFuZCBncm93IGluIGFyZWFzIHRoYXQgbWF0dGVyIHRvIHVzLCBhcyB3ZWxsIGFzIHRvIG91ciB0ZWFtIG9yIGNvbXBhbnkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtDaG9pY2UuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8gaGF2ZSBjaG9pY2UsIGNvbnRyb2wsIGFuZCBhdXRvbm9teSBvdmVyIGltcG9ydGFudCBwYXJ0cyBvZiBvdXIgbGl2ZXMuIEluIG9uZSBvZiBteSBwcmV2aW91cyByb2xlcywgSSB0b29rIG9uIGEgbG90IG9mIHdvcmsgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLiBCdXQgdWx0aW1hdGVseSwgdGhlIGNvbnRyb2wgSSBoYWQgb3ZlciBteSBkb21haW4gd2FzIGxpbWl0ZWQgZHVlIHRvIG9yZ2FuaXphdGlvbmFsIGlzc3VlcyDigJMgd2hpY2ggbGVkIG1lIHRvIGxlYXZlIHRoZSBjb21wYW55LiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7RXF1YWxpdHkuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8ga25vdyB0aGF0IG91ciBhY2Nlc3MgdG8gaW5mb3JtYXRpb24sIG1vbmV5LCB0aW1lLCBhbmQgb3RoZXIgcmVzb3VyY2VzIGlzIGZhaXIgYW5kIGVxdWFsIGZvciBldmVyeW9uZSDigJMgbm90IGp1c3QgZm9yIG91cnNlbHZlcywgYnV0IGFsc28gZm9yIHRoZSBwZW9wbGUgYXJvdW5kIHVzLiBFdmVyeW9uZeKAmXMgbmVlZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZXF1YWxseSBpbXBvcnRhbnQuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtQcmVkaWN0YWJpbGl0eS4mbHQ7L3N0cm9uZyZndDsgV2UgbG9vayBmb3IgY2VydGFpbnR5LCBzYWZldHksIGFuZCBzdGFiaWxpdHkgaW4gb3VyIGxpdmVzLiBXZSBhbHNvIHdhbnQgZ29hbHMsIHN0cmF0ZWd5LCBhbmQgZGlyZWN0aW9uIHRvIGJlIGNvbnNpc3RlbnQg4oCTIGFuZCB0byBub3QgY2hhbmdlIHRvbyBxdWlja2x5LiBJ4oCZdmUgYmVlbiBsZWFkaW5nIHRlYW1zIGluIGZhc3QtZ3Jvd2luZyBzdGFydHVwcyBmb3IgdGhlIGxhc3QgY291cGxlIG9mIHllYXJzLCBhbmQgd2hlbiB0aGVyZeKAmXMgYSBsb3Qgb2YgY2hhbmdlIGhhcHBlbmluZywgaXTigJlzIGEgY2hhbGxlbmdlIHRvIGluc3RpbGwgcHJlZGljdGFiaWxpdHkgaW4gdGVhbXMuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtTaWduaWZpY2FuY2UuJmx0Oy9zdHJvbmcmZ3Q7IERlZXAgZG93biwgYWxsIG9mIHVzIHNlZWsgbWVhbmluZywgaW1wb3J0YW5jZSwgYW5kIHN0YXR1cy4gV2UgYWxzbyB3YW50IHRvIGJlIGFwcHJlY2lhdGVkIGZvciBvdXIgd29yayBieSBwZW9wbGUgd2hvc2Ugb3BpbmlvbnMgbWVhbiBzb21ldGhpbmcgdG8gdXMuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0lmIG91ciBjb3JlIG5lZWRzIGFyZSB0aHJlYXRlbmVkLCBwZW9wbGUgcmVzb3J0IHRvIGZpZ2h0LW9yLWZsaWdodCBtb2RlcyBvZiByZWFjdGlvbiwgd2hpY2ggYXJlIHZlcnkgc3RyZXNzZnVsLiBUaGUgZmFpbHVyZSB0byBtZWV0IGNvcmUgbmVlZHMgaGFzIGhpZ2ggY29zdHMgZm9yIG9yZ2FuaXphdGlvbnMgYnkgaGFybWluZyBwZW9wbGUgb24gb3VyIHRlYW1zLiBTbyBob3cgY2FuIGVuZ2luZWVyaW5nIG1hbmFnZXJzIHB1dCB0aGUgQklDRVBTIG1vZGVsIGludG8gYWN0aW9uIHRvIGhlbHAgdGhlaXIgdGVhbXMgdGhyaXZlPyZsdDsvcCZndDsKCiZsdDtoMiZndDtVc2luZyB0cnVzdC1iYXNlZCByZWxhdGlvbnNoaXBzIHRvIGhlbHAgZW5naW5lZXJzIGdyb3cmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgZm91bmRhdGlvbiBvZiBiZWluZyBhIGdvb2QgZW5naW5lZXJpbmcgbWFuYWdlciBpcyBnZXR0aW5nIHRvIGtub3cgb3VyIHRlYW1tYXRlcyBhbmQgdW5kZXJzdGFuZGluZyB3aGF0IGlzIGltcG9ydGFudCB0byB0aGVtLiBIZXJlIGFyZSBhIGZldyBwbGFjZXMgdG8gc3RhcnQgYnVpbGRpbmcgdHJ1c3Qgd2l0aGluIHlvdXIgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0FzayBxdWVzdGlvbnMuJmx0Oy9zdHJvbmcmZ3Q7IE9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCB0b29scyBtYW5hZ2VycyBoYXZlIGlzIGFza2luZyBnb29kIHF1ZXN0aW9ucy4gVGhlIGJhc2lzIGZvciBkb2luZyBvdXIgam9icyB3ZWxsIGlzIGxpc3RlbmluZywgb2JzZXJ2aW5nLCB0YWtpbmcgbm90ZSBvZiB3aGF0IG1vdGl2YXRlcyBvdXIgdGVhbW1hdGVzLCBhbmQgcmVhbGx5IGRpZ2dpbmcgaW50byB0aGVpciByZXNwb25zZXMgdG8gb3VyIHF1ZXN0aW9ucy4gSSB1c3VhbGx5IGdhdGhlciBxdWVzdGlvbnMgYmVmb3JlIEkgbWVldCB3aXRoIG15IHRlYW1tYXRlcyBvbmUtb24tb25lLCBzbyBJIGFtIHByZXBhcmVkIGFuZCBJIGNhbiBndWlkZSB0aGUgY29udmVyc2F0aW9uIHRvd2FyZHMgdW5kZXJzdGFuZGluZyB0aGVtIGJldHRlci4gT3ZlciB0aW1lLCBJIGhhdmUgYnVpbHQgYSBraXQgb2Ygb25lLW9uLW9uZSBxdWVzdGlvbnMgdGhhdCBJIHB1bGwgb3V0IHdoZW4gSSBuZWVkIHNvbWUgaW5zcGlyYXRpb24gZm9yIHRoZXNlIGNvbnZlcnNhdGlvbnMuIEFza2luZyBxdWVzdGlvbnMgaGVscHMgdXMgYWRqdXN0IG91ciBsZWFkZXJzaGlwIHN0eWxlIHRvIHRoZSBwZW9wbGUgd2UgYXJlIGxlYWRpbmcuIEl0IGFsc28gZW5zdXJlcyB0aGF0IHRoZXkgZmVlbCB1bmRlcnN0b29kIGFuZCBoZWFyZCwgd2hpY2ggYXJlIHJlYWxseSBpbXBvcnRhbnQgcGlsbGFycyBvZiBpbmNsdXNpb24gYW5kIGJlbG9uZ2luZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0JlIGN1cmlvdXMuJmx0Oy9zdHJvbmcmZ3Q7IFBlb3BsZSBhcmUgZnVsbCBvZiBzdXJwcmlzZXMsIGFuZCBzb21ldGltZXMgb3VyIHRlYW1tYXRlc+KAmSByZWFjdGlvbnMgbWF5IGJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBleHBlY3RlZC4gSSBvbmNlIHJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIGVuZ2luZWVyIG9uIG15IHRlYW0gd2hvIHdhcyBkZWVwbHkgdXBzZXQgYWJvdXQgdGhlIHNwZWNpZmljIHdvcmRpbmcgdXNlZCBpbiBhIHByb2R1Y3QtcmVsZWFzZSBub3RlIHRvIGN1c3RvbWVycy4gQXQgZmlyc3QgSSBkaWQgbm90IHVuZGVyc3RhbmQgdGhlaXIgc3Ryb25nIHJlYWN0aW9uLiBCdXQgd2hlbiB3ZSB0YWxrZWQsIEkgbGVhcm5lZCB0aGUgZW5naW5lZXIgaGFkIGJlZW4gb3ZlcnJ1bGVkIGJ5IHNvbWVvbmUgd2l0aCBtb3JlIHBvd2VyLCBtYWtpbmcgdGhlbSBmZWVsIGhlbHBsZXNzLCBhbmQgdGhyZWF0ZW5pbmcgdGhlaXIgY29yZSBuZWVkIGZvciBjaG9pY2UgYW5kIGVxdWFsaXR5LiZsdDsvcCZndDsKCiZsdDtwJmd0O1doYXQgbWFuYWdlcnMgbWlnaHQgcGVyY2VpdmUgYXMgbm8gYmlnIGRlYWwgY2FuIGJlIGVub3Jtb3VzIHRocmVhdHMgdG8gb3RoZXIgcGVvcGxlLiBDYXNlcyB3aGVyZSB3ZeKAmXJlIHN1cnByaXNlZCBieSBvdXIgdGVhbW1hdGVz4oCZIHJlYWN0aW9ucyBhcmUgZ29vZCBvcHBvcnR1bml0aWVzIHRvIGZvY3VzIG9uIGh1bWFuLWNlbnRyaWMgcmVzcG9uc2VzLCBsaWtlIGdpdmluZyBwZW9wbGUgdGhlIG9wcG9ydHVuaXR5IHRvIHRhbGsgdGhyb3VnaCB0aGVpciBmZWVsaW5ncy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0Nvbm5lY3QgdG8gdGhlIGJpZ2dlciBwaWN0dXJlLiZsdDsvc3Ryb25nJmd0OyBDcmVhdGluZyBhbiBpbXBhY3QgaXMgYSB2ZXJ5IGdvb2QgbW90aXZhdG9yIGZvciBhbGwgb2YgdXMsIHNvIGhlbHBpbmcgZW5naW5lZXJzIHVuZGVyc3RhbmQgaG93IHRoZWlyIHdvcmsgY29ubmVjdHMgdG8gdGhlIGJpZ2dlciBwaWN0dXJlIChob3cgaXQgaGVscHMgdXNlcnMgb3Igc3VwcG9ydHMgb3RoZXIgdGVhbXMpIGlzIGFuIGV4dHJlbWVseSBpbXBvcnRhbnQgYW5kIHN0cmF0ZWdpYyBza2lsbCBmb3IgbWFuYWdlcnMuIFdoaWxlIGdvYWwtc2V0dGluZyBmcmFtZXdvcmtzIGxpa2UgT0tScyBjYW4gaGVscCwgaXQgaXMgYWxzbyBjcnVjaWFsIHRvIGFsaWduIGVuZ2luZWVyaW5nIGluaXRpYXRpdmVzIHdpdGggaGlnaGVyLWxldmVsIGdvYWxzLCBhbmQgY29ubmVjdCB0aGVtIGNsZWFybHkgd2l0aCB1c2VyIHZhbHVlLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7SW52b2x2ZSBlbmdpbmVlcnMgaW4gZGVjaXNpb24gbWFraW5nLiZsdDsvc3Ryb25nJmd0OyBGZWVsaW5nIHRoYXQgZGVjaXNpb25zIGFyZSBmYWlyIGFuZCBlcXVpdGFibGUgaXMgYW4gaW1wb3J0YW50IGNvbXBvbmVudCBvZiB0aGUgQklDRVBTIG1vZGVsLiBXaGVuIHdlIG1ha2UgZGVjaXNpb25zLCBpdCBpcyBoZWxwZnVsIHRvIGFzayBldmVyeW9uZSBmb3IgdGhlaXIgb3BpbmlvbnMgZmlyc3QsIGFuZCB0YWtlIHRoZWlyIG9waW5pb25zIGludG8gYWNjb3VudC4gSXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBnbyB3aXRoIHdoYXQgZXZlcnlvbmUgd2FudHMuIEJ1dCB3ZSBjYW4gc3RpbGwgZG8gYSBnb29kIGpvYiBhdCBjb250ZXh0dWFsaXppbmcgdGhlIGRlY2lzaW9ucyB3ZSBtYWtlLCBhbmQgaGVscGluZyBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IHRoZWlyIGZlZWRiYWNrIHdhcyBjb25zaWRlcmVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7R2l2ZSBmZWVkYmFjayBmb3IgZ3Jvd3RoLiZsdDsvc3Ryb25nJmd0OyBPbmUgb2YgdGhlIGJlc3QgdGhpbmdzIHdlIGdldCB0byBkbyBhcyBlbmdpbmVlcmluZyBtYW5hZ2VycyBpcyBzdXBwb3J0IGVuZ2luZWVyc+KAmSBncm93dGguIEdpdmUgZmVlZGJhY2sgcmVndWxhcmx5IHRvIGhlbHAgdGhlIHBlb3BsZSBvbiB5b3VyIHRlYW0gdW5kZXJzdGFuZCB3aGVyZSB0aGV5IGFyZSBhdCBhbmQgZ3JvdyDigJMgYnkgY291cnNlLWNvcnJlY3Rpbmcgd2hlcmUgbmVlZGVkLCBhcyB3ZWxsIGFzIGJ5IGRvaW5nIG1vcmUgaW4gdGhlIGFyZWFzIGluIHdoaWNoIHRoZXkgYXJlIGFscmVhZHkgZG9pbmcgZ3JlYXQuIE1hbmFnZXJzIG5lZWQgZmVlZGJhY2sgYXMgd2VsbDogaXTigJlzIGltcG9ydGFudCB0byByZWd1bGFybHkgYXNrIHlvdXIgdGVhbSBmb3IgZmVlZGJhY2sgc28geW91IGNhbiBtYWtlIGFkanVzdG1lbnRzLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Q29hY2ggZW5naW5lZXJzLiZsdDsvc3Ryb25nJmd0OyBDb2FjaGluZyBoZWxwcyBwZW9wbGUgZmluZCBhbnN3ZXJzIHRoZW1zZWx2ZXMsIGltcHJvdmVzIHRoZWlyIHByb2JsZW0tc29sdmluZyBhbmQgbGVhZGVyc2hpcCBza2lsbHMsIGFuZCBpbmNyZWFzZXMgbGVhcm5pbmcsIHJlc2lsaWVuY2UsIGFuZCBzZWxmLW1hbmFnZW1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTcG9uc29yIGVuZ2luZWVycy4mbHQ7L3N0cm9uZyZndDsgVGhpbmsgYmFjayBvbiB5b3VyIGNhcmVlciwgYW5kIHdoZXRoZXIgeW91IGhhdmUgaGFkIGEgbWVudG9yIHdobyBjb25uZWN0ZWQgeW91IHdpdGggc29tZW9uZSwgcHV0IHlvdXIgbmFtZSBmb3J3YXJkLCBhbmQgdXNlZCB0aGVpciBpbmZsdWVuY2UgdG8gbWFrZSBhIGRpZmZlcmVuY2UgaW4geW91ciBjYXJlZXIuIEJlIHRoYXQgcGVyc29uIGZvciBzb21lb25lIGVsc2U6IGludmVzdCBpbiB0aGVpciBncm93dGgsIGxpZnQgdGhlbSB1cCwgYW5kIHB1dCB5b3VyIHdlaWdodCBiZWhpbmQgdGhlaXIgc3VjY2Vzcy4gU3VwcG9ydGluZyB5b3VyIHRlYW3igJlzIHN1Y2Nlc3MgY2FuIG1ha2UgYSByZWFsIGRpZmZlcmVuY2UgZm9yIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhpcyBpcyB0aGUgZm91bmRhdGlvbiBvZiBvdXIgd29yayBhcyBlbmdpbmVlcmluZyBtYW5hZ2Vycy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RHJpdmluZyBhIGN1bHR1cmUgb2YgdHJ1c3QgYW5kIGNvbnRpbnVvdXMgaW1wcm92ZW1lbnQgb24gdGVhbXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgbmV4dCBpbXBvcnRhbnQgYnVpbGRpbmcgYmxvY2sgaW4gb3VyIHdvcmsgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgaXMgdGhlIHRlYW0uIEFjY29yZGluZyB0byByZXNlYXJjaCwgaGlnaC1wZXJmb3JtaW5nIHRlYW1zIG5lZWQgdGhlIGZvbGxvd2luZyBlbGVtZW50cy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7UHN5Y2hvbG9naWNhbCBzYWZldHkuJmx0Oy9zdHJvbmcmZ3Q7IFRoaXMgaXMgYWJvdXQgYmVsaWV2aW5nIHRoYXQgd2Ugd2lsbCBub3QgYmUgcmVqZWN0ZWQsIGFuZCBmZWVsaW5nIGZyZWUgdG8gZXhwcmVzcyBvdXIgd29yay1yZWxhdGVkIHRob3VnaHRzIGFuZCBmZWVsaW5ncyB0byB0aGUgcGVvcGxlIGFyb3VuZCB1cy4gSXQgYWxzbyBtZWFucyBiZWxpZXZpbmcgdGhhdCBvdGhlcnMgd29u4oCZdCB0aGluayBsZXNzIG9mIHVzIGlmIHdlIG1ha2UgYSB3ZWxsLWludGVudGlvbmVkIG1pc3Rha2Ugb3IgYXNrIGZvciBoZWxwLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7U3RydWN0dXJlIGFuZCBjbGFyaXR5LiZsdDsvc3Ryb25nJmd0OyBFdmVyeW9uZSBvbiB0aGUgdGVhbSBzaG91bGQgdW5kZXJzdGFuZCBleHBlY3RhdGlvbnMsIGdvYWxzLCBhbmQgYWNjb3VudGFiaWxpdHkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtNZWFuaW5nIGFuZCBpbXBhY3QuJmx0Oy9zdHJvbmcmZ3Q7IEhpZ2gtcGVyZm9ybWluZyB0ZWFtcyBmaW5kIGEgc2Vuc2Ugb2YgcHVycG9zZSBpbiB0aGVpciB3b3JrLCBhbmQga25vdyB0aGF0IHRoZWlyIHdvcmsgaGFzIGFuIGltcGFjdC4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7THVja2lseSBmb3IgbWFuYWdlcnMsIHRoaXMgcmVzZWFyY2ggbmVhdGx5IGFsaWducyB3aXRoIHRoZSBCSUNFUFMgbW9kZWwuIEFsbCBodW1hbiBjb3JlIG5lZWRzIGFyZSByZXByZXNlbnRlZCBhbmQgaGF2ZSBpbXBhY3QgYXQgdGhlIHRlYW0gbGV2ZWwgYXMgd2VsbC4gQnkgdW5kZXJzdGFuZGluZyBhbmQgcmVzcG9uZGluZyB0byBwZW9wbGXigJlzIG1vdGl2YXRpb25zLCBsZWFkZXJzIGNyZWF0ZSB0aGUgYmFzaXMgZm9yIHRlYW1zICB0byBleHByZXNzIHRoZW1zZWx2ZXMg4oCTIGFuZCBwcm92aWRlIHRoZSBzdHJ1Y3R1cmUsIG1lYW5pbmcsIGFuZCBpbXBhY3QgdGhleSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgdHJ1c3QuJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBmaXJzdCBzdGVwIGluIGNyZWF0aW5nIHN0cnVjdHVyZSBpcyBidWlsZGluZyByZWxhdGlvbnNoaXBzLiBGb3Igb3VyIGRpc3RyaWJ1dGVkIHRlYW1zIGF0IENpcmNsZUNJLCB3ZeKAmXZlIGJ1aWx0IGRpZmZlcmVudCBzdHJ1Y3R1cmVzIHRvIGhlbHAgdGVhbW1hdGVzIGRvIHRoYXQsIHN1Y2ggYXMgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucyBhbmQgZW5naW5lZXJpbmcgdGFsa3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTdHJ1Y3R1cmUgYXJvdW5kIGhvdyB3ZSBjb2xsYWJvcmF0ZS4mbHQ7L3N0cm9uZyZndDsgT3VyIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0kgaGFzIGRvdWJsZWQgaW4gc2l6ZSBmb3IgdGhyZWUgeWVhcnMgaW4gYSByb3cuIE92ZXIgdGhpcyB0aW1lLCB3ZeKAmXZlIG1vdmVkIHRvIGEgbW9yZSBzdHJlYW1saW5lZCBlbmdpbmVlcmluZyBkZWxpdmVyeSBwcm9jZXNzIGZvciBhbGwgdGVhbXMuIEJ1dCB3ZSBzdGlsbCBsZWF2ZSBpdCB0byB0aGUgdGVhbXMgdG8gZGVjaWRlIGhvdyB0byBpbXBsZW1lbnQgdCBkYXktdG8tZGF5IHByb2Nlc3NlcywgaW5jbHVkaW5nIGRhaWx5IHN0YW5kdXAgbWVldGluZ3MsIHBsYW5uaW5nIHNlc3Npb25zLCBvciBjb2xsYWJvcmF0aW9uLiBFdmVyeSB0ZWFtIGhhcyBzcGVjaWZpYyBuZWVkcywgYW5kIHRoZXkga25vdyBiZXN0IGhvdyB0byBhZGRyZXNzIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtSZW1vdmUgYmxvY2tlcnMuJmx0Oy9zdHJvbmcmZ3Q7IFN0cnVjdHVyZXMgY2FuIGFsc28gaGVscCBtaXRpZ2F0ZSB0aGUgaW1wYWN0IG9mIGdldHRpbmcgYmxvY2tlZCBhdCB3b3JrLiBXZSBhbGwga25vdyBob3cgZnJ1c3RyYXRpbmcgaXQgaXMgdG8gYmUgc3R1Y2suIFB1dHRpbmcgdXAgcGF0aHdheXMgdG8gaGVscCBwZW9wbGUgZ2V0IHVuYmxvY2tlZCBjYW4gYmUgcmVhbGx5IGltcG9ydGFudCDigJMgZm9yIGV4YW1wbGUsIHNldHRpbmcgdXAgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucywgaW52ZXN0aW5nIGluIHNlbGYtc2VydmUgaW5mb3JtYXRpb24gYWNjZXNzLCBzdXBwb3J0aW5nIGVhY2ggb3RoZXIgYWNyb3NzIHRlYW1zLCBwdXR0aW5nIHVwIGVzY2FsYXRpb24gcGF0aHMgZm9yIHBlb3BsZSB0byBnZXQgaGVscCB3aGVuIHRoZXkgbmVlZCBpdCwgb3IgaGVscGluZyBwZW9wbGUgc3VwcG9ydCBlYWNoIG90aGVyIHRocm91Z2gga25vd2xlZGdlLXNoYXJpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtDb250aW51b3VzbHkgaW1wcm92ZS4mbHQ7L3N0cm9uZyZndDsgV2UgY2FuIHVzZSByZXRyb3NwZWN0aXZlcyB0byBkaXNjdXNzIGFuZCBpbXByb3ZlIGhvdyB3ZSB3b3JrIHRvZ2V0aGVyLiBCbGFtZWxlc3MgcG9zdG1vcnRlbXMgYXJlIGFsc28gYSBncmVhdCB0b29sIHRvIGhlbHAgdW5kZXJzdGFuZCBwcm9ibGVtcyBhbmQgZHJpdmUgdG93YXJkcyBzb2x1dGlvbnMuIENvZGUgcmV2aWV3cywgbWVudG9yaW5nLCBvciBrbm93bGVkZ2Ugc2hhcmluZyBjYW4gaGVscCB0ZWFtIG1lbWJlcnMgbGVhcm4gZnJvbSBlYWNoIG90aGVyLiBUaGUgd2F5IHdlIHRhbGsgYWJvdXQgbGVhcm5pbmcgbWF0dGVycyDigJMgZXNwZWNpYWxseSB0aGUgd2F5IHdlIGRpc2N1c3MgbWlzdGFrZXMuIFRoZXNlIGRlY2lzaW9ucyB3aWxsIGZ1bmRhbWVudGFsbHkgc2hhcGUgdGhlIGN1bHR1cmUgb2Ygb3VyIHRlYW1zLCBhbmQgZGV0ZXJtaW5lIHdoZXRoZXIgcGVvcGxlIGZlZWwgc2FmZSBvciB0aHJlYXRlbmVkIGluIHRoZWlyIGNvcmUgbmVlZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtEcml2ZSB0b3dhcmQgYWxpZ25tZW50LiZsdDsvc3Ryb25nJmd0OyBDb21tdW5pY2F0ZSBzdHJhdGVneSwgZGlyZWN0aW9uLCBhbmQgcmVsZXZhbnQgdGFjdGljYWwgZGV0YWlscyB0byBvdXIgdGVhbXMg4oCTIGFuZCByZW1lbWJlciBpdOKAmXMgYWxtb3N0IGltcG9zc2libGUgdG8gb3Zlci1jb21tdW5pY2F0ZSB0aGVzZSBkZXRhaWxzLiBBbHdheXMgcmVwZWF0IHdoYXTigJlzIGltcG9ydGFudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBlbmdpbmVlcmluZyBtYW5hZ2Vycywgd2UgYXJlIGxpa2UgbW9ydGFyOiBXZSBjb25uZWN0IHN0cnVjdHVyZXMsIHRlYW1zLCBhbmQgcGVvcGxlLiBXZSBob2xkIHRoZW0gdG9nZXRoZXIsIGJ1dCBhbHNvIGlkZW50aWZ5IGFuZCBmaWxsIGdhcHMgYXMgbmVlZGVkLiBIYW5kbGluZyBhbWJpZ3VpdHkgaXMgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgZGlmZmljdWx0IGFzcGVjdHMgb2YgZW5naW5lZXJpbmcgbWFuYWdlbWVudC4uIEZvciBhIGxvdCBvZiB3b3JrIGluIG91ciBmaWVsZCwgdGhlcmUgYXJlIG5vIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLCBsZXQgYWxvbmUgcmVzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T3VyIHdvcmsgaXNu4oCZdCBzbyBtdWNoIGFib3V0IHVzOyBpdOKAmXMgYWJvdXQgdGhlIHBlb3BsZSwgdGVhbXMsIGFuZCBvcmdhbml6YXRpb25zIHdlIHN1cHBvcnQuIFdlIGJ1aWxkIHN0cnVjdHVyZXMgdG8gaGVscCBvdGhlcnMgc2hpbmUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1N1cHBvcnRpbmcgb3JnYW5pemF0aW9uYWwgY2hhbmdlJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7TGFzdGx5LCBjcmVhdGluZyBlbnZpcm9ubWVudHMgaW4gd2hpY2ggZW5naW5lZXJzIGNhbiB0aHJpdmUgaXMgYWJvdXQgc3VwcG9ydGluZyBvdXIgb3JnYW5pemF0aW9uLiBXZSBuZWVkIHRvIHVzZSBvdXIgcG93ZXIgYXMgbWFuYWdlcnMgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLCBubyBtYXR0ZXIgdGhlIHNpemUgb2Ygb3VyIGJ1c2luZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtBZHZvY2F0ZSBmb3IgY2hhbmdlLiZsdDsvc3Ryb25nJmd0OyBUbyBiZSBlZmZlY3RpdmUgYXMgbWFuYWdlcnMsIHdlIG5lZWQgdG8gcHVzaCBmb3Igb3JnYW5pemF0aW9uYWwgY2hhbmdlIHRvIGltcHJvdmUgdGhlIGxhcmdlciBzdHJ1Y3R1cmVzIGFyb3VuZCB1cy4gRm9yIGV4YW1wbGUsIHdlIG1heSBuZWVkIHRvIGFkdm9jYXRlIGZvciBtb3JlIGNsYXJpdHkgYXJvdW5kIGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMsIGhhdmUgY29udmVyc2F0aW9ucyBhYm91dCB3aGF0IGVuZ2luZWVyaW5nIG1hbmFnZW1lbnQgc2hvdWxkIGJlIGxpa2UgaW4gb3VyIGNvbXBhbnksIGFuZCBkZXRlcm1pbmUgcmVxdWlyZW1lbnRzIGZvciBoaXJpbmcgZW5naW5lZXJpbmcgbWFuYWdlcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtNYW5hZ2UgdXAuJmx0Oy9zdHJvbmcmZ3Q7IE1hbmFnaW5nIG91ciBvd24gbWFuYWdlcnMgaXMgYSB1c2VmdWwgYnV0IGRpZmZpY3VsdCBza2lsbC4gRHJpdmluZyBvcmdhbml6YXRpb25hbCBjaGFuZ2UgYWxzbyBtZWFucyBtYWtpbmcgc3VyZSB0aGF0IG91ciBlbmdpbmVlcnPigJkgY29uY2VybnMgYXJlIGhlYXJkIGF0IHRoZSBoaWdoZXN0IGxldmVscywgYW5kIHRoYXQgd2UgdXNlIG91ciBwb3dlciB0byBtYWtlIHN1cmUgZW5naW5lZXJzIGhhdmUgYSB2b2ljZSBpbiB0aGUgcmVzdCBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgZnJhbWV3b3JrcyBhbmQgc3RhbmRhcmRzLiZsdDsvc3Ryb25nJmd0OyBXaGlsZSBpdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIG1ha2Ugcm9vbSBmb3IgaW5kaXZpZHVhbCBuZWVkcywgc3RydWN0dXJlcyBhbmQgZnJhbWV3b3JrcyBmb3IgbWFuYWdlcnMgaGVscCB1cyBob2xkIGVhY2ggb3RoZXIgYWNjb3VudGFibGUuIFRoZXkgYWxzbyAgaGVscCBsZXZlbCB0aGUgcGxheWluZyBmaWVsZCBhbmQgYnVpbGQgaW4gZXF1YWxpdHkgZm9yIHRoZSBwZW9wbGUgb24gb3VyIHRlYW1zLiBPbiBteSBjdXJyZW50IHRlYW0sIGV2ZXJ5IHF1YXJ0ZXIgd2UgcGljayBzb21lIGhpZ2gtcHJpb3JpdHkgcHJvamVjdHMgIHRvIGltcHJvdmUgaG93IHdlIHdvcmsgYXMgYW4gb3JnYW5pemF0aW9uLiBNb3N0IHJlY2VudGx5LCB3ZeKAmXZlIHdvcmtlZCBvbiBvdXIgaGlyaW5nIHByb2Nlc3MgYW5kIGluY2lkZW50IHJlbWVkaWF0aW9uOyBsYXN0IHllYXIsIHdlIGRldmVsb3BlZCBhbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvd2h5LXdlLXJlLWRlc2lnbmVkLW91ci1lbmdpbmVlcmluZy1jYXJlZXItcGF0aHMtYXQtY2lyY2xlY2kvJnF1b3Q7Jmd0O2ludGVybmFsIGNhcmVlciBncm93dGggZnJhbWV3b3JrIGZvciBlbmdpbmVlcnMmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtHcm93aW5nIGFzIGEgbGVhZGVyJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7QmVpbmcgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgaXNu4oCZdCBhbHdheXMgYSBzdHJhaWdodGZvcndhcmQgcGF0aDsgYSBsb3QgZGVwZW5kcyBvbiB3aGVyZSB3ZSBhcmUgYXQgaW4gb3VyIGNhcmVlcnMgYW5kIHdoZXJlIHdlIGFyZSBsb29raW5nIHRvIGdvLCBhcyB3ZWxsIGFzIHRoZSBncm93dGggc3RhZ2UsIHNpemUsIGFuZCBuZWVkcyBvZiBvdXIgb3JnYW5pemF0aW9ucy4gSW4gb3VyIGRhaWx5IHdvcmssIHdlIGhvbGQgdmFzdCBhbW91bnRzIG9mIHVuY2VydGFpbnR5IHdoaWxlIGFsc28gdHJ5aW5nIHRvIG1ha2UgcHJvZ3Jlc3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QW4gb3ZlcmFyY2hpbmcgdGhlbWUgaW4gbXkgd29yayBpbiBlbmdpbmVlcmluZyBtYW5hZ2VtZW50ICBoYXMgYmVlbiBncm93dGggYW5kIGltcHJvdmVtZW50LiBXZSByYXJlbHkgZGVhbCB3aXRoIGdyZWVuZmllbGQgcHJvamVjdHMgb3IgYXJlIGFibGUgdG8gYnVpbGQgYSB0ZWFtIG9yIGRlcGFydG1lbnQgZnJvbSBzY3JhdGNoLiBFdmVuIHdoZW4gd2UgZG8sIHdlIGJ1aWxkIG9uIGV4aXN0aW5nIHN0cnVjdHVyZXMgaW4gb3VyIG9yZ2FuaXphdGlvbi4gSSBiZWxpZXZlIG91ciBzdXBwb3J0aW5nIHJvbGUgbGFyZ2VseSBtZWFucyBoZWxwaW5nIGVuZ2luZWVycyBncm93LCBzdXBwb3J0aW5nIHRlYW1zIGF0IGNvbnRpbnVvdXNseSBsZWFybmluZywgYW5kIGhlbHBpbmcgb3JnYW5pemF0aW9ucyBiZWNvbWUgYmV0dGVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVyaW5nIG1hbmFnZXJzLCB3ZSBmcmVxdWVudGx5IGZhY2UgcXVlc3Rpb25zIHRoYXQgZG9u4oCZdCBjbGVhciByaWdodCBvciB3cm9uZyBhbnN3ZXJzLiBNYW55IHllYXJzIGFnbywgbXkgbGVhZGVyc2hpcCBjb2FjaCBlbmNvdXJhZ2VkIG1lIHRvIHVzZSB0aG9zZSBraW5kcyBvZiB1bmNlcnRhaW4gc2l0dWF0aW9ucyB0byBhc2sgbXlzZWxmLCDigJxXaGF0IGtpbmQgb2YgbGVhZGVyIGRvIEkgd2FudCB0byBiZT/igJ0mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJIHdhbnQgdG8gbGVhdmUgdGhlIGxhc3QgY2FsbCB0byBncm93dGggYW5kIGltcHJvdmVtZW50IHdpdGggeW91IChhbmQgbWUpOiBObyBtYXR0ZXIgd2hhdCB5b3VyIHJvbGUgb3IgY29tcGFueSBpcyBsaWtlLCB3b3JrIG9uIHNoYXBpbmcgeW91ciBhcHByb2FjaCB0byBlbmdpbmVlcmluZyBtYW5hZ2VtZW50LiBHZXQgdG8ga25vdyB0aGUgcGVvcGxlIHRoYXQgeW91IHdvcmsgd2l0aCwgYW5kIHVzZSBmZWVkYmFjayB0byBoZWxwIHRoZW0gY291cnNlLWNvcnJlY3QuIEJ1aWxkIHRlYW1zIHRoYXQgYXJlIHBzeWNob2xvZ2ljYWxseSBzYWZlIHBsYWNlcywgd2hlcmUgcGVvcGxlIGZpbmQgbWVhbmluZyBpbiBhIHNoYXJlZCBwdXJwb3NlLiBBbmQgdXNlIHlvdXIgcG93ZXIgYW5kIHByaXZpbGVnZSB0byBkcml2ZSBjaGFuZ2UgaW4geW91ciBvcmdhbml6YXRpb24uIE1ha2UgcGVvcGxlIHRoZSBjZW50ZXIgYW5kIGZvY3VzIG9mIHlvdXIgd29yaywgYW5kIGJ1aWxkIG9uIHRoYXQgZm91bmRhdGlvbiB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhleSBjYW4gdGhyaXZlLiAgQWx3YXlzIHB1c2ggdG8gY29udGludW91c2x5IGltcHJvdmUuIExlYWQgd2l0aCBodW1ibGVuZXNzLCBlbXBhdGh5LCBhbmQgbG90cyBvZiBjdXJpb3NpdHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2hhdCBraW5kIG9mIGxlYWRlciBkbyB5b3Ugd2FudCB0byBiZT8mbHQ7L3AmZ3Q7CgombHQ7aHIgLyZndDsKJmx0O3AmZ3Q7SWYgeW914oCZcmUgY3VyaW91cyBhYm91dCBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IGF0IENpcmNsZUNJIGFuZCB3b3JraW5nIHdpdGggdXM6IGpvaW4gdXMhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9ib2FyZHMuZ3JlZW5ob3VzZS5pby9jaXJjbGVjaSZxdW90OyZndDtXZeKAmXJlIGhpcmluZyBlbmdpbmVlcmluZyBtYW5hZ2VycyZsdDsvYSZndDsuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5CdWlsZGluZyBhbmQgZGVwbG95aW5nIEZsdXR0ZXIgYXBwcyB3aXRoIEZhc3RsYW5lPC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RlcGxveS1mbHV0dGVyLWFuZHJvaWQvPC9saW5rPgogICAgICAgIDxwdWJEYXRlPldlZCwgMjkgQXByIDIwMjAgMTA6MDA6MDAgLTA3MDA8L3B1YkRhdGU+CiAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9InRydWUiPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZGVwbG95LWZsdXR0ZXItYW5kcm9pZC88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5HYWJyaWVsIFNpbW1lcjwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvJnF1b3Q7Jmd0O0ZsdXR0ZXImbHQ7L2EmZ3Q7IGlzIGEgdG9vbGtpdCBwcm92aWRlZCBieSBHb29nbGUgZm9yIGJ1aWxkaW5nIGNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9ucywgaW5jbHVkaW5nIEFuZHJvaWQsIGlPUywgYW5kIHdlYiBhcHBzLiBBcyBtb3JlIGFwcHMgYXJlIHdyaXR0ZW4gdXNpbmcgaXQgYW5kIERhcnQgKHRoZSB1bmRlcmx5aW5nIGxhbmd1YWdlKSwgaXTigJlzIGJlY29taW5nIG1vcmUgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyBkZXZlbG9wZXJzIGNhbiBwYWNrYWdlIGFuZCBkZWxpdmVyIHRoZWlyIGNvZGUgdG8gdGhlaXIgdXNlcnMuIExldmVyYWdpbmcgQ2lyY2xlQ0kgYW5kIEZhc3RsYW5lLCB0aGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcHJvY2VzcyB0aGF0IGNhbiBiZSBhdXRvbWF0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbGluZyBGbHV0dGVyIGFuZCBjcmVhdGluZyB5b3VyIGZpcnN0IGFwcCBjYW4gYmUgZG9uZSBieSBmb2xsb3dpbmcgdGhlc2UgZ3VpZGVzOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvZG9jcy9nZXQtc3RhcnRlZC9pbnN0YWxsJnF1b3Q7Jmd0O0luc3RhbGwmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2ZsdXR0ZXIuZGV2L2RvY3MvZ2V0LXN0YXJ0ZWQvY29kZWxhYiZxdW90OyZndDtXcml0ZSB5b3VyIGZpcnN0IGFwcCZsdDsvYSZndDsuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBkZWZhdWx0IOKAnGhlbGxvIHdvcmxk4oCdIGFwcCB3aWxsIHN1ZmZpY2UuIFdlIHdvbuKAmXQgYmUgZGVhbGluZyBtdWNoIHdpdGggdGhlIGFwcGxpY2F0aW9uIGl0c2VsZi4gUHVzaCBpdCB0byBhIHJlcG9zaXRvcnkgb24gR2l0SHViLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Vuc3VyZSB0aGF0IHlvdSBhcmUgc2V0IHVwIHRvIHB1Ymxpc2ggYXBwcyB1c2luZyBHb29nbGUgUGxheSBvciB0aGUgQXBwbGUgQXBwIFN0b3JlIC0gc3RlcHMgZm9yIGVhY2ggd2lsbCB2YXJ5LCBzbyBiZSBzdXJlIHRvIGZvbGxvdyB0aGUgc3RlcHMgb3V0bGluZWQgZm9yIHRoZSByZXNwZWN0aXZlIHByb3ZpZGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBbmRyb2lkJmx0Oy9oMiZndDsKCiZsdDtwJmd0O1doZW4gcHVibGlzaGluZyBBbmRyb2lkIGFwcHMsIHRoZXJlIGFyZSBhIGZldyByZXF1aXJlbWVudHMgdG8gc2F0aXNmeSBiZWZvcmUgaW1wbGVtZW50aW5nIEZhc3RsYW5lLiBBbiDigJx1cGxvYWQga2V54oCdIGlzIHJlcXVpcmVkIHNvIHRoYXQgR29vZ2xlIGNhbiB2ZXJpZnkgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUgYXBwIGJlZm9yZSBhY2NlcHRpbmcgaXQuIFN0ZXBzIGZvciBzZXR0aW5nIHRoaXMgdXAgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9mbHV0dGVyLmRldi9kb2NzL2RlcGxveW1lbnQvYW5kcm9pZCZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oy4gSXTigJlzIHJlY29tbWVuZGVkIHRvIHVzZSBBcHBCdW5kbGVzIHdoZW4gYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBhcyBpdCBhbGxvd3MgR29vZ2xlIHRvIGJ1aWxkIGluZGl2aWR1YWwgQVBLcyBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyB3aGlsZSBrZWVwaW5nIGZpbGVzaXplIGRvd24uIFRha2Ugbm90ZSBvZiB3aGVyZSB5b3Ugc2F2ZSB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5qa3MmbHQ7L2NvZGUmZ3Q7IGZpbGUuIFdoaWxlIGl0IGNhbiBsaXZlIGluIHlvdXIgaG9tZSBkaXJlY3RvcnksIGhhdmluZyBpdCBzYXZlZCB0byBhIGdpdC1pZ25vcmVkIGRpcmVjdG9yeSBpbiB5b3VyIHByb2plY3Qgd2lsbCBjb21lIGluIGhhbmR5IHdoZW4gY29uZmlndXJpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1R3byB0aGluZ3MgZnJvbSB0aGlzIGd1aWRlIHdpbGwgbmVlZCB0byBiZSBhZGRlZCB0byBDaXJjbGVDSSBhcyAmbHQ7YSBocmVmPSZxdW90Oy9kb2NzLzIuMC9lbnYtdmFycy8mcXVvdDsmZ3Q7ZW52aW9ybm1lbnQgdmFyaWFibGVzJmx0Oy9hJmd0OzogdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlIGFuZCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7a2V5LmprcyZsdDsvY29kZSZndDsgZmlsZS4gVGhpcyB3aWxsIGFsbG93IHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBzaWduIHRoZSBhcHBsaWNhdGlvbi4gU2luY2Ugb25lIGZpbGUgcmVxdWlyZXMgbmV3bGluZXMgdG8gYmUgcHJlc2VudCwgYW5kIGFub3RoZXIgaXMgYSBiaW5hcnkgZmlsZSwgaXTigJlzIHJlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgYmFzZTY0LWVuY29kZWQgcHJpb3IgdG8gYWRkaW5nIHRoZW0gYXMgZW52aW9ybm1lbnQgdmFyaWFibGVzIHRvIHByZXNlcnZlIHRoZSBkYXRhLiZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBjYW4gZW5jb2RlIHRoZW0gYnkgcnVpbm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2F0ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7IHwgYmFzZTY0IC13IDAgIyAtdyAwIHdpbGwgZW5zdXJlIG5vIG5ld2xpbmVzIGFyZSBwcmVzZW50LgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBmaWxlcyBjYW4gdGhlbiBiZSByZS1hZGRlZCBkdXJpbmcgdGhlIGpvYiB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2VjaG8gJnF1b3Q7JEVOVl9WQVJJQUJMRV9OQU1FJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIGFsc28gd2FudCB0byBzZXQgdXAgYSBGYXN0bGFuZSBzZXJ2aWNlIGFjY291bnQgd2hpbGUgY3JlYXRpbmcgeW91ciBBbmRyb2lkIHNldHVwLiBZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5mYXN0bGFuZS50b29scy9nZXR0aW5nLXN0YXJ0ZWQvYW5kcm9pZC9zZXR1cC8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuIEJlIHN1cmUgdG8ga2VlcCB5b3VyIFNlcnZpY2UgQWNjb3VudCBKU09OIGZpbGUgaGFuZHkuIFdl4oCZbGwgYmUgYWRkaW5nIHRoYXQgdG8gdGhlIHBpcGVsaW5lIHNob3J0bHkuIEFsc28gbm90ZSB0aGF0IGNvbW1hbmRzIHNob3VsZCBiZSBydW4gZnJvbSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZCZsdDsvY29kZSZndDsgZGlyZWN0b3J5IHVuZGVyIHlvdXIgRmx1dHRlciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IHJlcXVpcmVkIGJ5IEZhc3RsYW5lIGNhbiBiZSBkb25lIGJ5IGFkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IEpTT04gZmlsZSBjb250ZW50cyBhcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IGVudmlvcm5tZW50IHZhcmlhYmxlLiBUaGlzIGlzIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1NVUFBMWV9KU09OX0tFWSZsdDsvY29kZSZndDsgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgYSBmaWxlIHBhdGggdG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0Zhc3RsYW5lJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05vdyB0aGF0IG91ciBlbnZpb3JubWVudCB2YXJpYWJsZXMgYXJlIGluIHBsYWNlIGFuZCB3ZSBjYW4gYnVpbGQgYSBzaWduZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LmFhYiZsdDsvY29kZSZndDsgZmlsZSB1c2luZyBGbHV0dGVyLCBpdOKAmXMgdGltZSB0byB0ZWxsIEZhc3RsYW5lIGhvdyB0byBkbyB0aGlzIGZvciB1cy4gV2XigJlsbCBzdGFydCB3aXRoIEFuZHJvaWQuIE9wZW5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZC9mYXN0bGFuZS9GYXN0ZmlsZSZsdDsvY29kZSZndDsgd2lsbCByZXZlYWwgc29tZSBkZWZhdWx0cyBmb3IgYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBidXQgdGhleSB3b27igJl0IHdvcmsgZm9yIG91ciB1c2UgY2FzZS4gV2XigJlyZSBidWlsZGluZyB3aXRoIEZsdXR0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rmlyc3QsIGxldOKAmXMgZGVmaW5lIGEgbmV3IOKAnGxhbmXigJ0uIFRoaXMgaXMgYSBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgRmFzdGxhbmUgd2lsbCBleGVjdXRlIHdoZW4gY2FsbGVkLiBGb3Igbm93LCB3ZeKAmWxsIGJlIHB1c2hpbmcgb3VyIGFwcCB0byB0aGUg4oCcYmV0YeKAnSBjaGFubmVsLCBub3QgdG8gcHJvZHVjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwoKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgaXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIGxhbmUuIE5leHQsIHdl4oCZbGwgd2FudCB0byBncmFiIGEgYnVpbGQgbnVtYmVyIHdoaWNoIGlzIGFuIGluY3JlbWVudGluZyBudW1iZXIgdXNlZCBhcyBhIHJlZmVyZW5jZSBmb3IgdGhlIHZlcnNpb24gb2YgdGhlIGFwcCAod2hpY2ggZGlmZmVycyBmcm9tIHRoZSB1c2VyLWZhY2luZyBzZW12ZXIpLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHRvIHRoZSBsYW5lOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ICBidWlsZF9udW1iZXIgPSBudW1iZXJfb2ZfY29tbWl0cygpCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgZW5zdXJlcyB0aGF0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZF9udW1iZXImbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0aGF0IGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBHaXQgcmVwb3NpdG9yeS4gVGhpcyBjYW4gYWxzbyBiZSBtYW51YWxseSBpbmNyZW1lbnRlZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVic3BlYy55YW1sJmx0Oy9jb2RlJmd0OyBmaWxlIHRoYXQgRmx1dHRlciB1c2VzIHRvIGJ1aWxkIHRoZSBwYWNrYWdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdl4oCZbGwgZG8gdGhlIGJ1aWxkaW5nLiBXZSBuZWVkIHRvIGdvIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5LCBydW4gYSBmZXcgc2hlbGwgY29tbWFuZHMgdG8gZmV0Y2ggb3VyIHBhY2thZ2VzLCBjbGVhbiB0aGUgcHJldmlvdXMgYnVpbGQgKGlmIGF2YWlsYWJsZSksIHRoZW4gYnVpbGQgdGhlIGFwcGJ1bmRsZSB3aXRoIG91ciBidWlsZCBudW1iZXIuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIERpci5jaGRpciAmcXVvdDsuLi8uLiZxdW90OyBkbwogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7cGFja2FnZXMmcXVvdDssICZxdW90O2dldCZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2NsZWFuJnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7YnVpbGQmcXVvdDssICZxdW90O2FwcGJ1bmRsZSZxdW90OywgJnF1b3Q7LS1idWlsZC1udW1iZXI9I3tidWlsZF9udW1iZXJ9JnF1b3Q7KQogIGVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtGaW5hbGx5LCB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYXBwIHN0b3JlIG9uIHRoZSBiZXRhIGNoYW5uZWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIHVwbG9hZF90b19wbGF5X3N0b3JlKHRyYWNrOiAnYmV0YScsIGFhYjogJy4uL2J1aWxkL2FwcC9vdXRwdXRzL2J1bmRsZS9yZWxlYXNlL2FwcC5hYWInKQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGxhbmUgd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwogIGJ1aWxkX251bWJlciA9IG51bWJlcl9vZl9jb21taXRzKCkKICBEaXIuY2hkaXIgJnF1b3Q7Li4vLi4mcXVvdDsgZG8KICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O3BhY2thZ2VzJnF1b3Q7LCAmcXVvdDtnZXQmcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtjbGVhbiZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2J1aWxkJnF1b3Q7LCAmcXVvdDthcHBidW5kbGUmcXVvdDssICZxdW90Oy0tYnVpbGQtbnVtYmVyPSN7YnVpbGRfbnVtYmVyfSZxdW90OykKICBlbmQKICB1cGxvYWRfdG9fcGxheV9zdG9yZSh0cmFjazogJ2JldGEnLCBhYWI6ICcuLi9idWlsZC9hcHAvb3V0cHV0cy9idW5kbGUvcmVsZWFzZS9hcHAuYWFiJykKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dvIGFoZWFkIGFuZCBzYXZlIHRoZSBmaWxlLCBhbmQgdGhlbiBydW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZmFzdGxhbmUgYmV0YSZsdDsvY29kZSZndDsuIEl0IHdpbGwgcnVuIHRocm91Z2ggdGhlIHN0ZXBzLCBidWlsZGluZyB0aGUgYXBwIGFuZCBwdXNoaW5nIHRoZSBhcHBsaWNhdGlvbiBmb3IgeW91LiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgd2XigJlsbCBkbyB0aGUgc2FtZSBmb3IgaU9TLCBidXQgcmVwbGFjaW5nIHNvbWUgb2YgdGhlIGNvbW1hbmRzIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBpT1MgY29tbWFuZHMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lvcy9GYXN0bGFuZSZsdDsvY29kZSZndDsgZGlyZWN0b3J5LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZGVzYyAmcXVvdDtEZXBsb3kgYSBuZXcgYnVpbGQgdG8gVGVzdGZsaWdodCZxdW90OwpsYW5lIDpiZXRhIGRvCiAgRGlyLmNoZGlyICZxdW90Oy4uLy4uJnF1b3Q7IGRvCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtwYWNrYWdlcyZxdW90OywgJnF1b3Q7Z2V0JnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7Y2xlYW4mcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtidWlsZCZxdW90OywgJnF1b3Q7aW9zJnF1b3Q7LCAmcXVvdDstLXJlbGVhc2UmcXVvdDssICZxdW90Oy0tbm8tY29kZXNpZ24mcXVvdDspCiAgZW5kCiAgYnVpbGRfaW9zX2FwcChzY2hlbWU6ICZxdW90O015QXBwJnF1b3Q7KQogIHVwbG9hZF90b190ZXN0ZmxpZ2h0CmVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhcHAgaXMgYnVpbHQgdHdpY2UuIFRoZSBmaXJzdCBidWlsZCBidWlsZHMgYWdhaW5zdCB0aGUgbGF0ZXN0IEZsdXR0ZXIgdG9vbGNoYWluLCB3aGlsZSB0aGUgc2Vjb25kIGJ1aWxkIGJ1aWxkcyB0aGUgYWN0dWFsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5pcGEmbHQ7L2NvZGUmZ3Q7IGZpbGUgdGhhdCB3aWxsIGJlIHVwbG9hZGVkIHRvIFRlc3RmbGlnaHQuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O05vdywgd2l0aCBDaXJjbGVDSSZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gcGxhY2UsIGl04oCZcyB0aW1lIHRvIGdldCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB3cml0dGVuIHNvIHRoYXQgYSBwdXNoIHRvIGEgYnJhbmNoIGlzIHRyYW5zbGF0ZWQgdG8gYSBuZXcgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7aU9TJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0ZvciBkZXBsb3lpbmcgd2l0aCBpT1MsIENpcmNsZUNJIGFscmVhZHkgaGFzIGRvY3MgdG8gY292ZXIgdGhpcyEgU3RlcHMgZm9yIHNldHRpbmcgdXAgRmFzdGxhbmUgZGVwbG95bWVudCB3aXRoIEZsdXR0ZXIgaXMgc2ltaWxhciB0byB0aGUgc3RlcHMgb3V0bGluZWQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvaW9zLWNvZGVzaWduaW5nLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OyBhbmQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZGVwbG95aW5nLWlvcy8jYXBwLXN0b3JlLWNvbm5lY3QmcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0FuZHJvaWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7V2hlbiBpdCBjb21lcyB0byB0aGUgRG9ja2VyIGltYWdlIHRvIHBpY2ssIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gRWl0aGVyIHlvdSBjYW4gYnVpbGQgYW5kIHB1c2ggdGhlIERvY2tlciBpbWFnZSB1c2VkIGJ5IHRoZSBGbHV0dGVyIHByb2plY3QgZm91bmQgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2Jsb2IvbWFzdGVyL2Rldi9jaS9kb2NrZXJfbGludXgvRG9ja2VyZmlsZSZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oywgb3IgeW91IGNhbiBwdWxsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dtZW1zdHIvZmx1dHRlci1mYXN0bGFuZTpsYXRlc3QmbHQ7L2NvZGUmZ3Q7LCB3aGljaCBpcyBidWlsdCBvbiB0b3Agb2YgYW4gZXhpc3RpbmcgRmx1dHRlciBEb2NrZXIgaW1hZ2UgYW5kIGluc3RhbGxzIEZhc3RsYW5lIGFsb25nc2lkZSBpdCwgYXZvaWRpbmcgYWRkaXRpb25hbCBvdmVyaGVhZCBvZiBpbnN0YWxsaW5nIGl0IGR1cmluZyBydW50aW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28gZW5zdXJlIHRoYXQgdGhlIGVudmlvcm5tZW50IHZhcmlhYmxlcyBtZW50aW9uZWQgZWFybGllciBhcmUgYWRkZWQgdG8geW91ciBwcm9qZWN0LiBOYW1lbHk6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQTEFZX1NUT1JFX1VQTE9BRF9LRVkmbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtrZXkuamtzJmx0Oy9jb2RlJmd0OyBmaWxlJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7UExBWV9TVE9SRV9VUExPQURfS0VZX0lORk8mbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCBmaWxlIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIGFuZCBvdGhlciBpbmZvIHJlZ2FyZGluZyB0aGUgdXBsb2FkIHNpZ25pbmcga2V5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IC0gWW91ciBHb29nbGUgU2VydmljZSBBY2NvdW50IEpTT04gc3RyaW5nIGZvciBhdXRoZW50aWNhdGlvbiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtJbiB5b3VyIHByb2plY3RzIHJvb3QsIGFkZCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLCBhbmQgaW4gdGhhdCBmb2xkZXIgYWRkIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y2lyY2xlY2kueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLiBBZGQgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSBuZXdseSBjcmVhdGVkIGZpbGU6Jmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7JwogIAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgc25pcHBldCBhYm92ZSBkZWZpbmVzIGFuIGV4ZWN1dG9yIHdlIGNhbiByZXVzZSBsYXRlciBpbiBvdXIgY29uZmlndXJhdGlvbiB0aGFua3MgdG8gdGhlIHVzZSBvZiByZXVzYWJsZSBjb25maWd1cmF0aW9uIGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYnMmbHQ7L2EmZ3Q7IGluIENpcmNsZUNJIDIuMS4gSXQgYWxzbyBpbmNsdWRlcyBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBlbnN1cmUgSmF2YSBkb2VzbuKAmXQgY29uc3VtZSBhbGwgb2Ygb3VyIG1lbW9yeSB3aGlsZSBidWlsZGluZyB0aGUgYXBwLiBOZXh0LCB3ZeKAmWxsIGRlZmluZSB0aGUgam9iIHdlIHdhbnQgdG8gcnVuIHRoZSBjb21tYW5kcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2pvYnM6CiAgYmV0YV9kZXBsb3k6CiAgICBleGVjdXRvcjogYW5kcm9pZC1mbHV0dGVyCiAgICBzdGVwczoKICAgICAgLSBjaGVja291dAogICAgICAtIHJ1bjogZWNobyAmcXVvdDskUExBWV9TVE9SRV9VUExPQURfS0VZJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGtleS5qa3MKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWV9JTkZPJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGFuZHJvaWQva2V5LnByb3BlcnRpZXMKICAgICAgLSBydW46IGNkIGFuZHJvaWQgJmFtcDthbXA7JmFtcDthbXA7IGZhc3RsYW5lIGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgd2XigJlsbCBkZWZpbmUgb3VyIHdvcmtmbG93IHdoaWNoIHdpbGwgb25seSBydW4gdGhlIGpvYiB3aGVuIHRoZSBuZXcgY29kZSBpcyBwdXNoZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2JldGEmbHQ7L2NvZGUmZ3Q7IGJyYW5jaC4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3dvcmtmbG93czoKICBkZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGJldGFfZGVwbG95OgogICAgICAgICAgZmlsdGVyczoKICAgICAgICAgICAgYnJhbmNoZXM6CiAgICAgICAgICAgICAgb25seTogYmV0YQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7Jwpqb2JzOgogIGJldGFfZGVwbG95OgogICAgZXhlY3V0b3I6IGFuZHJvaWQtZmx1dHRlcgogICAgc3RlcHM6CiAgICAgIC0gY2hlY2tvdXQKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWSZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBrZXkuamtzCiAgICAgIC0gcnVuOiBlY2hvICZxdW90OyRQTEFZX1NUT1JFX1VQTE9BRF9LRVlfSU5GTyZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBhbmRyb2lkL2tleS5wcm9wZXJ0aWVzCiAgICAgIC0gcnVuOiBjZCBhbmRyb2lkICZhbXA7YW1wOyZhbXA7YW1wOyBmYXN0bGFuZSBiZXRhCgp3b3JrZmxvd3M6CiAgZGVwbG95OgogICAgam9iczoKICAgICAgLSBiZXRhX2RlcGxveToKICAgICAgICAgIGZpbHRlcnM6CiAgICAgICAgICAgIGJyYW5jaGVzOgogICAgICAgICAgICAgIG9ubHk6IGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvcHJvamVjdHMvJnF1b3Q7Jmd0O1NldCB1cCB5b3VyIHByb2plY3Qgb24gQ2lyY2xlQ0kmbHQ7L2EmZ3Q7LiBPbmNlIHlvdSBjbGljayAmbHQ7c3Ryb25nJmd0O1NldCBVcCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7LCB5b3Ugd2lsbCBiZSBicm91Z2h0IHRvIGEgdGV4dCBlZGl0b3IgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBjb3B5IGluIHRoZSBjb25maWcgZnJvbSBhYm92ZS4gQ2xpY2sgJmx0O3N0cm9uZyZndDtTdGFydCBCdWlsZGluZyZsdDsvc3Ryb25nJmd0Oy4gTm93IGV2ZXJ5IG5ldyBjb21taXQgdG8gdGhlIGJldGEgYnJhbmNoIHdpbGwgcmVzdWx0IGluIGEgZGVwbG95LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIGFuIEV4cHJlc3MgR3JhcGhRTCBzZXJ2ZXIgdG8gSGVyb2t1PC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1hbi1leHByZXNzLWdyYXBocWwtc2VydmVyLXRvLWhlcm9rdS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VHVlLCAyOCBBcHIgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtYW4tZXhwcmVzcy1ncmFwaHFsLXNlcnZlci10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dyYXBocWwub3JnLyZxdW90OyZndDtHcmFwaFFMJmx0Oy9hJmd0OyBjb250aW51ZXMgdG8gZ3JvdyBpbiBwb3B1bGFyaXR5IHdpdGggZWFjaCBwYXNzaW5nIGRheSwgc2luY2UgaXRzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9lbmdpbmVlcmluZy5mYi5jb20vY29yZS1kYXRhL2dyYXBocWwtYS1kYXRhLXF1ZXJ5LWxhbmd1YWdlLyZxdW90OyZndDtwdWJsaWMgcmVsZWFzZSBieSBGYWNlYm9vayZsdDsvYSZndDsgaW4gMjAxNS4gVGhlIHRlY2hub2xvZ3kgZW5hYmxlcyBmcm9udCBlbmQgY2xpZW50cyB0byBxdWVyeSBleGFjdGx5IHdoYXQgdGhleSBuZWVkIGZyb20gdGhlIGJhY2tlbmQsIGFuZCBpcyBnYWluaW5nIHdpZGUgcmVjb2duaXRpb24gYW5kIGFkb3B0aW9uIGJ5IHJlcHV0YWJsZSBjb21wYW5pZXMgc3VjaCBhcyBQaW50ZXJlc3QsIENvdXJzZXJhLCBBaXJibmIsIGFuZCBGYWNlYm9vayBpdHNlbGYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBwb3N0LCB3ZSB3aWxsIGxlYXJuIGhvdyB0byBkZXBsb3kgYSBzaW1wbGUgR3JhcGhRTCBzZXJ2ZXIgd3JpdHRlbiBpbiBOb2RlLmpzIHRvIEhlcm9rdSB2aWEgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IChDSSkgcGlwZWxpbmUgdXNpbmcgQ2lyY2xlQ0kuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1ByZXJlcXVpc2l0ZXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUbyBmb2xsb3cgYWxvbmcgd2l0aCB0aGlzIHBvc3QsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhbHJlYWR5IHNldCB1cDombHQ7L3AmZ3Q7CiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL25vZGVqcy5vcmcvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlIC12Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsIHRvIHByaW50IG91dCB5b3VyIHZlcnNpb24gb2YgTm9kZS5qcyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdC1zY20uY29tLyZxdW90OyZndDtHaXQmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnaXQmbHQ7L2NvZGUmZ3Q7IG9uIHlvdXIgdGVybWluYWw7IHRoaXMgc2hvdWxkIHByaW50IG91dCBhdmFpbGFibGUgZ2l0IGNvbW1hbmRzKSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5oZXJva3UuY29tLyZxdW90OyZndDtIZXJva3UmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tLyZxdW90OyZndDtHaXRIdWImbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vc2lnbnVwLyZxdW90OyZndDtDaXJjbGVDSSZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDsjI1NjYWZmb2xkaW5nIHRoZSBHcmFwaFFMIHNlcnZlciBwcm9qZWN0ClRvIGJlZ2luIHNldHRpbmcgdXAgYSBHcmFwaFFMIHNlcnZlciwgY3JlYXRlIGEgbmV3IGZvbGRlciBmb3IgdGhlIHByb2plY3QgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtta2RpciBncmFwaHFsLXRlc3Qtc2VydmVyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7Tm93IGdvIGludG8gdGhlIHJvb3Qgb2YgdGhlIGZvbGRlciBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBzY2FmZm9sZCBhIG5ldyBOb2RlLmpzIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5pdCAteQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDtwJmd0O1RoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsteSZsdDsvY29kZSZndDsgb3B0aW9uYWwgZmxhZyBhbGxvd3MgeW91IHRvIHNraXAgY29uZmlybWluZyB0aGUgZGVmYXVsdCBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwYWNrYWdlLmpzb24mbHQ7L2NvZGUmZ3Q7IGZpbGUgYW5kIGp1c3QgYWNjZXB0cyB0aGVtLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGFyZSBnb2luZyB0byBjcmVhdGUgYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2V4cHJlc3Nqcy5jb20vJnF1b3Q7Jmd0O0V4cHJlc3NKUyZsdDsvYSZndDsgTm9kZS5qcyBhcHBsaWNhdGlvbiBhbmQgYnVpbGQgdGhlIEdyYXBoUUwgc2VydmVyLiBUbyBkbyB0aGlzLCB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIGZvbGxvd2luZyBwYWNrYWdlczombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2V4cHJlc3MmbHQ7L2NvZGUmZ3Q7OiB0byBjcmVhdGUgb3VyIEV4cHJlc3NKUyBOb2RlLmpzIGFwcGxpY2F0aW9uJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z3JhcGhxbCZsdDsvY29kZSZndDs6IHRoZSBHcmFwaFFMIG5wbSBwYWNrYWdlIGZvciBOb2RlLmpzJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OzogRXhwcmVzc0pTIG1pZGRsZXdhcmUgZm9yIEdyYXBoUUwmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbCB0aGVzZSBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBpbnN0YWxsIC0tc2F2ZSBleHByZXNzIGdyYXBocWwgZXhwcmVzcy1ncmFwaHFsCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIHRoZSByZXF1aXJlZCBwYWNrYWdlcyB0byBzdGFydCBwdXR0aW5nIHRvZ2V0aGVyIG91ciBHcmFwaFFMIHNlcnZlci4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgdGhlIEdyYXBoUUwgc2NoZW1hJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7Q3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bWtkaXIgc3JjCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1dpdGhpbiB0aGlzIGZvbGRlciwgY3JlYXRlIGEgbmV3IGZpbGUgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEuanMmbHQ7L2NvZGUmZ3Q7IGFuZCBwYXN0ZSBpbiB0aGUgY29kZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Owpjb25zdCB7IGJ1aWxkU2NoZW1hIH0gPSByZXF1aXJlKCZxdW90O2dyYXBocWwmcXVvdDspOwoKY29uc3Qgc2NoZW1hID0gYnVpbGRTY2hlbWEoYAogICAgdHlwZSBRdWVyeSB7CiAgICAgICAgdXNlcnM6IFtVc2VyIV0hLAogICAgICAgIHVzZXIoaWQ6IEludCEpOiBVc2VyIQogICAgfQoKICAgIHR5cGUgTXV0YXRpb24gewogICAgICAgIGVkaXRVc2VyKGlkOiBJbnQhLCBuYW1lOiBTdHJpbmchLCBlbWFpbDogU3RyaW5nISk6IFVzZXIhCiAgICB9CgogICAgdHlwZSBVc2VyIHsKICAgICAgICBpZDogSUQhCiAgICAgICAgbmFtZTogU3RyaW5nIQogICAgICAgIGVtYWlsOiBTdHJpbmcKICAgICAgICBwb3N0czogW1Bvc3QhXQogICAgfQoKICAgIHR5cGUgUG9zdCB7CiAgICAgICAgaWQ6IElEIQogICAgICAgIHRpdGxlOiBTdHJpbmchCiAgICAgICAgcHVibGlzaGVkOiBCb29sZWFuIQogICAgICAgIGxpbms6IFN0cmluZwogICAgfQpgKTsKCm1vZHVsZS5leHBvcnRzID0gc2NoZW1hOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBhYm92ZSBjb2RlLCB3ZSBoYXZlIGNyZWF0ZWQgZm91ciB0eXBlcywgY29uc2lzdGluZyBvZiB0d28gYnVpbHQtaW4gdHlwZXMgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7KSBhbmQgdHdvIGN1c3RvbSB0eXBlcyAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXNlciZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1Bvc3QmbHQ7L2NvZGUmZ3Q7KS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWdpbm5pbmcgd2l0aCB0aGUgY3VzdG9tIHR5cGVzLCB3ZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmc6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VyJmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHVzZXIgaW4gdGhlIGFwcGxpY2F0aW9uIHdpdGggaXRzIHJlc3BlY3RpdmUgZmllbGRzIGFuZCBhIHJlbGF0aW9uYWwgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cG9zdHMmbHQ7L2NvZGUmZ3Q7IGZpZWxkLCB3aGljaCByZXR1cm5zIGFuIGFycmF5IG9mIHBvc3RzIGNyZWF0ZWQgYnkgdGhlIHVzZXImbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQb3N0Jmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHB1YmxpY2F0aW9uIGNyZWF0ZWQgYnkgYSB1c2VyIGluIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGl0cyByZXNwZWN0aXZlIGZpZWxkcyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OzogaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyB0eXBlLCB3ZSBkZWZpbmVkIHR3byBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgcXVlcmllZCBmcm9tIG91ciBHcmFwaFFMIHNlcnZlciBhcyBmb2xsb3dzOgogICAgJmx0O3VsJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlcnMmbHQ7L2NvZGUmZ3Q7OiBhbiBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VycyZsdDsvY29kZSZndDsmbHQ7L2xpJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlciZsdDsvY29kZSZndDs6IGEgc2luZ2xlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1VzZXImbHQ7L2NvZGUmZ3Q7IHdpdGggdGhlIHNwZWNpZmllZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgaW4gdGhlIGFyZ3VtZW50cyBsaXN0Jmx0Oy9saSZndDsKICAgICZsdDsvdWwmZ3Q7CiAgJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7OiBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7IHR5cGUsIHdlIGRlZmluZWQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VkaXRVc2VyJmx0Oy9jb2RlJmd0OyBtdXRhdGlvbiwgd2hpY2gsIGdpdmVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgb2YgdGhlIHVzZXIsIGNhbiBiZSBjYWxsZWQgdG8gZWRpdCBhIHVzZXIgYW5kIHRoZW4gdXBkYXRlIHRoZSBpbmZvcm1hdGlvbiAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bmFtZSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VtYWlsJmx0Oy9jb2RlJmd0OykmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhlIHNjaGVtYSBpcyBjcmVhdGVkIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZFNjaGVtYSZsdDsvY29kZSZndDsgb2YgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dyYXBocWwmbHQ7L2NvZGUmZ3Q7IHBhY2thZ2UgYW5kIGV4cG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O01vY2tpbmcgZGF0YSZsdDsvaDImZ3Q7CiZsdDtwJmd0O0luIG9yZGVyIHRvIGhhdmUgcmVzdWx0cyBmb3Igb3VyIHF1ZXJpZXMsIHdlIG5lZWQgZGF0YS4gRm9yIHRoaXMgZXhlcmNpc2UsIHdlIHdpbGwgYmUgdXNpbmcgTW9uZ29EQi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIb3dldmVyLCBzaW5jZSB0aGUgZ29hbCBvZiB0aGlzIHBvc3QgaXMgdG8gZGVtb25zdHJhdGUgZGVwbG95aW5nIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyLCB3ZSB3b27igJl0IGJvdGhlciB3aXRoIHNldHRpbmcgdXAgYSBNb25nb0RCIHNlcnZlci4gSW5zdGVhZCwgd2Ugd2lsbCAgdXNlIGEgbW9ja2VkIHZlcnNpb24gdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O21vbmdvZGItbWVtb3J5LXNlcnZlciZsdDsvY29kZSZndDsuIFRoaXMgcGFja2FnZSBhbGxvd3MgdXMgdG8gY3JlYXRlIGFuZCB1c2UgYW4gaW4tbWVtb3J5IE1vbmdvREIgZGF0YWJhc2Ugc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHNldCB0aGlzIHVwLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhdCB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5zdGFsbCAtLXNhdmUgbW9uZ29kYiBtb25nb2RiLW1lbW9yeS1zZXJ2ZXIKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwombHQ7cCZndDtUaGlzIGluc3RhbGxhdGlvbiBtaWdodCB0YWtlIGEgd2hpbGUsIGRlcGVuZGluZyBvbiB5b3VyIGRvd25sb2FkIHNwZWVkLiBNb25nb0RCIHdhcyBhdCBsZWFzdCA2NiBtZWdhYnl0ZXMgaW4gc2l6ZSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhLmpzJmx0Oy9jb2RlJmd0OyBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3JjJmx0Oy9jb2RlJmd0OyBmb2xkZXIuIFRoaXMgZmlsZSB3aWxsIGV4cG9ydCBhbiBhcnJheSBvZiBoYXJkLWNvZGVkIHVzZXIgZGF0YS4gUGFzdGUgdGhlIGZvbGxvd2luZyBjb2RlIGJlbG93IGludG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBVc2VycyA9IFsKICB7CiAgICBpZDogMSwKICAgIG5hbWU6ICZxdW90O0Zpa2F5byBBZGVwb2p1JnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2ZpazRjaHJpc3RAeWFob28uY29tJnF1b3Q7LAogICAgcG9zdHM6IFsKICAgICAgewogICAgICAgIGlkOiAxLAogICAgICAgIHRpdGxlOiAmcXVvdDtDcmVhdGluZyBhbiBFbW9qaSBHYW1lIHdpdGggVnVlLCBBdXRoMCwgYW5kIEdvb2dsZSBWaXNpb24gQVBJJnF1b3Q7LAogICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSwKICAgICAgICBsaW5rOgogICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hdXRoMC5jb20vYmxvZy9jcmVhdGluZy1hbi1lbW9qaS1nYW1lLXdpdGgtdnVlLWF1dGgwLWFuZC1nb29nbGUtdmlzaW9uLWFwaS8mcXVvdDssCiAgICAgICAgYXV0aG9yOiAxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBpZDogMiwKICAgICAgICB0aXRsZTogJnF1b3Q7RWxlY3Ryb24gVHV0b3JpYWw6IEJ1aWxkaW5nIE1vZGVybiBEZXNrdG9wIEFwcHMgd2l0aCBWdWUuanMmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2F1dGgwLmNvbS9ibG9nL2VsZWN0cm9uLXR1dG9yaWFsLWJ1aWxkaW5nLW1vZGVybi1kZXNrdG9wLWFwcHMtd2l0aC12dWUtanMvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDMsCiAgICAgICAgdGl0bGU6ICZxdW90O1N0YXRlIE1hbmFnZW1lbnQgd2l0aCBWdWV4OiBhIFByYWN0aWNhbCBUdXRvcmlhbCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazoKICAgICAgICAgICZxdW90O2h0dHBzOi8vYXV0aDAuY29tL2Jsb2cvc3RhdGUtbWFuYWdlbWVudC13aXRoLXZ1ZXgtYS1wcmFjdGljYWwtdHV0b3JpYWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMiwKICAgIG5hbWU6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2pvaG5AY29tcGFueS5jb20mcXVvdDssCiAgICBwb3N0czogWwogICAgICB7CiAgICAgICAgaWQ6IDQsCiAgICAgICAgdGl0bGU6ICZxdW90O0J1aWxkIGEgQ0kgcG93ZXJlZCBSRVNUZnVsIEFQSSB3aXRoIExhcmF2ZWwmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2J1aWxkLWEtY2ktcG93ZXJlZC1yZXN0ZnVsLWFwaS13aXRoLWxhcmF2ZWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDUsCiAgICAgICAgdGl0bGU6ICZxdW90O0F1dG9tYXRlIHlvdXIgTnV4dC5qcyBhcHAgZGVwbG95bWVudCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazogJnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hdXRvbWF0ZS15b3VyLW51eHQtanMtYXBwLWRlcGxveW1lbnQvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMywKICAgIG5hbWU6ICZxdW90O0phbmUgUGF1bCZxdW90OywKICAgIGVtYWlsOiAmcXVvdDtqYW5lQGNvbXBhbnkuY29tJnF1b3Q7LAogICAgcG9zdHM6IFtdCiAgfQpdOwoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgVXNlcnMKfTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBjb2RlIGFib3ZlLCB3ZSBoYXZlIGFuIGFycmF5IG9mIHVzZXIgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgcG9zdHMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIHNlZWQgb3VyIGluLW1lbW9yeSBkYXRhYmFzZSBvbmNlIGl0IGlzIGluc3RhbnRpYXRlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCB0YXNrIGlzIHRvIHNldCB1cCBvdXIgbW9jayBNb25nb0RCIGRhdGFiYXNlIHNlcnZlci4gSW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhYmFzZS5qcyZsdDsvY29kZSZndDsgYW5kIGluc2VydCB0aGUgZm9sbG93aW5nIGNvZGUgaW50byB0aGUgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O01vbmdvTWVtb3J5U2VydmVyJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtyZXF1aXJlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtzMiZxdW90OyZndDsmcXVvdDttb25nb2RiLW1lbW9yeS1zZXJ2ZXImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O21vbmdvZGImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtjb25zdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bm8mcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90Oy4vZGF0YSZxdW90OyZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0Oyk7Jmx0Oy9zcGFuJmd0OwoKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7bGV0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDtudWxsJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXN5bmMmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7ZnVuY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25mJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoKSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDt7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7bmV3Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtNb25nb01lbW9yeVNlcnZlciZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygpOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtubyZxdW90OyZndDttb25nb0RCVVJMJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXdhaXQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7LiZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtnZXRDb25uZWN0aW9uU3RyaW5nJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3QmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvREJVUkwmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDssJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7CiAgICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDt1c2VOZXdVcmxQYXJzZXImbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs6Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDt0cnVlJmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSk7Jmx0Oy9zcGFuJmd0OwoKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtjMSZxdW90OyZndDsvL1NlZWQgRGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7CiAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtpZiZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7ISZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OykmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsKICAgICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RhdGFiYXNlJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RiJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbGxlY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O3VzZXJzJnF1b3Q7Jmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7aW5zZXJ0TWFueSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7VXNlcnMmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7CgogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7cmV0dXJuJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OzsmbHQ7L3NwYW4mZ3Q7CiZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vZHVsZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZXhwb3J0cyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtzdGFydERhdGFiYXNlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGNvZGUgYWJvdmUsIHdlIGV4cG9ydCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L2NvZGUmZ3Q7IGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBzdGFydHMgYSBuZXcgKG1vY2tlZCkgTW9uZ29EQiBzZXJ2ZXIgaW5zdGFuY2UgYW5kIGdldHMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuIEl0IHRoZW4gY3JlYXRlcyBhIG5ldyBNb25nb0RCIGNsaWVudCBjb25uZWN0aW9uIHVzaW5nIHRoZSBjb25uZWN0aW9uIHN0cmluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwgd2Ugc2VlZCBpdCB3aXRoIG91ciB1c2VyIGRhdGEgZXhwb3J0ZWQgZnJvbSBvdXIgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZGF0YS5qcyZsdDsvY29kZSZndDsgZmlsZS4gQSBjaGVjayBpcyBtYWRlIHRvIHNlZSBpZiB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIGlzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O251bGwmbHQ7L2NvZGUmZ3Q7IGJlZm9yZSBzZWVkaW5nIGl0IHdpdGggZGF0YSwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBmcm9tIGJlaW5nIGVudGVyZWQgaW50byB0aGUgZGF0YWJhc2UgZWFjaCB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdXAuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGRhdGFiYXNlIHJlZmVyZW5jZS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgb3VyIHJlc29sdmVycyZsdDsvaDImZ3Q7CiZsdDtwJmd0O05leHQgdXAsIHdlIG5lZWQgdG8gZGVmaW5lIHJlc29sdmVycyBmb3Igb3VyIEdyYXBoUUwgcXVlcmllcyBpbiBvcmRlciB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGRhdGEgZm9yIGVhY2ggcXVlcnkgb3BlcmF0aW9uLiBXZSB3aWxsIGRlZmluZSByZXNvbHZlcnMgZm9yIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt1c2VycyZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3VzZXImbHQ7L2NvZGUmZ3Q7IHF1ZXJpZXMgYW5kIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtlZGl0VXNlciZsdDsvY29kZSZndDsgbXV0YXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Jlc29sdmVycy5qcyZsdDsvY29kZSZndDsgYW5kIHBhc3RlIGluIHRoZSBmb2xsb3dpbmcgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IHJlc29sdmVycyA9IHsKICB1c2VyczogYXN5bmMgKF8sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIKICAgICAgLmNvbGxlY3Rpb24oJnF1b3Q7dXNlcnMmcXVvdDspCiAgICAgIC5maW5kKCkKICAgICAgLnRvQXJyYXkoKTsKICB9LAogIHVzZXI6IGFzeW5jICh7IGlkIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIuY29sbGVjdGlvbigmcXVvdDt1c2VycyZxdW90OykuZmluZE9uZSh7IGlkIH0pOwogIH0sCiAgLy9NdXRhdGlvbiByZXNvbHZlcnMKICBlZGl0VXNlcjogYXN5bmMgKHsgaWQsIG5hbWUsIGVtYWlsIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CgogICAgcmV0dXJuIGRiCiAgICAgIC5jb2xsZWN0aW9uKCZxdW90O3VzZXJzJnF1b3Q7KQogICAgICAuZmluZE9uZUFuZFVwZGF0ZSgKICAgICAgICB7IGlkIH0sCiAgICAgICAgeyAkc2V0OiB7IG5hbWUsIGVtYWlsIH0gfSwKICAgICAgICB7IHJldHVybk9yaWdpbmFsOiBmYWxzZSB9CiAgICAgICkKICAgICAgLnRoZW4ocmVzcCA9JmFtcDtndDsgcmVzcC52YWx1ZSk7CiAgfSAKfTsKCm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZXJzOwoKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgc2VlbiBhYm92ZSwgd2Ugbm93IGhhdmUgcmVzb2x2ZXJzIGZvciB0aGUgdGhyZWUgR3JhcGhRTCByZXF1ZXN0cyBhdmFpbGFibGUgb24gb3VyIHNlcnZlci4gVGhlc2UgcmVzb2x2ZXJzIGZldGNoIGFuZCB1cGRhdGUgZGF0YSB1c2luZyB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIHdlIGNyZWF0ZWQgZWFybGllciBieSByZWZlcmVuY2luZyBpdCBmcm9tIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb250ZXh0Jmx0Oy9jb2RlJmd0OyBvYmplY3Qgb2YgdGhlIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgcmVmZXJlbmNlIHdpbGwgYmUgYWRkZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbnRleHQmbHQ7L2NvZGUmZ3Q7IG9iamVjdCBvZiBvdXIgR3JhcGhRTCBzZXJ2ZXIgc2V0dXAgaW4gdGhlIG5leHQgc2VjdGlvbiB3aGVuIHdlIHB1dCBldmVyeXRoaW5nIHRvZ2V0aGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTZXR0aW5nIHVwIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O0l0IGlzIHRpbWUgdG8gcHV0IGV2ZXJ5IGNvbXBvbmVudCB3ZSBidWlsdCB0b2dldGhlciB0byBzZXQgdXAgb3VyIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlZm9yZSB3ZSBiZWdpbiwgd2UgbmVlZCB0byBpbnN0YWxsIG9uZSBtb3JlIHBhY2thZ2UuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIGNvbWVzIHdpdGggdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0dyYXBoaVFMJmx0Oy9jb2RlJmd0OyBhcHBsaWNhdGlvbiwgd2hpY2ggYWxsb3dzIHlvdSB0byBxdWVyeSB5b3VyIEdyYXBoUUwgZW5kcG9pbnQsIGJ1dCBsZXTigJlzIGFkZCBhIHRvb2wgdGhhdCBpcyBtb3JlIHJvYnVzdC4gV2Ugd2lsbCBpbnN0YWxsIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIHRvIGdpdmUgdXMgYSBmYW5jaWVyIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgb3VyIEdyYXBoUUwgZW5kcG9pbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSBmb2xsb3dpbmcgY29kZSB0byBpbnN0YWxsIHRoZSBwYWNrYWdlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGluc3RhbGwgLS1zYXZlIGdyYXBocWwtcGxheWdyb3VuZC1taWRkbGV3YXJlLWV4cHJlc3MKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7V2Ugd2lsbCB1c2UgdGhpcyBtaWRkbGV3YXJlIHRvIHNldCB1cCB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kIGZvciBxdWVyeWluZyBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0xldOKAmXMgc2V0IHVwIG91ciBzZXJ2ZXIgYnkgY3JlYXRpbmcgYSBmaWxlIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2luZGV4LmpzJmx0Oy9jb2RlJmd0OyBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBhbmQgcGxhY2luZyB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBleHByZXNzID0gcmVxdWlyZSgmcXVvdDtleHByZXNzJnF1b3Q7KTsKY29uc3QgZ3JhcGhxbEhUVFAgPSByZXF1aXJlKCZxdW90O2V4cHJlc3MtZ3JhcGhxbCZxdW90Oyk7CmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoJnF1b3Q7Li9zcmMvc2NoZW1hJnF1b3Q7KTsKY29uc3QgcmVzb2x2ZXJzID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9yZXNvbHZlcnMmcXVvdDspOwpjb25zdCBzdGFydERhdGFiYXNlID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9kYXRhYmFzZSZxdW90Oyk7CmNvbnN0IGV4cHJlc3NQbGF5Z3JvdW5kID0gcmVxdWlyZSgmcXVvdDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJnF1b3Q7KS5kZWZhdWx0OwoKLy8gQ3JlYXRlIGEgY29udGV4dCBmb3IgaG9sZGluZyBjb250ZXh0dWFsIGRhdGEgCmNvbnN0IGNvbnRleHQgPSBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IGRiID0gYXdhaXQgc3RhcnREYXRhYmFzZSgpOwoKICByZXR1cm4geyBkYiB9Owp9OwoKY29uc3QgYXBwID0gZXhwcmVzcygpOwoKYXBwLnVzZSgKICAmcXVvdDsvZ3JhcGhxbCZxdW90OywKICBncmFwaHFsSFRUUCh7CiAgICBzY2hlbWEsCiAgICByb290VmFsdWU6IHJlc29sdmVycywKICAgIGNvbnRleHQKICB9KQopOwoKLy9HcmFwaHFsIFBsYXlncm91bmQgcm91dGUKYXBwLmdldCgmcXVvdDsvcGxheWdyb3VuZCZxdW90OywgZXhwcmVzc1BsYXlncm91bmQoeyBlbmRwb2ludDogJnF1b3Q7L2dyYXBocWwmcXVvdDsgfSkpOwoKY29uc3QgcG9ydCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgJnF1b3Q7NDAwMCZxdW90OzsKCmFwcC5saXN0ZW4ocG9ydCk7Cgpjb25zb2xlLmxvZyhg8J+agCBTZXJ2ZXIgcmVhZHkgYXQgaHR0cDovL2xvY2FsaG9zdDo0MDAwL2dyYXBocWxgKTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBmaWxlIGFib3ZlLCB3ZSBzdGFydCBieSBpbXBvcnRpbmcgYWxsIG5lY2Vzc2FyeSBtb2R1bGVzLiBUaGVuLCB3ZSBjcmVhdGUgb3VyIEdyYXBoUUwgY29udGV4dCBhbmQgcmV0dXJuIGFuIG9iamVjdCBmcm9tIGl0IGNvbnRhaW5pbmcgdGhlIHJlZmVyZW5jZSB0byBvdXIgTW9uZ29EQiBpbnN0YW5jZS4gTmV4dCwgd2UgY3JlYXRlIG91ciBFeHByZXNzSlMgYXBwbGljYXRpb24gYW5kIHNldCB1cCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OyBtaWRkbGV3YXJlIHdpdGggR3JhcGhRTCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEmbHQ7L2NvZGUmZ3Q7LCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtyZXNvbHZlcnMmbHQ7L2NvZGUmZ3Q7LCBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29udGV4dCZsdDsvY29kZSZndDsuIFdlIHRoZW4gc2V0IHVwIHRoZSBHcmFwaFFMIFBsYXlncm91bmQgYXQgdGhlIHJvdXRlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBsb2FkIG91ciBHcmFwaFFMIGVuZHBvaW50LiBGaW5hbGx5LCB3ZSBzdGFydCBvdXIgRXhwcmVzc0pTIHNlcnZlciB0byBsaXN0ZW4gYXQgcG9ydCA0MDAwIGFuZCBwcmludCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1F1ZXJ5aW5nIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O05vdyB0aGF0IHdlIGhhdmUgb3VyIHNlcnZlciBzZXQgdXAsIGxldOKAmXMgdGFrZSBpdCBmb3IgYSBzcGluLiBGaXJzdCwgbGV04oCZcyBjcmVhdGUgYSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzdGFydCZsdDsvY29kZSZndDsgc2NyaXB0IGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3BhY2thZ2UuanNvbiZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHNjcmlwdCB0byB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2NyaXB0cyZsdDsvY29kZSZndDsgc2VjdGlvbiBvZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Li4uCgrigJxzY3JpcHRz4oCdIDogewoJLi4uLAoJ4oCcc3RhcnTigJ0gOiDigJxub2RlIGluZGV4Lmpz4oCdCn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25wbSBzdGFydCZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCB0aGUgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNlcnZlciBpcyB1cCBhbmQgcnVubmluZywgb3BlbiB1cCB5b3VyIGJyb3dzZXIgYW5kIHZpc2l0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMC9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBvcGVuIHVwIHRoZSBwbGF5Z3JvdW5kLiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDEucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgcGxheWdyb3VuZCBhdXRvbWF0aWNhbGx5IHBvaW50cyB0byBvdXIgR3JhcGhRTCBlbmRwb2ludC4gRnJvbSBoZXJlIHdlIGNhbiB3cml0ZSBxdWVyaWVzIGFnYWluc3Qgb3VyIGVuZHBvaW50IGFuZCBnZXQgdGhlIHJlc3VsdHMuIFBhc3RlIHRoZSBxdWVyeSBiZWxvdyBpbnRvIHRoZSBxdWVyeSBzZWN0aW9uIG9mIHRoZSBwbGF5Z3JvdW5kIGFuZCBoaXQgUGxheSB0byBydW4gaXQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt7CiAgdXNlcnMgewogICAgbmFtZQogICAgZW1haWwKICAgIHBvc3RzIHsKICAgICAgdGl0bGUKICAgICAgcHVibGlzaGVkCiAgICB9CiAgfQp9CgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtSdW5uaW5nIHRoZSBhYm92ZSBxdWVyeSB3aWxsIHByb2R1Y2UgdGhlIHJlc3VsdCBzaG93biBvbiB0aGUgc2NyZWVuIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsMi5wbmcmcXVvdDsgd2lkdGg9JnF1b3Q7ODc1JnF1b3Q7IC8mZ3Q7CiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIHNlZW4gYWJvdmUsIG91ciBHcmFwaFFMIHNlcnZlciBpcyB3b3JraW5nIGZpbmUgYW5kIHJldHVybmluZyB0aGUgZXhwZWN0ZWQgZGF0YS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRvIEhlcm9rdSB3aXRoIENpcmNsZUNJJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7T3VyIGZpbmFsIHRhc2sgaXMgdG8gZGVwbG95IG91ciBHcmFwaFFMIHNlcnZlciB0aHJvdWdoIGEgQ0kgcGlwZWxpbmUgd2l0aCBDaXJjbGVDSSBvbiB0aGUgSGVyb2t1IGhvc3RpbmcgcGxhdGZvcm0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2UgYXJlIGdvaW5nIHRvIHRha2UgdGhlIGZvbGxvd2luZyBzdGVwcyB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7UHVzaCB0aGUgcHJvamVjdCB0byBhIEdpdEh1YiByZXBvc2l0b3J5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgbmV3IEhlcm9rdSBhcHAgYW5kIGdldCB0aGUgSGVyb2t1IEFQSSBrZXkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgYSBuZXcgcHJvamVjdCB0byBvdXIgQ2lyY2xlQ0kgYWNjb3VudCBhbmQgY29ubmVjdCBpdCB0byB0aGUgR2l0SHViIHJlcG8mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgb3VyIEhlcm9rdSBhcHAgbmFtZSBhbmQgQVBJIGtleSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gb3VyIG5ldyBwcm9qZWN0Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7V3JpdGUgb3VyIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgZGVwbG95bWVudCB0byBIZXJva3UmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIHRoZSBjb25maWd1cmF0aW9uIHRvIG91ciBHaXRIdWIgcmVwbyB0byBkZXBsb3kgdG8gSGVyb2t1Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0xldOKAmXMgYmVnaW4uIEZpcnN0LCBwdXNoIHRoZSBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG8uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY3JlYXRlIGEgSGVyb2t1IGFwcGxpY2F0aW9uIGFzIHNob3duIGJlbG93LiBUaGUgbmFtZSB5b3UgZW50ZXIgaXMgdGhlIG5hbWUgeW91IHdpbGwgc2F2ZSBhcyB5b3VyIEhlcm9rdSBhcHAgbmFtZSBvbiBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWwzLnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7WW91IGNhbiBnZXQgeW91ciBIZXJva3UgQVBJIGtleSBieSBnb2luZyB0byAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgYW5kIHNjcm9sbGluZyBkb3duIHRvIHRoZSAmbHQ7c3Ryb25nJmd0O0FQSSBLZXkmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIHRvIGRlcGxveWluZyBvdXIgYXBwbGljYXRpb24gdG8gSGVyb2t1IGlzIHRvIGNvbm5lY3QgdGhlIGFwcGxpY2F0aW9uIG9uIG91ciBHaXRIdWIgcmVwb3NpdG9yeSB0byBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIZWFkIHRvIHlvdXIgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9kYXNoYm9hcmQmcXVvdDsmZ3Q7Q2lyY2xlQ0kgZGFzaGJvYXJkJmx0Oy9hJmd0OyBhbmQgYWRkIHRoZSBwcm9qZWN0IGluIHRoZSAmbHQ7c3Ryb25nJmd0O0FkZCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7IHNlY3Rpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsNC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCAoaW4gdGhpcyBjYXNlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NpbXBsZS1ncmFwaHFsLW5vZGUtc2VydmVyJmx0Oy9jb2RlJmd0OyksIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0IFVwIFByb2plY3QmbHQ7L3N0cm9uZyZndDsuIFRoaXMgd2lsbCBicmluZyB5b3UgdG8gYSBwYWdlIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDUucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IGJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIHByb2plY3QuIFRoaXMgd2lsbCBpbW1lZGlhdGVseSBnaXZlIHVzIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCBhIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIHByb2plY3QuIFRoaXMgaXMgdW5kZXJzdGFuZGFibGUsIGFzIHdlIGFyZSB5ZXQgdG8gaW5jbHVkZSBvdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlLiBXZSB3aWxsIGJlIGRvaW5nIHRoYXQgbGF0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIG5leHQgc3RlcCBpcyB0byBhZGQgb3VyIEhlcm9rdSBkZXRhaWxzIGFzICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wL2Vudi12YXJzLyZxdW90OyZndDtlbnZpcm9ubWVudCB2YXJpYWJsZXMmbHQ7L2EmZ3Q7IHRvIHRoZSBuZXdseSBzZXQgdXAgcHJvamVjdC4KSW4gb3JkZXIgdG8gcHVzaCBvdXIgcHJvamVjdCB0byBIZXJva3UgZnJvbSBDaXJjbGVDSSwgd2UgbmVlZCB0byBjb25maWd1cmUgYW4gYXV0aGVudGljYXRlZCBoYW5kc2hha2UgYmV0d2VlbiBDaXJjbGVDSSBhbmQgSGVyb2t1LiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcgdHdvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgc2V0dGluZ3MgZm9yIHlvdXIgQ2lyY2xlQ0kgcHJvamVjdC4gVGhlIHR3byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtIRVJPS1VfQVBQX05BTUUmbHQ7L2NvZGUmZ3Q7OiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIChpbiB0aGlzIGNhc2UgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2ltcGxlLWdyYXBocWwtbm9kZS1zZXJ2ZXImbHQ7L2NvZGUmZ3Q7KSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OzogWW91ciBIZXJva3UgYWNjb3VudCBBUEkga2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBvbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50Jmx0Oy9zdHJvbmcmZ3Q7IHRhYiBvZiB5b3VyIEhlcm9rdSBhY2NvdW50IHVuZGVyICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VG8gYWRkIHRoZXNlIGRldGFpbHMsIGhlYWQgb3ZlciB0byB5b3VyIENpcmNsZUNJIGRhc2hib2FyZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBmb3IgeW91ciBwcm9qZWN0LiBPbiB0aGUgc2lkZWJhciBtZW51IG9uIHRoZSBzZXR0aW5ncyBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O0Vudmlyb25tZW50IFZhcmlhYmxlcyZsdDsvc3Ryb25nJmd0OyB1bmRlciAmbHQ7c3Ryb25nJmd0O0J1aWxkIFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDYucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIHBhZ2UsIGNyZWF0ZSB0d28gdmFyaWFibGVzIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OyBhbmQgYWRkIHRoZSByZXNwZWN0aXZlIHZhbHVlcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZXNlIGluIHBsYWNlLCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBjYW4gdXNlIHRoZW0gdG8gbWFrZSBhdXRoZW50aWNhdGVkIGRlcGxveW1lbnRzIHRvIHRoZSBIZXJva3UgcGxhdGZvcm0uCk5vdywgbGV04oCZcyB3cml0ZSBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyIHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtDcmVhdGUgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsuY2lyY2xlY2kmbHQ7L2NvZGUmZ3Q7IGF0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCBhbmQgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgaXQuIEFkZCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uJmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpvcmJzOgogIGhlcm9rdTogY2lyY2xlY2kvaGVyb2t1QDAuMC4xMAp3b3JrZmxvd3M6CiAgaGVyb2t1X2RlcGxveToKICAgIGpvYnM6CiAgICAgIC0gaGVyb2t1L2RlcGxveS12aWEtZ2l0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7VGhlIGNvZGUgYWJvdmUgdXNlcyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7SGVyb2t1IG9yYiZsdDsvYSZndDsgdG8gcGVyZm9ybSBhIHNlYW1sZXNzIGRlcGxveW1lbnQgdG8gSGVyb2t1LiBBbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYiZsdDsvYSZndDsgaXMgYSByZXVzYWJsZSBwYWNrYWdlIG9mIGEgWUFNTCBjb25maWd1cmF0aW9uIHRoYXQgY29uZGVuc2VzIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoaXMgb25lIG1ha2VzIGl0IHZlcnkgZWFzeSB0byBkZXBsb3kgdG8gSGVyb2t1IHdpdGhvdXQgd3JpdGluZyBhIHNvcGhpc3RpY2F0ZWQgY29uZmlnIHlvdXJzZWxmLiZsdDsvcCZndDsKCiZsdDtwJmd0O1NhdmUgdGhpcyBmaWxlIGFuZCBwdXNoIHlvdXIgY2hhbmdlcyB0byB0aGUgR2l0SHViIHJlcG9zaXRvcnkuIFRoZW4gd2F0Y2ggeW91ciBDaXJjbGVDSSBkYXNoYm9hcmQgdHJpZ2dlciBhIGRlcGxveW1lbnQgYWZ0ZXIgdGhlIHN1Y2Nlc3NmdWwgcHVzaC4gWW91IHdpbGwgc2VlIGEgc3VjY2Vzc2Z1bCBkZXBsb3ltZW50IG9uIHlvdXIgZGFzaGJvYXJkIHNpbWlsYXIgdG8gdGhlIHNjcmVlbiBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWw3LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXdlc29tZSEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXTigJlzIG5vdyB2aXNpdCBvdXIgUGxheWdyb3VuZCBvbiB0aGUgbGl2ZSBhcHBsaWNhdGlvbiB0byBjb25maXJtIHRoYXQgb3VyIGRlcGxveW1lbnQgaXMgZmluZS4gVmlzaXQgdGhlIGxpbmsgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9ZT1VSX0hFUk9LVV9BUFBfTkFNRS5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7LiBGb3Igb3VyIGV4ZXJjaXNlLCB0aGlzIHdpbGwgYmUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9zaW1wbGUtZ3JhcGhxbC1ub2RlLXNlcnZlci5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7IGFzIHNlZW4gYmVsb3cuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsOC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SW4gdGhpcyBhcnRpY2xlLCB3ZSBoYXZlIGJlZW4gYWJsZSB0byBzdWNjZXNzZnVsbHkgcHV0IHRvZ2V0aGVyIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyIGFuZCBhdXRvbWF0ZSBpdHMgZGVwbG95bWVudCB1c2luZyBDaXJjbGVDSS4gR3JhcGhRTCBpcyBoZXJlIHRvIHN0YXkgYW5kIGlzIGV4cGVjdGVkIHRvIGdhaW4gbW9yZSBhZG9wdGlvbiwgc2luY2UgaXRzIG1hbnkgYmVuZWZpdHMgbWFrZSBpdCB3b3J0aHkgb2YgaW5jcmVhc2VkIHVzZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIYXBweSBjb2RpbmchJmx0Oy9wJmd0OwoKJmx0O2hyIC8mZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Eb2NrZXIgYW5kIENJL0NEIHR1dG9yaWFsOiBhIGRlZXAgZGl2ZSBpbnRvIGNvbnRhaW5lcnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZG9ja2VyLWFuZC1jaWNkLXR1dG9yaWFsLWEtZGVlcC1kaXZlLWludG8tY29udGFpbmVycy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+RnJpLCAyNCBBcHIgMjAyMCAxMjowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9kb2NrZXItYW5kLWNpY2QtdHV0b3JpYWwtYS1kZWVwLWRpdmUtaW50by1jb250YWluZXJzLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkFuZ2VsIFJpdmVyYTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtUaGlzIGlzIGEgZm9sbG93LXVwIHRvIGEgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7IHRoYXQgSSB3cm90ZSBhZnRlciBDaXJjbGVDSSAyLjAgd2FzIHJlbGVhc2VkLiBUaGlzIHJlbGVhc2UgaW1wbGVtZW50ZWQgYnVpbGQgc3VwcG9ydCB1c2luZyBEb2NrZXIgZXhlY3V0b3JzLiBBZnRlciB0aGUgcmVsZWFzZSwgd2UgcmVhbGl6ZWQgdGhhdCBvbmUgb2YgdGhlIGJpZ2dlc3QgYmFycmllcnMgdGhhdCBDaXJjbGVDSSB1c2VycyBlbmNvdW50ZXJlZCB3YXMgYSBsYWNrIG9mIGV4cGVyaWVuY2Ugd2l0aCBEb2NrZXIuIFRoaXMgd2FzIGNvbmZpcm1lZCB0aHJvdWdoIG15IGNvbnZlcnNhdGlvbnMgd2l0aCBudW1lcm91cyBkZXZlbG9wZXJzLCBpbiB0aGUgY29tbXVuaXR5IGFuZCBhdCBldmVudHMsIGFib3V0IHRoZWlyIHVzZSBvZiBjb250YWluZXIgdGVjaG5vbG9naWVzIGluIHRoZWlyICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmVzLiBUaGVzZSBjb252ZXJzYXRpb25zIGhhdmUgaGlnaGxpZ2h0ZWQgdGhhdCBtYW55IGRldmVsb3BlcnMgZG9u4oCZdCBoYXZlIGEgZnVsbCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byB1c2UgY29udGFpbmVyIHRlY2hub2xvZ2llcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgd2lsbCBleHBhbmQgb24gYW5kIGRlbW9uc3RyYXRlIHNvbWUgb2YgdGhlIG1vcmUgdXNlZnVsIERvY2tlciBjb21tYW5kcyBkaXNjdXNzZWQgaW4gbXkgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtXaGF0IGlzIERvY2tlcj8mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZSBpcyB0aGUgc2ltcGxpZmllZCBkZWZpbml0aW9uIG9mIERvY2tlciB0aGF0IEkgdXNlZCBpbiBteSBwcmV2aW91cyBwb3N0OiZsdDsvcCZndDsKCiZsdDtibG9ja3F1b3RlJmd0OwogICZsdDtwJmd0O0RvY2tlciBpcyBhIHBsYXRmb3JtIGZvciBkZXZlbG9wZXJzIGFuZCBzeXNhZG1pbnMgdG8gZGV2ZWxvcCwgZGVwbG95LCBhbmQgcnVuIGFwcGxpY2F0aW9ucyB1c2luZyBjb250YWluZXJzLiZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7RG9ja2VyIGlzIGFsc28gcmVmZXJyZWQgdG8gYXMgYW4gYXBwbGljYXRpb24gcGFja2FnaW5nIHRvb2wgdGhhdCBlbmFibGVzIGFwcGxpY2F0aW9ucyB0byBiZSBjb25maWd1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZC8jaW1hZ2VzLWFuZC1jb250YWluZXJzJnF1b3Q7Jmd0O0RvY2tlciBpbWFnZSZsdDsvYSZndDsgdGhhdCBjYW4gYmUgdXNlZCB0byBzcGF3biAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyNpbWFnZXMtYW5kLWNvbnRhaW5lcnMmcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IHRoYXQgcnVuIGluc3RhbmNlcyBvZiB0aGUgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIG1hbnkgYmVuZWZpdHMgaW5jbHVkaW5nIHJ1bnRpbWUgZW52aXJvbm1lbnQgaXNvbGF0aW9uLCBjb25zaXN0ZW5jeSB2aWEgY29kZSwgYW5kIHBvcnRhYmlsaXR5LiBEb2NrZXIgY29udGFpbmVycyBjYW4gcnVuIG9uIGFueSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgc3VwcG9ydHMgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZW5naW5lJnF1b3Q7Jmd0O0RvY2tlciBFbmdpbmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtCYXNpYyBEb2NrZXIgdGVybWlub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZeKAmXMgYSBsaXN0IG9mIGJhc2ljIERvY2tlciBjb21tYW5kcyBhbmQgdGVybXMgd2l0aCBsaW5rcyB0byBtb3JlIGluZm9ybWF0aW9uLiBUaGVzZSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgRG9ja2VyIGFuZCBjb250cm9sIHRoZSBleGVjdXRvci4gVGhlIGNvbW1hbmRzIGNhbiBiZSBydW4gbG9jYWxseSBvbiBhbnkgY29tcHV0ZXIgdGhhdCBoYXMgdGhlIERvY2tlciBlbmdpbmUgaW5zdGFsbGVkLiZsdDsvcCZndDsKCiZsdDtoMyZndDtCdWlsZGluZyBEb2NrZXIgaW1hZ2VzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBhIHRleHQgZG9jdW1lbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNvbW1hbmRzIGEgdXNlciBjb3VsZCBjYWxsIG9uIHRoZSBjb21tYW5kIGxpbmUgdG8gYXNzZW1ibGUgYW4gaW1hZ2UuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBEb2NrZXJmaWxlIGlzIGEgYmx1ZXByaW50IGZvciBidWlsZGluZyBEb2NrZXIgaW1hZ2VzLiBEb2NrZXJmaWxlIHRlbXBsYXRlcyBob2xkIGVsZW1lbnRzIHN1Y2ggYXMgdGhlIGJhc2Ugb3BlcmF0aW5nIHN5c3RlbSBpbWFnZSB1c2VkIGFzIGEgZm91bmRhdGlvbiwgZXhlY3V0aW9uIGNvbW1hbmRzIHRoYXQgaW5zdGFsbC9jb25maWd1cmUgZGVwZW5kZW5jaWVzLCBhbmQgY29weSBjb21tYW5kcyB0aGF0IHB1c2ggbG9jYWwgc291cmNlIGNvZGUgb3IgYXJ0aWZhY3RzIGludG8gdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBEb2NrZXJmaWxlIGZvciBhIHNpbXBsZSBOb2RlLmpzIGFwcGxpY2F0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7RlJPTSBub2RlOjEwCgojIENyZWF0ZSBhcHAgZGlyZWN0b3J5CldPUktESVIgL3Vzci9zcmMvYXBwCgojIEluc3RhbGwgYXBwIGRlcGVuZGVuY2llcwojIEEgd2lsZGNhcmQgaXMgdXNlZCB0byBlbnN1cmUgYm90aCBwYWNrYWdlLmpzb24gQU5EIHBhY2thZ2UtbG9jay5qc29uIGFyZSBjb3BpZWQKIyB3aGVyZSBhdmFpbGFibGUgKG5wbUA1KykKQ09QWSBwYWNrYWdlKi5qc29uIC4vCgpSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIyBJZiB5b3UgYXJlIGJ1aWxkaW5nIHlvdXIgY29kZSBmb3IgcHJvZHVjdGlvbgojIFJVTiBucG0gaW5zdGFsbCAtLW9ubHk9cHJvZHVjdGlvbgoKIyBCdW5kbGUgYXBwIHNvdXJjZQpDT1BZIC4gLgoKRVhQT1NFIDUwMDAKQ01EIFsgJnF1b3Q7bnBtJnF1b3Q7LCAmcXVvdDtzdGFydCZxdW90OyBdCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2ltYWdlcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7IGxpc3RzIERvY2tlciBpbWFnZXMgZm91bmQgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gbGlzdCBhbGwgb2YgdGhlIERvY2tlciBpbWFnZXMgYW5kIHJlbGF0ZWQgZGF0YSB0aGF0IGN1cnJlbnRseSBleGlzdCBvbiB0aGUgbG9jYWwgbWFjaGluZS4gSXTigJlzIGNvbXBhcmFibGUgdG8gYSBsaW51eCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtscyZsdDsvY29kZSZndDsgb3Igd2luZG93cyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkaXImbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdXNlZCB0byBzaG93IHRoZSBjb250ZW50cyBvZiBkaXJlY3RvcmllcyBpbiBhIHRlcm1pbmFsLiBUaGlzIGNvbW1hbmQgaXMgdmVyeSB1c2VmdWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRvIG1hbmFnZSwgbWFpbnRhaW4sIGFuZCBidWlsZCBEb2NrZXIgaW1hZ2VzIGxvY2FsbHkuIEJlbG93IGlzIGFuIGV4YW1wbGUgcmVzdWx0IG9mIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgZXhlY3V0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UkVQT1NJVE9SWSAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHICAgICAgICAgICAgICAgICBJTUFHRSBJRCAgICAgICAgICAgIENSRUFURUQgICAgICAgICAgICAgU0laRQphcml2M3JhL25vZGVqcy1jaXJjbGVjaSAgICAgICAgICAgICBsYXRlc3QgICAgICAgICAgICAgIGY0MTllNGE2YjFiOCAgICAgICAgMTEgZGF5cyBhZ28gICAgICAgICA5NDNNQgpub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAgICAgICAgICAgICAgICAgIDAxYjgxNjA1MWQzNCAgICAgICAgMiB3ZWVrcyBhZ28gICAgICAgICA5MTFNQgpjaXJjbGVjaS9weXRob24gICAgICAgICAgICAgICAgICAgICAzLjcuNiAgICAgICAgICAgICAgIDBkMjk3NTg5NmM3MyAgICAgICAgNSB3ZWVrcyBhZ28gICAgICAgICAxLjQzR0IKYXJpdjNyYS9pbmZyYXN0cnVjdHVyZS1hcy1jb2RlMTAxICAgbGF0ZXN0ICAgICAgICAgICAgICBjYjIxYTM2YTI5NzMgICAgICAgIDggd2Vla3MgYWdvICAgICAgICAgOTI5TUIKcHl0aG9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43LjYgICAgICAgICAgICAgICA4NzkxNjU1MzVhNTQgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgOTE5TUIKY2lyY2xlY2kvcnVzdCAgICAgICAgICAgICAgICAgICAgICAgMS1idXN0ZXIgICAgICAgICAgICAyMTgzMjliOTI5Y2YgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgMS42OEdCCnJ1c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtYnVzdGVyICAgICAgICAgICAgZjVmZGUwOTJhMWNkICAgICAgICAyIG1vbnRocyBhZ28gICAgICAgIDEuMTlHQgpweXRob24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcuNCAgICAgICAgICAgICAgIDlmYTU2ZDBhZGRhZSAgICAgICAgNiBtb250aHMgYWdvICAgICAgICA5MThNQgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGJ1aWxkIC10ICZhbXA7bHQ7aW1hZ2UgbmFtZSZhbXA7Z3Q7IC4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBjcmVhdGVzIGEgRG9ja2VyIGltYWdlIHdpdGggYSB0YWcgdXNpbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LXQmbHQ7L2NvZGUmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhYm92ZSBjb21tYW5kLCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgdmFsaWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDssIGJ1aWxkcyBhIERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgZXhlY3V0aW9uIGNvbW1hbmRzIGRlZmluZWQgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7LiBPbmUgY3JpdGljYWwgZWxlbWVudCB0byBidWlsZGluZyBpbWFnZXMgYW5kIHN0YXJ0aW5nIGNvbnRhaW5lcnMgaXMgdW5kZXJzdGFuZGluZyB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9hJmd0Oy4gQnVpbGRpbmcgRG9ja2VyIGltYWdlcyB1c2luZyB0aGlzIGNvbW1hbmQgc3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIERvY2tlciBpbWFnZXMgdXRpbGl6ZXMgYSBuYW1pbmcgY29udmVudGlvbiBtYWRlIHVwIG9mIHNsYXNoLXNlcGFyYXRlZCBuYW1lIGNvbXBvbmVudHMgdGhhdCBtYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgc2VwYXJhdG9ycy4gQSBzZXBhcmF0b3IgaXMgZGVmaW5lZCBhcyBhIHBlcmlvZCwgb25lIG9yIHR3byB1bmRlcnNjb3Jlcywgb3Igb25lIG9yIG1vcmUgZGFzaGVzLiBBIG5hbWUgY29tcG9uZW50IG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggYSBzZXBhcmF0b3IuIEEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7ZG9ja2VyIHRhZyZsdDsvYSZndDsgbmFtZSBtdXN0IGJlIHZhbGlkIEFTQ0lJIGFuZCBtYXkgY29udGFpbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHVuZGVyc2NvcmVzLCBwZXJpb2RzLCBhbmQgZGFzaGVzLiBBIHRhZyBuYW1lIG1heSBub3Qgc3RhcnQgd2l0aCBhIHBlcmlvZCBvciBhIGRhc2ggYW5kIG1heSBjb250YWluIGEgbWF4aW11bSBvZiAxMjggY2hhcmFjdGVycy4gWW91IGNhbiBncm91cCB5b3VyIGltYWdlcyB0b2dldGhlciB1c2luZyBuYW1lcyBhbmQgdGFncy4gSW4gdGhpcyBwb3N0LCB3ZSB3aWxsIHVzZSB0aGlzIG5hbWluZyBjb252ZW50aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB0aGF0IHdl4oCZdmUgZGlzY3Vzc2VkIG5hbWluZyBjb252ZW50aW9ucyBsZXTigJlzIGJ1aWxkIGEgRG9ja2VyIGltYWdlIGJhc2VkIG9uIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXJmaWxlJmx0Oy9jb2RlJmd0OyBpbiBvdXIgZXhhbXBsZSBhYm92ZS4gSW4gdGhpcyBwb3N0IHdlIGNhbiB1dGlsaXplIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9wdW5rZGF0YS9ub2RlanMtY2lyY2xlY2kmcXVvdDsmZ3Q7cHVua2RhdGEvbm9kZWpzLWNpcmNsZWNpJmx0Oy9hJmd0OyBnaXQgcmVwby4gQ2xvbmUgaXQgbG9jYWxseSBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7JCBjZCZsdDsvY29kZSZndDsgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlbiBydW4gdGhpcyBjb21tYW5kIHRvIGJ1aWxkIGEgbmV3IERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgcHJvamVjdCBzb3VyY2UgY29kZSBhbmQgdGhlIGV4YW1wbGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgYnVpbGQgLXQgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0FmdGVyIHJ1bm5pbmcgdGhpcyBidWlsZCBjb21tYW5kLCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtTZW5kaW5nIGJ1aWxkIGNvbnRleHQgdG8gRG9ja2VyIGRhZW1vbiAgOTguMDdNQgpTdGVwIDEvNyA6IEZST00gbm9kZToxMAogLS0tJmFtcDtndDsgMDFiODE2MDUxZDM0ClN0ZXAgMi83IDogV09SS0RJUiAvdXNyL3NyYy9hcHAKIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyAxMmIyZWRjMmI5N2MKU3RlcCAzLzcgOiBDT1BZIHBhY2thZ2UqLmpzb24gLi8KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyA1M2I1YjhlNGU2NTQKU3RlcCA0LzcgOiBSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyBlZWZkZjU2MGJjNGQKU3RlcCA1LzcgOiBDT1BZIC4gLgogLS0tJmFtcDtndDsgYWE3ZDU0ZTk1NWM2ClN0ZXAgNi83IDogRVhQT1NFIDUwMDAKIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gY2M0MjdkYmFmZGNjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgY2M0MjdkYmFmZGNjCiAtLS0mYW1wO2d0OyA0Y2U5MDg0ZTM5ZWIKU3RlcCA3LzcgOiBDTUQgWyAmcXVvdDtucG0mcXVvdDssICZxdW90O3N0YXJ0JnF1b3Q7IF0KIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gZjZlODU0NTk5ZGRjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgZjZlODU0NTk5ZGRjCiAtLS0mYW1wO2d0OyA3OWE4ZDk0Y2JmNDIKU3VjY2Vzc2Z1bGx5IGJ1aWx0IDc5YThkOTRjYmY0MgpTdWNjZXNzZnVsbHkgdGFnZ2VkIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2VzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgeW91ciBuZXdseSBjcmVhdGVkIERvY2tlciBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDskIGRvY2tlciBpbWFnZXMKClJFUE9TSVRPUlkgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRyAgICAgICAgICAgICAgICAgSU1BR0UgSUQgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNJWkUKdHV0b3JpYWwvY2lyY2xlY2ktbm9kZSAgICAgICAgICAgICAgMTAgICAgICAgICAgICAgICAgICA3OWE4ZDk0Y2JmNDIgICAgICAgIDQgbWludXRlcyBhZ28gICAgICAgMS4wM0dCCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyB5b3UgaGF2ZSBhbiBhd2Vzb21lIERvY2tlciBpbWFnZSBidWlsdCBhbmQgcmVhZHkgdG8gdXNlLiBJbiB0aGUgbmV4dCBzZWN0aW9uIEnigJlsbCBjcmVhdGUgbmV3IGluc3RhbmNlcyBvZiB0aGlzIERvY2tlciBpbWFnZSBpbiB0aGUgZm9ybSBvZiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvY29udGFpbmVyLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXIgY29udGFpbmVycyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBjb250YWluZXJzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IGFyZSBkZXNpZ25lZCB0byBydW4gYXBwbGljYXRpb25zIGluIGlzb2xhdGlvbiBhbmQgYXQgc2NhbGUuICBUaGV5IGFsbG93IGZvciBzdHJlYW1saW5pbmcgdGhlIG1hbmFnZW1lbnQgYW5kIGltcGxlbWVudGF0aW9uIG9mIGFwcGxpY2F0aW9ucy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7QmVmb3JlIHdlIHN0YXJ0IGNyZWF0aW5nIGFuZCBydW5uaW5nIERvY2tlciBjb250YWluZXJzLCBJ4oCZbGwgYWRkIHNvbWUgY29udGV4dC4gRG9ja2VyIGNvbnRhaW5lcnMgYXJlIG9iamVjdHMgdGhhdCBhcmUgYmFzZWQgb24gYW5kIHNwYXduZWQgZnJvbSBEb2NrZXIgaW1hZ2VzLiBEb2NrZXIgaW1hZ2VzIGFyZSB0ZW1wbGF0ZXMuIEkgbGlrZW4gdGhlbSB0byBjb29raWUgY3V0dGVyIG1vbGRzLiBDb29raWUgY3V0dGVyIG1vbGRzIGVuYWJsZSB5b3UgdG8gcXVpY2tseSBhbmQgY29uc2lzdGVudGx5IHByb2R1Y2UgaW5kaXZpZHVhbCBjb29raWVzIGZyb20gZG91Z2guIEkgbGlrZW4gdGhlc2UgY29va2llcyB0byBEb2NrZXIgY29udGFpbmVycyB3aGljaCBhcmUgZGlzdGluZ3Vpc2hlZCBpbiBzaGFwZSBieSB0aGUgdHlwZSBvZiBjb29raWUgbW9sZCwgb3IgRG9ja2VyIGNvbnRhaW5lciwgdXNlZCBpbiB0aGUgY3V0dGluZy9idWlsZGluZyBwcm9jZXNzLiBTbyB1c2luZyBteSBjb29raWUgY3V0dGVyIGFuYWxvZ3ksIERvY2tlciBpbWFnZXMgYXJlIHRoZSBjb29raWUgY3V0dGVyIGFuZCB0aGUgaW5kaXZpZHVhbCBjb29raWVzIGN1dCB1c2luZyB0aGF0IGN1dHRlciBhcmUgZXF1aXZhbGVudCB0byBEb2NrZXIgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCBJ4oCZdmUgcHJvYmFibHkgbWFkZSB5b3UgYSBiaXQgaHVuZ2FyeSBmb3IgY29va2llcywgbGV04oCZcyBzdGFydCBydW5uaW5nIHNvbWUgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBydW5zIGEgY29tbWFuZCBpbiBhIG5ldyBjb250YWluZXIuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY29tbWFuZCBvZiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgc3RhcnRpbmcgRG9ja2VyIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCBhIG5ldyBjb250YWluZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcnVuIC1kIC1wIDUwMDA6NTAwMCAtLW5hbWUgbm9kZXRlc3QwMSB0dXRvcmlhbC9jaXJjbGVjaS1ub2RlOjEwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NvbmdyYXRzISBZb3Ugc2hvdWxkIG5vdyBoYXZlIHRoZSBOb2RlLmpzIGltYWdlIHJ1bm5pbmcgaW4gdGhlIG5ldyBjb250YWluZXIgdGhhdCB5b3UganVzdCBjcmVhdGVkIGF2YWlsYWJsZSBvbiBwb3J0IDUwMDAuIE9wZW4gYSB3ZWIgYnJvd3NlciBhbmQgZ28gdG8gdGhpcyBhZGRyZXNzOiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtodHRwOi8vbG9jYWxob3N0OjUwMDAmbHQ7L2NvZGUmZ3Q7LiBJdCB3aWxsIHRha2UgeW91IHRoZSBzdGF0aWMg4oCcV2VsY29tZSB0byBDSS9DRCAxMDEgdXNpbmcgQ2lyY2xlQ0kh4oCdIHdlYiBwYWdlIHNlcnZlZCBieSB0aGlzIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsc28gdmVyaWZ5IHlvdXIgY29udGFpbmVyIGlzIHJ1bm5pbmcgYnkgZXhlY3V0aW5nIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbC4gV2XigJlsbCBkaXNjdXNzIHRoaXMgaW4gdGhlIG5leHQgc2VjdGlvbi4gQmVmb3JlIHRoYXQsIGxldOKAmXMgc3RhcnQgYW4gb3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGFwcGxpY2F0aW9uIGJ5IHJ1bm5pbmcgYW5vdGhlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnRlZCBvdXIgZmlyc3QgY29udGFpbmVyIHdpdGggdGhlIG5hbWUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDsgYW5kIHNpbmNlIGNvbnRhaW5lciBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgd2XigJlyZSBnb2luZyB0byBuYW1lIG91ciBuZXcgY29udGFpbmVyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7LiBBbm90aGVyIGNoYW5nZSB0aGF0IG11c3QgYmUgbWFkZSBpbiBvdXIgbmV3IGNvbnRhaW5lciBpcyB0aGUgcG9ydCBudW1iZXIuIFdl4oCZbGwgY2hhbmdlIGl0IGZyb20gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMCZsdDsvY29kZSZndDsgdG8gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMSZsdDsvY29kZSZndDsgc2luY2UgYXBwbGljYXRpb25zIGNhbm5vdCBvY2N1cHkgdGhlIHNhbWUgcG9ydCBudW1iZXIgb24gdGhlIHNhbWUgbmV0d29yayBpbnRlcmZhY2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RXhlY3V0ZSB0aGUgZm9sbG93aW5nICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtZCAtcCA1MDAxOjUwMDAgLS1uYW1lIG5vZGV0ZXN0MDIgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISBZb3Ugbm93IGhhdmUgdHdvIGNvbnRhaW5lcnMgcnVubmluZyBvbiB5b3VyIGxvY2FsIG1hY2hpbmUuIFlvdSBjYW4gZ28gdG8gdGhpcyBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMSZsdDsvY29kZSZndDsgaW4gYSBicm93c2VyIGFuZCBzZWUgdGhlIGFwcCBydW5uaW5nIGluIHlvdXIgc2Vjb25kIERvY2tlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaXMgdmVyeSByb2J1c3QgYW5kIGhhcyBtYW55IHByb3BlcnR5IGFuZCBjb25maWd1cmF0aW9uIGZsYWdzIHdoaWNoIEkgd29u4oCZdCBiZSBhYmxlIHRvIGFkZHJlc3Mgb3IgZGVtb25zdHJhdGUgaW4gdGhpcyBwb3N0LiBJIGhpZ2hseSByZWNvbW1lbmQgdGhhdCB5b3UgcmVhZCBhbmQgZmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgbWFueSB3YXlzIHRoYXQgeW91IGNhbiBleGVjdXRlIGFuZCBydW4gRG9ja2VyIGNvbnRhaW5lcnMuIFlvdSBjYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7cmVhZCB1cCBvbiBEb2NrZXIgY29udGFpbmVycyBjb21tYW5kcyBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9wcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbGlzdHMgYWxsIG9mIHRoZSBydW5uaW5nIERvY2tlciBjb250YWluZXJzLiBUaGlzIGNvbW1hbmQgc2VydmVzIGEgc2ltaWxhciBwdXJwb3NlIGFzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2UmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgYW5kIGxpc3RzIGFjdGl2ZWx5IHJ1bm5pbmcgY29udGFpbmVycy4gVXNlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDstYSZsdDsvY29kZSZndDsgZmxhZyB0byBzaG93IGFsbCBvZiB0aGUgcnVubmluZyBhbmQgbm90IHJ1bm5pbmcgY29udGFpbmVycy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoaXMgY29tbWFuZCBpbiBhIHRlcm1pbmFsIGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIGJvdGggb2YgdGhlIHByZXZpb3VzbHkgY3JlYXRlZCBjb250YWluZXJzIHJ1bm5pbmcgaW4gdGhlIHJlc3VsdHM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlIHJlc3VsdHMgd2lsbCBiZSBzaW1pbGFyIHRvIHRoaXMgc2hvd2luZyBib3RoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDEmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcnMgc3RpbGwgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0NPTlRBSU5FUiBJRCAgICAgICAgSU1BR0UgICAgICAgICAgICAgICAgICAgICAgIENPTU1BTkQgICAgICAgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNUQVRVUyAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICAgICAgIE5BTUVTCmRmZDMwMTgxZTE1YyAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAxMiBtaW51dGVzIGFnbyAgICAgIFVwIDEyIG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAxLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAyOCBtaW51dGVzIGFnbyAgICAgIFVwIDI4IG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAwLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7CiAgICAmbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvc3RhcnQvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdGFydHMgYW4gZXhpc3RpbmcgY29udGFpbmVyLiZsdDsvcCZndDsKICAmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsKICAgICZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9zdG9wLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdG9wcyBhbiBleGlzdGluZyBjb250YWluZXIuJmx0Oy9wJmd0OwogICZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgaXMgb25seSB1c2VkIHRvIHN0YXJ0ICZsdDtzdHJvbmcmZ3Q7ZXhpc3RpbmcmbHQ7L3N0cm9uZyZndDsgY29udGFpbmVycyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcnVuJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBVbmxlc3MgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy0tcm09dHJ1ZSZsdDsvY29kZSZndDsgZmxhZyBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgbmV3bHkgY3JlYXRlZCBjb250YWluZXJzIHdpbGwgcGVyc2lzdCBhbmQgY2FuIGJlIHJldXNlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RhcnQmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCZsdDsvY29kZSZndDsgY29tbWFuZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdG9wIHNvbWUgcnVubmluZyBjb250YWluZXJzIGJ5IGV4ZWN1dGluZyB0aGVzZSBjb21tYW5kczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBzdG9wIG5vZGV0ZXN0MDEgbm9kZXRlc3QwMgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBydW5uaW5nIGNvbnRhaW5lcnMgc2hvdWxkIG5vdyBiZSBpbmFjdGl2ZSBhbmQgc3RvcHBlZC4gU2luY2UgdGhleeKAmXJlIHN0b3BwZWQsIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgaW5kaWNhdGluZyBzdG9wcGVkIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtDT05UQUlORVIgSUQgICAgICAgIElNQUdFICAgICAgICAgICAgICAgICAgICAgICBDT01NQU5EICAgICAgICAgICAgICAgICAgQ1JFQVRFRCAgICAgICAgICAgICBTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICBOQU1FUwpkZmQzMDE4MWUxNWMgICAgICAgIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAgICAmcXVvdDtkb2NrZXItZW50cnlwb2ludC5z4oCmJnF1b3Q7ICAgMzEgbWludXRlcyBhZ28gICAgICBFeGl0ZWQgKDApIDM4IHNlY29uZHMgYWdvICAgICAgICAgICAgICAgICAgICAgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICBBYm91dCBhbiBob3VyIGFnbyAgIEV4aXRlZCAoMCkgMzggc2Vjb25kcyBhZ28gICAgICAgICAgICAgICAgICAgICAgIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhvdWdoIHRoZXNlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQgdGhleSB3aWxsIHBlcnNpc3QgYW5kIGNhbiBiZSByZXN0YXJ0ZWQgdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCZsdDsvY29kZSZndDsgY29tbWFuZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXRzIHN0YXJ0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAxJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgc28gd2UgY2FuIGxlYXJuIGhvdyB0byB1c2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBmZWF0dXJlcyBpbiB0aGUgbmV4dCBzZWN0aW9uLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHN0YXJ0IG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Tm93IHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBOb3RpY2UgdGhlIHN0YXR1cyBmb3IgdGhpcyBjb250YWluZXIgcmVhZHMgc2ltaWxhciB0byAgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXAgYWJvdXQgYSAzMCBzZWNvbmRzJmx0Oy9jb2RlJmd0OyBvciBzb21ldGhpbmcgdG8gdGhhdCBlZmZlY3QuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9ncy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ3MmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBmZXRjaGVzIGEgY29udGFpbmVy4oCZcyBsb2dzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIHNlZSBsb2dzIHRoYXQgYXJlIHByZXNlbnQgYXQgdGhlIHRpbWUgb2YgZXhlY3V0aW9uLiBTaW5jZSB5b3VyIGFwcHMgYXJlIHJ1bm5pbmcgaW5zaWRlIHRoZXNlIGNvbnRhaW5lcnMsIHRoZSBsb2dzIGNvbW1hbmQgaXMgdXNlZnVsIGZvciByZWFkaW5nIG91dCBjcml0aWNhbCBhcHAgb3V0cHV0cy4gVGhpcyBoZWxwcyBpbiB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgYXBwIGlzIHBlcmZvcm1pbmcgYW5kIGFueSBkZWJ1Z2dpbmcvdHJvdWJsZXNob290aW5nIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBydW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDEmbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBsb2dzIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIGNvbW1hbmQgeW91IHNob3VsZCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHdoYXTigJlzIHNob3duIGJlbG93LiBJdCBzaG93cyB0aGF0IHRoZSBhcHAgaW5zaWRlIGNvbnRhaW5lciBpcyB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O05vZGUgc2VydmVyIGlzIHJ1bm5pbmcuLgoKJmFtcDtndDsgbm9kZWpzLWNpcmNsZWNpQDAuMC4xIHN0YXJ0IC91c3Ivc3JjL2FwcAomYW1wO2d0OyBub2RlIGFwcC5qcwoKTm9kZSBzZXJ2ZXIgaXMgcnVubmluZy4uCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0gJmFtcDtsdDtjb250YWluZXIgbmFtZSZhbXA7Z3Q7Jmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgZGVsZXRlcyBhIGNvbnRhaW5lciBvciBtdWx0aXBsZSBjb250YWluZXJzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtQZXJzaXN0aW5nIERvY2tlciBjb250YWluZXJzIGNvbnN1bWVzIGRpc2sgc3BhY2UgYW5kIHJlc291cmNlcyBvbiBpdHMgaG9zdC4gT3BlcmF0aW9uYWxseSwgaXQgZG9lc27igJl0IG1ha2UgbXVjaCBzZW5zZSB0byBwZXJzaXN0IGV2ZXJ5IGNvbnRhaW5lciBvbiBkaXNrIHNpbmNlIGluIG1vc3QgY2FzZXMgY29udGFpbmVycyBhcmUgZGlzcG9zYWJsZSBhbmQgc2hvdWxkIGJlIHVzZWQgdGhhdCB3YXkuIFNvIHdoZW4gYSBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpdCBzaG91bGQgYmUgcGVybWFuZW50bHkgZGlzY2FyZGVkIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgcGVybWFuZW50bHkgZGVsZXRlcyBjb250YWluZXJzIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAyJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBzbyBsZXTigJlzIHNhdmUgc29tZSBkaXNrIHNwYWNlIGFuZCBkZWxldGUgaXQuIE5vdGUgdGhpcyBjb21tYW5kIHdpbGwgb25seSBkZWxldGUgaW5hY3RpdmUvc3RvcHBlZCBjb250YWluZXJzIGFuZCB3aWxsIGVycm9yIG91dCBpZiBpdOKAmXMgcnVuIGFnYWluc3QgYW4gYWN0aXZlL3J1bm5pbmcgY29udGFpbmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBybSBub2RldGVzdDAyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm8gbG9uZ2VyIHNlZSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMiZsdDsvY29kZSZndDsgY29udGFpbmVyIG9uIHRoZSBob3N0IGFmdGVyIHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGhhcyBvdGhlciBwcm9wZXJ0aWVzIGFuZCBmbGFncyBhbmQgeW91IHNob3VsZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcm0vJnF1b3Q7Jmd0O2ZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggdGhlbSBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ybWkvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBybWkmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBkZWxldGVzIERvY2tlciBpbWFnZXMgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGFwcGxpZXMgdG8gZGVsZXRpbmcgRG9ja2VyIGltYWdlcyBmcm9tIGEgaG9zdC4gSWYgdGhlcmUgYXJlIGV4aXN0aW5nIGNvbnRhaW5lcnMgb24gdGhlIGhvc3QgdGhhdCBhcmUgYmFzZWQgb24gYSBzcGVjaWZpYyBpbWFnZSwgdGhlbiB0aGlzIGNvbW1hbmQgd2lsbCBub3QgYWxsb3cgdGhlIGRlbGV0aW9uIG9mIHRoZSBjb250YWluZXIgYmFzZWQgb24gdGhlIGltYWdlLiBZb3UgbXVzdCBmaXJzdCBlbnN1cmUgdGhlIGNvbnRhaW5lciBpcyBzdG9wcGVkIGFuZCBkZWxldGVkIGJlZm9yZSB5b3UgY2FuIGRlbGV0ZSBEb2NrZXIgaW1hZ2VzIHVzaW5nIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtaSZsdDsvY29kZSZndDsgY29tbWFuZC4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtaS8mcXVvdDsmZ3Q7UmVhZCB1cCBvbiB0aGUgZG9ja2VyIHJtaSBjb21tYW5kIGhlcmUmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBpbWFnZSBkZXBsb3ltZW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtNYW55IERvY2tlciBpbWFnZXMgYXJlIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgaG9zdGVkIG9uIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2RvY2tlci1odWIvJnF1b3Q7Jmd0O0RvY2tlciBIdWIgUmVnaXN0cnkmbHQ7L2EmZ3Q7IHdoaWNoIGlzIGFuIG9ubGluZSBjZW50cmFsIGhvc3Rpbmcgc29sdXRpb24gZm9yIERvY2tlciBpbWFnZXMuIERvY2tlciBIdWIgZW5hYmxlcyBhbnlvbmUgd2l0aCBhbiBpbnRlcm5ldCBjb25uZWN0aW9uIHRvIHB1bGwgZG93biBwdWJsaWNseSBhdmFpbGFibGUgaW1hZ2VzIGZyb20gdGhlIHJlZ2lzdHJ5IHRvIHRoZWlyIGxvY2FsIG1hY2hpbmVzIG9yIHNlcnZlcnMuIEl0IGFsc28gZW5hYmxlcyByZWdpc3RlcmVkIHVzZXJzIHRvIHVwbG9hZCBhbmQgcHVibGljbHkgc2hhcmUgYW55IG9mIHRoZWlyIGNvbnRhaW5lcnMgc28gdGhhdCBhbnlvbmUgY2FuIHB1bGwgZG93biB0aGF0IGltYWdlIGZyb20gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2h1Yi5kb2NrZXIuY29tLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIEnigJlsbCBicmllZmx5IGRpc2N1c3Mgc29tZSBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItaHViLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0OyByZWxhdGVkIGNvbW1hbmRzLiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3B1bGwvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBwdWxsJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgcHVsbHMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IGZyb20gYSByZWdpc3RyeS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGVuYWJsZXMgeW91IHRvIGRvd25sb2FkIGEgdmFsaWQgRG9ja2VyIGltYWdlIGZyb20gRG9ja2VyIEh1Yi4gUHVibGljbHkgYXZhaWxhYmxlIERvY2tlciBpbWFnZXMgZG8gbm90IHJlcXVpcmUgYXV0aGVudGljYXRpb24uIElmIHRoZSByZWdpc3RyeSBpcyBwcml2YXRlIHlvdSB3aWxsIG5lZWQgdG8gYXV0aGVudGljYXRlIHVzaW5nIGFuIGFzc2lnbmVkIGNyZWRlbnRpYWwgdXN1YWxseSBpbiB0aGUgZm9ybSBvZiBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ2luJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbG9ncyBpbnRvIGEgRG9ja2VyIHJlZ2lzdHJ5LiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyB5b3UgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgYSBEb2NrZXIgUmVnaXN0cnkuIElmIHlvdeKAmXJlIHVzaW5nIHRoaXMgbG9naW4gY29tbWFuZCB5b3Ugc2hvdWxkICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8jcHJvdmlkZS1hLXBhc3N3b3JkLXVzaW5nLXN0ZGluJnF1b3Q7Jmd0O3BvcHVsYXRlIGEgLnR4dCBmaWxlJmx0Oy9hJmd0OyB3aXRoIHlvdXIgRG9ja2VyIEh1YiBhY2NvdW50IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBwcm90ZWN0IHRoZXNlIGNyZWRlbnRpYWxzIGZyb20gZXhwb3N1cmUuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcHVzaC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHB1c2gmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBwdXNoZXMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IHRvIGEgcmVnaXN0cnkuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBlbmFibGVzIHVzZXJzIHRvIHVwbG9hZCBpbWFnZXMgdG8gYSBEb2NrZXIgcmVnaXN0cnkgYW5kIHJlcXVpcmVzIHZhbGlkIGNyZWRlbnRpYWxzLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O1NvIHRoZXJlIHlvdSBoYXZlIGl0LiBJbiB0aGlzIHBvc3QgSSB3ZW50IGEgYml0IGRlZXBlciBpbiBleHBsYWluaW5nIERvY2tlciB0ZXJtaW5vbG9neSBhbmQgY29tbWFuZHMgYXMgd2VsbCBhcyBjb250YWluZXJzIGFuZCB0aGVpciB1c2FnZS4gVGhlIGNvbW1hbmRzIEkgZGlzY3Vzc2VkIGFuZCBkZW1vbnN0cmF0ZWQsIGFyZSB0aGUgbW9zdCB3aWRlbHkgdXNlZCBjb21tYW5kcyBpbiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGxlYXJuaW5nIGEgYml0IG1vcmUgYWJvdXQgdGhlbSBhbmQgdGhlaXIgcHJvcGVydGllcyBhbmQgZmxhZ3Mgd2lsbCBkZWZpbml0ZWx5IGhlbHAgeW91IGxldmVsIHVwIHlvdXIgRG9ja2VyIGFuZCBjb250YWluZXIgc2tpbGxzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZhbWlsaWFyaXppbmcgeW91cnNlbGYgd2l0aCB0aGVzZSBiYXNpYyBjb21tYW5kcyB3aWxsIHJlbW92ZSBvbmUgb2YgdGhlIGxhcmdlciBiYXJyaWVycyB0aGF0IG5ldyB1c2VycyBvZiBDaXJjbGVDSSBlbmNvdW50ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SWYgeW91IHdhbnQgdG8gbGVhcm4gbW9yZSBhYm91dCBDaXJjbGVDSSBjaGVjayBvdXQgdGhlICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wLyZxdW90OyZndDtkb2N1bWVudGF0aW9uIHNpdGUmbHQ7L2EmZ3Q7LCBhbmQgaWYgeW91IHJlYWxseSBnZXQgc3R1Y2sgeW91IGNhbiByZWFjaCBvdXQgdG8gdGhlIENpcmNsZUNJIGNvbW11bml0eSB2aWEgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mbHQ7L2EmZ3Q7IGNvbW11bml0eS9mb3J1bSBzaXRlLiZsdDsvcCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogIDwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:50 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:56:51 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"520598611ac00dc7","ot-tracer-traceid":"141453641d6d7407","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889411116:35dc100bcf41
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:11:51 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da3130b8fe903-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce643fe20000e9035d964200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:51 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:56:51 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"3d9a58a72f268a99","ot-tracer-traceid":"30ee0525256e145b","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889411325:db13da49790d
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:11:51 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da3145be20f76-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce6440b200000f76422a5200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDExOjQ4OjUyIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:51 GMT
+- request:
+ method: get
+ uri: https://circleci.com/blog/feed.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/xml
+ Date:
+ - Tue, 19 May 2020 11:56:51 GMT
+ Etag:
+ - '"d148e5f0c8f6530989f97099948abd37"'
+ Last-Modified:
+ - Tue, 19 May 2020 02:33:22 GMT
+ Server:
+ - nginx
+ Strict-Transport-Security:
+ - max-age=15724800
+ X-Amz-Id-2:
+ - Y8erlDJiPzcQICWANncTyVMpT9Znj2RyA2ZbP8nxQkYKgnWaqfL8N6DkxhH05j3hOhHxpryTaBM=
+ X-Amz-Request-Id:
+ - 83A76B02BC8BBE2B
+ X-Frame-Options:
+ - SAMEORIGIN
+ Content-Length:
+ - '183502'
+ Connection:
+ - keep-alive
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiCiAgeG1sOmJhc2U9Imh0dHBzOi8vY2lyY2xlY2kuY29tLyIKICB4bWxuczphdG9tPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8Y2hhbm5lbD4KICAgIDx0aXRsZT5UaGUgQ2lyY2xlQ0kgQmxvZyBGZWVkIC0gQ2lyY2xlQ0k8L3RpdGxlPgogICAgPGRlc2NyaXB0aW9uPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgbmV3cywgdXBkYXRlcywgYW5kIGhhY2tzIGZyb20gQ2lyY2xlQ0kuPC9kZXNjcmlwdGlvbj4KICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvPC9saW5rPgogICAgPGF0b206bGluayBocmVmPSJodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2ZlZWQueG1sIiByZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Db250aW51b3VzIGludGVncmF0aW9uIGZvciBJb25pYyBhcHBsaWNhdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvY29udGlub3VzLWludGVncmF0aW9uLWZvci1pb25pYy1hcHBzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDE4IE1heSAyMDIwIDE3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbm91cy1pbnRlZ3JhdGlvbi1mb3ItaW9uaWMtYXBwcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5GaWtheW8gQWRlcG9qdTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtJbiB0aGUgd29ybGQgb2YgaHlicmlkIG1vYmlsZSBkZXZlbG9wbWVudCwgbm8gb3RoZXIgZnJhbWV3b3JrIGhhcyBkb25lIG1vcmUgZm9yIHRoZSBpbmR1c3RyeSB0aGFuIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tLyZxdW90OyZndDtJb25pYyBmcmFtZXdvcmsmbHQ7L2EmZ3Q7LiBDcmVhdGVkIGluIDIwMTMgYW5kIG9yaWdpbmFsbHkgYnVpbHQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXJqcy5vcmcvJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7IGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY29yZG92YS5hcGFjaGUub3JnLyZxdW90OyZndDtBcGFjaGUgQ29yZG92YSZsdDsvYSZndDssIElvbmljIGhhcyBncm93biB0byBhIGZ1bGwtZmVhdHVyZWQgYXBwbGljYXRpb24gZnJhbWV3b3JrIGZvciBkZXZlbG9waW5nIG1vYmlsZSwgZGVza3RvcCwgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93ZWIuZGV2L3Byb2dyZXNzaXZlLXdlYi1hcHBzLyZxdW90OyZndDtwcm9ncmVzc2l2ZSB3ZWIgYXBwbGljYXRpb25zJmx0Oy9hJmd0Oy4gSW9uaWMgaGFzIGFsc28gYmVjb21lIGZyYW1ld29yay1hZ25vc3RpYywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byB1c2UgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXIuaW8vJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oywgb3IgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3Z1ZWpzLm9yZy8mcXVvdDsmZ3Q7VnVlLmpzJmx0Oy9hJmd0OyBmb3IgZGV2ZWxvcG1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2Ugd2lsbCBiZSBidWlsZGluZyBhIGhhbmR5IHRhc2sgbWFuYWdlci4gV2Ugd2lsbCB3cml0ZSB0ZXN0cyBmb3IgZmVhdHVyZXMgaW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBzZXQgdXAgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbm91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgKENJKSBwaXBlbGluZSB0byBhdXRvbWF0ZSBvdXIgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFdlIHdpbGwgYmUgZGV2ZWxvcGluZyBvdXIgYXBwbGljYXRpb24gdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9yZWFjdCZxdW90OyZndDtJb25pYyBSZWFjdCZsdDsvYSZndDssIHRoZSBJb25pYyB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgZGV2ZWxvcGluZyB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBmb2xsb3cgdGhpcyBwb3N0LCBhIGZldyB0aGluZ3MgYXJlIHJlcXVpcmVkOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QmFzaWMga25vd2xlZGdlIG9mIFJlYWN0LmpzIChOb3QgYSBkZWFsLWJyZWFrZXIsIHlvdSBvbmx5IGhhdmUgdG8gY29weS1wYXN0ZSB0aGUgY29kZSBzbmlwcGV0cykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbm9kZWpzLm9yZyZxdW90OyZndDtOb2RlLmpzJmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtUaGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2NsaSZxdW90OyZndDtJb25pYyBDTEkmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L29sJmd0OwoKJmx0O2gyJmd0O1NjYWZmb2xkaW5nIHRoZSBJb25pYyBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBiZWdpbiwgbGV04oCZcyBzY2FmZm9sZCBhIG5ldyBJb25pYyBhcHBsaWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2lvbmljIHN0YXJ0IHRhc2stbWFuYWdlciB0YWJzIC0tdHlwZT1yZWFjdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgSW9uaWMgQ0xJIHRvIHNjYWZmb2xkIGEgbmV3IHByb2plY3QgZm9yIHVzIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0YWJzJmx0Oy9jb2RlJmd0OyB0ZW1wbGF0ZSBpbnNpZGUgYSBmb2xkZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGFzay1tYW5hZ2VyJmx0Oy9jb2RlJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1lvdSBtaWdodCBiZSBwcm9tcHRlZCBhdCBzb21lIHBvaW50IHdpdGggJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Q3JlYXRlIGZyZWUgSW9uaWMgYWNjb3VudD8mbHQ7L2NvZGUmZ3Q7LiBIaXQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7biZsdDsvY29kZSZndDsgdG8gZGVjbGluZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYW4gSW9uaWMgYWNjb3VudCBzZWUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9hcHBmbG93JnF1b3Q7Jmd0O2hlcmUmbHQ7L2EmZ3Q7LiZsdDsvaSZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmNlIHRoaXMgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb24gKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIHRhc2stbWFuYWdlciZsdDsvY29kZSZndDspIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHNlcnZlIHRoZSBhcHBsaWNhdGlvbiBpbiB5b3VyIHdlYiBicm93c2VyOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7aW9uaWMgc2VydmUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGlzIGNvbW1hbmQgaGFzIGNvbXBsZXRlZCwgeW91IHdpbGwgc2VlIGFuIGFwcGxpY2F0aW9uIHZpZXcgaW4geW91ciBicm93c2VyIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O0kgYW0gdXNpbmcgYSBtb2JpbGUgcHJldmlldyBhY3RpdmF0ZWQgaW4gQ2hyb21l4oCZcyBkZXZlbG9wbWVudCB0b29scy4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXNjYWZmb2xkLXByZXZpZXcucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtEb27igJl0IGJlIHN1cnByaXNlZCBpZiB5b3VycyBoYXMgYSBibGFjayBiYWNrZ3JvdW5kIGFuZCB3aGl0ZSBmb250LiBJdCB1c2VzIHRoZSBkZWZhdWx0IG1vZGUgb2YgeW91ciBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMiZndDtCdWlsZGluZyB0aGUgVGFzayBNYW5hZ2VyIGFwcGxpY2F0aW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05leHQsIGxldOKAmXMgYmVnaW4gYnVpbGRpbmcgdGhlIG1haW4gYXBwbGljYXRpb24uIEdvIGludG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyIG9mIHlvdXIgYXBwbGljYXRpb24gYW5kIG9wZW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGhvbWUgcGFnZSBmb3IgdGhlIG5ld2x5IHNjYWZmb2xkZWQgYXBwbGljYXRpb24uIFJlbW92ZSBldmVyeXRoaW5nIGluIHRoaXMgZmlsZSBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRzeAoKaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsKICBJb25Db250ZW50LAogIElvbkhlYWRlciwKICBJb25QYWdlLAogIElvblRpdGxlLAogIElvblRvb2xiYXIsCiAgSW9uTGlzdCwKICBJb25JdGVtU2xpZGluZywKICBJb25JdGVtLAogIElvbkxhYmVsLAogIElvbkl0ZW1PcHRpb25zLAogIElvbkl0ZW1PcHRpb24sCiAgSW9uRmFiLAogIElvbkZhYkJ1dHRvbiwKICBJb25JY29uLAogIElvbk1vZGFsLAogIElvbkJ1dHRvbiwKICBJb25DYXJkLAogIElvbkNhcmRDb250ZW50LAogIElvbklucHV0LAp9IGZyb20gJnF1b3Q7QGlvbmljL3JlYWN0JnF1b3Q7OwoKaW1wb3J0IHsgYWRkIH0gZnJvbSAmcXVvdDtpb25pY29ucy9pY29ucyZxdW90OzsKCmltcG9ydCAmcXVvdDsuL1RhYjEuY3NzJnF1b3Q7OwoKaW50ZXJmYWNlIFRhc2sgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwp9Cgpjb25zdCBUYWIxOiBSZWFjdC5GQyA9ICgpID0mYW1wO2d0OyB7CiAgY29uc3QgW3Rhc2tzLCBzZXRUYXNrc10gPSB1c2VTdGF0ZSZhbXA7bHQ7VGFza1tdJmFtcDtndDsoW10pOwogIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7CiAgY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKCiAgZnVuY3Rpb24gYWRkTmV3VGFzaygpIHsKICAgIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogICAgY29uc3QgbmV3VGFzayA9IHsKICAgICAgaWQ6IG5ld19pZCwKICAgICAgbmFtZTogdGFza05hbWUsCiAgICB9OwoKICAgIHRhc2tzLnB1c2gobmV3VGFzayk7CgogICAgc2V0VGFza3ModGFza3MpOwoKICAgIHNldFRhc2tOYW1lKCZxdW90OyZxdW90Oyk7CgogICAgc2V0U2hvd01vZGFsKGZhbHNlKTsKICB9CgogIHJldHVybiAoCiAgICAmYW1wO2x0O0lvblBhZ2UmYW1wO2d0OwogICAgICAmYW1wO2x0O0lvbkhlYWRlciZhbXA7Z3Q7CiAgICAgICAgJmFtcDtsdDtJb25Ub29sYmFyJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uVGl0bGUmYW1wO2d0O1Rhc2sgTWFuYWdlciZhbXA7bHQ7L0lvblRpdGxlJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25Ub29sYmFyJmFtcDtndDsKICAgICAgJmFtcDtsdDsvSW9uSGVhZGVyJmFtcDtndDsKICAgICAgJmFtcDtsdDtJb25Db250ZW50JmFtcDtndDsKICAgICAgICAmYW1wO2x0O0lvbkxpc3QmYW1wO2d0OwogICAgICAgICAge3Rhc2tzLmxlbmd0aCAmYW1wO2d0OyAwID8gKAogICAgICAgICAgICB0YXNrcy5tYXAoKGl0ZW06IFRhc2spID0mYW1wO2d0OyB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbVNsaWRpbmcga2V5PXtpdGVtLmlkfSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbSBjbGFzc05hbWU9JnF1b3Q7dG9kby1pdGVtJnF1b3Q7JmFtcDtndDsKICAgICAgICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDt7aXRlbS5uYW1lfSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbnMgc2lkZT0mcXVvdDtlbmQmcXVvdDsmYW1wO2d0OwogICAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsge319JmFtcDtndDtEb25lJmFtcDtsdDsvSW9uSXRlbU9wdGlvbiZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1PcHRpb25zJmFtcDtndDsKICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1TbGlkaW5nJmFtcDtndDsKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KQogICAgICAgICAgKSA6ICgKICAgICAgICAgICAgJmFtcDtsdDtJb25JdGVtJmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICApfQogICAgICAgICZhbXA7bHQ7L0lvbkxpc3QmYW1wO2d0OwoKICAgICAgICB7LyogTW9kYWwqL30KICAgICAgICAmYW1wO2x0O0lvbk1vZGFsIGlzT3Blbj17c2hvd01vZGFsfSZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkNhcmQmYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICZhbXA7bHQ7SW9uTGFiZWwmYW1wO2d0O0FkZCBOZXcgVGFzayZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAmYW1wO2x0O0lvbkNhcmRDb250ZW50JmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICAgJmFtcDtsdDtJb25JbnB1dAogICAgICAgICAgICAgICAgICB2YWx1ZT17dGFza05hbWV9CiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSZxdW90O0VudGVyIFRhc2sgTmFtZS4uLiZxdW90OwogICAgICAgICAgICAgICAgICBvbklvbkNoYW5nZT17KGUpID0mYW1wO2d0OyBzZXRUYXNrTmFtZShlLmRldGFpbC52YWx1ZSEpfQogICAgICAgICAgICAgICAgJmFtcDtndDsmYW1wO2x0Oy9Jb25JbnB1dCZhbXA7Z3Q7CiAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uCiAgICAgICAgICAgICAgICBleHBhbmQ9JnF1b3Q7ZnVsbCZxdW90OwogICAgICAgICAgICAgICAgY29sb3I9JnF1b3Q7cHJpbWFyeSZxdW90OwogICAgICAgICAgICAgICAgb25DbGljaz17KCkgPSZhbXA7Z3Q7IGFkZE5ld1Rhc2soKX0KICAgICAgICAgICAgICAmYW1wO2d0OwogICAgICAgICAgICAgICAgQWRkIFRhc2sKICAgICAgICAgICAgICAmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkQ29udGVudCZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uIG9uQ2xpY2s9eygpID0mYW1wO2d0OyBzZXRTaG93TW9kYWwoZmFsc2UpfSZhbXA7Z3Q7Q2xvc2UgTW9kYWwmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICZhbXA7bHQ7L0lvbk1vZGFsJmFtcDtndDsKCiAgICAgICAgey8qIEFkZCBUYXNrIEJ1dHRvbiAqL30KICAgICAgICAmYW1wO2x0O0lvbkZhYiB2ZXJ0aWNhbD0mcXVvdDtib3R0b20mcXVvdDsgaG9yaXpvbnRhbD0mcXVvdDtlbmQmcXVvdDsgc2xvdD0mcXVvdDtmaXhlZCZxdW90OyZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkZhYkJ1dHRvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsgc2V0U2hvd01vZGFsKHRydWUpfSZhbXA7Z3Q7CiAgICAgICAgICAgICZhbXA7bHQ7SW9uSWNvbiBpY29uPXthZGR9IC8mYW1wO2d0OwogICAgICAgICAgJmFtcDtsdDsvSW9uRmFiQnV0dG9uJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25GYWImYW1wO2d0OwogICAgICAmYW1wO2x0Oy9Jb25Db250ZW50JmFtcDtndDsKICAgICZhbXA7bHQ7L0lvblBhZ2UmYW1wO2d0OwogICk7Cn07CgpleHBvcnQgZGVmYXVsdCBUYWIxOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyBsZXTigJlzIGdvIHRocm91Z2ggdGhlIGNvZGUgc25pcHBldCBhYm92ZS4gVGhpcyBpcyB0aGUgZW50aXJlIGNvZGUgZm9yIG91ciBUYXNrIE1hbmFnZXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnQgYnkgaW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzIGluY2x1ZGluZyB0aGUgY3NzIGZpbGUgZm9yIG91ciBwYWdlLiBXZSB0aGVuIGRlZmluZSBhbiBpbnRlcmZhY2UgdG8gZGVmaW5lIG91ciB0YXNrIG9iamVjdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtpbnRlcmZhY2UgVGFzayB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7Cn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7TmV4dCwgd2UgY3JlYXRlIG91ciBjb21wb25lbnQgYXMgYSBSZWFjdCBmdW5jdGlvbiBjb21wb25lbnQgdHlwZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtSZWFjdC5GQyZsdDsvY29kZSZndDsgYW5kIGJlZ2luIHRoZSBmdW5jdGlvbiBieSBkZWZpbmluZyB0aGUgZGF0YSB3ZSB3YW50IHRvIGhvbGQgaW4gb3VyIHN0YXRlIHVzaW5nIGhvb2tzOiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tzJmx0Oy9jb2RlJmd0OyBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYXNrJmx0Oy9jb2RlJmd0O3MsIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2hvd01vZGFsJmx0Oy9jb2RlJmd0OyBib29sZWFuIHRvIGNvbnRyb2wgdGhlIG9wZW5pbmcgYW5kIGNsb3Npbmcgb2Ygb3VyIHRhc2sgY3JlYXRpb24gZm9ybSwgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tOYW1lJmx0Oy9jb2RlJmd0OyB3aGljaCBob2xkcyB0aGUgdmFsdWUgb2YgYSBuZXcgdGFzayBpbiB0aGUgcHJvY2VzcyBvZiBjcmVhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IFt0YXNrcywgc2V0VGFza3NdID0gdXNlU3RhdGUmYW1wO2x0O1Rhc2tbXSZhbXA7Z3Q7KFtdKTsKY29uc3QgW3Nob3dNb2RhbCwgc2V0U2hvd01vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTsKY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Rm9sbG93aW5nIHRoZXNlIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdlIGNhbGwgdG8gYWRkIGEgbmV3IHRhc2suIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyB0YXNrIGJ5IHNldHRpbmcgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lkJmx0Oy9jb2RlJmd0OyBiYXNlZCBvbiB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBhbmQgY2xlYXJzIHRoZSBmb3JtIGFmdGVyIGFkZGluZyB0aGUgbmV3IHRhc2sgdG8gb3VyIGV4aXN0aW5nIGxpc3Qgb2YgdGFza3MuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtmdW5jdGlvbiBhZGROZXdUYXNrKCkgewogIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogIGNvbnN0IG5ld1Rhc2sgPSB7CiAgICBpZDogbmV3X2lkLAogICAgbmFtZTogdGFza05hbWUsCiAgfTsKCiAgdGFza3MucHVzaChuZXdUYXNrKTsKCiAgc2V0VGFza3ModGFza3MpOwoKICBzZXRUYXNrTmFtZSgmcXVvdDsmcXVvdDspOwoKICBzZXRTaG93TW9kYWwoZmFsc2UpOwp9CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05leHQsIHdlIHJlbmRlciBvdXIgdGVtcGxhdGUgdG8gZGlzcGxheSBvdXIgbGlzdCBvZiB0YXNrcyBhbmQgYWxzbyBkaXNwbGF5IGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgcmVhZHMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmbHQ7L2NvZGUmZ3Q7IHdoZW4gdGhlIHRhc2sgbGlzdCBpcyBlbXB0eS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtGb2xsb3dpbmcgdGhlIGxpc3QgaXMgYSBtb2RhbCBjb21wb25lbnQgdGhhdCBjb250YWlucyBvdXIgdGFzayBmb3JtIGZvciBhZGRpbmcgbmV3IHRhc2tzLiBCZWxvdyB0aGUgY29tcG9uZW50IGlzIGEgZmxvYXRpbmcgYWN0aW9uIGJ1dHRvbiB0aGF0IHRoZSB1c2VyIGNsaWNrcyB0byBvcGVuIHRoZSBtb2RhbC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWZvcmUgd2UgcHJldmlldyB0aGlzLCBvcGVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEuY3NzJmx0Oy9jb2RlJmd0OyBsb2NhdGVkIGluIHRoZSBzYW1lIGZvbGRlciBhcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRzeCZsdDsvY29kZSZndDsgYW5kIHJlcGxhY2UgaXRzIGNvbnRlbnRzIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Lyogc3JjL3BhZ2VzL1RhYjEuY3NzICovCgoudG9kby1pdGVtIHsKICAtLW1pbi1oZWlnaHQ6IDcwcHg7CiAgZm9udC1zaXplOiAxLjJlbTsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHNpbXBseSBidW1wcyB1cCB0aGUgaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgdGhlIGxpc3QgaXRlbXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm93LCBnbyB0byB5b3VyIGJyb3dzZXIgYW5kIGxvYWQgdGhlIGhvbWVwYWdlIG9mIHlvdXIgYXBwbGljYXRpb24gKFRhYjEpLiBZb3Ugd2lsbCBzZWUgdGhlIHBhZ2UgZGlzcGxheWVkIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1ob21lLW5vLXRhc2tzLnBuZyZxdW90OyAvJmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QmVjYXVzZSB3ZSBoYXZlbuKAmXQgYWRkZWQgYW55IHRhc2tzIHlldCwgd2UgaGF2ZSB0aGUgbWVzc2FnZSAmbHQ7c3Ryb25nJmd0O1lvdSBoYXZlIHlldCB0byBhZGQgdGFza3MgZm9yIHRvZGF5Jmx0Oy9zdHJvbmcmZ3Q7IGRpc3BsYXllZC4gV2UgYWxzbyBoYXZlIG91ciAmbHQ7c3Ryb25nJmd0O0FkZCBUYXNrJmx0Oy9zdHJvbmcmZ3Q7IGJ1dHRvbiBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lciB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwbHVzJmx0Oy9jb2RlJmd0OyBzeW1ib2wuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0FkZGluZyB0YXNrcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBhZGQgYSBuZXcgdGFzaywgY2xpY2sgdGhlIGJvdHRvbS1yaWdodCBibHVlIGJ1dHRvbiB0byBwdWxsIHVwIHRoZSB0YXNrIGNyZWF0aW9uIGZvcm0gYW5kIHR5cGUgaW4gYSB0YXNrIGFzIHNob3duIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtdGFzay5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7QUREIFRBU0smbHQ7L3N0cm9uZyZndDsgdG8gYWRkIHRoZSB0YXNrIGFuZCBnbyBhaGVhZCB0byBhZGQgMiB0byAzIG1vcmUgdGFza3MuIFdlIHNob3VsZCBub3cgaGF2ZSBlbm91Z2ggdGFza3Mgb24gdGhlIHBhZ2UgZm9yIG91ciBhcHBsaWNhdGlvbiB0byBsb29rIGZ1bmN0aW9uYWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXRhc2stbGlzdC5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB3ZSBoYXZlIGEgZnVuY3Rpb25hbCBhcHBsaWNhdGlvbi4gTm90IHByb2R1Y3Rpb24tcmVhZHksIGJ1dCBnb29kIGVub3VnaCB0byBzdGFydCB0ZXN0aW5nLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBZGRpbmcgdGVzdHMgdG8gdGhlIFRhc2sgTWFuYWdlciBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtPbmUgYWR2YW50YWdlIHRoYXQgd2UgaGF2ZSB3aXRoIHRlc3Rpbmcgb3VyIElvbmljIGFwcGxpY2F0aW9ucyBpcyB0aGF0IHdoaWxlIHNjYWZmb2xkaW5nIHRoZSBhcHBsaWNhdGlvbiwgdGhlIElvbmljIENMSSBoYXMgc2V0IHVwIGFsbCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcywgaW4gdGVybXMgb2YgcGFja2FnZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCBmb3IgdGVzdGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUZXN0aW5nIElvbmljIFJlYWN0IGFwcGxpY2F0aW9ucyBpcyBkb25lIHVzaW5nIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vamVzdGpzLmlvLyZxdW90OyZndDtKZXN0Jmx0Oy9hJmd0OyB0ZXN0aW5nIGZyYW1ld29yayB0b2dldGhlciB3aXRoIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdGVzdGluZy1saWJyYXJ5LmNvbS9kb2NzL3JlYWN0LXRlc3RpbmctbGlicmFyeS9pbnRybyZxdW90OyZndDtSZWFjdCBUZXN0aW5nIExpYnJhcnkmbHQ7L2EmZ3Q7IGFuZCB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1yZWFjdC10ZXN0LXV0aWxzJnF1b3Q7Jmd0O0lvbmljIFJlYWN0IFRlc3QgVXRpbHMmbHQ7L2EmZ3Q7IGxpYnJhcnkgd2hpY2ggaXMgYSBzbWFsbCBzdWl0ZSBvZiB1dGlsaXRpZXMgdG8gc2ltdWxhdGUgY29tbW9uIGZlYXR1cmVzIGluIElvbmljIGxpa2UgZmlyaW5nIGN1c3RvbSBJb25pYyBldmVudHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIHByb2plY3QgYWxyZWFkeSBjb21lcyB3aXRoIGEgdGVzdCBmaWxlIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7QXBwLnRzeCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLiBBcyB5b3UgbWF5IGhhdmUgZ3Vlc3NlZCwgdGhlIHRlc3QgZmlsZSBpcyBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtBcHAudGVzdC50c3gmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGZvbGxvd3MgdGhlIGNvbnZlbnRpb24gZm9yIEplc3QgdGVzdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsvLyBzcmMvQXBwLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgQXBwIGZyb20gJnF1b3Q7Li9BcHAmcXVvdDs7Cgp0ZXN0KCZxdW90O3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZyZxdW90OywgKCkgPSZhbXA7Z3Q7IHsKICBjb25zdCB7IGJhc2VFbGVtZW50IH0gPSByZW5kZXIoJmFtcDtsdDtBcHAgLyZhbXA7Z3Q7KTsKICBleHBlY3QoYmFzZUVsZW1lbnQpLnRvQmVEZWZpbmVkKCk7Cn0pOwombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHRlc3Qgc2ltcGx5IGNoZWNrcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiByZW5kZXJzIHByb3Blcmx5IGFuZCBkb2VzIG5vdCBjcmFzaC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBydW4gdGhpcyB0ZXN0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBpbnZva2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2plc3QmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gcnVuIHRoZSB0ZXN0IGRlZmluZWQgaW4gdGhlIGZpbGUuIEFzIGRpcmVjdGVkLCBwcmVzcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDthJmx0Oy9jb2RlJmd0OyB0byBydW4gYWxsIHRlc3RzLiBUaGUgYWJvdmUgY29tbWFuZCBpcyB0aGUgY29tbWFuZCB3ZSB3aWxsIGJlIHVzaW5nIHRvIHJ1biBhbGwgdGVzdHMgaW4gb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgbGV04oCZcyBhZGQgc29tZSB0ZXN0cyBvZiBvdXIgb3duLiBXZSB3aWxsIGJlIGNyZWF0aW5nIGEgdGVzdCBmaWxlIHRvIHRlc3QgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIHdlIGhhdmUgaW4gb3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlIHdoaWNoIGhvdXNlcyBvdXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRlc3QudHN4Jmx0Oy9jb2RlJmd0OyBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyLiBJdOKAmXMgdGhlIHNhbWUgcGxhY2UgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VGFiMS50c3gmbHQ7L2NvZGUmZ3Q7IGZpbGUgaXMgbG9jYXRlZC4gSW5zaWRlIHRoZSBuZXdseSBjcmVhdGVkIGZpbGUsIHBsYWNlIGluIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgVGFiMSBmcm9tICZxdW90Oy4vVGFiMSZxdW90OzsKCnRlc3QoJnF1b3Q7UGFnZSB0aXRsZSBpcyBUYXNrIE1hbmFnZXImcXVvdDssIGFzeW5jICgpID0mYW1wO2d0OyB7CiAgY29uc3QgeyBmaW5kQnlUZXh0IH0gPSByZW5kZXIoJmFtcDtsdDtUYWIxIC8mYW1wO2d0Oyk7CiAgYXdhaXQgZmluZEJ5VGV4dCgmcXVvdDtUYXNrIE1hbmFnZXImcXVvdDspOwp9KTsKCnRlc3QoJnF1b3Q7V2hlbiB0aGVyZSBhcmUgbm8gVGFza3MsIGluZm9ybSB0aGUgdXNlciB0aGF0IG5vIHRhc2tzIGhhdmUgYmVlbiBjcmVhdGVkJnF1b3Q7LCBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IHsgZmluZEJ5VGV4dCB9ID0gcmVuZGVyKCZhbXA7bHQ7VGFiMSAvJmFtcDtndDspOwogIGF3YWl0IGZpbmRCeVRleHQoJnF1b3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmcXVvdDspOwp9KTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBmaWxlLCB3ZSBoYXZlIGFkZGVkIHR3byB0ZXN0cy4gVGhlIGZpcnN0IHRlc3QgY2hlY2tzIGlmIG91ciBwYWdlIGRpc3BsYXlzIHdpdGggdGhlIGNvcnJlY3QgdGl0bGUgd2hpY2ggaXMgJmx0O3N0cm9uZyZndDtUYXNrIE1hbmFnZXImbHQ7L3N0cm9uZyZndDsuIFRoZSBzZWNvbmQgdGVzdCBjaGVja3MgaWYgb3VyIGFwcGxpY2F0aW9uIGluaXRpYWxseSBsb2FkcyB3aXRob3V0IHRhc2tzLCBhbmQgaWYgaXQgZG9lcywgaXQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgJmx0O3N0cm9uZyZndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3csIGxldOKAmXMgcnVuIHRoZXNlIHRlc3RzIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGF0IHRoZSByb290IG9mIG91ciBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSBhIHNjcmVlbiBzaW1pbGFyIHRvIHRoZSBvbmUgYmVsb3cgb24geW91ciBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi10ZXN0cy1sb2NhbC1ydW4ucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIG91ciB0ZXN0cyBydW5uaW5nIGFzIGV4cGVjdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBdXRvbWF0aW5nIG91ciB0ZXN0aW5nJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBmaW5hbCB0YXNrIGlzIHRvIGF1dG9tYXRlIG91ciBjb250aW51b3VzIGludGVncmF0aW9uIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhhdCwgd2Ugd2lsbCBiZSBkb2luZyB0aGUgZm9sbG93aW5nOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QWRkIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgdG8gb3VyIHByb2plY3QgdG8gc2V0IHVwIGEgQ0kgcGlwZWxpbmUgb24gQ2lyY2xlQ0kmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIG91ciBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG9zaXRvcnkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDcmVhdGUgYSBDaXJjbGVDSSBwcm9qZWN0IGZvciBvdXIgYXBwbGljYXRpb24mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtSdW4gdGhlIENJIHBpcGVsaW5lIG9uIENpcmNsZUNJJmx0Oy9saSZndDsKJmx0Oy9vbCZndDsKCiZsdDtwJmd0O0xldOKAmXMgZ2V0IHRvIGl0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZpcnN0LCBsZXTigJlzIGFkZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3Igb3VyIENJIHBpcGVsaW5lIHRvIG91ciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLiBJbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbmZpZy55bWwmbHQ7L2NvZGUmZ3Q7IGZpbGUsIGVudGVyIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpqb2JzOgogIGJ1aWxkOgogICAgd29ya2luZ19kaXJlY3Rvcnk6IH4vcmVwbwogICAgZG9ja2VyOgogICAgICAtIGltYWdlOiBjaW1nL25vZGU6MTIuMTYKICAgIHN0ZXBzOgogICAgICAtIGNoZWNrb3V0CiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdXBkYXRlLW5wbQogICAgICAgICAgY29tbWFuZDogJnF1b3Q7c3VkbyBucG0gaW5zdGFsbCAtZyBucG1ANSZxdW90OwogICAgICAtIHJlc3RvcmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgLSBydW46CiAgICAgICAgICBuYW1lOiBpbnN0YWxsLXBhY2thZ2VzCiAgICAgICAgICBjb21tYW5kOiBucG0gaW5zdGFsbAogICAgICAtIHNhdmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgICAgIHBhdGhzOgogICAgICAgICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdGVzdAogICAgICAgICAgY29tbWFuZDogbnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgY29uZmlndXJhdGlvbiBwdWxscyBpbiBhIE5vZGUuanMgaW1hZ2UgYW5kIGluc3RhbGxzIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGRlZmluZWQgaW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0Oy4gT25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCB0aGUgdGVzdCBzY3JpcHQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bnBtIHJ1biB0ZXN0Jmx0Oy9jb2RlJmd0OyBpcyB0aGVuIGV4ZWN1dGVkIHRvIHJ1biBhbGwgdGhlIHRlc3RzIGluIG91ciBhcHBsaWNhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGdvb2QgdG8gZ28uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY29tbWl0IGFsbCB5b3VyIGNoYW5nZXMgYW5kIHB1c2ggdGhlIHByb2plY3QgdG8gYSBHaXRIdWIgcmVwb3NpdG9yeSBvbiB0aGUgR2l0SHViIGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgQ2lyY2xlQ0kgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIGlzIHRvIHNldCB1cCB0aGUgcmVwb3NpdG9yeSBmb3Igb3VyIHByb2plY3QgYXMgYSBDaXJjbGVDSSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBDaXJjbGVDSSBjb25zb2xlLCBnbyB0byB0aGUgJmx0O3N0cm9uZyZndDtBZGQgUHJvamVjdHMmbHQ7L3N0cm9uZyZndDsgcGFnZSB0byBhZGQgdGhlIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtcHJvamVjdC5wbmcmcXVvdDsgYWx0PSZxdW90O0FkZCBQcm9qZWN0JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0Oy4gVGhpcyB3aWxsIGxvYWQgdGhlIG5leHQgc2NyZWVuLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3N0YXJ0LWJ1aWxkaW5nMS5wbmcmcXVvdDsgYWx0PSZxdW90O1N0YXJ0IEJ1aWxkaW5nIC0gQ29uZmlnIHNhbXBsZSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBzZXR1cCBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7LiBCZWZvcmUgdGhlIGJ1aWxkIHN0YXJ0cywgeW91IGdldCBhIHByb21wdCB0byBlaXRoZXIgZG93bmxvYWQgYW5kIHVzZSB0aGUgcHJvdmlkZWQgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBoYXZlIGl0IG9uIGEgc2VwYXJhdGUgYnJhbmNoIG9yIHNldCB1cCBvbmUgbWFudWFsbHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzIucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIEFkZCBtYW51YWxseSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1NlbGVjdCAmbHQ7c3Ryb25nJmd0O0FkZCBNYW51YWxseSZsdDsvc3Ryb25nJmd0OyB0byBwcm9jZWVkLiBUaGlzIHdpbGwgcHJvbXB0IGFub3RoZXIgZGlhbG9nIHRoYXQgY2hlY2tzIHRvIGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXQgdXAgdG8gYmVnaW4gYnVpbGRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzMucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIENvbmZpcm0gY29uZmlndXJhdGlvbiZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsgdG8gY29tcGxldGUgdGhlIHNldHVwLiBUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgcGlwZWxpbmUgdXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBvdXIgcHJvamVjdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGUgYnVpbGQgaXMgZG9uZSBydW5uaW5nLCB5b3Ugd2lsbCBnZXQgYSBzdWNjZXNzZnVsIGJ1aWxkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtc3VjY2Vzc2Z1bC5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHN1Y2Nlc3NmdWwmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O2J1aWxkJmx0Oy9zdHJvbmcmZ3Q7IHRvIHNlZSB0aGUgYmVoaW5kLXRoZS1zY2VuZXMgcHJvY2VzcyhJIGhhdmUgY29sbGFwc2VkIHRoZSAmbHQ7ZW0mZ3Q7dGVzdCZsdDsvZW0mZ3Q7IHN0ZXApLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtcHJvY2Vzcy5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHByb2Nlc3MmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBzY3JlZW4sIG91ciBwcm9qZWN0IGlzIHByb3Blcmx5IHNldCB1cCBhbmQgYWxsIG91ciB0ZXN0cyBhcmUgcnVubmluZyBmaW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgYXMgeW91IGRldmVsb3AsIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgbW9yZSBmZWF0dXJlcywgYWRkIHRlc3RzIHRvIHRoZW0gYW5kIHB1c2ggdG8gR2l0SHViLiBPbmNlIHlvdSBwdXNoLCB0aGUgQ0kgcGlwZWxpbmUgd2lsbCBydW4gYW5kIGFsbCB5b3VyIHRlc3RzIHdpbGwgYmUgZXhlY3V0ZWQuIElmIGFueSB0ZXN0IGZhaWxzLCB5b3VyIGJ1aWxkIHdpbGwgZmFpbCB3aGljaCB3aWxsIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbiB0byBiZSBmaXhlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW914oCZcmUgbm90IHB1c2hpbmcgYW55IGJ1Z3MgaW50byB5b3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIHRoaXMgYXJ0aWNsZSwgd2UgaGF2ZSBzZXQgdXAgYW4gYXV0b21hdGVkIENJIHBpcGVsaW5lIGZvciBvdXIgSW9uaWMgYXBwbGljYXRpb25zIHRvIGltcHJvdmUgb3VyIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGF1dG9tYXRpbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4gSGF2aW5nIGEgQ0kgcGlwZWxpbmUgdGhhdCBwcm9wZXJseSBydW5zIG91ciB0ZXN0cyBwcm90ZWN0cyB1cyBhZ2FpbnN0IG91cnNlbHZlcyBieSBlbnN1cmluZyB0aGF0IHdlIGRvbuKAmXQgZW5kIHVwIHdpdGggYnJva2VuIGFwcGxpY2F0aW9ucyBvciB0aGF0IHdlIGRvbuKAmXQgcHVzaCBidWdneSBjb2RlIHRvIG91ciB0ZWFt4oCZcyByZXBvc2l0b3J5IHdoaWxlIHdvcmtpbmcgdG9nZXRoZXIgb24gYSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyA6KSZsdDsvcCZndDsKCiZsdDtociAvJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3R3aXR0ZXIuY29tL2NvZGVyb25mbGVlaz9sYW5nPWVuJnF1b3Q7Jmd0O0Zpa2F5byZsdDsvYSZndDsgaXMgYSBmdWxsc3RhY2sgZGV2ZWxvcGVyIGFuZCBhdXRob3Igd2l0aCBvdmVyIGEgZGVjYWRlIG9mIGV4cGVyaWVuY2UgZGV2ZWxvcGluZyB3ZWIgYW5kIG1vYmlsZSBzb2x1dGlvbnMuIEhlIGlzIGN1cnJlbnRseSB0aGUgU29mdHdhcmUgTGVhZCBhdCBUZWNoIFNwZWNpYWxpc3QgQ29uc3VsdGluZyBhbmQgZGV2ZWxvcHMgY291cnNlcyBmb3IgUGFja3QgYW5kIFVkZW15LiBIZSBoYXMgYSBzdHJvbmcgcGFzc2lvbiBmb3IgdGVhY2hpbmcgYW5kIGhvcGVzIHRvIGJlY29tZSBhIGZ1bGwtdGltZSBhdXRob3IuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5EcmF3biBPdXQgQ29udmVyc2F0aW9ucywgZmVhdHVyaW5nIENpcmNsZUNJIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlciwgUGF0IFNoaWVsZHM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZHJhd24tb3V0LWNvbnZlcnNhdGlvbi1mZWF0dXJpbmctY2lyY2xlY2ktcHJpbmNpcGFsLXNvZnR3YXJlLWVuZ2luZWVyLXBhdC1zaGllbGRzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5GcmksIDE1IE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RyYXduLW91dC1jb252ZXJzYXRpb24tZmVhdHVyaW5nLWNpcmNsZWNpLXByaW5jaXBhbC1zb2Z0d2FyZS1lbmdpbmVlci1wYXQtc2hpZWxkcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Db3JleSBMZXdpczwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtPbiB0aGlzIGVwaXNvZGUgb2YgRHJhd24gT3V0IENvbnZlcnNhdGlvbnMsIHdlIHRhbGsgYWJvdXQgc29tZXRoaW5nIG5lYXIgYW5kIGRlYXIgdG8gb3VyIGhlYXJ0cyDigJMgQ2lyY2xlQ0kuIFdlLCBhbG9uZyB3aXRoIGh1bmRyZWQgb2YgdGhvdXNhbmRzIG9mIG90aGVyIGRldmVsb3BlcnMgYXQgY29tcGFuaWVzIGxpa2UgU3BvdGlmeSwgRmFjZWJvb2ssIEZvcmQgYW5kIEFldG5hLCB1c2UgQ2lyY2xlQ0kgZXZlcnkgZGF5IHRvIG1ha2Ugc3VyZSB0aGF0IHdl4oCZcmUgZGVwbG95aW5nIHF1YWxpdHkgY29kZSwgYW5kIGJ1aWxkaW5nIGVmZmljaWVuY2llcyBpbnRvIG91ciBlbmdpbmVlcmluZyBwcm9jZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0LCB3aGF0IGV4YWN0bHkgaXMgdW5kZXJuZWF0aCBvdXIgcGxhdGZvcm3igJlzIGhvb2Q/Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Sm9pbiBvdXIgQ1RPIFJvYiBadWJlciBhcyBoZSBob3N0cyBDaXJjbGVDSeKAmXMgUHJpbmNpcGFsIFNvZnR3YXJlIEVuZ2luZWVyIFBhdCBTaGllbGRzIHRvIGRpc2N1c3MgdGhlIGlubmVyLXdvcmtpbmdzIG9mIG91ciB0ZWNobm9sb2d5IGFuZCBwbGF0Zm9ybS4gVGhleSBkaXNjdXNzIGV2ZXJ5dGhpbmcgZnJvbSBwcm9kdWN0IGZlYXR1cmVzIHRvIGFyY2hpdGVjdHVyZSBhbmQgdGFsayBhYm91dCBob3cgYW5kIHdoeSB0aGUgY29yZSBlbGVtZW50cyBvZiBvdXIgcGxhdGZvcm0gZ290IGJ1aWx0LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3JvYi1wYXQucG5nJnF1b3Q7IGFsdD0mcXVvdDtyb2ItcGF0LnBuZyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1JvYiBldmVuIHRha2VzIGEgdHVybiB3aXRoIHRoZSBtYXJrZXJzIHRvIGRpc2N1c3MgZG9tYWluLWRyaXZlbiBkZXNpZ24sIGF1dGhlbnRpY2F0aW9uIGFuZCBtb3JlLiBMZWFybiBldmVyeXRoaW5nIHlvdSBldmVyIHdhbnRlZCB0byBrbm93IGFib3V0IENpcmNsZUNJIGFuZCBtb3JlIGluIHRvZGF54oCZcyBjb252ZXJzYXRpb24uJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXImcXVvdDsmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3lvdXR1LmJlL1dMOVJRNmZNbGUwJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvY2lyY2xlY2kuZ2lmJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsKICAmbHQ7L2EmZ3Q7CgombHQ7YnIgLyZndDsKCiAgJmx0O3AmZ3Q7CiAgICAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8veW91dHUuYmUvV0w5UlE2Zk1sZTAmcXVvdDsgc3R5bGU9JnF1b3Q7Y29sb3I6IzAwMDBFRTsmcXVvdDsmZ3Q7CiAgICAgIFdhdGNoIHRoZSBmdWxsIHZpZGVvIGhlcmUKICAgICZsdDsvYSZndDsKICAmbHQ7L3AmZ3Q7CiZsdDsvZGl2Jmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZG8gSSB1c2UgSW5mcmFzdHJ1Y3R1cmUgYXMgQ29kZT88L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWRvLWktaWFjLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE1heSAyMDIwIDEyOjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2hvdy1kby1pLWlhYy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5BbmdlbCBSaXZlcmE8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7SW5mcmFzdHJ1Y3R1cmUgYXMgY29kZSAoSWFDKSBpcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBhbmQgcHJvdmlzaW9uaW5nIGNsb3VkIGFuZCBJVCByZXNvdXJjZXMgdmlhIG1hY2hpbmUgcmVhZGFibGUgZGVmaW5pdGlvbiBmaWxlcyBhbmQgaXMgYSBwYXJ0IG9mIG1vZGVybiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lcy4gSWFDIGVuYWJsZXMgb3JnYW5pemF0aW9ucyB0byBwcm92aXNpb24sIG1hbmFnZSwgYW5kIGRlc3Ryb3kgY29tcHV0ZSByZXNvdXJjZXMgdXNpbmcgbW9kZXJuIERldk9wcyB0b29scy4gSWFDIGVuYWJsZXMgdGhpcyBieSBzdGF0aWNhbGx5IGRlZmluaW5nIGFuZCBkZWNsYXJpbmcgdGhlc2UgcmVzb3VyY2VzIGluIGNvZGUsIHRoZW4gZGVwbG95aW5nIGFuZCBkeW5hbWljYWxseSBtYWludGFpbmluZyB0aGVzZSByZXNvdXJjZXMgdmlhIGNvZGUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gcmVjZW50IGludGVyYWN0aW9ucyB3aXRoIGRldmVsb3BlcnMsIEnigJl2ZSByZWFsaXplZCB0aGF0IG1hbnkgYXJlIGVpdGhlciBub3QgYXdhcmUgb2YgSWFDLCBvciBhcmUgYXdhcmUgYnV0IGhhdmUgYWJhbmRvbmVkIHRoZWlyIGluaXRpYWwgZWZmb3J0cyBiZWNhdXNlIHJhbXBpbmcgdXAgd2FzIHRvbyBjdW1iZXJzb21lLiBJbiB0aGlzIHBvc3QsIEkgd2lsbCBkaXNjdXNzIHRoZSBiZW5lZml0cyBvZiBJYUMgYW5kIHNvbWUgb2YgdGhlIHRvb2xpbmcgb3B0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgYWxvbmcgd2l0aCBhIGJyaWVmIGRlbW9uc3RyYXRpb24gb24gaG93IHRvIHVzZSB0aGVtIGluIGhvcGVzIG9mIGVhc2luZyB0aGUgdHJhbnNpdGlvbiB0byB1c2luZyBJYUMuIEkgd2lsbCBmb2N1cyBvbiB0aGUgdHdvIG1vc3QgcG9wdWxhciBJYUMgdG9vbHMgdXNlZCBpbiB0aGUgaW5kdXN0cnkgdG9kYXk6ICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cudGVycmFmb3JtLmlvLyZxdW90OyZndDtIYXNoaUNvcnDigJlzIFRlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtCZWZvcmUgeW91IGdldCBzdGFydGVkLCB5b3XigJlsbCBuZWVkIHRvIGhhdmUgdGhlc2UgdGhpbmdzOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9mcmVlJnF1b3Q7Jmd0O0dvb2dsZSBDbG91ZCZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NyZWF0ZSBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3Jlc291cmNlLW1hbmFnZXIvZG9jcy9jcmVhdGluZy1tYW5hZ2luZy1wcm9qZWN0cyNjcmVhdGluZ19hX3Byb2plY3QmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIHByb2plY3QmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FwcC5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkgQVBJIHRva2VuJmx0Oy9hJmd0OyBhbmQgc2F2ZSBpdCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgbG9jYWwgaW5zdGFsbCBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vc2RrL2RvY3MvcXVpY2tzdGFydHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIFNESyBDTEkmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSBsb2NhbCBpbnN0YWxsIG9mIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaHViLmRvY2tlci5jb20vc2VhcmNoLz90eXBlPWVkaXRpb24mYW1wO2FtcDtvZmZlcmluZz1jb21tdW5pdHkmcXVvdDsmZ3Q7RG9ja2VyIGNsaWVudCZsdDsvYSZndDsmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBHb29nbGUgQ2xvdWQgcHJvamVjdCBjcmVkZW50aWFscyZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDbG91ZFBsYXRmb3JtL2NvbW11bml0eS9ibG9iL21hc3Rlci90dXRvcmlhbHMvZ2V0dGluZy1zdGFydGVkLW9uLWdjcC13aXRoLXRlcnJhZm9ybS9pbmRleC5tZCNnZXR0aW5nLXByb2plY3QtY3JlZGVudGlhbHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIGNyZWRlbnRpYWxzJmx0Oy9hJmd0OyBpbiBvcmRlciB0byBwZXJmb3JtIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgdXNpbmcgSWFDIHRvb2xpbmcuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9hcGlzL2NyZWRlbnRpYWxzL3NlcnZpY2VhY2NvdW50a2V5JnF1b3Q7Jmd0O0NyZWF0ZSBTZXJ2aWNlIEFjY291bnQgS2V5IHBhZ2UmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7U2VsZWN0IHRoZSBkZWZhdWx0IHNlcnZpY2UgYWNjb3VudCBvciBjcmVhdGUgYSBuZXcgb25lLCBzZWxlY3QgSlNPTiBhcyB0aGUga2V5IHR5cGUsIGFuZCBjbGljayAmbHQ7c3Ryb25nJmd0O0NyZWF0ZSZsdDsvc3Ryb25nJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O1NhdmUgdGhpcyBKU09OIGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgYW5kIHJlbmFtZSB0aGUgZmlsZSB0byAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaWNkX2RlbW9fZ2NwX2NyZWRzLmpzb24mbHQ7L2NvZGUmZ3Q7LiBUaGlzIGlzICZsdDtzdHJvbmcmZ3Q7dmVyeSBpbXBvcnRhbnQmbHQ7L3N0cm9uZyZndDsgZm9yIGVuYWJsaW5nIHRoZSBHb29nbGUgQ2xvdWQgQ0xJIGluIHRoZSBjb250YWluZXIgbGF0ZXIgb24mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBhIFB1bHVtaSBBUEkgdG9rZW4mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7WW91IHdpbGwgbmVlZCB0byBnZXQgYSBQdWx1bWkgQVBJIHRva2VuIHRvIHN0b3JlIHlvdXIgcHJvamVjdCBzdGF0ZSBvbiBQdWx1bWnigJlzIGJhY2tlbmQgY2xvdWQuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vYXBwLnB1bHVtaS5jb20vJnF1b3Q7Jmd0O2FwcC5wdWx1bWkuY29tLyZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1NlbGVjdCBhbiBPcmdhbml6YXRpb24mbHQ7L3N0cm9uZyZndDsgb24gdGhlIHVwcGVyIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSBhbmQgc2VsZWN0IHlvdXIgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O0FjY2VzcyBUb2tlbnMmbHQ7L3N0cm9uZyZndDsgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7TmV3IEFjY2VzcyBUb2tlbiZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7Q3JlYXRlJmx0Oy9zdHJvbmcmZ3Q7IGFuZCBzYXZlIHRoZSBuZXcgQVBJIHRva2VuIHRoYXQgd2FzIGNyZWF0ZWQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemUgeW91ciBQdWx1bWkgcHJvamVjdCBsYXRlciZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7aDImZ3Q7RG9ja2VyIHB1bGwgSWFDMTAxIERvY2tlciBpbWFnZSZsdDsvaDImZ3Q7CgombHQ7cCZndDtBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlZCBhbmQgeW914oCZcmUgcmVhZHkgdG8gcHVsbCB0aGUgZG9ja2VyIGltYWdlIGZvciB0aGlzIHdvcmtzaG9wLiBJbiB0ZXJtaW5hbCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBwdWxsIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm93IGhhdmUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2FyaXYzcmEvaWFjMTAxJmx0Oy9jb2RlJmd0OyBkb2NrZXIgaW1hZ2UgbG9jYWxseS4gWW91IGNhbiB2ZXJpZnkgYnV5IHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgYW5kIHlvdSBzaG91bGQgc2VlIHRoZSBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0RvY2tlciBydW4gSWFDMTAxIGNvbnRhaW5lciZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgd2XigJlsbCBjcmVhdGUgYSBuZXcgRG9ja2VyIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YXJpdjNyYS9pYWMxMDEmbHQ7L2NvZGUmZ3Q7IGltYWdlIHdoaWNoIGhhcyBhbGwgdGhlIElhQyB0b29scyBhbmQgY29kZSBwcmUtYmFrZWQuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O01vdW50aW5nIHRoZSAvLmNvbmZpZy9nY2xvdWQvIGRpcmVjdG9yeSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtCZWZvcmUgcnVubmluZyB0aGUgbmV3IGNvbnRhaW5lciB5b3UgbmVlZCB0aGUgYWJzb2x1dGUgcGF0aCB0byB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkuIE9uIG15IE1hY09TIG1hY2hpbmUsIG15IGFic29sdXRlIHBhdGggaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7L1VzZXJzL2FuZ2VsLy5jb25maWcvZ2Nsb3VkLyZsdDsvY29kZSZndDsuIEJlIHN1cmUgdG8gZ2V0IHlvdXIgYWJzb2x1dGUgZmlsZSBwYXRoIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2Nsb3VkJmx0Oy9jb2RlJmd0OyBkaXJlY3Rvcnkgb24geW91ciBsb2NhbCBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtSdW4gSWFDMTAxIGNvbnRhaW5lciB3aXRoIG1vdW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtSdW4gdGhpcyBjb21tYW5kIGluIGEgdGVybWluYWwgcnVuIGJ1dCBiZSBzdXJlIHRvIHJlcGxhY2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0OyZsdDsvY29kZSZndDsgYml0IHdpdGggeW91ciBhY3R1YWwgYWJzb2x1dGUgcGF0aCB0byB5b3VyIGxvY2FsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dsb2N1ZC8mbHQ7L2NvZGUmZ3Q7ZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtaXQgLS1uYW1lIGlhY3Rlc3QgLS1tb3VudCB0eXBlPWJpbmQsc291cmNlPSZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0Oy5jb25maWcvZ2Nsb3VkLyx0YXJnZXQ9L3Jvb3QvLmNvbmZpZy9nY2xvdWQvIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJYUMxMDEgY29udGFpbmVyIGlzIHJ1bm5pbmcmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGUgcHJldmlvdXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgeW91ciBJYUMxMDEgY29udGFpbmVyIHdpbGwgYmUgdXAgYW5kIHJ1bm5pbmcgYW5kIHlvdXIgdGVybWluYWwgc2hlbGwgaGFzIGRyb3BwZWQgeW91IGludG8gdGhlIHJ1bm5pbmcgY29udGFpbmVyLiBFdmVyeSBjb21tYW5kIHlvdSBydW4gaW4geW91ciB0ZXJtaW5hbCBzaGVsbCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBEb2NrZXIgY29udGFpbmVyIGZyb20gbm93IG9uIHVudGlsIHlvdSBtYW51YWxseSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtleGl0Jmx0Oy9jb2RlJmd0OyB0aGUgY29udGFpbmVyLiBUaGUgY29udGFpbmVyIGhhcyB0aGUgVGVycmFmb3JtIGFuZCBQdWx1bWkgQ0xJIHRvb2xzIGluc3RhbGxlZCwgYXMgd2VsbCBhcyBleGFtcGxlIGNvZGUgZm9yIGVhY2ggdGhhdCBjcmVhdGVzIGluZnJhc3RydWN0dXJlIGluIHRoZWlyIHJlc3BlY3RpdmUgdG9vbHMuIFRoZSBjb250YWluZXIgcHJvamVjdHMgZmlsZXMgYXJlIG1hcHBlZCBhcyBmb2xsb3dzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHJvamVjdHMvCnxfIHRlcnJhZm9ybS9nY3AvY29tcHV0ZS8gICAjIENvbnRhaW5zIHRoZSBUZXJyYWZvcm0gY29kZSBmaWxlcwp8XyBwdWx1bWkvZ2NwL2NvbXB1dGUvICAgICAgIyBDb250YWlucyB0aGUgUHVsdW1pIGNvZGUgZmlsZXMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gyJmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2EmZ3Q7IGlzIGEgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgYnVpbGRpbmcsIGNoYW5naW5nLCBhbmQgdmVyc2lvbmluZyBpbmZyYXN0cnVjdHVyZSBzYWZlbHkgYW5kIGVmZmljaWVudGx5LiBUZXJyYWZvcm0gY2FuIG1hbmFnZSBleGlzdGluZyBzZXJ2aWNlIHByb3ZpZGVycyBhcyB3ZWxsIGFzIGN1c3RvbSBpbi1ob3VzZSBzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q29uZmlndXJhdGlvbiBmaWxlcyBkZXNjcmliZSB0aGUgY29tcG9uZW50cyBuZWVkZWQgdG8gcnVuIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yIHlvdXIgZW50aXJlIGRhdGFjZW50ZXIgb24gVGVycmFmb3JtLiBUZXJyYWZvcm0gZ2VuZXJhdGVzIGFuIGV4ZWN1dGlvbiBwbGFuIGRlc2NyaWJpbmcgd2hhdCBpdCB3aWxsIGRvIHRvIHJlYWNoIHRoZSBkZXNpcmVkIHN0YXRlLCBhbmQgdGhlbiBleGVjdXRlcyBpdCB0byBidWlsZCB0aGUgZGVzY3JpYmVkIGluZnJhc3RydWN0dXJlLiBBcyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBUZXJyYWZvcm0gaXMgYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBjaGFuZ2VkIGFuZCBjcmVhdGUgaW5jcmVtZW50YWwgZXhlY3V0aW9uIHBsYW5zIHdoaWNoIGNhbiBiZSBhcHBsaWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZSBpbmZyYXN0cnVjdHVyZSBUZXJyYWZvcm0gY2FuIG1hbmFnZSBpbmNsdWRlcyBsb3ctbGV2ZWwgY29tcG9uZW50cyBzdWNoIGFzIGNvbXB1dGUgaW5zdGFuY2VzLCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZywgYXMgd2VsbCBhcyBoaWdoLWxldmVsIGNvbXBvbmVudHMgc3VjaCBhcyBETlMgZW50cmllcywgU2FhUyBmZWF0dXJlcywgZXRjLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBUZXJyYWZvcm0mbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCB3aXRoIHByb3Zpc2lvbmluZyBzb21lIHJlc291cmNlcyBpbiBHQ1AgdXNpbmcgVGVycmFmb3JtIGNvZGUuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDttYWluLnRmICZsdDsvY29kZSZndDsgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBjb2RlIHRoYXQgaGFzIG91ciBpbmZyYXN0cnVjdHVyZSBkZWZpbmVkLiBJbiB0aGlzIGZpbGUgd2XigJlyZSBjcmVhdGluZyBhIG5ldyBjb21wdXRlIGluc3RhbmNlIHRoYXQgd2lsbCBpbnN0YWxsIGFuZCBydW4gYSBQeXRob24gRmxhc2sgYXBwIHBhY2thZ2VkIGluIGEgRG9ja2VyIGNvbnRhaW5lci4gVGhlIFRlcnJhZm9ybSBjb2RlIHdpbGwgYWxzbyBjcmVhdGUgc29tZSBmaXJld2FsbCBydWxlcyB0aGF0IHdpbGwgYWxsb3cgcHVibGljIGFjY2VzcyB0byB0aGUgYXBwIG92ZXIgcG9ydCA1MDAwLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHByb3Zpc2lvbiB0aGlzLCBydW4gdGhpcyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NkIH4vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJbml0aWFsaXppbmcgVGVycmFmb3JtJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1doaWxlIGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBydW4gdGhpcyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7dGVycmZvcm0gaW5pdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSByZXN1bHRzIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cm9vdEBkOWNlNzIxMjkzZTI6fi9wcm9qZWN0L3RlcnJhZm9ybS9nY3AvY29tcHV0ZSMgdGVycmFmb3JtIGluaXQKCkluaXRpYWxpemluZyB0aGUgYmFja2VuZC4uLgoKSW5pdGlhbGl6aW5nIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBDaGVja2luZyBmb3IgYXZhaWxhYmxlIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBEb3dubG9hZGluZyBwbHVnaW4gZm9yIHByb3ZpZGVyICZxdW90O2dvb2dsZSZxdW90OyAoaGFzaGljb3JwL2dvb2dsZSkgMy4xMC4wLi4uCgoqIHByb3ZpZGVyLmdvb2dsZTogdmVyc2lvbiA9ICZxdW90O34mYW1wO2d0OyAzLjEwJnF1b3Q7CgpUZXJyYWZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7aDMmZ3Q7UHJldmlld2luZyB3aXRoIFRlcnJhZm9ybSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUZXJyYWZvcm0gaGFzIGEgY29tbWFuZCB0aGF0IGFsbG93cyB5b3UgdG8gZHJ5IHJ1biBhbmQgdmFsaWRhdGUgeW91ciBUZXJyYWZvcm0gY29kZSB3aXRob3V0IGFjdHVhbGx5IGV4ZWN1dGluZyBhbnl0aGluZy4gVGhlIGNvbW1hbmQgaXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybSBwbGFuJmx0Oy9jb2RlJmd0OyB3aGljaCBhbHNvIGdyYXBocyBhbGwgdGhlIGFjdGlvbnMgYW5kIGNoYW5nZXMgdGhhdCBUZXJyYWZvcm0gd2lsbCBleGVjdXRlIGFnYWluc3QgeW91ciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS4gSW4gdGhlIHRlcm1pbmFsIHJ1bjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3RlcnJhZm9ybSBwbGFuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSByZXN1bHRzIHNpbWlsYXIgdG8gdGhpcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0FuIGV4ZWN1dGlvbiBwbGFuIGhhcyBiZWVuIGdlbmVyYXRlZCBhbmQgaXMgc2hvd24gYmVsb3cuClJlc291cmNlIGFjdGlvbnMgYXJlIGluZGljYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKICArIGNyZWF0ZQoKVGVycmFmb3JtIHdpbGwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGFjdGlvbnM6CgogICMgZ29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwuaHR0cC01MDAwIHdpbGwgYmUgY3JlYXRlZAogICsgcmVzb3VyY2UgJnF1b3Q7Z29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwmcXVvdDsgJnF1b3Q7aHR0cC01MDAwJnF1b3Q7IHsKICAgICAgKyBjcmVhdGlvbl90aW1lc3RhbXAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVzdGluYXRpb25fcmFuZ2VzID0gKGtub3duIGFmdGVyIGFwcGx5KQogIH0KCiAgICAjIGdvb2dsZV9jb21wdXRlX2luc3RhbmNlLmRlZmF1bHQgd2lsbCBiZSBjcmVhdGVkCiAgKyByZXNvdXJjZSAmcXVvdDtnb29nbGVfY29tcHV0ZV9pbnN0YW5jZSZxdW90OyAmcXVvdDtkZWZhdWx0JnF1b3Q7IHsKICAgICAgKyBjYW5faXBfZm9yd2FyZCAgICAgICA9IGZhbHNlCiAgICAgICsgY3B1X3BsYXRmb3JtICAgICAgICAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVsZXRpb25fcHJvdGVjdGlvbiAgPSBmYWxzZQogICAgICArIGd1ZXN0X2FjY2VsZXJhdG9yICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGlkICAgICAgICAgICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGluc3RhbmNlX2lkICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVsX2ZpbmdlcnByaW50ICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVscyAgICAgICAgICAgICAgID0gewogICAgICAgICAgKyAmcXVvdDtjb250YWluZXItdm0mcXVvdDsgPSAmcXVvdDtjb3Mtc3RhYmxlLTY5LTEwODk1LTYyLTAmcXVvdDsKICAgICAgICB9CiAgICAgICsgbWFjaGluZV90eXBlICAgICAgICAgPSAmcXVvdDtnMS1zbWFsbCZxdW90OwogIH0KICBQbGFuOiAyIHRvIGFkZCwgMCB0byBjaGFuZ2UsIDAgdG8gZGVzdHJveS4KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgeW91IGNhbiBzZWUsIFRlcnJhZm9ybSBpcyBnb2luZyB0byBjcmVhdGUgbmV3IEdDUCByZXNvdXJjZXMgZm9yIHlvdSBiYXNlZCBvbiB0aGUgY29kZSBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bWFpbi50ZiZsdDsvY29kZSZndDsgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGFwcGx5Jmx0Oy9oMyZndDsKCiZsdDtwJmd0O05vdyB5b3XigJlyZSByZWFkeSB0byBjcmVhdGUgdGhlIG5ldyBpbmZyYXN0cnVjdHVyZSBhbmQgZGVwbG95IHRoZSBhcHBsaWNhdGlvbi4gUnVuIHRoaXMgY29tbWFuZCBpbiB0aGUgdGVybWluYWw6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt0ZXJyYWZvcm0gYXBwbHkKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGVycmFmb3JtIHdpbGwgcHJvbXB0IHlvdSB0byBjb25maXJtIHlvdXIgY29tbWFuZC4gVHlwZSB5ZXMgYW5kIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0RvIHlvdSB3YW50IHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucz8KICBUZXJyYWZvcm0gd2lsbCBwZXJmb3JtIHRoZSBhY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KICBPbmx5ICd5ZXMnIHdpbGwgYmUgYWNjZXB0ZWQgdG8gYXBwcm92ZS4KCiAgRW50ZXIgYSB2YWx1ZTogeWVzCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RlcnJhZm9ybSB3aWxsIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgYW5kIHlvdSB3aWxsIGhhdmUgYW4gYXBwbGljYXRpb24gdXAgYW5kIHJ1bm5pbmcgb24gR0NQIHNob3J0bHkgYWZ0ZXIgaXQgY29tcGxldGVzLiBQbGVhc2Ugbm90ZSB0aGF0IGl0IHdpbGwgdGFrZSAzLTUgbWludXRlcyBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbWUgb25saW5lIGFmdGVyIFRlcnJhZm9ybSBjb21wbGV0ZXMuIEl04oCZcyBub3QgYW4gaW5zdGFudCBwcm9jZXNzIGJlY2F1c2UgdGhlIGJhY2tlbmQgc3lzdGVtcyBhcmUgcHJvdmlzaW9uaW5nIGFuZCBicmluZ2luZyB0aGluZ3Mgb25saW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgZG9uZSwgeW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7bGFuZ3VhZ2Utc2hlbGwgaGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7T3V0cHV0czoKClB1YmxpY19JUF9BZGRyZXNzICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgMzQuNzQuNzUuMTcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1B1YmxpY19JUF9BZGRyZXNzJmx0Oy9jb2RlJmd0OyB2YWx1ZSBpcyB0aGUgSVAgQWRkcmVzcyB0aGF0IHlvdXIgYXBwIGlzIHJ1bm5pbmcgb24sIHNvIGlmIHlvdSBnbyB0byBhIGJyb3dzZXIgYW5kIHBsdWcgdGhhdCBudW1iZXIgaW4gcGx1cyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7OjUwMDAmbHQ7L2NvZGUmZ3Q7IHBvcnQgYWRkcmVzcyAoaXQgd291bGQgbG9vayBsaWtlIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7MzQuNzQuNzUuMTc6NTAwMCZsdDsvY29kZSZndDspIHlvdSB3aWxsIHNlZSB5b3VyIGFwcCBydW5uaW5nIGluIEdDUC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Tm93IHRoYXQgeW91IGhhdmUgcHJvb2YgdGhhdCB5b3VyIEdvb2dsZSBDb21wdXRlIGluc3RhbmNlIGFuZCB5b3VyIGFwcGxpY2F0aW9uIHdvcmssIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gZGVzdHJveSB0aGUgYXNzZXRzIHRoYXQgeW91IGNyZWF0ZWQgaW4gdGhpcyB0dXRvcmlhbC4gWW91IGNhbiBsZWF2ZSBpdCB1cCBhbmQgcnVubmluZywgYnV0IGJlIGF3YXJlIHRoYXQgdGhlcmUgaXMgYSBjb3N0IGFzc29jaWF0ZWQgd2l0aCBhbnkgYXNzZXRzIHJ1bm5pbmcgb24gdGhlIEdvb2dsZSBDbG91ZCBQbGF0Zm9ybSBhbmQgeW91IHdpbGwgYmUgbGlhYmxlIGZvciB0aG9zZSBjb3N0cy4gR29vZ2xlIGdpdmVzIGEgZ2VuZXJvdXMgJDMwMCBjcmVkaXQgZm9yIGl0cyBmcmVlIHRyaWFsIHNpZ24tdXAsIGJ1dCB5b3UgY291bGQgZWFzaWx5IGVhdCB0aHJvdWdoIHRoYXQgaWYgeW91IGxlYXZlIGFzc2V0cyBydW5uaW5nLiBJdOKAmXMgdXAgdG8geW91LCBidXQgcnVubmluZyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0ZXJyYWZvcm0gZGVzdHJveSZsdDsvY29kZSZndDsgd2lsbCB0ZXJtaW5hdGUgYW55IHJ1bm5pbmcgYXNzZXRzLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIEnigJlsbCBkZW1vbnN0cmF0ZSBob3cgdG8gcGVyZm9ybSBpbmZyYXN0cnVjdHVyZSBwcm92aXNpb25pbmcgdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtQdWx1bWkgU0RLJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9wcm9kdWN0LyNzZGsmcXVvdDsmZ3Q7UHVsdW1pIFNESyZsdDsvYSZndDsgaXMgYW4gb3BlbiBzb3VyY2UgZnJhbWV3b3JrIGZvciBkZWZpbmluZyBhbmQgZGVwbG95aW5nIGNsb3VkIGFwcHMgYW5kIElhQy4gUHVsdW1pIGVuYWJsZXMgZGV2ZWxvcGVycyB0byB3cml0ZSBjb2RlIGluIHRoZWlyIGZhdm9yaXRlIGxhbmd1YWdlIHN1Y2ggYXMgVHlwZVNjcmlwdCwgSmF2YVNjcmlwdCwgUHl0aG9uLCBhbmQgR28uIFRoaXMgZW5hYmxlcyBtb2Rlcm4gYXBwcm9hY2hlcyB0byBjbG91ZCBhcHBsaWNhdGlvbnMgYW5kIGluZnJhc3RydWN0dXJlIHdpdGhvdXQgbmVlZGluZyB0byBsZWFybiBhbm90aGVyIFlBTUwgb3IgRFNMIGRpYWxlY3QuIFRoaXMgdW5sb2NrcyBhYnN0cmFjdGlvbnMgYW5kIHJldXNlLCBhcyB3ZWxsIGFzIGFjY2VzcyB0byB5b3VyIGZhdm9yaXRlIElERXMsIHJlZmFjdG9yaW5nLCBhbmQgdGVzdGluZyB0b29scy4gTWFzdGVyIG9uZSB0b29sY2hhaW4gYW5kIHNldCBvZiBmcmFtZXdvcmtzIGFuZCBnbyB0byBhbnkgY2xvdWQgKEFXUywgQXp1cmUsIEdDUCwgb3IgS3ViZXJuZXRlcykgd2l0aCBlYXNlLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBQdWx1bWkmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUgZXhwZXJpZW5jZWQgYnVpbGRpbmcgaW5mcmFzdHJ1Y3R1cmUgdXNpbmcgVGVycmFmb3JtLCBub3cgeW914oCZbGwgbGVhcm4gaG93IHRvIHByb3Zpc2lvbiBhbmQgZGVwbG95IG5ldyBpbmZyYXN0cnVjdHVyZSB1c2luZyBQdWx1bWkuIFRoZSBQdWx1bWkgZXhhbXBsZSB3aWxsIGNyZWF0ZSB0aGUgc2FtZSBHQ1AgcmVzb3VyY2VzIHByZXZpb3VzbHkgdXNpbmcgUHVsdW1pIGNvZGUgYW5kIHRvb2xzLiBQdWx1bWkgZW5hYmxlcyB5b3UgdG8gZGVmaW5lIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgaW4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHdoaWNoIHByb3ZpZGVzIGxvdHMgb2YgZmxleGliaWxpdHkuIEluIHRoaXMgZXhhbXBsZSwgd2XigJlyZSB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vd3d3LnB5dGhvbi5vcmcvJnF1b3Q7Jmd0O1B5dGhvbiZsdDsvYSZndDsgYXMgb3VyIGxhbmd1YWdlLiBUaGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7X19tYWluLnB5X18mbHQ7L2NvZGUmZ3Q7IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC9wdWx1bWkvZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgaXMgd2hlcmUgd2VyZSBnb2luZyB0byBkZWZpbmUgb3VyIGluZnJhc3RydWN0dXJlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlIHN1cmUgdG8gaGF2ZSB5b3VyIFB1bHVtaSBBUEkgdG9rZW4gYXZhaWxhYmxlLiBZb3XigJlsbCBuZWVkIGl0IGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIFB1bHVtaSBleGFtcGxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7fi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGRpcmVjdG9yeS4gUnVuIHRoaXMgY29tbWFuZCB0byBjaGFuZ2UgaW50byB0aGUgUHVsdW1pIGV4YW1wbGUgZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2Qgfi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gzJmd0O0luc3RhbGxpbmcgZGVwZW5kaWVuY2llcyBmb3IgUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1NpbmNlIHdl4oCZcmUgZGVmaW5pbmcgb3VyIElhQyBzcGVjcyB1c2luZyBQeXRob24gd2XigJlsbCBuZWVkIHRvIGZpcnN0IGluc3RhbGwgdGhlIFB1bHVtaSBQeXRob24gU0RLIGRlcGVuZGVuY2llcy4gSW4gdGhlIHRlcm1pbmFsIHJ1biB0aGlzIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtwaXAgaW5zdGFsbCAtciAuLi9yZXF1aXJlbWVudHMudHh0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtQcmV2aWV3aW5nIHdpdGggUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1B1bHVtaSBoYXMgYSBkcnktcnVuIGNvbW1hbmQgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBwcmV2aWV3Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRpc3BsYXlzIGEgcHJldmlldyBvZiB0aGUgdXBkYXRlcyB0byBhbiBleGlzdGluZyBzdGFjayB3aG9zZSBzdGF0ZSBpcyByZXByZXNlbnRlZCBieSBhbiBleGlzdGluZyBzdGF0ZSBmaWxlLiBUaGUgbmV3IGRlc2lyZWQgc3RhdGUgaXMgY29tcHV0ZWQgYnkgcnVubmluZyBhIFB1bHVtaSBwcm9ncmFtLCBhbmQgZXh0cmFjdGluZyBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbnMgZnJvbSBpdHMgcmVzdWx0aW5nIG9iamVjdCBncmFwaC4gVGhlc2UgYWxsb2NhdGlvbnMgYXJlIHRoZW4gY29tcGFyZWQgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc3RhdGUgdG8gZGV0ZXJtaW5lIHdoYXQgb3BlcmF0aW9ucyBtdXN0IHRha2UgcGxhY2UgdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZCBzdGF0ZS4gTm8gY2hhbmdlcyB0byB0aGUgc3RhY2sgd2lsbCBhY3R1YWxseSB0YWtlIHBsYWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGlzIGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHByZXZpZXcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHJlc3VsdHMgcHJvbXB0aW5nIHlvdSBmb3IgdGhlIFB1bHVtaSBBUEkgdG9rZW4geW91IGNyZWF0ZWQgZWFybGllci4gUGFzdGUgdGhlIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLiBBZnRlciB5b3UgcGFzdGUgdGhlIHRva2VuIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O01hbmFnZSB5b3VyIFB1bHVtaSBzdGFja3MgYnkgbG9nZ2luZyBpbi4KUnVuIGBwdWx1bWkgbG9naW4gLS1oZWxwYCBmb3IgYWx0ZXJuYXRpdmUgbG9naW4gb3B0aW9ucy4KRW50ZXIgeW91ciBhY2Nlc3MgdG9rZW4gZnJvbSBodHRwczovL2FwcC5wdWx1bWkuY29tL2FjY291bnQvdG9rZW5zCiAgICBvciBoaXQgJmFtcDtsdDtFTlRFUiZhbXA7Z3Q7IHRvIGxvZyBpbiB1c2luZyB5b3VyIGJyb3dzZXIgICAgICAgICAgICAgICAgICAgOgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1doZW4gcGFzdGluZyB0aGUgQVBJIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLCBubyB2YWx1ZXMgd2lsbCBiZSBkaXNwbGF5ZWQuIEl0IHdpbGwgcmVtYWluIGludmlzaWJsZSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuJmx0Oy9pJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBtYXkgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGEgc3RhY2sgaW4gdGhlIHRlcm1pbmFsLiBJZiBzbywgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkZXYmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB0aGVuIGhpdCBlbnRlci4gWW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UHJldmlld2luZyB1cGRhdGUgKGRldik6CiAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICAgICBQbGFuCiArICAgcHVsdW1pOnB1bHVtaTpTdGFjayAgICAgIGNvbXB1dGUtZGV2ICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6TmV0d29yayAgIG5ldHdvcmsgICAgICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6SW5zdGFuY2UgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJTilIAgZ2NwOmNvbXB1dGU6RmlyZXdhbGwgIGZpcmV3YWxsICAgICAgICAgICAgICAgICAgICBjcmVhdGUKClJlc291cmNlczoKICAgICsgNSB0byBjcmVhdGUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUganVzdCBlbmFibGVkIGFjY2VzcyB0byB0aGUgUHVsdW1pIGJhY2tlbmQgY2xvdWQgd2hpY2gga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXRlIG9mIHlvdXIgaW5mcmFzdHJ1Y3R1cmVzLiBOb3cgeW914oCZcmUgcmVhZHkgdG8gcnVuIHNvbWUgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7UHVsdW1pIHVwJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1RvIGV4ZWN1dGUgdGhlIFB1bHVtaSBjb2RlLCB1c2UgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIHVwJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGNyZWF0ZXMgb3IgdXBkYXRlcyByZXNvdXJjZXMgaW4gYSBzdGFjay4gVGhlIG5ldyBkZXNpcmVkIGdvYWwgc3RhdGUgZm9yIHRoZSB0YXJnZXQgc3RhY2sgaXMgY29tcHV0ZWQgYnkgcnVubmluZyB0aGUgY3VycmVudCBQdWx1bWkgcHJvZ3JhbSBhbmQgb2JzZXJ2aW5nIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9ucyB0byBwcm9kdWNlIGEgcmVzb3VyY2UgZ3JhcGguIFRoaXMgZ29hbCBzdGF0ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIGV4aXN0aW5nIHN0YXRlIHRvIGRldGVybWluZSB3aGF0IGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQvb3IgZGVsZXRlIG9wZXJhdGlvbnMgbXVzdCB0YWtlIHBsYWNlIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgZ29hbCBzdGF0ZSBpbiB0aGUgbW9zdCBtaW5pbWFsbHkgZGlzcnVwdGl2ZSB3YXkuIEFmdGVyd2FyZCwgdGhpcyBjb21tYW5kIHJlY29yZHMgYSBmdWxsIHRyYW5zYWN0aW9uYWwgc25hcHNob3Qgb2YgdGhlIHN0YWNr4oCZcyBuZXcgc3RhdGUgc28gdGhhdCB0aGUgc3RhY2sgbWF5IGJlIHVwZGF0ZWQgaW5jcmVtZW50YWxseSBhZ2FpbiBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgdGVybWluYWwgcnVuOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHVwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1NlbGVjdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7eWVzJmx0Oy9jb2RlJmd0OyBvcHRpb24gYW5kIGhpdCBlbnRlci4gVGhlIFB1bHVtaSBhcHAgd2lsbCBleGVjdXRlLCBhbmQgc2hvcnRseSBhZnRlciB5b3XigJlsbCBoYXZlIGEgY29tcGxldGUgc2VydmVyIHJ1bm5pbmcgYW4gYXBwbGljYXRpb24gb24gR0NQLiBZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtVcGRhdGluZyAoZGV2KToKICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cwogKyAgIHB1bHVtaTpwdWx1bWk6U3RhY2sgICAgICBjb21wdXRlLWRldiAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUnOKUgCBnY3A6Y29tcHV0ZTpOZXR3b3JrICAgbmV0d29yayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGVkCiArICAg4pSc4pSAIGdjcDpjb21wdXRlOkZpcmV3YWxsICBmaXJld2FsbCAgICAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUlOKUgCBnY3A6Y29tcHV0ZTpJbnN0YW5jZSAgd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDEgIGNyZWF0ZWQKCk91dHB1dHM6CiAgICBleHRlcm5hbF9pcCAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICBpbnN0YW5jZV9tZXRhX2RhdGE6IHsKICAgICAgICBnY2UtY29udGFpbmVyLWRlY2xhcmF0aW9uOiAmcXVvdDtzcGVjOlxuICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDFcbiAgICAgIGltYWdlOiBhcml2M3JhL3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxOmxhdGVzdFxuICAgICAgc3RkaW46IGZhbHNlXG4gICAgICB0dHk6IGZhbHNlXG4gIHJlc3RhcnRQb2xpY3k6IEFsd2F5c1xuJnF1b3Q7CiAgICB9CiAgICBpbnN0YW5jZV9uYW1lICAgICA6ICZxdW90O3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxJnF1b3Q7CiAgICBpbnN0YW5jZV9uZXR3b3JrICA6IFsKICAgICAgICBbMF06IHsKICAgICAgICAgICAgYWNjZXNzQ29uZmlncyAgICA6IFsKICAgICAgICAgICAgICAgIFswXTogewogICAgICAgICAgICAgICAgICAgIG5hdElwICAgICAgICAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICAgICAgICAgICAgICAgICAgbmV0d29ya190aWVyICAgICAgIDogJnF1b3Q7UFJFTUlVTSZxdW90OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgOiAmcXVvdDtuaWMwJnF1b3Q7CiAgICAgICAgfQogICAgXQoKUmVzb3VyY2VzOgogICAgKyA1IGNyZWF0ZWQKCkR1cmF0aW9uOiA1OHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlc2UgcmVzdWx0cywgeW914oCZbGwgc2VlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXh0ZXJuYWxfaXAmbHQ7L2NvZGUmZ3Q7IGtleS4gSXTigJlzIHZhbHVlIGlzIHRoZSBJUCBBZGRyZXNzIHRvIHRoZSBwdWJsaWMgZmFjaW5nIGFwcGxpY2F0aW9uIGV4cG9zZWQgb24gcG9ydCA1MDAwLiBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIFRlcnJhZm9ybSBleGFtcGxlLCB5b3UgY2FuIGFjY2VzcyB0aGUgYXBwbGljYXRpb24gaW4gYSBicm93c2VyLiBSZW1lbWJlciB0byBhbGxvdyBmb3IgYSBmZXcgbWludXRlcyBzbyB0aGUgYmFja2VuZCBzeXN0ZW0gY2FuIGJyaW5nIGV2ZXJ5dGhpbmcgb25saW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQdWx1bWkgZGVzdHJveSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtQdWx1bWkgaGFzIGEgY29tbWFuZCB0byB0ZXJtaW5hdGUgYWxsIG9mIHRoZSBjbG91ZCByZXNvdXJjZXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBkZXN0cm95Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRlbGV0ZXMgYW4gZW50aXJlIGV4aXN0aW5nIHN0YWNrIGJ5IG5hbWUuIFRoZSBjdXJyZW50IHN0YXRlIGlzIGxvYWRlZCBmcm9tIHRoZSBhc3NvY2lhdGVkIHN0YXRlIGZpbGUgaW4gdGhlIHdvcmtzcGFjZS4gQWZ0ZXIgcnVubmluZyB0byBjb21wbGV0aW9uLCBhbGwgb2YgdGhpcyBzdGFja+KAmXMgcmVzb3VyY2VzIGFuZCBhc3NvY2lhdGVkIHN0YXRlIHdpbGwgYmUgZ29uZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtSdW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGluIHRoZSB0ZXJtaW5hbCBhbmQgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5ZXMmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB3aGVuIHByb21wdGVkIHRvICZsdDtzdHJvbmcmZ3Q7cGVybWFuZW50bHkmbHQ7L3N0cm9uZyZndDsgZGVzdHJveSB0aGUgR0NQIHJlc291cmNlcyBjcmVhdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O0NvbmdyYXR1bGF0aW9ucyEgWW914oCZdmUganVzdCBsZXZlbGVkIHVwIGFuZCBub3cgaGF2ZSBleHBlcmllbmNlIHByb3Zpc2lvbmluZyBhbmQgZGVwbG95aW5nIGFwcGxpY2F0aW9ucyB0byBHQ1AgdXNpbmcgdGhlIG1vZGVybiBJYUMgdG9vbHMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O1RlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4gVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2lsbCBoZWxwIHlvdSBleHBhbmQgeW91ciBrbm93bGVkZ2UgZnJvbSBoZXJlOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9jbGktaW5kZXguaHRtbCZxdW90OyZndDtUZXJyYWZvcm0gR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9kb2NzL2dldC1zdGFydGVkLyZxdW90OyZndDtQdWx1bWkgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS9vcmIvcHVsdW1pL3B1bHVtaSZxdW90OyZndDtQdWx1bWkgb3JiIGZvciBDaXJjbGVDSSZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyZxdW90OyZndDtEb2NrZXIgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm0vY29tbXVuaXR5L2Jsb2IvbWFzdGVyL3R1dG9yaWFscy9nZXR0aW5nLXN0YXJ0ZWQtb24tZ2NwLXdpdGgtdGVycmFmb3JtL2luZGV4Lm1kI2dldHRpbmctcHJvamVjdC1jcmVkZW50aWFscyZxdW90OyZndDtHb29nbGUgQ2xvdWQgUGxhdGZvcm0mbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogICAgICAKICAgICAgPGl0ZW0+CiAgICAgICAgPHRpdGxlPkEgbG9vayBhdCBDaXJjbGVDSeKAmXMgaW5kdXN0cnktbGVhZGluZyBzdXBwb3J0IGZvciB0cmFuc2l0aW9uLXJlbGF0ZWQgbWVkaWNhbCBsZWF2ZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hLWxvb2stYXQtY2lyY2xlY2ktcy1pbmR1c3RyeS1sZWFkaW5nLXN1cHBvcnQtZm9yLXRyYW5zaXRpb24tcmVsYXRlZC1tZWRpY2FsLWxlYXZlLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5XZWQsIDEzIE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2EtbG9vay1hdC1jaXJjbGVjaS1zLWluZHVzdHJ5LWxlYWRpbmctc3VwcG9ydC1mb3ItdHJhbnNpdGlvbi1yZWxhdGVkLW1lZGljYWwtbGVhdmUvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RWxpemFiZXRoIEJlbGw8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7T25lIG9mIHRoZSBncmVhdCB0aGluZ3MgYWJvdXQgd29ya2luZyBhdCBDaXJjbGVDSSBpcyB0aGF0IHRoZSBjb21wYW55IGJlbGlldmVzIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGJlIGFibGUgdG8gYmUgdGhlaXIgd2hvbGUgc2VsZiBhdCB3b3JrLiBJbmNsdXNpdml0eSwgZGVtb25zdHJhdGluZyB0cnVzdCBhbmQgcmVzcGVjdCwgYW5kIG1ha2luZyBzdXJlIGV2ZXJ5b25lIGhhcyB0aGUgdG9vbHMgYW5kIHN1cHBvcnQgdGhleSBuZWVkIGFyZSBhbGwgYnVyaWVkIGRlZXAgaW4gdGhlIGN1bHR1cmUgaGVyZSDigJMgaXQgaXMgYSBiaWcgcGFydCBvZiBob3cgd2UgZGVsaXZlciB0aGUgYmVzdCB2YWx1ZSBmb3Igb3VyIGN1c3RvbWVycy4gV2l0aCB0aGF0IGluIG1pbmQsIHRoZSBjb21wYW55IHJlY2VudGx5IHJvbGxlZCBvdXQgYSBuZXcgaGVhbHRoY2FyZSBwb2xpY3kgZm9yIG91ciB0cmFuc2dlbmRlciBjby13b3JrZXJzLiBJbiBhIGZpcnN0IGZvciBjb21wYW5pZXMgaW4gdGhlIENJL0NEIHNwYWNlLCBDaXJjbGVDSSBub3cgb2ZmZXJzIGZ1bGx5LWNvbXBlbnNhdGVkIHBhaWQgbGVhdmUgZm9yIGVtcGxveWVlcyByZWNvdmVyaW5nIGZyb20gdHJhbnNpdGlvbi1yZWxhdGVkIG1lZGljYWwgcHJvY2VkdXJlcy4gVGhpcyBwb2xpY3kgaXMgYW4gZXh0cmVtZWx5IGltcG9ydGFudCBhZGRpdGlvbiB0byBDaXJjbGVDSeKAmXMgYmVuZWZpdHMgcGFja2FnZSBhbmQgYW5vdGhlciBleGFtcGxlIG9mIHRoZSBjb21wYW554oCZcyBkZWRpY2F0aW9uIHRvIHRoZSB3ZWxsLWJlaW5nIG9mIGFsbCBlbXBsb3llZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VHJhbnNpdGlvbiBpcyBhbiBpbW1lbnNlbHkgc3RyZXNzZnVsIHByb2Nlc3MsIGFuZCB0aGUgbWVkaWNhbCBwcm9jZWR1cmVzIHJlcXVpcmVkIHRvIHRyZWF0IHRoZSBkeXNwaG9yaWEgZXhwZXJpZW5jZWQgYnkgc29tZSB0cmFuc2dlbmRlciBwZW9wbGUgb2Z0ZW4gbmVlZCBhIHZlcnkgY2FyZWZ1bCBhcHByb2FjaCB0byByZWNvdmVyeS4mbHQ7L3AmZ3Q7CgombHQ7YmxvY2txdW90ZSZndDsKICAmbHQ7cCZndDtUaGUgZ29hbCBvZiB0aGUgcG9saWN5IGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRyYW5zZ2VuZGVyIGVtcGxveWVlcyBmZWVsIHN1cHBvcnRlZCBkdXJpbmcgdGhpcyBkaWZmaWN1bHQgdGltZSwgYW5kIGJ5IGVuc3VyaW5nIHRoYXQgdHJhbnNnZW5kZXIgZW1wbG95ZWVzIGhhdmUgYWNjZXNzIHRvIGFwcHJvcHJpYXRlbHkgY29tcGVuc2F0ZWQgbWVkaWNhbCBsZWF2ZSwgdGhlIGNvbXBhbnkgY2FuIHJlbW92ZSBtYWpvciBzb3VyY2VzIG9mIHVubmVjZXNzYXJ5IHN0cmVzcy4gVGhpcyB3YXksIHdlIGNhbiByZXR1cm4gdG8gd29yayBoYXBwaWVyLCBoZWFsdGhpZXIsIGFuZCBiZXR0ZXIgYWJsZSB0byBkbyBvdXIgYmVzdCBmb3Igb3VyIGN1c3RvbWVycyBhbmQgb3VyIGNvbGxlYWd1ZXMuJmx0Oy9wJmd0OwombHQ7L2Jsb2NrcXVvdGUmZ3Q7CgombHQ7aDImZ3Q7SG93IHRoaXMgcG9saWN5IGNhbWUgdG9nZXRoZXImbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgcHVzaCBmb3IgdGhlIGZvcm1hbGl6YXRpb24gb2YgdGhlc2UgYmVuZWZpdHMgZ3JldyBvdXQgb2YgdGhlIGVmZm9ydHMgb2YgbWFueSBpbmRpdmlkdWFscy4gVG9nZXRoZXIsIHRoZSB0cmFucyBlbXBsb3llZXMgYXQgQ2lyY2xlQ0kgZGlzY3Vzc2VkIHRoZSBpc3N1ZSBhbW9uZ3N0IG91cnNlbHZlcywgb3VyIG1hbmFnZXJzLCBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIHdobyBzdXBwb3J0ZWQgdXMgaW4gYnJpbmdpbmcgdGhlIHRvcGljIHRvIG91ciBleGVjdXRpdmUgdGVhbS4gQnkgYnVpbGRpbmcgY29uc2Vuc3VzLCBib3RoIHdpdGhpbiB0aGUgdHJhbnMgcG9wdWxhdGlvbiBhdCB0aGUgY29tcGFueSBhbmQgb3VyIGNpc2dlbmRlciBjb2xsZWFndWVzLCB3ZSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IGFkdm9jYXRlIGZvciBhIGZvcm1hbGl6YXRpb24gb2YsIGFuZCBhIGNvbW1pdG1lbnQgdG8sIHRoaXMgaW5kdXN0cnktbGVhZGluZyB0cmFucyBoZWFsdGhjYXJlIGJlbmVmaXQuIFF1ZWVyU3BoZXJlLCB0aGUgRW1wbG95ZWUgUmVzb3VyY2UgR3JvdXAgaGVyZSBhdCBDaXJjbGVDSSBmb3IgTEdCVFFJQSsgZW1wbG95ZWVzLCBoZWxwZWQgY29vcmRpbmF0ZSB0aGUgZWZmb3J0IHRvIGFkdm9jYXRlLCBhbmQgdGhlIHJlc3VsdCB3YXMgYSBwb2xpY3kgdGhhdCBoZWxwcyBlbnN1cmUgdHJhbnMgZW1wbG95ZWVzIGdldCB0aGUgc3VwcG9ydCB3ZSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uZSBvZiB0aGUgYmVzdCB0aGluZ3MgZm9yIG1lIGFib3V0IHdvcmtpbmcgYXQgQ2lyY2xlQ0kgaXMgaG93IGVtcG93ZXJlZCBJIGZlZWwgdG8gY2FsbCBhdHRlbnRpb24gdG8gaXNzdWVzIG9yIHByYWN0aWNlcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCBhbmQgYnJpbmcgcGVvcGxlIHRvZ2V0aGVyIHRvIHdvcmsgb24gdGhlbSwgdG8gdGhlIGJlbmVmaXQgb2YgYm90aCB0aGUgY29tcGFueSBhcyBhIHdob2xlIGFuZCB1bmRlcnJlcHJlc2VudGVkIG9yIG1hcmdpbmFsaXplZCBlbXBsb3llZXMuIFRyYW5zIHBlb3BsZSBmYWNlIHN5c3RlbWljIGJpYXM6IHRoZXJlIGFyZSBubyBmZWRlcmFsLWxldmVsIHByb3RlY3Rpb25zIGZyb20gZGlzY3JpbWluYXRpb24gb24gdGhlIGJhc2lzIG9mIGdlbmRlciBpZGVudGl0eSBpbiB0aGUgVW5pdGVkIFN0YXRlcywgYW5kIG9mIHRoZSB0cmFucyBwb3B1bGF0aW9uIHN1cnZleWVkIGJ5IHRoZSBOYXRpb25hbCBDZW50ZXIgZm9yIFRyYW5zZ2VuZGVyIEVxdWFsaXR5IGluIDIwMTUsIDgwJSBvZiB0aG9zZSB3aG8gd2VyZSBlbXBsb3llZCByZXBvcnRlZCBleHBlcmllbmNpbmcgaGFyYXNzbWVudCwgbWlzdHJlYXRtZW50LCBvciBoYWQgdG8gdGFrZSBzdGVwcyB0byBhdm9pZCB0aG9zZSBob3N0aWxlIHdvcmtwbGFjZSBiZWhhdmlvcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SSBrbm93IGZpcnN0aGFuZCBob3cgZGlmZmljdWx0IGJlaW5nIG91dCBhdCB3b3JrIGNhbiBiZS4gQXQgYSBwcmV2aW91cyBlbXBsb3llciBlYXJseSBpbiBteSB0cmFuc2l0aW9uLCBJIGZlbHQgYWxpZW5hdGVkIGFuZCBkaXNsaWtlZCBieSBjb2xsZWFndWVzIHdobyBoYWQgcHJldmlvdXNseSBiZWVuIGZyaWVuZGx5IGJlZm9yZSB0aGV5IGtuZXcgSSB3YXMgdHJhbnNnZW5kZXIuIEkgaGF2ZSBoYWQgdG8gbWluaW1pemUgdGhlIGZhY3QgdGhhdCBJ4oCZbSB0cmFucywgdG9sZXJhdGUgYWN0aXZlIGhvc3RpbGl0eSBmcm9tIGNvd29ya2Vycywgb3IgcHJldGVuZCB0aGF0IEkgd2FzIGNpc2dlbmRlciwgaW4gb3JkZXIgdG8gcHJvdGVjdCBteSBqb2IuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgQ2lyY2xlQ0ksIEkgaGF2ZSBmZWx0IHN1cHBvcnRlZCwgcmVzcGVjdGVkLCBhbmQgYWJsZSB0byBjb25maWRlbnRseSBiZSBteXNlbGYuIEkgZmVlbCBleGNlcHRpb25hbGx5IGZvcnR1bmF0ZSB0byBoYXZlIGEgd29uZGVyZnVsIGdyb3VwIG9mIHRyYW5zZ2VuZGVyIGNvbGxlYWd1ZXMgYW5kIGZyaWVuZHMgKHdlIG1ha2UgdXAgNyUgb2YgdGhlIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0ksIGFuZCAzJSBvZiB0aGUgb3JnIGluIHRvdGFsLCBjb21wYXJlZCB0byAwLjYlIG9mIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24pLCBhbmQgdG8gd29yayBzb21ld2hlcmUgd2hlcmUgb3VyIHZpZXdzIGFuZCBleHBlcmllbmNlcyBhcmUgdmFsdWVkIGF0IHRoZSBoaWdoZXN0IGxldmVscyBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0lmIHlvdSBsaWtlIHRoZSBzb3VuZCBvZiB3b3JraW5nIHNvbWV3aGVyZSB3aXRoIGEgcmVtb3RlLWZpcnN0IGN1bHR1cmUgYW5kIGNvbGxhYm9yYXRpbmcgb24gaW50ZXJlc3RpbmcgcHJvYmxlbXMgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIHRyYW5zIGZvbHggYW5kIGFsbGllcywgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9jYXJlZXJzLyZxdW90OyZndDtjaGVjayBvdXQgb3VyIG9wZW5pbmdzIGhlcmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIEdhdHNieSBhcHBzIHRvIEhlcm9rdTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtZ2F0c2J5LWFwcHMtdG8taGVyb2t1LzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDExIE1heSAyMDIwIDA5OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1nYXRzYnktYXBwcy10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9qYW1zdGFjay5vcmcvJnF1b3Q7Jmd0O0pBTVN0YWNrJmx0Oy9hJmd0OyBpcyBxdWlja2x5IGJlY29taW5nIGEgYmlnIGRlYWwgaW4gdGhlIHdvcmxkIG9mIHdlYiBkZXZlbG9wbWVudC4gSkFNU3RhY2ssIHdoaWNoIHN0YW5kcyBmb3IgSmF2YXNjcmlwdCwgQVBJcywgYW5kIEhUTUwgbWFya3VwLCBpcyBhIG1vZGVybiBhcmNoaXRlY3R1cmUgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMgYW5kIG9uZSBvZiBpdHMgbWFqb3IgZmVhdHVyZXMgaXMgdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBhIGRhdGFiYXNlIGFuZCBhIHdlYiBzZXJ2ZXIgaXMgb3B0aW9uYWwuIFRoZSBKQU1TdGFjayBhcmNoaXRlY3R1cmUgaXMgYWltZWQgYXQgZGVjb3VwbGluZyB0aGUgZnJvbnRlbmQgYW5kIHRoZSBiYWNrZW5kIGJ5IGdlbmVyYXRpbmcgYSBmcm9udGVuZCBtYWRlIG9mIEhUTUwsIENTUywgYW5kIEphdmFzY3JpcHQgYW5kIGEgYmFja2VuZCB0aGF0IGlzIHNpbXBseSBhIGNvbnRlbnQgQVBJIHJldHVybmluZyBKU09OIG9yIFhNTC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmUgb2YgdGhlIGxlYWRpbmcgSkFNU3RhY2sgcGxhdGZvcm1zIHRvZGF5IGlzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnLyZxdW90OyZndDtHYXRzYnkuanMmbHQ7L2EmZ3Q7LiBHYXRzYnkuanMgaXMgYSBmcmVlIGFuZCBvcGVuLXNvdXJjZSBmcmFtZXdvcmsgYmFzZWQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3JlYWN0anMub3JnLyZxdW90OyZndDtSZWFjdC5qcyZsdDsvYSZndDsgdGhhdCBoZWxwcyBkZXZlbG9wZXJzIGJ1aWxkIGhpZ2gtc3BlZWQgd2ViIGFwcGxpY2F0aW9ucy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHR1dG9yaWFsLCB3ZSB3aWxsIGJlIGRlbW9uc3RyYXRpbmcgaG93IHRvIGRlcGxveSBhIEdhdHNieS5qcyBzaXRlIHRvIHRoZSBwb3B1bGFyIEhlcm9rdSBwbGF0Zm9ybSBieSBidWlsZGluZyBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmUgZm9yIGl0cyBkZXBsb3ltZW50IHVzaW5nIENpcmNsZUNJLiZsdDsvcCZndDsKCiZsdDtoMiZndDtQcmVyZXF1aXNpdGVzJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIG9yZGVyIHRvIGZvbGxvdyBhbG9uZyB3aXRoIHRoaXMgcG9zdCwgeW91IHdpbGwgbmVlZCBhIGZldyB0aGluZ3MgaW4gcGxhY2U6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7ICZhbXA7Z3Q7PSAxMC4xNiBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZSAtdiZsdDsvY29kZSZndDsgb24geW91ciB0ZXJtaW5hbCB0byBwcmludCBvdXQgeW91ciB2ZXJzaW9uIG9mIE5vZGVKUyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7R2l0Jmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2l0Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsLiBUaGlzIHNob3VsZCBwcmludCBvdXQgYXZhaWxhYmxlIGdpdCBjb21tYW5kcykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuaGVyb2t1LmNvbS8mcXVvdDsmZ3Q7SGVyb2t1Jmx0Oy9hJmd0OyBhY2NvdW50Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O0dpdEh1YiZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7V2l0aCB0aGVzZSwgeW91IGFyZSByZWFkeSB0byBmb2xsb3cgYWxvbmcuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NyZWF0aW5nIGEgR2F0c2J5LmpzIHByb2plY3QmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7VG8gYmVnaW4sIHdlIG5lZWQgdG8gY3JlYXRlIG91ciBHYXRzYnkuanMgcHJvamVjdC4gSW4gYW4gYXBwcm9wcmlhdGUgbG9jYXRpb24gd2l0aGluIHlvdXIgc3lzdGVtLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGdhdHNieSBuZXcgZ2F0c2J5LWhlcm9rdS1kZXBsb3kKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBwYXJ0IG9mIHRoaXMgY29tbWFuZCBpcyB0aGUgZm9sZGVyIG5hbWUgZm9yIG15IHByb2plY3QgdG8gYmUgc2NhZmZvbGRlZCBpbi4gWW91IGNhbiB1c2UgYW55IHByZWZlcnJlZCBuYW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCB3aWxsIGltbWVkaWF0ZWx5IGJlZ2luIHNjYWZmb2xkaW5nIGEgbmV3IEdhdHNieS5qcyBwcm9qZWN0LiBZb3UgbWlnaHQgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGVpdGhlciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5YXJuJmx0Oy9jb2RlJmd0OyBvciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7IGFzIHlvdXIgcGFja2FnZSBtYW5hZ2VyLCBmb3IgdGhpcyB0dXRvcmlhbCwgZ28gd2l0aCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNjYWZmb2xkaW5nIHByb2Nlc3MgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIGdhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OykgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gYm9vdCB1cCBhIHNlcnZlciB0byBzZXJ2ZSB0aGUgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBydW4gZGV2ZWxvcAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgc2VydmUgdGhlIGFwcGxpY2F0aW9uIGF0IHRoZSBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8mbHQ7L2NvZGUmZ3Q7IGFuZCBkaXNwbGF5IHRoZSBwYWdlIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MS5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIGEgZnVuY3Rpb25hbCBHYXRzYnkuanMgc2l0ZSB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7U2V0dGluZyB1cCBhIEhlcm9rdSBBcHAgZm9yIEdhdHNieSZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBzZXQgdXAgYSBIZXJva3UgYXBwIGZvciBvdXIgR2F0c2J5IGFwcGxpY2F0aW9uLCB3ZSBuZWVkIHRvIGxvZyBpbnRvIEhlcm9rdSBhbmQgY3JlYXRlIGEgbmV3IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5Mi5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdlIG5lZWQgdG8gZ2V0IHRoZSBuYW1lIG9mIG91ciBhcHBsaWNhdGlvbiAodGhpcyB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBmb3IgdGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgYWJvdmUpIGFuZCB0aGUgQVBJIGtleSBmb3Igb3VyIEhlcm9rdSBhY2NvdW50LiBUaGUgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIEhlcm9rdSAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXZSB3aWxsIG5lZWQgdGhlc2UgdHdvIHZhbHVlcyAodGhlIGFwcCBuYW1lIGFuZCBBUEkga2V5KSBsYXRlciBvbiB0byBjcmVhdGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9uIG91ciBDaXJjbGVDSSBwcm9qZWN0IGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiBvdXIgSGVyb2t1IGFjY291bnQgaXMgdG8gaW5zdGFsbCBzb21lIG5lY2Vzc2FyeSBidWlsZHBhY2tzLiBCdWlsZHBhY2tzIGFyZSBzY3JpcHRzIHRoYXQgcnVuIHdoZW4geW91ciBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZC4gV2Ugd2lsbCBuZWVkIHR3byBidWlsZCBwYWNrcyBmb3IgdGhpcyBleGVyY2lzZTombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0O2hlcm9rdS9ub2RlanM6IFJlcXVpcmVkIGZvciBhbGwgTm9kZS5qcyBhcHBsaWNhdGlvbnMmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtoZXJva3UvaGVyb2t1LWJ1aWxkcGFjay1zdGF0aWM6IFRoZSBIZXJva3UgQnVpbGRwYWNrIFN0YXRpYyBwYWNrYWdlIChiZWNhdXNlIEdhdHNieS5qc+KAmXMgYnVpbGQgaXMgbWFkZSB1cCBvZiBzdGF0aWMgZmlsZXMsIHRoaXMgd2lsbCBoZWxwIHVzIHNlcnZlIHRoZSBzdGF0aWMgZmlsZXMgb24gdGhlIEhlcm9rdSBwbGF0Zm9ybSkmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7R28gdG8geW91ciBIZXJva3UgYXBwbGljYXRpb27igJlzICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgcGFnZSBhbmQgc2Nyb2xsIGRvd24gdG8gJmx0O3N0cm9uZyZndDtCdWlsZHBhY2tzJmx0Oy9zdHJvbmcmZ3Q7ICh5b3UgbWlnaHQgYWxyZWFkeSBzZWUgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgYnVpbGRwYWNrIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQpLiBDbGljayAmbHQ7c3Ryb25nJmd0O0FkZCBidWlsZHBhY2smbHQ7L3N0cm9uZyZndDsgYW5kIHlvdSB3aWxsIHNlZSBhIGRpYWxvZyBwb3AgdXAgc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnkzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rm9yIGVhY2ggYnVpbGRwYWNrICgmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3Uvbm9kZWpzJmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L2hlcm9rdS1idWlsZHBhY2stc3RhdGljJmx0Oy9jb2RlJmd0OykgZW50ZXIgdGhlIGlkZW50aWZpZXIgaW50byB0aGUgdGV4dCBmaWVsZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTYXZlIENoYW5nZXMmbHQ7L3N0cm9uZyZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtOb3RlOiZsdDsvc3Ryb25nJmd0OyAmbHQ7aSZndDtJZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCwgb25seSBhZGQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2hlcm9rdS9oZXJva3UtYnVpbGRwYWNrLXN0YXRpYyZsdDsvY29kZSZndDsgYnVpbGQgcGFjay4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgZG9pbmcgdGhpcyBmb3IgYm90aCBidWlsZHBhY2tzLCB5b3Ugd2lsbCBzZWUgdGhlIHR3byBidWlsZCBwYWNrcyBub3cgbGlzdGVkIGluICZsdDtzdHJvbmcmZ3Q7QnVpbGRwYWNrcyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGF0IGNvbXBsZXRlcyB0aGUgc2V0IHVwIHJlcXVpcmVkIGZvciBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1NldHRpbmcgdXAgdGhlIEdhdHNieS5qcyBwcm9qZWN0IG9uIENpcmNsZUNJJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBuZXh0IHRhc2sgaXMgdG8gZ2V0IG91ciBHYXRzYnkuanMgcHJvamVjdCBzZXQgdXAgb24gQ2lyY2xlQ0kuIFdlIG5lZWQgdG8gcHVzaCBvdXIgY29kZSB0byBhIEdpdEh1YiByZXBvc2l0b3J5IG9uIHRoZSBhY2NvdW50IHlvdSBoYXZlIGxpbmtlZCB0byB5b3VyIENpcmNsZUNJIGFjY291bnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgZ28gdG8gdGhlICZsdDtzdHJvbmcmZ3Q7QWRkIFByb2plY3RzJmx0Oy9zdHJvbmcmZ3Q7IHBhZ2UgdG8gYWRkIHRoZSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk0LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0OyB0byBiZWdpbiBzZXR0aW5nIHVwIHRoZSBwcm9qZWN0LiBUaGlzIHdpbGwgbG9hZCB0aGUgbmV4dCBzY3JlZW4uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk1LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhlIHNldHVwIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsuIEJlZm9yZSB0aGUgYnVpbGQgc3RhcnRzLCB5b3Ugd2lsbCBnZXQgYSBwcm9tcHQgdG8gZWl0aGVyIGRvd25sb2FkIGFuZCB1c2UgdGhlIHByb3ZpZGVkIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgaGF2ZSBpdCBhZGRlZCBvbiBhIHNlcGFyYXRlIGJyYW5jaCBvciBzZXQgb25lIHVwIG1hbnVhbGx5LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk2LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U2VsZWN0ICZsdDtzdHJvbmcmZ3Q7QWRkIE1hbnVhbGx5Jmx0Oy9zdHJvbmcmZ3Q7IHRvIHByb2NlZWQuIFRoaXMgd2lsbCBwcm9tcHQgYW5vdGhlciBkaWFsb2cgdGhhdCBjaGVja3MgdG8gY29uZmlybSB0aGF0IHlvdSBoYXZlIGEgY29uZmlndXJhdGlvbiBmaWxlIHNldCB1cCB0byBiZWdpbiBidWlsZGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTcucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGNvbXBsZXRlIHRoZSBzZXR1cC4gVGhlIGJ1aWxkIHdpbGwgc3VyZWx5IGZhaWwgYmVjYXVzZSB3ZSBoYXZlIG5vdCBzZXQgdXAgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB5ZXQsIHRoaXMgd2Ugd2lsbCBkbyBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiB0aGUgQ2lyY2xlQ0kgY29uc29sZSBpcyB0byBzZXQgdXAgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZW52LXZhcnMvJnF1b3Q7Jmd0O2Vudmlyb25tZW50IHZhcmlhYmxlcyZsdDsvYSZndDsgZm9yIHRoZSBwcm9qZWN0IHdlIGp1c3QgYWRkZWQuIFRoaXMgd2lsbCBlbmFibGUgaXQgdG8gaGF2ZSBhdXRoZW50aWNhdGVkIGFjY2VzcyB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIGZvciBkZXBsb3ltZW50cy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHbyB0byB5b3VyIHByb2plY3TigJlzIHNldHRpbmdzIGJ5IGNsaWNraW5nICZsdDtzdHJvbmcmZ3Q7UHJvamVjdCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgJmx0O3N0cm9uZyZndDtQaXBlbGluZXMmbHQ7L3N0cm9uZyZndDsgcGFnZSAobWFrZSBzdXJlIHlvdXIgcHJvamVjdCBpcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2plY3QpLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5OC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBuYXZpZ2F0ZSB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBwYWdlLiBPbiB0aGlzIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7RW52aXJvbm1lbnQgVmFyaWFibGVzJmx0Oy9zdHJvbmcmZ3Q7IG9uIHRoZSBzaWRlIG1lbnUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk5LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFnZSwgY2xpY2sgJmx0O3N0cm9uZyZndDtBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUgYnV0dG9uJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTAucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZGQgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Jmx0Oy9wJmd0OwombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDs6IFRoaXMgaXMgdGhlIG5hbWUgb2YgeW91ciBIZXJva3UgYXBwbGljYXRpb24gKGluIHRoaXMgY2FzZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnYXRzYnktaGVyb2t1LWRlcGxveSZsdDsvY29kZSZndDspJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7SEVST0tVX0FQSV9LRVkmbHQ7L2NvZGUmZ3Q7OiBZb3VyIEhlcm9rdSBhY2NvdW50IEFQSSBrZXkgZm91bmQgdW5kZXIgdGhlICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCZsdDsvc3Ryb25nJmd0OyB0YWIgb2YgeW91ciBIZXJva3UgYWNjb3VudCBpbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50IFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O09uY2UgYWRkZWQsIHlvdSB3aWxsIGhhdmUgZXZlcnl0aGluZyBzZXQgdXAgb24geW91ciBDaXJjbGVDSSBjb25zb2xlIGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRoZSBHYXRic3kuanMgc2l0ZSB1c2luZyBvcmJzJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy8mcXVvdDsmZ3Q7T3JicyZsdDsvYSZndDsgYXJlIHJldXNhYmxlIHBhY2thZ2VzIG9mIFlBTUwgY29uZmlndXJhdGlvbiB0aGF0IGNvbmRlbnNlIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoZXkgZW5hYmxlIGRldmVsb3BlcnMgdG8gZWFzaWx5IHVzZSBwb3dlcmZ1bCBwaXBlbGluZSBmdW5jdGlvbmFsaXRpZXMgd2l0aCBhbGwgdGhlIGJvaWxlcnBsYXRlIGFic3RyYWN0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBleGVyY2lzZSwgd2Ugd2lsbCBiZSB1c2luZyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7b3JiIGZvciBIZXJva3UmbHQ7L2EmZ3Q7IHRvIGNvbmZpZ3VyZSBvdXIgcGlwZWxpbmUgdG8gZGVwbG95IG91ciBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0IGJlZm9yZSB0aGF0LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGZpbGUgdG8gaW5zdHJ1Y3Qgb3VyIEhlcm9rdSBCdWlsZHBhY2sgU3RhdGljIHBhY2thZ2Ugb24gaG93IHRvIGRlcGxveSBhbmQgc2VydmUgb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgbmV3IGZpbGUgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3RhdGljLmpzb24mbHQ7L2NvZGUmZ3Q7IGFuZCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGUgaW50byBpdDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3sKICAmcXVvdDtyb290JnF1b3Q7OiAmcXVvdDtwdWJsaWMvJnF1b3Q7LAogICZxdW90O2hlYWRlcnMmcXVvdDs6IHsKICAgICZxdW90Oy8qKiZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJnF1b3Q7CiAgICB9LAogICAgJnF1b3Q7LyoqLmNzcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy8qKi5qcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy9zdGF0aWMvKiomcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0sCiAgICAmcXVvdDsvaWNvbnMvKi5wbmcmcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0KICB9LAogICZxdW90O2h0dHBzX29ubHkmcXVvdDs6IHRydWUsCiAgJnF1b3Q7ZXJyb3JfcGFnZSZxdW90OzogJnF1b3Q7NDA0Lmh0bWwmcXVvdDsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgbW9zdCBpbXBvcnRhbnQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaGVyZSBpcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkuIFdoZW4gR2F0c2J5LmpzIHJ1bnMgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2J1aWxkJmx0Oy9jb2RlJmd0OyBzY3JpcHQgKHRoaXMgaXMgYWxzbyB0aGUgc2NyaXB0IHVzZWQgYnkgSGVyb2t1IHRvIHJ1biB0aGUgYnVpbGQgYmVmb3JlIGRlcGxveW1lbnQpLCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1YmxpYyZsdDsvY29kZSZndDsgZm9sZGVyIGlzIGdlbmVyYXRlZCBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBjb250YWluaW5nIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb2R1Y3Rpb24gdmVyc2lvbiBpcyB3aGF0IHRoZSBob3N0IHNlcnZlcyB0byB1c2Vycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaHVzLCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkgaXMgdXNlZCB0byBwb2ludCB0byB0aGlzIGZvbGRlciBzbyB0aGF0IHRoZSBob3N0IHNlcnZlcyB0aGUgYXBwcm9wcmlhdGUgY29kZS4gT3RoZXIgcGFyYW1ldGVycyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gYXJlIHNpbXBseSBiZXN0LXByYWN0aWNlIGNvbmZpZ3VyYXRpb25zIGZvciBHYXRzYnkuanMgc2l0ZXMuIEZvciBleGFtcGxlLCBjYWNoaW5nIGd1aWRlbGluZXMgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvY2FjaGluZy8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7R29vZCEgTm93IHdlIGNhbiB3cml0ZSBvdXIgZGVwbG95bWVudCBzY3JpcHQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgdGhlIHJvb3Qgb2YgeW91ciBHYXRzYnkuanMgcHJvamVjdCwgY3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgYW5kIGEgZmlsZSB3aXRoaW4gaXQgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0Oy4gSW5zaWRlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGU6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt2ZXJzaW9uOiAyLjEKb3JiczoKICBoZXJva3U6IGNpcmNsZWNpL2hlcm9rdUAwLjAuMTAKd29ya2Zsb3dzOgogIGhlcm9rdV9kZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGhlcm9rdS9kZXBsb3ktdmlhLWdpdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGF04oCZcyBpdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgY29uZmlndXJhdGlvbiBhYm92ZSwgd2UgcHVsbCBpbiB0aGUgSGVyb2t1IG9yYiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaXJjbGVjaS9oZXJva3VAMC4wLjEwJmx0Oy9jb2RlJmd0OyB3aGljaCBhdXRvbWF0aWNhbGx5IGdpdmVzIHVzIGFjY2VzcyB0byBhIHBvd2VyZnVsIHNldCBvZiBIZXJva3Ugam9icyBhbmQgY29tbWFuZHMuIE9uZSBvZiB0aG9zZSBqb2JzIGlzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3UvZGVwbG95LXZpYS1naXQmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGRlcGxveXMgeW91ciBhcHBsaWNhdGlvbiBzdHJhaWdodCBmcm9tIHlvdXIgR2l0SHViIHJlcG8gdG8geW91ciBIZXJva3UgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIGpvYiBhbHJlYWR5IHRha2VzIGNhcmUgb2YgaW5zdGFsbGluZyB0aGUgSGVyb2t1IENMSSwgaW5zdGFsbGluZyBwcm9qZWN0IGRlcGVuZGVuY2llcywgcnVubmluZyB0aGUgYnVpbGQgc2NyaXB0LCBhbmQgZGVwbG95aW5nIHRoZSBhcHBsaWNhdGlvbi4gSXQgYWxzbyBwaWNrcyB1cCBvdXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGggZGVwbG95bWVudCB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgdGhlIG1vbWVudCBvZiB0cnV0aCAoZHJ1bSByb2xsKS4gTGV04oCZcyBjb21taXQgYWxsIHRoZSBjaGFuZ2VzIHdlIGhhdmUgbWFkZSB0byBvdXIgR2F0c2J5LmpzIHByb2plY3QgYW5kIHB1c2ggdG8gb3VyIHJlcG8gdG8gdHJpZ2dlciB0aGUgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTEucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBzZWUgdGhlIGJlaGluZC10aGUtc2NlbmVzIHpjdGlvbiBvZiB0aGUgZGVwbG95bWVudCwgeW91IGNhbiBjbGljayBpbnRvIHRoZSBidWlsZC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTIucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgZm9yIHRoZSBmaW5hbCBjb25maXJtYXRpb24gdGhhdCB0aGUgZGVwbG95bWVudCBvZiBvdXIgR2F0c2J5LmpzIHNpdGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bCwgdmlzaXQgdGhlIGRlZmF1bHQgSGVyb2t1IGFkZHJlc3MgZm9yIHRoZSBzaXRlIGF0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vW0FQUF9OQU1FXS5oZXJva3VhcHAuY29tJmx0Oy9jb2RlJmd0Oy4gSWYgeW91IHVzZWQgdGhlIHNhbWUgbmFtZSBhcyBJIGRpZCBmb3IgdGhpcyBleGVyY2lzZSwgdGhhdCB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vZ2F0c2J5LWhlcm9rdS1kZXBsb3kuaGVyb2t1YXBwLmNvbS8mbHQ7L2NvZGUmZ3Q7LiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93ICh0aGlzIG1pZ2h0IGJlIGRpZmZlcmVudCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IEdhdHNieS5qcyBzdGFydGVyIHRlbXBsYXRlLCBsZWFybiBtb3JlIGFib3V0IHN0YXJ0ZXJzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvcGx1Z2lucy10aGVtZXMtYW5kLXN0YXJ0ZXJzLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OykuJmx0Oy9wJmd0OwoKJmx0O3AgYWxpZ249JnF1b3Q7Y2VudGVyJnF1b3Q7Jmd0OwogICAmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTEzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NvbmNsdXNpb24mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2UgZGVwbG95ZWQgYSBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UgdXNpbmcgQ2lyY2xlQ0kgb3Jicy4gTm93IHdoZW4gd2UgcHVzaCBvdXIgY29kZSwgYWxsIGNoYW5nZXMgd2lsbCBiZSBkZXBsb3llZCBhdXRvbWF0aWNhbGx5LiBUaGlzIHR1dG9yaWFsIGhhcyBhbHNvIGRlbW9uc3RyYXRlZCBob3cgQ2lyY2xlQ0kgb3JicyBtYWtlcyBkZXBsb3ltZW50IGVhc3kuIEluc3RlYWQgb2Ygd3JpdGluZyBtYW55IGxpbmVzIG9mIGNvbmZpZyBuZWVkIHRvIGRlcGxveSB0byBIZXJva3UsIG9yYnMgYWJzdHJhY3QgYWxsIG9mIHRoYXQgaW50byBjb252ZW5pZW50IGNvbW1hbmRzIGZvciB1cyB0byB1c2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2hlY2sgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kgb3JicyByZWdpc3RyeSZsdDsvYSZndDsgZm9yIG9yYnMgdGhhdCBzdWl0IHlvdXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGRlcGxveW1lbnQgZGVzdGluYXRpb24gb2YgY2hvaWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyEmbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5MZXR0aW5nIGNoYW5nZSBhbmQgdW5jZXJ0YWludHkgYWR2YW5jZSB5b3VyIHNvZnR3YXJlIGFyY2hpdGVjdHVyZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VGh1LCAwNyBNYXkgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Sb2IgWnViZXI8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIGZpcnN0IGxpbmVzIG9mIENpcmNsZUNJ4oCZcyBjb2RlYmFzZSB3ZXJlIHdyaXR0ZW4gbmVhcmx5IG5pbmUgeWVhcnMgYWdvLiBMb29raW5nIGJhY2sgb24gd2hhdCB3ZSBoYXZlIGJ1aWx0IHNvIGZhciB3aXRoIHRoZSBjbGFyaXR5IG9mIGhpbmRzaWdodCBleHBvc2VzIHNvbWUgaW50ZXJlc3RpbmcgdGhlbWVzIHRoYXQgY2FuIGJlIGluc3RydWN0aXZlIGluIGlkZW50aWZ5aW5nIGFwcHJvYWNoZXMgdG8gZGVhbGluZyB3aXRoIGNoYW5nZS4gV2hpbGUgdGhleSB3ZXJlbuKAmXQgYWxsIGludGVudGlvbmFsLCBpdCBkb2VzbuKAmXQgbWFrZSB0aGVtIGFueSBsZXNzIHZhbHVhYmxlLiBUaHJlZSBzdWNoIHRoZW1lcyBhcmU6IGRlZmVycmluZyB0aGUgbmVlZCB0byBoYW5kbGUgY2hhbmdlLCB0aGlua2luZyBsaWtlIGEgcHJvZHVjdCBtYW5hZ2VyLCBhbmQga2VlcGluZyB5b3VyIGhlYWQgdXAuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NoYW5nZSBpcyBhIGNvbnN0YW50IGluIHRlY2hub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Q2hhbmdlIG1pZ2h0IGJlIG9uZSBvZiB0aGUgb25seSBjb25zdGFudHMgZW5naW5lZXJzIHdpbGwgZGVhbCB3aXRoIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGVpciBjYXJlZXJzLiBJdCBjZXJ0YWlubHkgZHJpdmVzIG1hbnkgb2Ygb3VyIG1vc3QgaW50ZXJlc3RpbmcgY2hhbGxlbmdlcy4gVGhlIG1hcmtldCBpcyBjaGFuZ2luZywgb3VyIGJ1c2luZXNzIGlzIGV2b2x2aW5nLCBvdXIgY3VzdG9tZXIgYmFzZSBpcyBncm93aW5nLCBhbmQgb3VyIHRlYW0gaXMgc2NhbGluZy4gV2UgbmVlZCB0byBidWlsZCBhIHNvbHV0aW9uIHRoYXQgbWVldHMgdG9kYXnigJlzIG5lZWRzIGJ1dCBzZXRzIHVzIHVwIGZvciB0aGUgZGVtYW5kcyBvZiB0b21vcnJvdy4gSG93IGRvIHdlIGRlc2lnbiBvdXIgc3lzdGVtcyBpbiBhIG1hbm5lciB0aGF0IGNhbiBhZGFwdCBhbmQgY2hhbmdlIHRvIHRoaW5ncyB0aGF0IGRvbuKAmXQgZXZlbiBleGlzdCB3aGVuIHdlIHN0YXJ0IGJ1aWxkaW5nIGl0PyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZXJlIGhhcyBiZWVuIGEgbG90IG9mIHRhbGsgaW4gcmVjZW50IHllYXJzIGFib3V0IGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGV2b2x2ZSBvciBtb3JlIGVhc2lseSBhZGFwdCB0byBjaGFuZ2UuIFRoZW4gd2Ugc3RhcnQgdG8gZGViYXRlIHRoZSBtZXJpdHMgb2YgdGhlc2UgYXJjaGl0ZWN0dXJlcyB1c2luZyBhIGxpbmUgb2YgdGhpbmtpbmcgdGhhdCBzdWdnZXN0cyB5b3UgYXJlIGNob29zaW5nIHRvIGhhdmUgYSDigJxNaWNyb3NlcnZpY2VzIEFyY2hpdGVjdHVyZeKAnSBvciBhbiDigJxFdmVudC1Ecml2ZW4gQXJjaGl0ZWN0dXJl4oCdIG9yIGEg4oCcU2VydmVybGVzcyBBcmNoaXRlY3R1cmUu4oCdIEkgd291bGQgcG9zaXQgdGhhdCB0aGlzIHR5cGUgb2YgZGVzY3JpcHRpb24gY3JlYXRlcyBhIGZhbHNlIHNlbnNlIG9mIGZpbmFsaXR5IHRoYXQgZG9lc27igJl0IGFjdHVhbGx5IGV4aXN0IGluIG1vc3QgcmVhbC13b3JsZCBzeXN0ZW1zLiZsdDsvcCZndDsKCiZsdDtwJmd0O091dHNpZGUgb2YgdGhlIHlvdW5nZXN0IG9mIHByb2plY3RzLCBpdOKAmXMgdW5saWtlbHkgdGhhdCB5b3UgY2FuIGRlc2NyaWJlIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCB5b3UgaGF2ZSB3aXRoIGFueSBzaW1wbGUgb25lLWxpbmVyLiBJdOKAmXMgbW9yZSBsaWtlbHkganVzdCDigJx5b3VyIGFyY2hpdGVjdHVyZSzigJ0gYW5kIGlmIHlvdeKAmXZlIGJlZW4gd29ya2luZyBvbiBpdCBmb3IgYW55IHNpZ25pZmljYW50IGFtb3VudCBvZiB0aW1lLCB5b3UgbWF5IGhhdmUgYXBwbGllZCBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0dGVybnMgYWxvbmcgdGhlIHdheSB0byBzb2x2ZSBzcGVjaWZpYyBwcm9ibGVtcy4gVGhlcmXigJlzIHByb2JhYmx5IGEgbW9ub2xpdGggc29tZXdoZXJlLCBzb21lIG51bWJlciBvZiBtaWNyb3NlcnZpY2VzLCBhIGZldyBldmVudHMsIGFuZCBhIHNlcnZlcmxlc3MgZWxlbWVudCBvciB0d28uIE9uIHRvcCBvZiBhbGwgdGhhdCwgeW91IG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YgdHJhbnNpdGlvbmluZyBzb21lIG9mIHRob3NlIHBpZWNlcyBmcm9tIG9uZSBwYXR0ZXJuIHRvIGFub3RoZXIuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0Rlc2lnbiBhcmNoaXRlY3R1cmUgdG8gc29sdmUgcHJvYmxlbXMmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gb2Z0ZW4gYXNrZWQgYnkgZm9sa3Mgd2hpY2ggYXJjaGl0ZWN0dXJlIHRoZXkgc2hvdWxkIGNob29zZSwgb3Igd2hlbiB0aGV5IHNob3VsZCBzd2l0Y2ggZnJvbSBvbmUgdG8gYW5vdGhlci4gSSBoYXZlIGEgZ3JlYXQgdGVuZGVuY3kgdG8gZGlzYXBwb2ludCB3aXRoIGFuc3dlcnMgbGlrZSDigJx3aGF0IHByb2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gc29sdmU/4oCdJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28sIHdoYXQgJmx0O3N0cm9uZyZndDtzaG91bGQmbHQ7L3N0cm9uZyZndDsgeW91IGJlIHRoaW5raW5nIGFib3V0IGFzIHlvdXIgcHJvZHVjdCBldm9sdmVzIGFuZCB5b3VyIG5lZWRzIGFyZSBjaGFuZ2luZz8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGVyZSBhcmUgYSBsb3Qgb2YgYXBwcm9hY2hlcyB0aGF0IHdlIGNhbiB1c2UgdG8gZGVzaWduIHNvZnR3YXJlIGFuZCBzeXN0ZW1zIHRvIGJlIG1vcmUgcmVzaWxpZW50IHRvIGNoYW5nZS4gVGhlIGFsbHVyZSBvZiBub3QgaGF2aW5nIHRvIGRvIGNvbXBsZXggcmVmYWN0b3Jpbmcgb3IgcmVidWlsZGluZyBkb3duIHRoZSByb2FkIGxlYWRzIHVzIHRvIHdhbnQgdG8gZGVzaWduIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG93IGNvc3Qgb2YgY2hhbmdlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2hpbGUgZ2VuZXJhbGl6ZWQgYWJzdHJhY3Rpb25zIGFuZCByZXVzYWJsZSBjb21wb25lbnRzIGFyZSBhdCB0aGUgY29yZSBvZiByZWR1Y2luZyB0aGUgaW1wYWN0IG9mIGNoYW5nZSwgdGhleSBhcmUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Jsb2cuY29kaW5naG9ycm9yLmNvbS90aGUtZGVsdXNpb24tb2YtcmV1c2UvJnF1b3Q7Jmd0O2hhcmQgdG8gZ2V0IHJpZ2h0IGluIHRoZSBmaXJzdCBwbGFjZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0l04oCZcyBoYXJkIHRvIHByZWRpY3QgdGhlIGZ1dHVyZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtBdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHRlY2huaWNhbCBsYW5kc2NhcGUgaXMgY2hhbmdpbmcsIHlvdXIgYnVzaW5lc3MgYW5kIHlvdXIgb3JnYW5pemF0aW9uIGFyZSBib3RoIGV2b2x2aW5nIGFzIHdlbGwuIFRoZXNlIGJvdGggaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiB5b3VyIGFyY2hpdGVjdHVyYWwgZGVjaXNpb25zLiBUaGUgc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlIHRoYXQgeW91IGFyZSB1bmRlcmdvaW5nIHdpbGwgaW5mbHVlbmNlIHRoZSBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUgYmVzdCBzdWl0ZWQgdG8gYWJzb3JiIHRob3NlIGNoYW5nZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGVhcmx5IGRheXMgb2YgYSBwcm9qZWN0IG9yIGNvbXBhbnksIGl04oCZcyBwb3NzaWJsZSB0byBtYWtlIHN3ZWVwaW5nIGZ1bmRhbWVudGFsIHNoaWZ0cyBpbiB0aGUgb2JqZWN0aXZlLiBFeHRyZW1lLCBidXQgbm90IHVuY29tbW9uLCBleGFtcGxlcyBpbmNsdWRlIFRpbnkgU3BlY2sgYmVjb21pbmcgU2xhY2sgYW5kIE9kZW8gYmVjb21pbmcgVHdpdHRlci4gV2hlbiB0aGUgZG9tYWluIG9mIHlvdXIgYnVzaW5lc3MgY2FuIG1vdmUgdGhhdCBkcmFzdGljYWxseSwgdGhlIGNsZWFuIGJvdW5kYXJpZXMgb2YgeW91ciBEREQgbW9kZWwgYXJlIG91dCB0aGUgd2luZG93LiBJbiBhIHNldCBvZiBtaWNyb3NlcnZpY2VzLCB0aGVzZSBib3VuZGFyaWVzIHdpbGwgYmUgY29kaWZpZWQsIHNvIGlmIHlvdSBoYXZlIHRvIGN1dCB0aHJvdWdoIHRoZW0sIHlvdeKAmWxsIGxpa2VseSBiZSB0aGFua2Z1bCBmb3IgYSBtb3JlIHBsaWFibGUgbW9ub2xpdGguJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB5b3UgZmluZCBwcm9kdWN0IC8gbWFya2V0IGZpdCwgeW91ciBwcmlvcml0aWVzIHdpbGwgc2hpZnQgdG93YXJkcyBzdXBwb3J0aW5nIHlvdXIgcmFwaWQgZ3Jvd3RoLiBXaXRoIHN5c3RlbSBzY2FsZSBhcyBhIGRyaXZlciBvZiBjaGFuZ2UsIHRoZSBhYmlsaXR5IHRvIHJlc3BvbmQgdG8gY2hhbmdlIGlzIG9mdGVuIHRpZWQgdG8gdGhlIGluZGVwZW5kZW5jZSBvZiBzeXN0ZW1zIGJhc2VkIG9uIHRoZWlyIG9wZXJhdGlvbmFsIGNoYXJhY3RlcmlzdGljcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGF0IHNjYWxpbmcgcGhhc2UsIHlvdeKAmWxsIGhhdmUgYSBsYXJnZXIgb3JnYW5pemF0aW9uIGFuZCBmYXIgbW9yZSB0ZWFtcy4gSWYgeW914oCZcmUgbHVja3kgeW914oCZbGwgYmUgYmFjayB0byBzdXN0YWluYWJsZSBwcm9kdWN0IGV2b2x1dGlvbi4gVGhlbiB0aGUgY29zdCBvZiBjaGFuZ2Ugd2lsbCBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIGFtb3VudCBvZiBjcm9zcy10ZWFtIGNvb3JkaW5hdGlvbiByZXF1aXJlZCB0byBtYWtlIGEgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtoMiZndDtEZWZlciByZXNwb25zZSB0byBjaGFuZ2UmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7V2hlbiBhbiBpbmRpdmlkdWFsIG9yIHRlYW0gaGFzIGEgcHJvYmxlbSB0aGV54oCZcmUgdHJ5aW5nIHRvIHNvbHZlLCB0aGV5IGdlbmVyYWxseSBzdGFydCBvZmYgd2l0aCBhIHByZXR0eSBzaW1wbGUgZGlyZWN0aXZlIOKAkyBsZXTigJlzIGJ1aWxkIHRvIHNvbHZlIHRoYXQgcHJvYmxlbS4gV2hhdOKAmXMgdGhlIG1vc3QgZWZmZWN0aXZlIGFyY2hpdGVjdHVyZSB3ZSBjYW4gdXNlIHRvIGJ1aWxkIGEgdmlhYmxlIHByb2R1Y3QgYXQgdGhlIGxvd2VzdCBjb3N0PyBUaGlzIGlzIGdlbmVyYWxseSB0cnVlIHdoZXRoZXIgaXTigJlzIGEgc3RhcnR1cCBvciBhIGh1Z2UgbXVsdGluYXRpb25hbCBjb3Jwb3JhdGlvbi4gQSBuZXcgcHJvamVjdCB3aWxsIGJlIGJ1aWx0IG9uIGEgc3lzdGVtIHRoYXTigJlzIHJlbGF0aXZlbHkgbmV3LCBhbmQgd2lsbCBiZSB1bmxpa2VseSB0byBoYXZlIHByb2R1Y3QtbWFya2V0IGZpdCBiZWNhdXNlIHRoZSBjb21wYW55IHdvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCBpdHMgYnVzaW5lc3MgZG9tYWluIHlldCwgYW5kIHdvbuKAmXQga25vdyB3aGVyZSB0aGUgcHJpbWFyeSBzb3VyY2VzIG9mIGNoYW5nZSB3aWxsIGNvbWUgZnJvbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHNpdHVhdGlvbiwgZGVzaWduaW5nIGZvciBjaGFuZ2UgYmVjb21lcyBhIGxvdCBoYXJkZXIuIElmIGl04oCZcyBhIGxvdCBtb3JlIGV4cGVuc2l2ZSB0byBtYWtlIHRoaW5ncyByZXNpbGllbnQgdG8gY2hhbmdlIGFuZCB5b3UgY2Fu4oCZdCB0ZWxsIHlldCB3aGljaCBwYXJ0cyBvZiB5b3VyIHN5c3RlbSB3aWxsIGNoYW5nZSwgaG93IGRvIHlvdSBtYWtlIHRoZSBkZWNpc2lvbiBhYm91dCB3aGVyZSB0byBtYWtlIHRoYXQgaW52ZXN0bWVudD8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBjb3VudGVyaW50dWl0aXZlIGFzIGl0IG1heSBzb3VuZCwgdGhlIGFuc3dlciBpcyBwcm9iYWJseSBub3doZXJlLiBBdCBsZWFzdCBub3QgeWV0LiBJbnN0ZWFkIHdhdGNoIGNoYW5nZSBjbG9zZWx5IGFuZCBidWlsZCBpbiBhIHdheSB0aGF0IG1pbmltaXplcyB0aGUgY29zdCBvZiBiZWluZyB3cm9uZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiDigJwmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9zaG9wLm9yZWlsbHkuY29tL3Byb2R1Y3QvOTc4MDU5NjUyMjcwNC5kbyZxdW90OyZndDs5NyBUaGluZ3MgRXZlcnkgU29mdHdhcmUgQXJjaGl0ZWN0IFNob3VsZCBLbm93Jmx0Oy9hJmd0O+KAnSBLZXZsaW4gSGVubmV5LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbWVkaXVtLmNvbS9Aa2V2bGluaGVubmV5L2h0dHBzLW1lZGl1bS1jb20ta2V2bGluaGVubmV5LXVzZS11bmNlcnRhaW50eS1hcy1hLWRyaXZlci00OTNlYmViZDU3NWQmcXVvdDsmZ3Q7ZGVzY3JpYmVzIGFuIGltcG9ydGFudCBhcHByb2FjaCB0byB0aGlua2luZyBhYm91dCB1bmNlcnRhaW50eSZsdDsvYSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2Jsb2NrcXVvdGUmZ3Q7CiAgJmx0O3AmZ3Q74oCcVGhlIHByZXNlbmNlIG9mIHR3byBvcHRpb25zIGlzIGFuIGluZGljYXRvciB0aGF0IHlvdSBuZWVkIHRvIGNvbnNpZGVyIHVuY2VydGFpbnR5IGluIHRoZSBkZXNpZ24uIFVzZSB0aGUgdW5jZXJ0YWludHkgYXMgYSBkcml2ZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHlvdSBjYW4gZGVmZXIgY29tbWl0bWVudCB0byBkZXRhaWxzIGFuZCB3aGVyZSB5b3UgY2FuIHBhcnRpdGlvbiBhbmQgYWJzdHJhY3QgdG8gcmVkdWNlIHRoZSBzaWduaWZpY2FuY2Ugb2YgZGVzaWduIGRlY2lzaW9ucy4gSWYgeW91IGhhcmR3aXJlIHRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQsIHlvdeKAmXJlIG1vcmUgbGlrZWx5IHRvIGJlIHN0dWNrIHdpdGggaXQg4oCTIGluY2lkZW50YWwgZGVjaXNpb25zIGJlY29tZSBzaWduaWZpY2FudCBhbmQgdGhlIHNvZnRuZXNzIG9mIHRoZSBzb2Z0d2FyZSBoYXJkZW5zLuKAnSZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7VGhpcyBmcmFtaW5nIGlzIGdyZWF0IGZvciBleHBsaWNpdCBkZWNpc2lvbnMsIGJ1dCB3aGF0IGlmIHlvdSBkb27igJl0IGtub3cgeW914oCZcmUgbWFraW5nIGEgY2hvaWNlPyZsdDsvcCZndDsKCiZsdDtwJmd0O01hbnkgdGltZXMsIHRoZSBjaG9pY2UgaXNu4oCZdCBldmVuIHZpc2libGUgeWV0LCBidXQgd2lsbCByZXZlYWwgaXRzZWxmIGxhdGVyLiBJbiB0aGVzZSBzaXR1YXRpb25zLCB0aGUgYW5zd2VyIGlzIG5vdCB0byBvdmVyIGdlbmVyYWxpemUsIGJ1aWxkaW5nIGFic3RyYWN0aW9ucyBldmVyeXdoZXJlIGp1c3QgaW4gY2FzZS4gSW5zdGVhZCwga2VlcCB0aGluZ3MgYXMgc2ltcGxlIGFzIHBvc3NpYmxlIHNvIHlvdSBjYW4gdW5kZXJzdGFuZCB0aGVtIGxhdGVyIGlmIHlvdSBoYXZlIHRvIG1ha2UgYSBjaGFuZ2UuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O1NpbXBsaWNpdHkgbWFrZXMgaXQgZWFzaWVyIHRvIGFkYXB0IHRvIGNoYW5nZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZWFybHkgZGF5cywgdGhlIENpcmNsZUNJIGFwcGxpY2F0aW9uIHdhcyBhIG1vbm9saXRoIHRoYXQgdG9vayBhIGN1c3RvbWVy4oCZcyBidWlsZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRhdGEgYW5kIHB1c2hlZCBpdCBpbnRvIG9uZSBvZiBzZXZlcmFsIExYQyBjb250YWluZXJzLiBFdmVyeSBjb250YWluZXIgdGhhdCB3ZSBzcHVuIHVwIHdhcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgc2FtZSBpbWFnZSB0aGF0IGNvbnRhaW5lZCBldmVyeXRoaW5nIHRoYXQgd2UgdGhvdWdodCBhbnlvbmUgd291bGQgZXZlciB3YW50IGluIHRoZWlyIHRlc3QgZW52aXJvbm1lbnQuIEluIGhpbmRzaWdodCwgdGhpcyBzb3VuZHMgbGlrZSBhIHRlcnJpYmxlIGlkZWEsIGJ1dCBhdCB0aGUgdGltZSwgaXQgd2FzIGZhbnRhc3RpYy4gSXQgd2FzIHNpbXBsZSB0byBtYWludGFpbiBhbmQgc3VwcG9ydGVkIHRoZSBuZWVkcyBvZiBvdXIgZWFybHkgY3VzdG9tZXJzLCBtYW55IG9mIHdob20gd2VyZSBidWlsZGluZyBSYWlscyBtb25vbGl0aHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXMgdGltZSBwYXNzZWQgYW5kIG91ciBjdXN0b21lciBiYXNlIGdyZXcsIHNvIGRpZCB0aGUgZGl2ZXJzaXR5IG9mIHRoZWlyIG5lZWRzIGluIHRlcm1zIG9mIHRlc3QgZW52aXJvbm1lbnRzLiBVcGdyYWRlZCB2ZXJzaW9ucyBvZiB0aGVpciB1bmRlcmx5aW5nIGRhdGFiYXNlcywgbm92ZWwgbmV3IGRldmVsb3BtZW50IGZyYW1ld29ya3MsIGV2ZW4gbmV3IG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbnMgYmVjYW1lIG5lY2Vzc2FyeS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgb3JpZ2luYWwgY29udGFpbmVyIG1hbmFnZW1lbnQgaW4gQ2lyY2xlQ0kgd2FzbuKAmXQgZGVzaWduZWQgaW4gYSB3YXkgdGhhdCBhbGxvd2VkIHVzIHRvIGFkYXB0IGVhc2lseSB0byB0aGVzZSBjaGFuZ2luZyBuZWVkcy4gQnV0IGl0IHdhcyBmYWlybHkgc2ltcGxlLiBTbyB3aGVuIHdlIHNldCBvdXQgdG8gc29sdmUgdGhlc2UgcHJvYmxlbXMsIHdlIGtuZXcgd2hlcmUgdG8gc3BsaWNlIGluIGEgbmV3IGFwcHJvYWNoIGFuZCBpdCB3YXMgbWluaW1hbCB3b3JrIHRvIGVuYWJsZSB0aGF0IHNwbGljaW5nLiBXZSBhbHNvIGRpZG7igJl0IGhhdmUgdG8gdW5yYXZlbCBhIHBvb3IgZ2VuZXJhbGl6YXRpb24gdGhhdCBkaWRu4oCZdCBzdXBwb3J0IG91ciBuZXcgcHJvYmxlbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3aGlsZSBzZWVtaW5nbHkgc2ltcGxlLCB3ZSB3ZXJlIGZpdmUgeWVhcnMgaW50byBzdWNjZXNzZnVsIGdyb3d0aCBhcyBhIGNvbXBhbnkgbWVldGluZyB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycyBvbiB0aGF0IHNpbXBsZSBzeXN0ZW0gYmVmb3JlIG91ciBmaXJzdCBjdXN0b21lcnMgdGVzdGVkIGl0cyByZXBsYWNlbWVudC4gSW4gdGhvc2UgZml2ZSB5ZWFycywgRG9ja2VyIHdhcyBjcmVhdGVkLCBhcyB3YXMgSGFzaGlDb3Jw4oCZcyBOb21hZC4gQ29tYmluZWQsIHRob3NlIHRvb2xzIGVsaW1pbmF0ZWQgaHVnZSBwb3J0aW9ucyBvZiB0aGUgd29yayBuZWNlc3NhcnkgdG8gZ2V0IHRoZSBmbGV4aWJsZSBhbmQgc2NhbGFibGUgZW52aXJvbm1lbnRzIHRoYXQgd2Ugc3VwcG9ydCBmb3IgY3VzdG9tZXJzIHRvZGF5LiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28sIGFzIHdlIHJldG9vbGVkIHRoZSBzeXN0ZW0gdG8gYWRhcHQgdG8gdGhlIGNoYW5nZWQgbWFya2V0IHdlIHdlcmUgaW4gYSBwb3NpdGlvbiB0byBhc2sg4oCcSG93IGRvIHdlIGRvIHRoaXMgaW4gYSB3YXkgdGhhdCBiZXR0ZXIgcG9zaXRpb25zIHVzIGZvciBpbmNyZW1lbnRhbCBjaGFuZ2U/4oCdIEl0IHdvdWxkIGJlIGRpZmZpY3VsdCB0byBvdmVyc3RhdGUgaG93IG11Y2ggdmFsdWUgdGhhdCBmaXZlIHllYXJzIG9mIGV4cGVyaWVuY2UgcHJvdmlkZWQgd2hlbiBkZXNpZ25pbmcgYSBzb2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdCBzb3VuZHMgd2VpcmQgYW5kIGdyb3NzbHkgdW5mYWlyIHRvIHNheSB0aGlzLCBidXQgbW9zdCBvZiB0aGUgdGltZSB3ZSBkb27igJl0IGV2ZW4ga25vdyB0aGF0IHdl4oCZcmUgbWFraW5nIGEgbW9udW1lbnRhbCBkZXNpZ24gZGVjaXNpb24gYmVjYXVzZSB0aGUgYWx0ZXJuYXRlIHBhdGggaGFzbuKAmXQgc2hvd24gdXAgeWV0LiBIb3cgZG8geW91IGd1YXJkIGFnYWluc3QgdGhpcz8mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7RGVmZXIsIGRlZmVyLCBkZWZlciZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUaGUgY29ycmVjdCBzb2x1dGlvbnMgaGF2ZSBhIGhhYml0IG9mIHJldmVhbGluZyB0aGVtc2VsdmVzIGlmIHlvdSBjYW4gZmluZCBhIHdheSB0byB3YWl0IGxvbmcgZW5vdWdoLiBUZWNobm9sb2d5IGdhaW5zIHRyYWN0aW9uIG9yIGRpZXMuIElmIHlvdSBjaG9zZSBhIGNvbnRhaW5lciBvcmNoZXN0cmF0aW9uIGVuZ2luZSBpbiAyMDE2LCB0aGVyZeKAmXMgYSByb3VnaGx5IDIwJSBjaGFuY2UgdGhhdCB5b3Ugd291bGQgaGF2ZSBjaG9zZW4gS3ViZXJuZXRlcy4gVGhhdCBtZWFucyBieSB0aGUgYmVnaW5uaW5nIG9mIDIwMTgsIGFsbW9zdCA4MCUgb2YgY29tcGFuaWVzIHdlcmUgc3dpdGNoaW5nLiBUaG9zZSBhcmUgbm90IGdyZWF0IG9kZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28gZGVmZXJyaW5nIGNhbiBiZSBnb29kLiBEZWZlcnJpbmcgdG8gdGhlIHBvaW50IG9mIGNyZWF0aW5nIGEgY3Jpc2lzIGlzIG5vdC4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7VGhpbmsgbGlrZSBhIHByb2R1Y3QgbWFuYWdlciZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3VyIGFyY2hpdGVjdHVyZSBpcyBhIGxlYWt5IGFic3RyYWN0aW9uLiBXaGlsZSBDaXJjbGVDSSBpcyBwcm9iYWJseSBhbiBleHRyZW1lIGV4YW1wbGUgb2YgdGhpcyBjYXNlIGR1ZSB0byB0aGUgYWNjZXNzIG91ciBjdXN0b21lcnMgaGF2ZSB0byBzeXN0ZW1zIGluIG91ciBwbGF0Zm9ybSwgdGhlcmUgaXMgYWx3YXlzIHNvbWUgaW1wbGljYXRpb24gZm9yIGN1c3RvbWVycyBvZiB0aGUgZGVjaXNpb25zIHlvdSBtYWtlIGluIGRlZmluaW5nIHlvdXIgYXJjaGl0ZWN0dXJlLiBSZWNvZ25pemluZyB0aGlzIGltcGFjdCBhbmQgYmVpbmcgYWJsZSB0byBjb2hlcmVudGx5IGRpc2N1c3MgYXBwcm9hY2hlcyBhbmQgYWx0ZXJuYXRpdmVzIGlzIGEgaHVnZSBhc3NldCB0aGF0IGFuIGVuZ2luZWVyIGNhbiBicmluZyB0byB0aGVpciBQTSBhbmQgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaGlsZSB3ZSB3ZXJlIHdpdG5lc3NpbmcgYWxsIG9mIHRoaXMgY2hhbmdlIGluIGhvdyBvdXIgY3VzdG9tZXJzIHdlcmUgYnVpbGRpbmcgc29mdHdhcmUsIG9uZSB0aGluZyB3ZSBpZ25vcmVkIGZvciB0b28gbG9uZyB3YXMgdGhlIHJpc2Ugb2YgRG9ja2VyLiBEb2NrZXIgZGlkbuKAmXQgZXZlbiBleGlzdCB3aGVuIENpcmNsZUNJIHN0YXJ0ZWQgaW4gMjAxMSwgdGhlbiBieSAyMDE0IGl0IHdhcyBldmVyeXdoZXJlLiBNYW55IG9mIG91ciBjdXN0b21lcnMgaGFkIHN0YXJ0ZWQgYnVpbGRpbmcgRG9ja2VyIGltYWdlcyBhcyBwYXJ0IG9mIHRoZWlyIGJ1aWxkIHRvIHByZXBhcmUgZm9yIGRlcGxveS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtEb2NrZXIgd2FzIG9yaWdpbmFsbHkgYnVpbHQgb24gdG9wIG9mIExYQywgYW5kIHRoYXQgbWVhbnQgaW4gdGhvc2UgZWFybHkgZGF5cyB3ZSBjb3VsZCBzdXBwb3J0IHRoZSB1c2Ugb2YgRG9ja2VyIGNvbW1hbmRzIHRvIGJ1aWxkIGltYWdlcyBhbmQgcHVzaCB0aGVtIHRvIHJlcG9zaXRvcmllcyBhbGwgaW5zaWRlIG9mIG9uZSBvZiBvdXIgTFhDIGNvbnRhaW5lcnMuIEluIDIwMTQsIERvY2tlciBsYXVuY2hlZCBzb21ldGhpbmcgY2FsbGVkIGxpYmNvbnRhaW5lciBhbmQgdGhleSBwdWxsZWQgYXBhcnQgdGhlIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBzeXN0ZW0gYW5kIGNyZWF0ZWQgZXhlY3V0aW9uIGRyaXZlcnMsIHdoaWNoIHNvb24gbGVkIHRvIHRoZSBkZXByZWNhdGlvbiBvZiB0aGUgTFhDIGRyaXZlci4gRGlzYXBwb2ludGluZywgYnV0IGl0IHN0aWxsIHdvcmtlZC4gVGhlbiBEb2NrZXIgZGVsZXRlZCBhbGwgTFhDIHN1cHBvcnQuIFRoYXQgd2FzIGJhZC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QWx3YXlzIHRoaW5rIGFib3V0IHVzZXJzJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVycyBhbmQgYXJjaGl0ZWN0cywgd2Ugc2F3IHRoaXMgY29taW5nLCBhbmQgZnJhbmtseSwgaXQgd2FzIHVuZGVyIHRoZSByYWRhciBvZiBvdXIgcHJvZHVjdCB0ZWFtLiBPdXIgbm9uLXRlY2huaWNhbCBwcm9kdWN0IGZvbGtzIGRpZG7igJl0IG5lY2Vzc2FyaWx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBidXQgb3VyIGVuZ2luZWVycyB3ZXJlIHRhbGtpbmcgYWJvdXQgaXQgZXZlcnkgZGF5LiBTbyBhcyBhbiBlbmdpbmVlciwgYW4gYXJjaGl0ZWN0LCBvciBhIGxlYWRlciBpbiB0ZWNobm9sb2d5LCB5b3UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBwcm9kdWN0IGFuZCB3b3JraW5nIHdpdGggeW91ciBwcm9kdWN0IG1hbmFnZXJzIHRvIGVuc3VyZSBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGUgaW1wbGljYXRpb25zIG9mIHRlY2huaWNhbCBjaG9pY2VzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0l04oCZcyBpbXBvcnRhbnQgdG8gc2VwYXJhdGUgdGhpcyBkaXNjdXNzaW9uIGZyb20gdGVjaG5pY2FsIGludmVzdG1lbnRzLiBUaGVyZSBpcyBhYnNvbHV0ZWx5IGEgcGxhY2UgZm9yIHRoaXMgdHlwZSBvZiBpbnZlc3RtZW50LCBhbmQsIGFuIGFyZ3VtZW50IHRoYXQgZnJhbWluZyB0aGVzZSBpbnZlc3RtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB5b3UgZnJhbWUgcHJvZHVjdCBpbnZlc3RtZW50cyBtYWtlcyBpdCBtdWNoIGVhc2llciB0byBtYWtlIHRyYWRlb2ZmIGRlY2lzaW9ucy4gSG93ZXZlciwgaWRlbnRpZnlpbmcgdGhlIGRpcmVjdGx5IGN1c3RvbWVyLXZpc2libGUgZmVhdHVyZSBpbXBhY3Qgb2YgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBtb3JlIGNvbW1vbmx5IGRpc2N1c3NlZCBpbXBhY3RzIG9mIGNvc3QsIHBlcmZvcm1hbmNlLCBzZWN1cml0eSwgZXRjLiZsdDsvcCZndDsKCiZsdDtwJmd0O0J1aWxkaW5nIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHlvdXIgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgdmFsdWUgYWNoaWV2ZWQgYnkgeW91ciBjdXN0b21lcnMgd2lsbCBwdXQgeW91IGluIGEgcG9zaXRpb24gdG8gbWFrZSBtb3JlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB3aGF0IGFuZCBob3cgdG8gYnVpbGQgYXMgeW91ciBidXNpbmVzcyBldm9sdmVzLiBUaGVuIHlvdSBjYW4gZm9jdXMgb24gZ2V0dGluZyBhaGVhZCBvZiB0aGF0IGV2b2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7S2VlcCB5b3VyIGhlYWQgdXAmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gQ2FuYWRpYW4gYW5kLCB1bnN1cnByaXNpbmdseSwgSSBncmV3IHVwIHBsYXlpbmcgaWNlIGhvY2tleS4gVGhyb3VnaG91dCBteSBjaGlsZGhvb2QsIEkgc3BlbnQgYW4gZW5kbGVzcyBhbW91bnQgb2YgdGltZSBhdCBwcmFjdGljZSBqdXN0IHNrYXRpbmc6IGZvcndhcmRzLCBiYWNrd2FyZHMsIHR1cm5pbmcsIHN0b3BwaW5nLCBmaWd1cmUgZWlnaHRzIGFyb3VuZCBjb25lcy4gVGhlbiBjYW1lIHN0aWNrIGhhbmRsaW5nLiBUaGUgaWRlYSB3YXMgdG8gaGF2ZSB0aGUgbW92ZW1lbnQgb24gdGhlIGljZSBiZWNvbWUgc2Vjb25kIG5hdHVyZSBzbyBJIGNvdWxkIGZvY3VzIG9uIHdoYXQgcmVhbGx5IG1hdHRlcmVkOiBzZWVpbmcgdGhlIHBsYXkgZGV2ZWxvcCwgZ2V0dGluZyBpbnRvIHNwYWNlLCBhbmQgdHJ5aW5nIHRvIHNjb3JlLiBNYWtlIHRoZSBmdW5kYW1lbnRhbHMgYWxtb3N0IGVmZm9ydGxlc3Mgc28geW91IGNhbiBwdXQgeW91ciBlbmVyZ3kgaW50byB0aGUgbm92ZWwgc3R1ZmYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gc29mdHdhcmUsIHdlIGhhdmUgYSBiYWQgdGVuZGVuY3kgdG8gbWFrZSB0aGUgZnVuZGFtZW50YWxzIGEgbG90IGhhcmRlciB0aGFuIHRoZXkgc2hvdWxkIGJlIGJ5IGFkb3B0aW5nIG5ldyB0ZWNobm9sb2d5IHRoYXQgd2UgdGhpbmsgaXMgZ29pbmcgdG8gYmUgZ2FtZSBjaGFuZ2luZywgYnV0IGVuZHMgdXAgaGF2aW5nIG1vZGVzdCB1cHNpZGUgaWYgYW55LiBUbyBtYWtlIHRoaW5ncyB3b3JzZSwgdGhlIGRvd25zaWRlIGlzIG9mdGVuIHVuYm91bmRlZCBhcyB3ZSBnZXQgb3VyIHRlYW1zIHVwIHRoZSBsZWFybmluZyBjdXJ2ZSwgZmluZCB1bnRlc3RlZCBlZGdlIGNhc2VzIGR1cmluZyBwcm9kdWN0aW9uIGluY2lkZW50cywgYW5kIGludmVudCBvdXIgb3duIOKAnGJlc3QgcHJhY3RpY2VzLuKAnSBBIHdvcmxkIHdoZXJlIFN0YWNrIE92ZXJmbG93IGhhcyBubyBhbnN3ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1doaWxlIHdl4oCZcmUgcHV0dGluZyB0aGlzIGVmZm9ydCBpbnRvIG91ciBub3ZlbCB0ZWNoLCB3ZeKAmXJlIG5vdCBmb2N1c2luZyBvbiBob3cgb3VyIHN5c3RlbXMgbmVlZCB0byBldm9sdmUgdG8gbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QSB0aW1lIHNpbXBsaWNpdHkgd291bGQgaGF2ZSBoZWxwZWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Q2lyY2xlQ0kgaXMgYSBDbG9qdXJlIHNob3AgYW5kLCBpbiBvdXIgZWFybHkgZGF5cywgd2UgZGVjaWRlZCB3ZeKAmWQgYmUgYmV0dGVyIGF0IGZyb250IGVuZCBkZXZlbG9wbWVudCBpZiB3ZSB1c2VkIHRoZSBzYW1lIGxhbmd1YWdlIHRoYXQgd2UgdXNlZCBpbiB0aGUgYmFja2VuZC4gU28gd2UgYWRvcHRlZCBPbSwgYSBDbG9qdXJlU2NyaXB0IHdyYXBwZXIgYXJvdW5kIFJlYWN0LiBBIGZldyB5ZWFycyBsYXRlciwgRGF2aWQgTm9sZW4sIHRoZSBwZXJzb24gd2hvIHN0YXJ0ZWQgT20sIGRlY2lkZWQgaGUgZGlkbuKAmXQgbGlrZSB0aGUgbW9kZWwgc28gaGUgcmVwbGFjZWQgaXQgd2l0aCBzb21ldGhpbmcgaW5jb21wYXRpYmxlIGNhbGxlZCBPbSBOZXh0LiBXZSB0cmllZCB0byBtaWdyYXRlIGluY3JlbWVudGFsbHkgdG8gT20gTmV4dCBhbmQgZW5kZWQgdXAgd2l0aCBhbiBvdmVybHkgY29tcGxleCBmcm9udGVuZCB3aXRoIHR3byBzdGF0ZSBtb2RlbHMgYW5kIG1hc3NpdmUgb3ZlcmhlYWQgdG8gZXZlcnkgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGVuZGVkIHVwIHJld3JpdGluZyBpdCBpbiBSZWFjdC4gSW4gcmV0cm9zcGVjdCwgT20gaGFkIGJvdGggaGlnaCByaXNrIGFuZCBoaWdoIGNvc3QgdG8gY2hhbmdlIGFuZCB3ZSBwYWlkIHRoZSBwcmljZS4gQW5kIHdlIHNwZW50IHRoYXQgdGltZSBsb29raW5nIGF0IG91ciBmZWV0LCBub3QgYWhlYWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm8gY29tcGFueSBoYXMgZXZlciB3b24gYmVjYXVzZSBvZiBhbiBhbWF6aW5nbHkgbm92ZWwgb3IgZXNvdGVyaWMgdGVjaG5vbG9neSBjaG9pY2UuIFRoZXJlIGlzIGFuIGVuZGxlc3MgbGlzdCwgaG93ZXZlciwgb2YgY29tcGFuaWVzIHRoYXQgaGF2ZSB3b24gYmVjYXVzZSB0aGV5IGNhbiBtb3ZlIHF1aWNrbHkgYW5kIHdpdGggYWdpbGl0eSwgYWRhcHRpbmcgdG8gY2hhbmdlIGFzIGl0IGhhcHBlbnMuIFRlY2hub2xvZ3kgc2hvdWxkIGJlIGFuIGFjY2VsZXJhdG9yIGhlbHBpbmcgdXMgbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4gV2VsbC11bmRlcnN0b29kLCBwcm9kdWN0aW9uLXRlc3RlZCB0b29scyBhcmUgZmFyIG1vcmUgbGlrZWx5IHRvIGZpdCB0aGF0IGJpbGwuIEFzIG15IGNvbGxlYWd1ZSBCZWFyIHNheXMsIOKAnElmIGEgdG9vbCBpc27igJl0IGhlbHBpbmcsIGl04oCZcyBub3QgYSB0b29sLCBpdOKAmXMgYSBjaG9yZS4gRHJvcCBpdC7igJ0mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7Q29uY2x1c2lvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtVbmZvcmVzZWVuIGNoYW5nZSBpcyB0b3Atb2YtbWluZCBmb3Igc28gbWFueSBvZiB1cyByaWdodCBub3csIGFuZCBpdOKAmXMgbW9yZSBvYnZpb3VzIHRoYW4gZXZlciB0aGF0LCBpbiBidXNpbmVzcywgbm9ib2R5IGNhbiBwcmVkaWN0IHRoZSBmdXR1cmUuIEl04oCZcyBhIHNhZmUgYmV0IHRoYXQgZm9sa3MgYXQgR00gZGlkbuKAmXQgc3RhcnQgdGhlIHllYXIgdGhpbmtpbmcgYWJvdXQgaG93IHRvIHVzZSB0aGVpciBmYWN0b3JpZXMgdG8gbWFrZSB2ZW50aWxhdG9ycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWluZyBwcmVwYXJlZCB0byBhZGFwdCBpbiB0aGUgZmFjZSBvZiBjaGFuZ2UgcmVxdWlyZXMgdGhpbmtpbmcgYWJvdXQgY2hhbmdlIGFzIGEgZHJpdmVyIGluIGV2ZXJ5dGhpbmcgeW91IGRvLiBXYXRjaCBob3cgeW91ciBtYXJrZXQgaXMgY2hhbmdpbmcgYW5kIHJlZmxlY3Q9IG9uIGhvdyB0aGF0IGltcGFjdHMgeW91ciBhcmNoaXRlY3R1cmUgc28gdGhhdCB5b3UgY2FuIG1ha2UgdGFyZ2V0ZWQsIGluY3JlbWVudGFsIGltcHJvdmVtZW50cyBpbiBpdHMgYWRhcHRhYmlsaXR5LiBUaGlzIHdpbGwgaGVscCBrZWVwIHlvdSBmb2N1c2VkIG9uIGV2b2x1dGlvbiB3aXRob3V0IHdhc3RpbmcgdGltZSBvciBtb25leSBvbiBhcmVhcyB0aGF0IHdvbuKAmXQgbmVlZCBpdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCbGFjayBTd2FuIGV2ZW50cyBhcmUgc28gdW51c3VhbCB0aGF0IHN0dWR5aW5nIHRoZSBzcGVjaWZpY3MgY2FuIGJlIGxvdyB2YWx1ZSwgYnV0IHRoZXkgcmVtaW5kIHVzIGhvdyBmYXIgcmVhbGl0eSBjYW4gYmUgZnJvbSBvdXIgcGxhbnMuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZW5naW5lZXJpbmcgbWFuYWdlcnMgY2FuIGVmZmVjdGl2ZWx5IHN1cHBvcnQgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWVuZ2luZWVyaW5nLW1hbmFnZXJzLWNhbi1lZmZlY3RpdmVseS1zdXBwb3J0LWVuZ2luZWVycy10ZWFtcy1hbmQtb3JnYW5pemF0aW9ucy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+V2VkLCAyOSBBcHIgMjAyMCAxNTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9ob3ctZW5naW5lZXJpbmctbWFuYWdlcnMtY2FuLWVmZmVjdGl2ZWx5LXN1cHBvcnQtZW5naW5lZXJzLXRlYW1zLWFuZC1vcmdhbml6YXRpb25zLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkxlbmEgUmVpbmhhcmQ8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIHR5cGljYWwgam9iIGRlc2NyaXB0aW9uIGZvciBtYW55IGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMgaXMgYWN0aW9uLXBhY2tlZC4gSXQgaXMgYSBtaXggb2YgaGFuZHMtb24gY29kaW5nLCB0ZWNobmljYWwgbGVhZGVyc2hpcCBhbmQgZGVjaXNpb24gbWFraW5nLCBwcm9jZXNzIGFuZCBwcm9qZWN0IG1hbmFnZW1lbnQsIHByb2R1Y3Qgb3ZlcnNpZ2h0LCBwZW9wbGUgbWFuYWdlbWVudCwgZmluZGluZyBhbmQgaGlyaW5nIHRhbGVudCDigKYgdGhlIGxpc3QgZ29lcyBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiBvdXIgd29yaywgd2UgZGVhbCB3aXRoIGJvdGggdGVjaG5pY2FsIGFuZCBwZW9wbGUgc3lzdGVtczogd2Ugc3VwcG9ydCBpbmRpdmlkdWFsIGVuZ2luZWVyc+KAmSBncm93dGg7IGhlbHAgdGVhbXMgYmVjb21lIHN1Y2Nlc3NmdWw7IGFuZCBtYWtlIHRoZSBvcmdhbml6YXRpb24gbW9yZSBwcm9kdWN0aXZlLCBmdW5jdGlvbmFsLCBhbmQgaW5ub3ZhdGl2ZS4gQWJvdmUgYWxsLCBhbiBlbmdpbmVlcmluZyBtYW5hZ2VyIGlzIGEgc2VydmljZSBvciBzdXBwb3J0IHJvbGUgYWNyb3NzIHRoZXNlIHZhcmlvdXMgbGF5ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1BlcmhhcHMgbW9zdCBmYXNjaW5hdGluZyBhbmQgZGlmZmljdWx0IGlzIHRoZSBoaWdoLWxldmVsIG9mIGFtYmlndWl0eSB0aGF0IGNvbWVzIHdpdGggZW5naW5lZXJpbmcgbWFuYWdlbWVudC4gTWFueSBwcm9ibGVtcyBvciBxdWVzdGlvbnMgZG9u4oCZdCBoYXZlIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLiBUaGVyZSBhcmVu4oCZdCBhYnNvbHV0ZSBhbnN3ZXJzIHRvIHdoYXQgaXQgbWVhbnMgdG8gYmUgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgZWl0aGVyLCBidXQgdGhlcmUgYXJlIGNlcnRhaW4gdmFsdWVzIGFuZCBndWlkZXBvc3RzIHRvIGZvbGxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgbG9vayBhdCB3aGF0IGNhbiBzaGFwZSBvdXIgdGhpbmtpbmcgYWJvdXQgb3VyIHJvbGUgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgYW5kIGhvdyB0byBlZmZlY3RpdmVseSBzdXBwb3J0IGluZGl2aWR1YWwgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1doYXQgZG8gZW5naW5lZXJzIG5lZWQgdG8gdGhyaXZlIGF0IHdvcms/Jmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SXQgaGVscHMgdG8gc3RhcnQgc2hhcGluZyBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IHJvbGVzIGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCBlbmdpbmVlcnMgbmVlZCwgYW5kIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGV5IHRocml2ZS4gUmVzZWFyY2ggZnJvbSBwZXJmb3JtYW5jZSBjb2FjaCBhbmQgdHJhaW5lciBQYWxvbWEgTWVkaW5hIGV4cG9zZXMgc2l4IGNvcmUgbmVlZHMgaHVtYW5zIGhhdmUgKGluY2x1ZGluZyBhdCB3b3JrKS4gU2hlIGNhbGxzIHRoaXMgcmVzZWFyY2ggdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGFsb21hbWVkaW5hLmNvbS9iaWNlcHMmcXVvdDsmZ3Q7QklDRVBTIG1vZGVsJmx0Oy9hJmd0OzombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7QmVsb25naW5nLiZsdDsvc3Ryb25nJmd0OyBBcyBodW1hbnMsIHdlIHN0cml2ZSB0byBiZSBwYXJ0IG9mIGEgY29tbXVuaXR5IG9mIGxpa2UtbWluZGVkIHBlb3BsZSB3aGVyZSB3ZSB1bmRlcnN0YW5kIGFuZCBzdXBwb3J0IGVhY2ggb3RoZXIuIFdlIGFsc28gd2FudCB0byBmZWVsIGFzIGlmIHdlIGFyZSBub3QgYmVpbmcgZGlzY3JpbWluYXRlZCBhZ2FpbnN0IG9yIG1hcmdpbmFsaXplZC4gQmVsb25naW5nIGlzIHJlYWxseSBpbXBvcnRhbnQgdG8gbWUgcGVyc29uYWxseTogSSBsb3ZlIHdvcmtpbmcgYXMgcGFydCBvZiBhIGRpc3RyaWJ1dGVkIHRlYW0sIGJ1dCBJIGFsc28gcmVhbGx5IGVuam95IHNlZWluZyBwZW9wbGUgaW4gcGVyc29uIGV2ZXJ5IG9uY2UgaW4gYSB3aGlsZS4gSXQgbWFrZXMgbWUgZmVlbCBtb3JlIGNvbm5lY3RlZCB0byB0aGVtLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7SW1wcm92ZW1lbnQuJmx0Oy9zdHJvbmcmZ3Q7IFdlIGFsc28gc2VlayB0byBjb250aW51b3VzbHkgbGVhcm4sIGltcHJvdmUsIGFuZCBncm93IGluIGFyZWFzIHRoYXQgbWF0dGVyIHRvIHVzLCBhcyB3ZWxsIGFzIHRvIG91ciB0ZWFtIG9yIGNvbXBhbnkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtDaG9pY2UuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8gaGF2ZSBjaG9pY2UsIGNvbnRyb2wsIGFuZCBhdXRvbm9teSBvdmVyIGltcG9ydGFudCBwYXJ0cyBvZiBvdXIgbGl2ZXMuIEluIG9uZSBvZiBteSBwcmV2aW91cyByb2xlcywgSSB0b29rIG9uIGEgbG90IG9mIHdvcmsgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLiBCdXQgdWx0aW1hdGVseSwgdGhlIGNvbnRyb2wgSSBoYWQgb3ZlciBteSBkb21haW4gd2FzIGxpbWl0ZWQgZHVlIHRvIG9yZ2FuaXphdGlvbmFsIGlzc3VlcyDigJMgd2hpY2ggbGVkIG1lIHRvIGxlYXZlIHRoZSBjb21wYW55LiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7RXF1YWxpdHkuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8ga25vdyB0aGF0IG91ciBhY2Nlc3MgdG8gaW5mb3JtYXRpb24sIG1vbmV5LCB0aW1lLCBhbmQgb3RoZXIgcmVzb3VyY2VzIGlzIGZhaXIgYW5kIGVxdWFsIGZvciBldmVyeW9uZSDigJMgbm90IGp1c3QgZm9yIG91cnNlbHZlcywgYnV0IGFsc28gZm9yIHRoZSBwZW9wbGUgYXJvdW5kIHVzLiBFdmVyeW9uZeKAmXMgbmVlZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZXF1YWxseSBpbXBvcnRhbnQuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtQcmVkaWN0YWJpbGl0eS4mbHQ7L3N0cm9uZyZndDsgV2UgbG9vayBmb3IgY2VydGFpbnR5LCBzYWZldHksIGFuZCBzdGFiaWxpdHkgaW4gb3VyIGxpdmVzLiBXZSBhbHNvIHdhbnQgZ29hbHMsIHN0cmF0ZWd5LCBhbmQgZGlyZWN0aW9uIHRvIGJlIGNvbnNpc3RlbnQg4oCTIGFuZCB0byBub3QgY2hhbmdlIHRvbyBxdWlja2x5LiBJ4oCZdmUgYmVlbiBsZWFkaW5nIHRlYW1zIGluIGZhc3QtZ3Jvd2luZyBzdGFydHVwcyBmb3IgdGhlIGxhc3QgY291cGxlIG9mIHllYXJzLCBhbmQgd2hlbiB0aGVyZeKAmXMgYSBsb3Qgb2YgY2hhbmdlIGhhcHBlbmluZywgaXTigJlzIGEgY2hhbGxlbmdlIHRvIGluc3RpbGwgcHJlZGljdGFiaWxpdHkgaW4gdGVhbXMuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtTaWduaWZpY2FuY2UuJmx0Oy9zdHJvbmcmZ3Q7IERlZXAgZG93biwgYWxsIG9mIHVzIHNlZWsgbWVhbmluZywgaW1wb3J0YW5jZSwgYW5kIHN0YXR1cy4gV2UgYWxzbyB3YW50IHRvIGJlIGFwcHJlY2lhdGVkIGZvciBvdXIgd29yayBieSBwZW9wbGUgd2hvc2Ugb3BpbmlvbnMgbWVhbiBzb21ldGhpbmcgdG8gdXMuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0lmIG91ciBjb3JlIG5lZWRzIGFyZSB0aHJlYXRlbmVkLCBwZW9wbGUgcmVzb3J0IHRvIGZpZ2h0LW9yLWZsaWdodCBtb2RlcyBvZiByZWFjdGlvbiwgd2hpY2ggYXJlIHZlcnkgc3RyZXNzZnVsLiBUaGUgZmFpbHVyZSB0byBtZWV0IGNvcmUgbmVlZHMgaGFzIGhpZ2ggY29zdHMgZm9yIG9yZ2FuaXphdGlvbnMgYnkgaGFybWluZyBwZW9wbGUgb24gb3VyIHRlYW1zLiBTbyBob3cgY2FuIGVuZ2luZWVyaW5nIG1hbmFnZXJzIHB1dCB0aGUgQklDRVBTIG1vZGVsIGludG8gYWN0aW9uIHRvIGhlbHAgdGhlaXIgdGVhbXMgdGhyaXZlPyZsdDsvcCZndDsKCiZsdDtoMiZndDtVc2luZyB0cnVzdC1iYXNlZCByZWxhdGlvbnNoaXBzIHRvIGhlbHAgZW5naW5lZXJzIGdyb3cmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgZm91bmRhdGlvbiBvZiBiZWluZyBhIGdvb2QgZW5naW5lZXJpbmcgbWFuYWdlciBpcyBnZXR0aW5nIHRvIGtub3cgb3VyIHRlYW1tYXRlcyBhbmQgdW5kZXJzdGFuZGluZyB3aGF0IGlzIGltcG9ydGFudCB0byB0aGVtLiBIZXJlIGFyZSBhIGZldyBwbGFjZXMgdG8gc3RhcnQgYnVpbGRpbmcgdHJ1c3Qgd2l0aGluIHlvdXIgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0FzayBxdWVzdGlvbnMuJmx0Oy9zdHJvbmcmZ3Q7IE9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCB0b29scyBtYW5hZ2VycyBoYXZlIGlzIGFza2luZyBnb29kIHF1ZXN0aW9ucy4gVGhlIGJhc2lzIGZvciBkb2luZyBvdXIgam9icyB3ZWxsIGlzIGxpc3RlbmluZywgb2JzZXJ2aW5nLCB0YWtpbmcgbm90ZSBvZiB3aGF0IG1vdGl2YXRlcyBvdXIgdGVhbW1hdGVzLCBhbmQgcmVhbGx5IGRpZ2dpbmcgaW50byB0aGVpciByZXNwb25zZXMgdG8gb3VyIHF1ZXN0aW9ucy4gSSB1c3VhbGx5IGdhdGhlciBxdWVzdGlvbnMgYmVmb3JlIEkgbWVldCB3aXRoIG15IHRlYW1tYXRlcyBvbmUtb24tb25lLCBzbyBJIGFtIHByZXBhcmVkIGFuZCBJIGNhbiBndWlkZSB0aGUgY29udmVyc2F0aW9uIHRvd2FyZHMgdW5kZXJzdGFuZGluZyB0aGVtIGJldHRlci4gT3ZlciB0aW1lLCBJIGhhdmUgYnVpbHQgYSBraXQgb2Ygb25lLW9uLW9uZSBxdWVzdGlvbnMgdGhhdCBJIHB1bGwgb3V0IHdoZW4gSSBuZWVkIHNvbWUgaW5zcGlyYXRpb24gZm9yIHRoZXNlIGNvbnZlcnNhdGlvbnMuIEFza2luZyBxdWVzdGlvbnMgaGVscHMgdXMgYWRqdXN0IG91ciBsZWFkZXJzaGlwIHN0eWxlIHRvIHRoZSBwZW9wbGUgd2UgYXJlIGxlYWRpbmcuIEl0IGFsc28gZW5zdXJlcyB0aGF0IHRoZXkgZmVlbCB1bmRlcnN0b29kIGFuZCBoZWFyZCwgd2hpY2ggYXJlIHJlYWxseSBpbXBvcnRhbnQgcGlsbGFycyBvZiBpbmNsdXNpb24gYW5kIGJlbG9uZ2luZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0JlIGN1cmlvdXMuJmx0Oy9zdHJvbmcmZ3Q7IFBlb3BsZSBhcmUgZnVsbCBvZiBzdXJwcmlzZXMsIGFuZCBzb21ldGltZXMgb3VyIHRlYW1tYXRlc+KAmSByZWFjdGlvbnMgbWF5IGJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBleHBlY3RlZC4gSSBvbmNlIHJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIGVuZ2luZWVyIG9uIG15IHRlYW0gd2hvIHdhcyBkZWVwbHkgdXBzZXQgYWJvdXQgdGhlIHNwZWNpZmljIHdvcmRpbmcgdXNlZCBpbiBhIHByb2R1Y3QtcmVsZWFzZSBub3RlIHRvIGN1c3RvbWVycy4gQXQgZmlyc3QgSSBkaWQgbm90IHVuZGVyc3RhbmQgdGhlaXIgc3Ryb25nIHJlYWN0aW9uLiBCdXQgd2hlbiB3ZSB0YWxrZWQsIEkgbGVhcm5lZCB0aGUgZW5naW5lZXIgaGFkIGJlZW4gb3ZlcnJ1bGVkIGJ5IHNvbWVvbmUgd2l0aCBtb3JlIHBvd2VyLCBtYWtpbmcgdGhlbSBmZWVsIGhlbHBsZXNzLCBhbmQgdGhyZWF0ZW5pbmcgdGhlaXIgY29yZSBuZWVkIGZvciBjaG9pY2UgYW5kIGVxdWFsaXR5LiZsdDsvcCZndDsKCiZsdDtwJmd0O1doYXQgbWFuYWdlcnMgbWlnaHQgcGVyY2VpdmUgYXMgbm8gYmlnIGRlYWwgY2FuIGJlIGVub3Jtb3VzIHRocmVhdHMgdG8gb3RoZXIgcGVvcGxlLiBDYXNlcyB3aGVyZSB3ZeKAmXJlIHN1cnByaXNlZCBieSBvdXIgdGVhbW1hdGVz4oCZIHJlYWN0aW9ucyBhcmUgZ29vZCBvcHBvcnR1bml0aWVzIHRvIGZvY3VzIG9uIGh1bWFuLWNlbnRyaWMgcmVzcG9uc2VzLCBsaWtlIGdpdmluZyBwZW9wbGUgdGhlIG9wcG9ydHVuaXR5IHRvIHRhbGsgdGhyb3VnaCB0aGVpciBmZWVsaW5ncy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0Nvbm5lY3QgdG8gdGhlIGJpZ2dlciBwaWN0dXJlLiZsdDsvc3Ryb25nJmd0OyBDcmVhdGluZyBhbiBpbXBhY3QgaXMgYSB2ZXJ5IGdvb2QgbW90aXZhdG9yIGZvciBhbGwgb2YgdXMsIHNvIGhlbHBpbmcgZW5naW5lZXJzIHVuZGVyc3RhbmQgaG93IHRoZWlyIHdvcmsgY29ubmVjdHMgdG8gdGhlIGJpZ2dlciBwaWN0dXJlIChob3cgaXQgaGVscHMgdXNlcnMgb3Igc3VwcG9ydHMgb3RoZXIgdGVhbXMpIGlzIGFuIGV4dHJlbWVseSBpbXBvcnRhbnQgYW5kIHN0cmF0ZWdpYyBza2lsbCBmb3IgbWFuYWdlcnMuIFdoaWxlIGdvYWwtc2V0dGluZyBmcmFtZXdvcmtzIGxpa2UgT0tScyBjYW4gaGVscCwgaXQgaXMgYWxzbyBjcnVjaWFsIHRvIGFsaWduIGVuZ2luZWVyaW5nIGluaXRpYXRpdmVzIHdpdGggaGlnaGVyLWxldmVsIGdvYWxzLCBhbmQgY29ubmVjdCB0aGVtIGNsZWFybHkgd2l0aCB1c2VyIHZhbHVlLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7SW52b2x2ZSBlbmdpbmVlcnMgaW4gZGVjaXNpb24gbWFraW5nLiZsdDsvc3Ryb25nJmd0OyBGZWVsaW5nIHRoYXQgZGVjaXNpb25zIGFyZSBmYWlyIGFuZCBlcXVpdGFibGUgaXMgYW4gaW1wb3J0YW50IGNvbXBvbmVudCBvZiB0aGUgQklDRVBTIG1vZGVsLiBXaGVuIHdlIG1ha2UgZGVjaXNpb25zLCBpdCBpcyBoZWxwZnVsIHRvIGFzayBldmVyeW9uZSBmb3IgdGhlaXIgb3BpbmlvbnMgZmlyc3QsIGFuZCB0YWtlIHRoZWlyIG9waW5pb25zIGludG8gYWNjb3VudC4gSXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBnbyB3aXRoIHdoYXQgZXZlcnlvbmUgd2FudHMuIEJ1dCB3ZSBjYW4gc3RpbGwgZG8gYSBnb29kIGpvYiBhdCBjb250ZXh0dWFsaXppbmcgdGhlIGRlY2lzaW9ucyB3ZSBtYWtlLCBhbmQgaGVscGluZyBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IHRoZWlyIGZlZWRiYWNrIHdhcyBjb25zaWRlcmVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7R2l2ZSBmZWVkYmFjayBmb3IgZ3Jvd3RoLiZsdDsvc3Ryb25nJmd0OyBPbmUgb2YgdGhlIGJlc3QgdGhpbmdzIHdlIGdldCB0byBkbyBhcyBlbmdpbmVlcmluZyBtYW5hZ2VycyBpcyBzdXBwb3J0IGVuZ2luZWVyc+KAmSBncm93dGguIEdpdmUgZmVlZGJhY2sgcmVndWxhcmx5IHRvIGhlbHAgdGhlIHBlb3BsZSBvbiB5b3VyIHRlYW0gdW5kZXJzdGFuZCB3aGVyZSB0aGV5IGFyZSBhdCBhbmQgZ3JvdyDigJMgYnkgY291cnNlLWNvcnJlY3Rpbmcgd2hlcmUgbmVlZGVkLCBhcyB3ZWxsIGFzIGJ5IGRvaW5nIG1vcmUgaW4gdGhlIGFyZWFzIGluIHdoaWNoIHRoZXkgYXJlIGFscmVhZHkgZG9pbmcgZ3JlYXQuIE1hbmFnZXJzIG5lZWQgZmVlZGJhY2sgYXMgd2VsbDogaXTigJlzIGltcG9ydGFudCB0byByZWd1bGFybHkgYXNrIHlvdXIgdGVhbSBmb3IgZmVlZGJhY2sgc28geW91IGNhbiBtYWtlIGFkanVzdG1lbnRzLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Q29hY2ggZW5naW5lZXJzLiZsdDsvc3Ryb25nJmd0OyBDb2FjaGluZyBoZWxwcyBwZW9wbGUgZmluZCBhbnN3ZXJzIHRoZW1zZWx2ZXMsIGltcHJvdmVzIHRoZWlyIHByb2JsZW0tc29sdmluZyBhbmQgbGVhZGVyc2hpcCBza2lsbHMsIGFuZCBpbmNyZWFzZXMgbGVhcm5pbmcsIHJlc2lsaWVuY2UsIGFuZCBzZWxmLW1hbmFnZW1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTcG9uc29yIGVuZ2luZWVycy4mbHQ7L3N0cm9uZyZndDsgVGhpbmsgYmFjayBvbiB5b3VyIGNhcmVlciwgYW5kIHdoZXRoZXIgeW91IGhhdmUgaGFkIGEgbWVudG9yIHdobyBjb25uZWN0ZWQgeW91IHdpdGggc29tZW9uZSwgcHV0IHlvdXIgbmFtZSBmb3J3YXJkLCBhbmQgdXNlZCB0aGVpciBpbmZsdWVuY2UgdG8gbWFrZSBhIGRpZmZlcmVuY2UgaW4geW91ciBjYXJlZXIuIEJlIHRoYXQgcGVyc29uIGZvciBzb21lb25lIGVsc2U6IGludmVzdCBpbiB0aGVpciBncm93dGgsIGxpZnQgdGhlbSB1cCwgYW5kIHB1dCB5b3VyIHdlaWdodCBiZWhpbmQgdGhlaXIgc3VjY2Vzcy4gU3VwcG9ydGluZyB5b3VyIHRlYW3igJlzIHN1Y2Nlc3MgY2FuIG1ha2UgYSByZWFsIGRpZmZlcmVuY2UgZm9yIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhpcyBpcyB0aGUgZm91bmRhdGlvbiBvZiBvdXIgd29yayBhcyBlbmdpbmVlcmluZyBtYW5hZ2Vycy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RHJpdmluZyBhIGN1bHR1cmUgb2YgdHJ1c3QgYW5kIGNvbnRpbnVvdXMgaW1wcm92ZW1lbnQgb24gdGVhbXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgbmV4dCBpbXBvcnRhbnQgYnVpbGRpbmcgYmxvY2sgaW4gb3VyIHdvcmsgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgaXMgdGhlIHRlYW0uIEFjY29yZGluZyB0byByZXNlYXJjaCwgaGlnaC1wZXJmb3JtaW5nIHRlYW1zIG5lZWQgdGhlIGZvbGxvd2luZyBlbGVtZW50cy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7UHN5Y2hvbG9naWNhbCBzYWZldHkuJmx0Oy9zdHJvbmcmZ3Q7IFRoaXMgaXMgYWJvdXQgYmVsaWV2aW5nIHRoYXQgd2Ugd2lsbCBub3QgYmUgcmVqZWN0ZWQsIGFuZCBmZWVsaW5nIGZyZWUgdG8gZXhwcmVzcyBvdXIgd29yay1yZWxhdGVkIHRob3VnaHRzIGFuZCBmZWVsaW5ncyB0byB0aGUgcGVvcGxlIGFyb3VuZCB1cy4gSXQgYWxzbyBtZWFucyBiZWxpZXZpbmcgdGhhdCBvdGhlcnMgd29u4oCZdCB0aGluayBsZXNzIG9mIHVzIGlmIHdlIG1ha2UgYSB3ZWxsLWludGVudGlvbmVkIG1pc3Rha2Ugb3IgYXNrIGZvciBoZWxwLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7U3RydWN0dXJlIGFuZCBjbGFyaXR5LiZsdDsvc3Ryb25nJmd0OyBFdmVyeW9uZSBvbiB0aGUgdGVhbSBzaG91bGQgdW5kZXJzdGFuZCBleHBlY3RhdGlvbnMsIGdvYWxzLCBhbmQgYWNjb3VudGFiaWxpdHkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtNZWFuaW5nIGFuZCBpbXBhY3QuJmx0Oy9zdHJvbmcmZ3Q7IEhpZ2gtcGVyZm9ybWluZyB0ZWFtcyBmaW5kIGEgc2Vuc2Ugb2YgcHVycG9zZSBpbiB0aGVpciB3b3JrLCBhbmQga25vdyB0aGF0IHRoZWlyIHdvcmsgaGFzIGFuIGltcGFjdC4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7THVja2lseSBmb3IgbWFuYWdlcnMsIHRoaXMgcmVzZWFyY2ggbmVhdGx5IGFsaWducyB3aXRoIHRoZSBCSUNFUFMgbW9kZWwuIEFsbCBodW1hbiBjb3JlIG5lZWRzIGFyZSByZXByZXNlbnRlZCBhbmQgaGF2ZSBpbXBhY3QgYXQgdGhlIHRlYW0gbGV2ZWwgYXMgd2VsbC4gQnkgdW5kZXJzdGFuZGluZyBhbmQgcmVzcG9uZGluZyB0byBwZW9wbGXigJlzIG1vdGl2YXRpb25zLCBsZWFkZXJzIGNyZWF0ZSB0aGUgYmFzaXMgZm9yIHRlYW1zICB0byBleHByZXNzIHRoZW1zZWx2ZXMg4oCTIGFuZCBwcm92aWRlIHRoZSBzdHJ1Y3R1cmUsIG1lYW5pbmcsIGFuZCBpbXBhY3QgdGhleSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgdHJ1c3QuJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBmaXJzdCBzdGVwIGluIGNyZWF0aW5nIHN0cnVjdHVyZSBpcyBidWlsZGluZyByZWxhdGlvbnNoaXBzLiBGb3Igb3VyIGRpc3RyaWJ1dGVkIHRlYW1zIGF0IENpcmNsZUNJLCB3ZeKAmXZlIGJ1aWx0IGRpZmZlcmVudCBzdHJ1Y3R1cmVzIHRvIGhlbHAgdGVhbW1hdGVzIGRvIHRoYXQsIHN1Y2ggYXMgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucyBhbmQgZW5naW5lZXJpbmcgdGFsa3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTdHJ1Y3R1cmUgYXJvdW5kIGhvdyB3ZSBjb2xsYWJvcmF0ZS4mbHQ7L3N0cm9uZyZndDsgT3VyIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0kgaGFzIGRvdWJsZWQgaW4gc2l6ZSBmb3IgdGhyZWUgeWVhcnMgaW4gYSByb3cuIE92ZXIgdGhpcyB0aW1lLCB3ZeKAmXZlIG1vdmVkIHRvIGEgbW9yZSBzdHJlYW1saW5lZCBlbmdpbmVlcmluZyBkZWxpdmVyeSBwcm9jZXNzIGZvciBhbGwgdGVhbXMuIEJ1dCB3ZSBzdGlsbCBsZWF2ZSBpdCB0byB0aGUgdGVhbXMgdG8gZGVjaWRlIGhvdyB0byBpbXBsZW1lbnQgdCBkYXktdG8tZGF5IHByb2Nlc3NlcywgaW5jbHVkaW5nIGRhaWx5IHN0YW5kdXAgbWVldGluZ3MsIHBsYW5uaW5nIHNlc3Npb25zLCBvciBjb2xsYWJvcmF0aW9uLiBFdmVyeSB0ZWFtIGhhcyBzcGVjaWZpYyBuZWVkcywgYW5kIHRoZXkga25vdyBiZXN0IGhvdyB0byBhZGRyZXNzIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtSZW1vdmUgYmxvY2tlcnMuJmx0Oy9zdHJvbmcmZ3Q7IFN0cnVjdHVyZXMgY2FuIGFsc28gaGVscCBtaXRpZ2F0ZSB0aGUgaW1wYWN0IG9mIGdldHRpbmcgYmxvY2tlZCBhdCB3b3JrLiBXZSBhbGwga25vdyBob3cgZnJ1c3RyYXRpbmcgaXQgaXMgdG8gYmUgc3R1Y2suIFB1dHRpbmcgdXAgcGF0aHdheXMgdG8gaGVscCBwZW9wbGUgZ2V0IHVuYmxvY2tlZCBjYW4gYmUgcmVhbGx5IGltcG9ydGFudCDigJMgZm9yIGV4YW1wbGUsIHNldHRpbmcgdXAgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucywgaW52ZXN0aW5nIGluIHNlbGYtc2VydmUgaW5mb3JtYXRpb24gYWNjZXNzLCBzdXBwb3J0aW5nIGVhY2ggb3RoZXIgYWNyb3NzIHRlYW1zLCBwdXR0aW5nIHVwIGVzY2FsYXRpb24gcGF0aHMgZm9yIHBlb3BsZSB0byBnZXQgaGVscCB3aGVuIHRoZXkgbmVlZCBpdCwgb3IgaGVscGluZyBwZW9wbGUgc3VwcG9ydCBlYWNoIG90aGVyIHRocm91Z2gga25vd2xlZGdlLXNoYXJpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtDb250aW51b3VzbHkgaW1wcm92ZS4mbHQ7L3N0cm9uZyZndDsgV2UgY2FuIHVzZSByZXRyb3NwZWN0aXZlcyB0byBkaXNjdXNzIGFuZCBpbXByb3ZlIGhvdyB3ZSB3b3JrIHRvZ2V0aGVyLiBCbGFtZWxlc3MgcG9zdG1vcnRlbXMgYXJlIGFsc28gYSBncmVhdCB0b29sIHRvIGhlbHAgdW5kZXJzdGFuZCBwcm9ibGVtcyBhbmQgZHJpdmUgdG93YXJkcyBzb2x1dGlvbnMuIENvZGUgcmV2aWV3cywgbWVudG9yaW5nLCBvciBrbm93bGVkZ2Ugc2hhcmluZyBjYW4gaGVscCB0ZWFtIG1lbWJlcnMgbGVhcm4gZnJvbSBlYWNoIG90aGVyLiBUaGUgd2F5IHdlIHRhbGsgYWJvdXQgbGVhcm5pbmcgbWF0dGVycyDigJMgZXNwZWNpYWxseSB0aGUgd2F5IHdlIGRpc2N1c3MgbWlzdGFrZXMuIFRoZXNlIGRlY2lzaW9ucyB3aWxsIGZ1bmRhbWVudGFsbHkgc2hhcGUgdGhlIGN1bHR1cmUgb2Ygb3VyIHRlYW1zLCBhbmQgZGV0ZXJtaW5lIHdoZXRoZXIgcGVvcGxlIGZlZWwgc2FmZSBvciB0aHJlYXRlbmVkIGluIHRoZWlyIGNvcmUgbmVlZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtEcml2ZSB0b3dhcmQgYWxpZ25tZW50LiZsdDsvc3Ryb25nJmd0OyBDb21tdW5pY2F0ZSBzdHJhdGVneSwgZGlyZWN0aW9uLCBhbmQgcmVsZXZhbnQgdGFjdGljYWwgZGV0YWlscyB0byBvdXIgdGVhbXMg4oCTIGFuZCByZW1lbWJlciBpdOKAmXMgYWxtb3N0IGltcG9zc2libGUgdG8gb3Zlci1jb21tdW5pY2F0ZSB0aGVzZSBkZXRhaWxzLiBBbHdheXMgcmVwZWF0IHdoYXTigJlzIGltcG9ydGFudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBlbmdpbmVlcmluZyBtYW5hZ2Vycywgd2UgYXJlIGxpa2UgbW9ydGFyOiBXZSBjb25uZWN0IHN0cnVjdHVyZXMsIHRlYW1zLCBhbmQgcGVvcGxlLiBXZSBob2xkIHRoZW0gdG9nZXRoZXIsIGJ1dCBhbHNvIGlkZW50aWZ5IGFuZCBmaWxsIGdhcHMgYXMgbmVlZGVkLiBIYW5kbGluZyBhbWJpZ3VpdHkgaXMgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgZGlmZmljdWx0IGFzcGVjdHMgb2YgZW5naW5lZXJpbmcgbWFuYWdlbWVudC4uIEZvciBhIGxvdCBvZiB3b3JrIGluIG91ciBmaWVsZCwgdGhlcmUgYXJlIG5vIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLCBsZXQgYWxvbmUgcmVzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T3VyIHdvcmsgaXNu4oCZdCBzbyBtdWNoIGFib3V0IHVzOyBpdOKAmXMgYWJvdXQgdGhlIHBlb3BsZSwgdGVhbXMsIGFuZCBvcmdhbml6YXRpb25zIHdlIHN1cHBvcnQuIFdlIGJ1aWxkIHN0cnVjdHVyZXMgdG8gaGVscCBvdGhlcnMgc2hpbmUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1N1cHBvcnRpbmcgb3JnYW5pemF0aW9uYWwgY2hhbmdlJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7TGFzdGx5LCBjcmVhdGluZyBlbnZpcm9ubWVudHMgaW4gd2hpY2ggZW5naW5lZXJzIGNhbiB0aHJpdmUgaXMgYWJvdXQgc3VwcG9ydGluZyBvdXIgb3JnYW5pemF0aW9uLiBXZSBuZWVkIHRvIHVzZSBvdXIgcG93ZXIgYXMgbWFuYWdlcnMgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLCBubyBtYXR0ZXIgdGhlIHNpemUgb2Ygb3VyIGJ1c2luZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtBZHZvY2F0ZSBmb3IgY2hhbmdlLiZsdDsvc3Ryb25nJmd0OyBUbyBiZSBlZmZlY3RpdmUgYXMgbWFuYWdlcnMsIHdlIG5lZWQgdG8gcHVzaCBmb3Igb3JnYW5pemF0aW9uYWwgY2hhbmdlIHRvIGltcHJvdmUgdGhlIGxhcmdlciBzdHJ1Y3R1cmVzIGFyb3VuZCB1cy4gRm9yIGV4YW1wbGUsIHdlIG1heSBuZWVkIHRvIGFkdm9jYXRlIGZvciBtb3JlIGNsYXJpdHkgYXJvdW5kIGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMsIGhhdmUgY29udmVyc2F0aW9ucyBhYm91dCB3aGF0IGVuZ2luZWVyaW5nIG1hbmFnZW1lbnQgc2hvdWxkIGJlIGxpa2UgaW4gb3VyIGNvbXBhbnksIGFuZCBkZXRlcm1pbmUgcmVxdWlyZW1lbnRzIGZvciBoaXJpbmcgZW5naW5lZXJpbmcgbWFuYWdlcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtNYW5hZ2UgdXAuJmx0Oy9zdHJvbmcmZ3Q7IE1hbmFnaW5nIG91ciBvd24gbWFuYWdlcnMgaXMgYSB1c2VmdWwgYnV0IGRpZmZpY3VsdCBza2lsbC4gRHJpdmluZyBvcmdhbml6YXRpb25hbCBjaGFuZ2UgYWxzbyBtZWFucyBtYWtpbmcgc3VyZSB0aGF0IG91ciBlbmdpbmVlcnPigJkgY29uY2VybnMgYXJlIGhlYXJkIGF0IHRoZSBoaWdoZXN0IGxldmVscywgYW5kIHRoYXQgd2UgdXNlIG91ciBwb3dlciB0byBtYWtlIHN1cmUgZW5naW5lZXJzIGhhdmUgYSB2b2ljZSBpbiB0aGUgcmVzdCBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgZnJhbWV3b3JrcyBhbmQgc3RhbmRhcmRzLiZsdDsvc3Ryb25nJmd0OyBXaGlsZSBpdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIG1ha2Ugcm9vbSBmb3IgaW5kaXZpZHVhbCBuZWVkcywgc3RydWN0dXJlcyBhbmQgZnJhbWV3b3JrcyBmb3IgbWFuYWdlcnMgaGVscCB1cyBob2xkIGVhY2ggb3RoZXIgYWNjb3VudGFibGUuIFRoZXkgYWxzbyAgaGVscCBsZXZlbCB0aGUgcGxheWluZyBmaWVsZCBhbmQgYnVpbGQgaW4gZXF1YWxpdHkgZm9yIHRoZSBwZW9wbGUgb24gb3VyIHRlYW1zLiBPbiBteSBjdXJyZW50IHRlYW0sIGV2ZXJ5IHF1YXJ0ZXIgd2UgcGljayBzb21lIGhpZ2gtcHJpb3JpdHkgcHJvamVjdHMgIHRvIGltcHJvdmUgaG93IHdlIHdvcmsgYXMgYW4gb3JnYW5pemF0aW9uLiBNb3N0IHJlY2VudGx5LCB3ZeKAmXZlIHdvcmtlZCBvbiBvdXIgaGlyaW5nIHByb2Nlc3MgYW5kIGluY2lkZW50IHJlbWVkaWF0aW9uOyBsYXN0IHllYXIsIHdlIGRldmVsb3BlZCBhbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvd2h5LXdlLXJlLWRlc2lnbmVkLW91ci1lbmdpbmVlcmluZy1jYXJlZXItcGF0aHMtYXQtY2lyY2xlY2kvJnF1b3Q7Jmd0O2ludGVybmFsIGNhcmVlciBncm93dGggZnJhbWV3b3JrIGZvciBlbmdpbmVlcnMmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtHcm93aW5nIGFzIGEgbGVhZGVyJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7QmVpbmcgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgaXNu4oCZdCBhbHdheXMgYSBzdHJhaWdodGZvcndhcmQgcGF0aDsgYSBsb3QgZGVwZW5kcyBvbiB3aGVyZSB3ZSBhcmUgYXQgaW4gb3VyIGNhcmVlcnMgYW5kIHdoZXJlIHdlIGFyZSBsb29raW5nIHRvIGdvLCBhcyB3ZWxsIGFzIHRoZSBncm93dGggc3RhZ2UsIHNpemUsIGFuZCBuZWVkcyBvZiBvdXIgb3JnYW5pemF0aW9ucy4gSW4gb3VyIGRhaWx5IHdvcmssIHdlIGhvbGQgdmFzdCBhbW91bnRzIG9mIHVuY2VydGFpbnR5IHdoaWxlIGFsc28gdHJ5aW5nIHRvIG1ha2UgcHJvZ3Jlc3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QW4gb3ZlcmFyY2hpbmcgdGhlbWUgaW4gbXkgd29yayBpbiBlbmdpbmVlcmluZyBtYW5hZ2VtZW50ICBoYXMgYmVlbiBncm93dGggYW5kIGltcHJvdmVtZW50LiBXZSByYXJlbHkgZGVhbCB3aXRoIGdyZWVuZmllbGQgcHJvamVjdHMgb3IgYXJlIGFibGUgdG8gYnVpbGQgYSB0ZWFtIG9yIGRlcGFydG1lbnQgZnJvbSBzY3JhdGNoLiBFdmVuIHdoZW4gd2UgZG8sIHdlIGJ1aWxkIG9uIGV4aXN0aW5nIHN0cnVjdHVyZXMgaW4gb3VyIG9yZ2FuaXphdGlvbi4gSSBiZWxpZXZlIG91ciBzdXBwb3J0aW5nIHJvbGUgbGFyZ2VseSBtZWFucyBoZWxwaW5nIGVuZ2luZWVycyBncm93LCBzdXBwb3J0aW5nIHRlYW1zIGF0IGNvbnRpbnVvdXNseSBsZWFybmluZywgYW5kIGhlbHBpbmcgb3JnYW5pemF0aW9ucyBiZWNvbWUgYmV0dGVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVyaW5nIG1hbmFnZXJzLCB3ZSBmcmVxdWVudGx5IGZhY2UgcXVlc3Rpb25zIHRoYXQgZG9u4oCZdCBjbGVhciByaWdodCBvciB3cm9uZyBhbnN3ZXJzLiBNYW55IHllYXJzIGFnbywgbXkgbGVhZGVyc2hpcCBjb2FjaCBlbmNvdXJhZ2VkIG1lIHRvIHVzZSB0aG9zZSBraW5kcyBvZiB1bmNlcnRhaW4gc2l0dWF0aW9ucyB0byBhc2sgbXlzZWxmLCDigJxXaGF0IGtpbmQgb2YgbGVhZGVyIGRvIEkgd2FudCB0byBiZT/igJ0mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJIHdhbnQgdG8gbGVhdmUgdGhlIGxhc3QgY2FsbCB0byBncm93dGggYW5kIGltcHJvdmVtZW50IHdpdGggeW91IChhbmQgbWUpOiBObyBtYXR0ZXIgd2hhdCB5b3VyIHJvbGUgb3IgY29tcGFueSBpcyBsaWtlLCB3b3JrIG9uIHNoYXBpbmcgeW91ciBhcHByb2FjaCB0byBlbmdpbmVlcmluZyBtYW5hZ2VtZW50LiBHZXQgdG8ga25vdyB0aGUgcGVvcGxlIHRoYXQgeW91IHdvcmsgd2l0aCwgYW5kIHVzZSBmZWVkYmFjayB0byBoZWxwIHRoZW0gY291cnNlLWNvcnJlY3QuIEJ1aWxkIHRlYW1zIHRoYXQgYXJlIHBzeWNob2xvZ2ljYWxseSBzYWZlIHBsYWNlcywgd2hlcmUgcGVvcGxlIGZpbmQgbWVhbmluZyBpbiBhIHNoYXJlZCBwdXJwb3NlLiBBbmQgdXNlIHlvdXIgcG93ZXIgYW5kIHByaXZpbGVnZSB0byBkcml2ZSBjaGFuZ2UgaW4geW91ciBvcmdhbml6YXRpb24uIE1ha2UgcGVvcGxlIHRoZSBjZW50ZXIgYW5kIGZvY3VzIG9mIHlvdXIgd29yaywgYW5kIGJ1aWxkIG9uIHRoYXQgZm91bmRhdGlvbiB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhleSBjYW4gdGhyaXZlLiAgQWx3YXlzIHB1c2ggdG8gY29udGludW91c2x5IGltcHJvdmUuIExlYWQgd2l0aCBodW1ibGVuZXNzLCBlbXBhdGh5LCBhbmQgbG90cyBvZiBjdXJpb3NpdHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2hhdCBraW5kIG9mIGxlYWRlciBkbyB5b3Ugd2FudCB0byBiZT8mbHQ7L3AmZ3Q7CgombHQ7aHIgLyZndDsKJmx0O3AmZ3Q7SWYgeW914oCZcmUgY3VyaW91cyBhYm91dCBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IGF0IENpcmNsZUNJIGFuZCB3b3JraW5nIHdpdGggdXM6IGpvaW4gdXMhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9ib2FyZHMuZ3JlZW5ob3VzZS5pby9jaXJjbGVjaSZxdW90OyZndDtXZeKAmXJlIGhpcmluZyBlbmdpbmVlcmluZyBtYW5hZ2VycyZsdDsvYSZndDsuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5CdWlsZGluZyBhbmQgZGVwbG95aW5nIEZsdXR0ZXIgYXBwcyB3aXRoIEZhc3RsYW5lPC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RlcGxveS1mbHV0dGVyLWFuZHJvaWQvPC9saW5rPgogICAgICAgIDxwdWJEYXRlPldlZCwgMjkgQXByIDIwMjAgMTA6MDA6MDAgLTA3MDA8L3B1YkRhdGU+CiAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9InRydWUiPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZGVwbG95LWZsdXR0ZXItYW5kcm9pZC88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5HYWJyaWVsIFNpbW1lcjwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvJnF1b3Q7Jmd0O0ZsdXR0ZXImbHQ7L2EmZ3Q7IGlzIGEgdG9vbGtpdCBwcm92aWRlZCBieSBHb29nbGUgZm9yIGJ1aWxkaW5nIGNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9ucywgaW5jbHVkaW5nIEFuZHJvaWQsIGlPUywgYW5kIHdlYiBhcHBzLiBBcyBtb3JlIGFwcHMgYXJlIHdyaXR0ZW4gdXNpbmcgaXQgYW5kIERhcnQgKHRoZSB1bmRlcmx5aW5nIGxhbmd1YWdlKSwgaXTigJlzIGJlY29taW5nIG1vcmUgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyBkZXZlbG9wZXJzIGNhbiBwYWNrYWdlIGFuZCBkZWxpdmVyIHRoZWlyIGNvZGUgdG8gdGhlaXIgdXNlcnMuIExldmVyYWdpbmcgQ2lyY2xlQ0kgYW5kIEZhc3RsYW5lLCB0aGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcHJvY2VzcyB0aGF0IGNhbiBiZSBhdXRvbWF0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbGluZyBGbHV0dGVyIGFuZCBjcmVhdGluZyB5b3VyIGZpcnN0IGFwcCBjYW4gYmUgZG9uZSBieSBmb2xsb3dpbmcgdGhlc2UgZ3VpZGVzOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvZG9jcy9nZXQtc3RhcnRlZC9pbnN0YWxsJnF1b3Q7Jmd0O0luc3RhbGwmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2ZsdXR0ZXIuZGV2L2RvY3MvZ2V0LXN0YXJ0ZWQvY29kZWxhYiZxdW90OyZndDtXcml0ZSB5b3VyIGZpcnN0IGFwcCZsdDsvYSZndDsuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBkZWZhdWx0IOKAnGhlbGxvIHdvcmxk4oCdIGFwcCB3aWxsIHN1ZmZpY2UuIFdlIHdvbuKAmXQgYmUgZGVhbGluZyBtdWNoIHdpdGggdGhlIGFwcGxpY2F0aW9uIGl0c2VsZi4gUHVzaCBpdCB0byBhIHJlcG9zaXRvcnkgb24gR2l0SHViLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Vuc3VyZSB0aGF0IHlvdSBhcmUgc2V0IHVwIHRvIHB1Ymxpc2ggYXBwcyB1c2luZyBHb29nbGUgUGxheSBvciB0aGUgQXBwbGUgQXBwIFN0b3JlIC0gc3RlcHMgZm9yIGVhY2ggd2lsbCB2YXJ5LCBzbyBiZSBzdXJlIHRvIGZvbGxvdyB0aGUgc3RlcHMgb3V0bGluZWQgZm9yIHRoZSByZXNwZWN0aXZlIHByb3ZpZGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBbmRyb2lkJmx0Oy9oMiZndDsKCiZsdDtwJmd0O1doZW4gcHVibGlzaGluZyBBbmRyb2lkIGFwcHMsIHRoZXJlIGFyZSBhIGZldyByZXF1aXJlbWVudHMgdG8gc2F0aXNmeSBiZWZvcmUgaW1wbGVtZW50aW5nIEZhc3RsYW5lLiBBbiDigJx1cGxvYWQga2V54oCdIGlzIHJlcXVpcmVkIHNvIHRoYXQgR29vZ2xlIGNhbiB2ZXJpZnkgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUgYXBwIGJlZm9yZSBhY2NlcHRpbmcgaXQuIFN0ZXBzIGZvciBzZXR0aW5nIHRoaXMgdXAgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9mbHV0dGVyLmRldi9kb2NzL2RlcGxveW1lbnQvYW5kcm9pZCZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oy4gSXTigJlzIHJlY29tbWVuZGVkIHRvIHVzZSBBcHBCdW5kbGVzIHdoZW4gYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBhcyBpdCBhbGxvd3MgR29vZ2xlIHRvIGJ1aWxkIGluZGl2aWR1YWwgQVBLcyBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyB3aGlsZSBrZWVwaW5nIGZpbGVzaXplIGRvd24uIFRha2Ugbm90ZSBvZiB3aGVyZSB5b3Ugc2F2ZSB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5qa3MmbHQ7L2NvZGUmZ3Q7IGZpbGUuIFdoaWxlIGl0IGNhbiBsaXZlIGluIHlvdXIgaG9tZSBkaXJlY3RvcnksIGhhdmluZyBpdCBzYXZlZCB0byBhIGdpdC1pZ25vcmVkIGRpcmVjdG9yeSBpbiB5b3VyIHByb2plY3Qgd2lsbCBjb21lIGluIGhhbmR5IHdoZW4gY29uZmlndXJpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1R3byB0aGluZ3MgZnJvbSB0aGlzIGd1aWRlIHdpbGwgbmVlZCB0byBiZSBhZGRlZCB0byBDaXJjbGVDSSBhcyAmbHQ7YSBocmVmPSZxdW90Oy9kb2NzLzIuMC9lbnYtdmFycy8mcXVvdDsmZ3Q7ZW52aW9ybm1lbnQgdmFyaWFibGVzJmx0Oy9hJmd0OzogdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlIGFuZCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7a2V5LmprcyZsdDsvY29kZSZndDsgZmlsZS4gVGhpcyB3aWxsIGFsbG93IHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBzaWduIHRoZSBhcHBsaWNhdGlvbi4gU2luY2Ugb25lIGZpbGUgcmVxdWlyZXMgbmV3bGluZXMgdG8gYmUgcHJlc2VudCwgYW5kIGFub3RoZXIgaXMgYSBiaW5hcnkgZmlsZSwgaXTigJlzIHJlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgYmFzZTY0LWVuY29kZWQgcHJpb3IgdG8gYWRkaW5nIHRoZW0gYXMgZW52aW9ybm1lbnQgdmFyaWFibGVzIHRvIHByZXNlcnZlIHRoZSBkYXRhLiZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBjYW4gZW5jb2RlIHRoZW0gYnkgcnVpbm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2F0ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7IHwgYmFzZTY0IC13IDAgIyAtdyAwIHdpbGwgZW5zdXJlIG5vIG5ld2xpbmVzIGFyZSBwcmVzZW50LgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBmaWxlcyBjYW4gdGhlbiBiZSByZS1hZGRlZCBkdXJpbmcgdGhlIGpvYiB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2VjaG8gJnF1b3Q7JEVOVl9WQVJJQUJMRV9OQU1FJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIGFsc28gd2FudCB0byBzZXQgdXAgYSBGYXN0bGFuZSBzZXJ2aWNlIGFjY291bnQgd2hpbGUgY3JlYXRpbmcgeW91ciBBbmRyb2lkIHNldHVwLiBZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5mYXN0bGFuZS50b29scy9nZXR0aW5nLXN0YXJ0ZWQvYW5kcm9pZC9zZXR1cC8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuIEJlIHN1cmUgdG8ga2VlcCB5b3VyIFNlcnZpY2UgQWNjb3VudCBKU09OIGZpbGUgaGFuZHkuIFdl4oCZbGwgYmUgYWRkaW5nIHRoYXQgdG8gdGhlIHBpcGVsaW5lIHNob3J0bHkuIEFsc28gbm90ZSB0aGF0IGNvbW1hbmRzIHNob3VsZCBiZSBydW4gZnJvbSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZCZsdDsvY29kZSZndDsgZGlyZWN0b3J5IHVuZGVyIHlvdXIgRmx1dHRlciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IHJlcXVpcmVkIGJ5IEZhc3RsYW5lIGNhbiBiZSBkb25lIGJ5IGFkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IEpTT04gZmlsZSBjb250ZW50cyBhcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IGVudmlvcm5tZW50IHZhcmlhYmxlLiBUaGlzIGlzIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1NVUFBMWV9KU09OX0tFWSZsdDsvY29kZSZndDsgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgYSBmaWxlIHBhdGggdG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0Zhc3RsYW5lJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05vdyB0aGF0IG91ciBlbnZpb3JubWVudCB2YXJpYWJsZXMgYXJlIGluIHBsYWNlIGFuZCB3ZSBjYW4gYnVpbGQgYSBzaWduZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LmFhYiZsdDsvY29kZSZndDsgZmlsZSB1c2luZyBGbHV0dGVyLCBpdOKAmXMgdGltZSB0byB0ZWxsIEZhc3RsYW5lIGhvdyB0byBkbyB0aGlzIGZvciB1cy4gV2XigJlsbCBzdGFydCB3aXRoIEFuZHJvaWQuIE9wZW5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZC9mYXN0bGFuZS9GYXN0ZmlsZSZsdDsvY29kZSZndDsgd2lsbCByZXZlYWwgc29tZSBkZWZhdWx0cyBmb3IgYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBidXQgdGhleSB3b27igJl0IHdvcmsgZm9yIG91ciB1c2UgY2FzZS4gV2XigJlyZSBidWlsZGluZyB3aXRoIEZsdXR0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rmlyc3QsIGxldOKAmXMgZGVmaW5lIGEgbmV3IOKAnGxhbmXigJ0uIFRoaXMgaXMgYSBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgRmFzdGxhbmUgd2lsbCBleGVjdXRlIHdoZW4gY2FsbGVkLiBGb3Igbm93LCB3ZeKAmWxsIGJlIHB1c2hpbmcgb3VyIGFwcCB0byB0aGUg4oCcYmV0YeKAnSBjaGFubmVsLCBub3QgdG8gcHJvZHVjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwoKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgaXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIGxhbmUuIE5leHQsIHdl4oCZbGwgd2FudCB0byBncmFiIGEgYnVpbGQgbnVtYmVyIHdoaWNoIGlzIGFuIGluY3JlbWVudGluZyBudW1iZXIgdXNlZCBhcyBhIHJlZmVyZW5jZSBmb3IgdGhlIHZlcnNpb24gb2YgdGhlIGFwcCAod2hpY2ggZGlmZmVycyBmcm9tIHRoZSB1c2VyLWZhY2luZyBzZW12ZXIpLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHRvIHRoZSBsYW5lOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ICBidWlsZF9udW1iZXIgPSBudW1iZXJfb2ZfY29tbWl0cygpCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgZW5zdXJlcyB0aGF0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZF9udW1iZXImbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0aGF0IGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBHaXQgcmVwb3NpdG9yeS4gVGhpcyBjYW4gYWxzbyBiZSBtYW51YWxseSBpbmNyZW1lbnRlZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVic3BlYy55YW1sJmx0Oy9jb2RlJmd0OyBmaWxlIHRoYXQgRmx1dHRlciB1c2VzIHRvIGJ1aWxkIHRoZSBwYWNrYWdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdl4oCZbGwgZG8gdGhlIGJ1aWxkaW5nLiBXZSBuZWVkIHRvIGdvIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5LCBydW4gYSBmZXcgc2hlbGwgY29tbWFuZHMgdG8gZmV0Y2ggb3VyIHBhY2thZ2VzLCBjbGVhbiB0aGUgcHJldmlvdXMgYnVpbGQgKGlmIGF2YWlsYWJsZSksIHRoZW4gYnVpbGQgdGhlIGFwcGJ1bmRsZSB3aXRoIG91ciBidWlsZCBudW1iZXIuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIERpci5jaGRpciAmcXVvdDsuLi8uLiZxdW90OyBkbwogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7cGFja2FnZXMmcXVvdDssICZxdW90O2dldCZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2NsZWFuJnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7YnVpbGQmcXVvdDssICZxdW90O2FwcGJ1bmRsZSZxdW90OywgJnF1b3Q7LS1idWlsZC1udW1iZXI9I3tidWlsZF9udW1iZXJ9JnF1b3Q7KQogIGVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtGaW5hbGx5LCB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYXBwIHN0b3JlIG9uIHRoZSBiZXRhIGNoYW5uZWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIHVwbG9hZF90b19wbGF5X3N0b3JlKHRyYWNrOiAnYmV0YScsIGFhYjogJy4uL2J1aWxkL2FwcC9vdXRwdXRzL2J1bmRsZS9yZWxlYXNlL2FwcC5hYWInKQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGxhbmUgd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwogIGJ1aWxkX251bWJlciA9IG51bWJlcl9vZl9jb21taXRzKCkKICBEaXIuY2hkaXIgJnF1b3Q7Li4vLi4mcXVvdDsgZG8KICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O3BhY2thZ2VzJnF1b3Q7LCAmcXVvdDtnZXQmcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtjbGVhbiZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2J1aWxkJnF1b3Q7LCAmcXVvdDthcHBidW5kbGUmcXVvdDssICZxdW90Oy0tYnVpbGQtbnVtYmVyPSN7YnVpbGRfbnVtYmVyfSZxdW90OykKICBlbmQKICB1cGxvYWRfdG9fcGxheV9zdG9yZSh0cmFjazogJ2JldGEnLCBhYWI6ICcuLi9idWlsZC9hcHAvb3V0cHV0cy9idW5kbGUvcmVsZWFzZS9hcHAuYWFiJykKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dvIGFoZWFkIGFuZCBzYXZlIHRoZSBmaWxlLCBhbmQgdGhlbiBydW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZmFzdGxhbmUgYmV0YSZsdDsvY29kZSZndDsuIEl0IHdpbGwgcnVuIHRocm91Z2ggdGhlIHN0ZXBzLCBidWlsZGluZyB0aGUgYXBwIGFuZCBwdXNoaW5nIHRoZSBhcHBsaWNhdGlvbiBmb3IgeW91LiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgd2XigJlsbCBkbyB0aGUgc2FtZSBmb3IgaU9TLCBidXQgcmVwbGFjaW5nIHNvbWUgb2YgdGhlIGNvbW1hbmRzIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBpT1MgY29tbWFuZHMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lvcy9GYXN0bGFuZSZsdDsvY29kZSZndDsgZGlyZWN0b3J5LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZGVzYyAmcXVvdDtEZXBsb3kgYSBuZXcgYnVpbGQgdG8gVGVzdGZsaWdodCZxdW90OwpsYW5lIDpiZXRhIGRvCiAgRGlyLmNoZGlyICZxdW90Oy4uLy4uJnF1b3Q7IGRvCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtwYWNrYWdlcyZxdW90OywgJnF1b3Q7Z2V0JnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7Y2xlYW4mcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtidWlsZCZxdW90OywgJnF1b3Q7aW9zJnF1b3Q7LCAmcXVvdDstLXJlbGVhc2UmcXVvdDssICZxdW90Oy0tbm8tY29kZXNpZ24mcXVvdDspCiAgZW5kCiAgYnVpbGRfaW9zX2FwcChzY2hlbWU6ICZxdW90O015QXBwJnF1b3Q7KQogIHVwbG9hZF90b190ZXN0ZmxpZ2h0CmVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhcHAgaXMgYnVpbHQgdHdpY2UuIFRoZSBmaXJzdCBidWlsZCBidWlsZHMgYWdhaW5zdCB0aGUgbGF0ZXN0IEZsdXR0ZXIgdG9vbGNoYWluLCB3aGlsZSB0aGUgc2Vjb25kIGJ1aWxkIGJ1aWxkcyB0aGUgYWN0dWFsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5pcGEmbHQ7L2NvZGUmZ3Q7IGZpbGUgdGhhdCB3aWxsIGJlIHVwbG9hZGVkIHRvIFRlc3RmbGlnaHQuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O05vdywgd2l0aCBDaXJjbGVDSSZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gcGxhY2UsIGl04oCZcyB0aW1lIHRvIGdldCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB3cml0dGVuIHNvIHRoYXQgYSBwdXNoIHRvIGEgYnJhbmNoIGlzIHRyYW5zbGF0ZWQgdG8gYSBuZXcgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7aU9TJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0ZvciBkZXBsb3lpbmcgd2l0aCBpT1MsIENpcmNsZUNJIGFscmVhZHkgaGFzIGRvY3MgdG8gY292ZXIgdGhpcyEgU3RlcHMgZm9yIHNldHRpbmcgdXAgRmFzdGxhbmUgZGVwbG95bWVudCB3aXRoIEZsdXR0ZXIgaXMgc2ltaWxhciB0byB0aGUgc3RlcHMgb3V0bGluZWQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvaW9zLWNvZGVzaWduaW5nLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OyBhbmQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZGVwbG95aW5nLWlvcy8jYXBwLXN0b3JlLWNvbm5lY3QmcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0FuZHJvaWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7V2hlbiBpdCBjb21lcyB0byB0aGUgRG9ja2VyIGltYWdlIHRvIHBpY2ssIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gRWl0aGVyIHlvdSBjYW4gYnVpbGQgYW5kIHB1c2ggdGhlIERvY2tlciBpbWFnZSB1c2VkIGJ5IHRoZSBGbHV0dGVyIHByb2plY3QgZm91bmQgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2Jsb2IvbWFzdGVyL2Rldi9jaS9kb2NrZXJfbGludXgvRG9ja2VyZmlsZSZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oywgb3IgeW91IGNhbiBwdWxsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dtZW1zdHIvZmx1dHRlci1mYXN0bGFuZTpsYXRlc3QmbHQ7L2NvZGUmZ3Q7LCB3aGljaCBpcyBidWlsdCBvbiB0b3Agb2YgYW4gZXhpc3RpbmcgRmx1dHRlciBEb2NrZXIgaW1hZ2UgYW5kIGluc3RhbGxzIEZhc3RsYW5lIGFsb25nc2lkZSBpdCwgYXZvaWRpbmcgYWRkaXRpb25hbCBvdmVyaGVhZCBvZiBpbnN0YWxsaW5nIGl0IGR1cmluZyBydW50aW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28gZW5zdXJlIHRoYXQgdGhlIGVudmlvcm5tZW50IHZhcmlhYmxlcyBtZW50aW9uZWQgZWFybGllciBhcmUgYWRkZWQgdG8geW91ciBwcm9qZWN0LiBOYW1lbHk6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQTEFZX1NUT1JFX1VQTE9BRF9LRVkmbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtrZXkuamtzJmx0Oy9jb2RlJmd0OyBmaWxlJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7UExBWV9TVE9SRV9VUExPQURfS0VZX0lORk8mbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCBmaWxlIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIGFuZCBvdGhlciBpbmZvIHJlZ2FyZGluZyB0aGUgdXBsb2FkIHNpZ25pbmcga2V5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IC0gWW91ciBHb29nbGUgU2VydmljZSBBY2NvdW50IEpTT04gc3RyaW5nIGZvciBhdXRoZW50aWNhdGlvbiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtJbiB5b3VyIHByb2plY3RzIHJvb3QsIGFkZCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLCBhbmQgaW4gdGhhdCBmb2xkZXIgYWRkIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y2lyY2xlY2kueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLiBBZGQgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSBuZXdseSBjcmVhdGVkIGZpbGU6Jmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7JwogIAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgc25pcHBldCBhYm92ZSBkZWZpbmVzIGFuIGV4ZWN1dG9yIHdlIGNhbiByZXVzZSBsYXRlciBpbiBvdXIgY29uZmlndXJhdGlvbiB0aGFua3MgdG8gdGhlIHVzZSBvZiByZXVzYWJsZSBjb25maWd1cmF0aW9uIGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYnMmbHQ7L2EmZ3Q7IGluIENpcmNsZUNJIDIuMS4gSXQgYWxzbyBpbmNsdWRlcyBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBlbnN1cmUgSmF2YSBkb2VzbuKAmXQgY29uc3VtZSBhbGwgb2Ygb3VyIG1lbW9yeSB3aGlsZSBidWlsZGluZyB0aGUgYXBwLiBOZXh0LCB3ZeKAmWxsIGRlZmluZSB0aGUgam9iIHdlIHdhbnQgdG8gcnVuIHRoZSBjb21tYW5kcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2pvYnM6CiAgYmV0YV9kZXBsb3k6CiAgICBleGVjdXRvcjogYW5kcm9pZC1mbHV0dGVyCiAgICBzdGVwczoKICAgICAgLSBjaGVja291dAogICAgICAtIHJ1bjogZWNobyAmcXVvdDskUExBWV9TVE9SRV9VUExPQURfS0VZJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGtleS5qa3MKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWV9JTkZPJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGFuZHJvaWQva2V5LnByb3BlcnRpZXMKICAgICAgLSBydW46IGNkIGFuZHJvaWQgJmFtcDthbXA7JmFtcDthbXA7IGZhc3RsYW5lIGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgd2XigJlsbCBkZWZpbmUgb3VyIHdvcmtmbG93IHdoaWNoIHdpbGwgb25seSBydW4gdGhlIGpvYiB3aGVuIHRoZSBuZXcgY29kZSBpcyBwdXNoZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2JldGEmbHQ7L2NvZGUmZ3Q7IGJyYW5jaC4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3dvcmtmbG93czoKICBkZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGJldGFfZGVwbG95OgogICAgICAgICAgZmlsdGVyczoKICAgICAgICAgICAgYnJhbmNoZXM6CiAgICAgICAgICAgICAgb25seTogYmV0YQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7Jwpqb2JzOgogIGJldGFfZGVwbG95OgogICAgZXhlY3V0b3I6IGFuZHJvaWQtZmx1dHRlcgogICAgc3RlcHM6CiAgICAgIC0gY2hlY2tvdXQKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWSZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBrZXkuamtzCiAgICAgIC0gcnVuOiBlY2hvICZxdW90OyRQTEFZX1NUT1JFX1VQTE9BRF9LRVlfSU5GTyZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBhbmRyb2lkL2tleS5wcm9wZXJ0aWVzCiAgICAgIC0gcnVuOiBjZCBhbmRyb2lkICZhbXA7YW1wOyZhbXA7YW1wOyBmYXN0bGFuZSBiZXRhCgp3b3JrZmxvd3M6CiAgZGVwbG95OgogICAgam9iczoKICAgICAgLSBiZXRhX2RlcGxveToKICAgICAgICAgIGZpbHRlcnM6CiAgICAgICAgICAgIGJyYW5jaGVzOgogICAgICAgICAgICAgIG9ubHk6IGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvcHJvamVjdHMvJnF1b3Q7Jmd0O1NldCB1cCB5b3VyIHByb2plY3Qgb24gQ2lyY2xlQ0kmbHQ7L2EmZ3Q7LiBPbmNlIHlvdSBjbGljayAmbHQ7c3Ryb25nJmd0O1NldCBVcCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7LCB5b3Ugd2lsbCBiZSBicm91Z2h0IHRvIGEgdGV4dCBlZGl0b3IgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBjb3B5IGluIHRoZSBjb25maWcgZnJvbSBhYm92ZS4gQ2xpY2sgJmx0O3N0cm9uZyZndDtTdGFydCBCdWlsZGluZyZsdDsvc3Ryb25nJmd0Oy4gTm93IGV2ZXJ5IG5ldyBjb21taXQgdG8gdGhlIGJldGEgYnJhbmNoIHdpbGwgcmVzdWx0IGluIGEgZGVwbG95LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIGFuIEV4cHJlc3MgR3JhcGhRTCBzZXJ2ZXIgdG8gSGVyb2t1PC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1hbi1leHByZXNzLWdyYXBocWwtc2VydmVyLXRvLWhlcm9rdS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VHVlLCAyOCBBcHIgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtYW4tZXhwcmVzcy1ncmFwaHFsLXNlcnZlci10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dyYXBocWwub3JnLyZxdW90OyZndDtHcmFwaFFMJmx0Oy9hJmd0OyBjb250aW51ZXMgdG8gZ3JvdyBpbiBwb3B1bGFyaXR5IHdpdGggZWFjaCBwYXNzaW5nIGRheSwgc2luY2UgaXRzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9lbmdpbmVlcmluZy5mYi5jb20vY29yZS1kYXRhL2dyYXBocWwtYS1kYXRhLXF1ZXJ5LWxhbmd1YWdlLyZxdW90OyZndDtwdWJsaWMgcmVsZWFzZSBieSBGYWNlYm9vayZsdDsvYSZndDsgaW4gMjAxNS4gVGhlIHRlY2hub2xvZ3kgZW5hYmxlcyBmcm9udCBlbmQgY2xpZW50cyB0byBxdWVyeSBleGFjdGx5IHdoYXQgdGhleSBuZWVkIGZyb20gdGhlIGJhY2tlbmQsIGFuZCBpcyBnYWluaW5nIHdpZGUgcmVjb2duaXRpb24gYW5kIGFkb3B0aW9uIGJ5IHJlcHV0YWJsZSBjb21wYW5pZXMgc3VjaCBhcyBQaW50ZXJlc3QsIENvdXJzZXJhLCBBaXJibmIsIGFuZCBGYWNlYm9vayBpdHNlbGYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBwb3N0LCB3ZSB3aWxsIGxlYXJuIGhvdyB0byBkZXBsb3kgYSBzaW1wbGUgR3JhcGhRTCBzZXJ2ZXIgd3JpdHRlbiBpbiBOb2RlLmpzIHRvIEhlcm9rdSB2aWEgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IChDSSkgcGlwZWxpbmUgdXNpbmcgQ2lyY2xlQ0kuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1ByZXJlcXVpc2l0ZXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUbyBmb2xsb3cgYWxvbmcgd2l0aCB0aGlzIHBvc3QsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhbHJlYWR5IHNldCB1cDombHQ7L3AmZ3Q7CiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL25vZGVqcy5vcmcvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlIC12Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsIHRvIHByaW50IG91dCB5b3VyIHZlcnNpb24gb2YgTm9kZS5qcyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdC1zY20uY29tLyZxdW90OyZndDtHaXQmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnaXQmbHQ7L2NvZGUmZ3Q7IG9uIHlvdXIgdGVybWluYWw7IHRoaXMgc2hvdWxkIHByaW50IG91dCBhdmFpbGFibGUgZ2l0IGNvbW1hbmRzKSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5oZXJva3UuY29tLyZxdW90OyZndDtIZXJva3UmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tLyZxdW90OyZndDtHaXRIdWImbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vc2lnbnVwLyZxdW90OyZndDtDaXJjbGVDSSZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDsjI1NjYWZmb2xkaW5nIHRoZSBHcmFwaFFMIHNlcnZlciBwcm9qZWN0ClRvIGJlZ2luIHNldHRpbmcgdXAgYSBHcmFwaFFMIHNlcnZlciwgY3JlYXRlIGEgbmV3IGZvbGRlciBmb3IgdGhlIHByb2plY3QgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtta2RpciBncmFwaHFsLXRlc3Qtc2VydmVyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7Tm93IGdvIGludG8gdGhlIHJvb3Qgb2YgdGhlIGZvbGRlciBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBzY2FmZm9sZCBhIG5ldyBOb2RlLmpzIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5pdCAteQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDtwJmd0O1RoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsteSZsdDsvY29kZSZndDsgb3B0aW9uYWwgZmxhZyBhbGxvd3MgeW91IHRvIHNraXAgY29uZmlybWluZyB0aGUgZGVmYXVsdCBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwYWNrYWdlLmpzb24mbHQ7L2NvZGUmZ3Q7IGZpbGUgYW5kIGp1c3QgYWNjZXB0cyB0aGVtLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGFyZSBnb2luZyB0byBjcmVhdGUgYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2V4cHJlc3Nqcy5jb20vJnF1b3Q7Jmd0O0V4cHJlc3NKUyZsdDsvYSZndDsgTm9kZS5qcyBhcHBsaWNhdGlvbiBhbmQgYnVpbGQgdGhlIEdyYXBoUUwgc2VydmVyLiBUbyBkbyB0aGlzLCB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIGZvbGxvd2luZyBwYWNrYWdlczombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2V4cHJlc3MmbHQ7L2NvZGUmZ3Q7OiB0byBjcmVhdGUgb3VyIEV4cHJlc3NKUyBOb2RlLmpzIGFwcGxpY2F0aW9uJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z3JhcGhxbCZsdDsvY29kZSZndDs6IHRoZSBHcmFwaFFMIG5wbSBwYWNrYWdlIGZvciBOb2RlLmpzJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OzogRXhwcmVzc0pTIG1pZGRsZXdhcmUgZm9yIEdyYXBoUUwmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbCB0aGVzZSBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBpbnN0YWxsIC0tc2F2ZSBleHByZXNzIGdyYXBocWwgZXhwcmVzcy1ncmFwaHFsCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIHRoZSByZXF1aXJlZCBwYWNrYWdlcyB0byBzdGFydCBwdXR0aW5nIHRvZ2V0aGVyIG91ciBHcmFwaFFMIHNlcnZlci4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgdGhlIEdyYXBoUUwgc2NoZW1hJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7Q3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bWtkaXIgc3JjCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1dpdGhpbiB0aGlzIGZvbGRlciwgY3JlYXRlIGEgbmV3IGZpbGUgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEuanMmbHQ7L2NvZGUmZ3Q7IGFuZCBwYXN0ZSBpbiB0aGUgY29kZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Owpjb25zdCB7IGJ1aWxkU2NoZW1hIH0gPSByZXF1aXJlKCZxdW90O2dyYXBocWwmcXVvdDspOwoKY29uc3Qgc2NoZW1hID0gYnVpbGRTY2hlbWEoYAogICAgdHlwZSBRdWVyeSB7CiAgICAgICAgdXNlcnM6IFtVc2VyIV0hLAogICAgICAgIHVzZXIoaWQ6IEludCEpOiBVc2VyIQogICAgfQoKICAgIHR5cGUgTXV0YXRpb24gewogICAgICAgIGVkaXRVc2VyKGlkOiBJbnQhLCBuYW1lOiBTdHJpbmchLCBlbWFpbDogU3RyaW5nISk6IFVzZXIhCiAgICB9CgogICAgdHlwZSBVc2VyIHsKICAgICAgICBpZDogSUQhCiAgICAgICAgbmFtZTogU3RyaW5nIQogICAgICAgIGVtYWlsOiBTdHJpbmcKICAgICAgICBwb3N0czogW1Bvc3QhXQogICAgfQoKICAgIHR5cGUgUG9zdCB7CiAgICAgICAgaWQ6IElEIQogICAgICAgIHRpdGxlOiBTdHJpbmchCiAgICAgICAgcHVibGlzaGVkOiBCb29sZWFuIQogICAgICAgIGxpbms6IFN0cmluZwogICAgfQpgKTsKCm1vZHVsZS5leHBvcnRzID0gc2NoZW1hOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBhYm92ZSBjb2RlLCB3ZSBoYXZlIGNyZWF0ZWQgZm91ciB0eXBlcywgY29uc2lzdGluZyBvZiB0d28gYnVpbHQtaW4gdHlwZXMgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7KSBhbmQgdHdvIGN1c3RvbSB0eXBlcyAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXNlciZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1Bvc3QmbHQ7L2NvZGUmZ3Q7KS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWdpbm5pbmcgd2l0aCB0aGUgY3VzdG9tIHR5cGVzLCB3ZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmc6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VyJmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHVzZXIgaW4gdGhlIGFwcGxpY2F0aW9uIHdpdGggaXRzIHJlc3BlY3RpdmUgZmllbGRzIGFuZCBhIHJlbGF0aW9uYWwgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cG9zdHMmbHQ7L2NvZGUmZ3Q7IGZpZWxkLCB3aGljaCByZXR1cm5zIGFuIGFycmF5IG9mIHBvc3RzIGNyZWF0ZWQgYnkgdGhlIHVzZXImbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQb3N0Jmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHB1YmxpY2F0aW9uIGNyZWF0ZWQgYnkgYSB1c2VyIGluIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGl0cyByZXNwZWN0aXZlIGZpZWxkcyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OzogaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyB0eXBlLCB3ZSBkZWZpbmVkIHR3byBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgcXVlcmllZCBmcm9tIG91ciBHcmFwaFFMIHNlcnZlciBhcyBmb2xsb3dzOgogICAgJmx0O3VsJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlcnMmbHQ7L2NvZGUmZ3Q7OiBhbiBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VycyZsdDsvY29kZSZndDsmbHQ7L2xpJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlciZsdDsvY29kZSZndDs6IGEgc2luZ2xlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1VzZXImbHQ7L2NvZGUmZ3Q7IHdpdGggdGhlIHNwZWNpZmllZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgaW4gdGhlIGFyZ3VtZW50cyBsaXN0Jmx0Oy9saSZndDsKICAgICZsdDsvdWwmZ3Q7CiAgJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7OiBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7IHR5cGUsIHdlIGRlZmluZWQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VkaXRVc2VyJmx0Oy9jb2RlJmd0OyBtdXRhdGlvbiwgd2hpY2gsIGdpdmVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgb2YgdGhlIHVzZXIsIGNhbiBiZSBjYWxsZWQgdG8gZWRpdCBhIHVzZXIgYW5kIHRoZW4gdXBkYXRlIHRoZSBpbmZvcm1hdGlvbiAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bmFtZSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VtYWlsJmx0Oy9jb2RlJmd0OykmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhlIHNjaGVtYSBpcyBjcmVhdGVkIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZFNjaGVtYSZsdDsvY29kZSZndDsgb2YgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dyYXBocWwmbHQ7L2NvZGUmZ3Q7IHBhY2thZ2UgYW5kIGV4cG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O01vY2tpbmcgZGF0YSZsdDsvaDImZ3Q7CiZsdDtwJmd0O0luIG9yZGVyIHRvIGhhdmUgcmVzdWx0cyBmb3Igb3VyIHF1ZXJpZXMsIHdlIG5lZWQgZGF0YS4gRm9yIHRoaXMgZXhlcmNpc2UsIHdlIHdpbGwgYmUgdXNpbmcgTW9uZ29EQi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIb3dldmVyLCBzaW5jZSB0aGUgZ29hbCBvZiB0aGlzIHBvc3QgaXMgdG8gZGVtb25zdHJhdGUgZGVwbG95aW5nIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyLCB3ZSB3b27igJl0IGJvdGhlciB3aXRoIHNldHRpbmcgdXAgYSBNb25nb0RCIHNlcnZlci4gSW5zdGVhZCwgd2Ugd2lsbCAgdXNlIGEgbW9ja2VkIHZlcnNpb24gdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O21vbmdvZGItbWVtb3J5LXNlcnZlciZsdDsvY29kZSZndDsuIFRoaXMgcGFja2FnZSBhbGxvd3MgdXMgdG8gY3JlYXRlIGFuZCB1c2UgYW4gaW4tbWVtb3J5IE1vbmdvREIgZGF0YWJhc2Ugc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHNldCB0aGlzIHVwLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhdCB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5zdGFsbCAtLXNhdmUgbW9uZ29kYiBtb25nb2RiLW1lbW9yeS1zZXJ2ZXIKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwombHQ7cCZndDtUaGlzIGluc3RhbGxhdGlvbiBtaWdodCB0YWtlIGEgd2hpbGUsIGRlcGVuZGluZyBvbiB5b3VyIGRvd25sb2FkIHNwZWVkLiBNb25nb0RCIHdhcyBhdCBsZWFzdCA2NiBtZWdhYnl0ZXMgaW4gc2l6ZSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhLmpzJmx0Oy9jb2RlJmd0OyBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3JjJmx0Oy9jb2RlJmd0OyBmb2xkZXIuIFRoaXMgZmlsZSB3aWxsIGV4cG9ydCBhbiBhcnJheSBvZiBoYXJkLWNvZGVkIHVzZXIgZGF0YS4gUGFzdGUgdGhlIGZvbGxvd2luZyBjb2RlIGJlbG93IGludG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBVc2VycyA9IFsKICB7CiAgICBpZDogMSwKICAgIG5hbWU6ICZxdW90O0Zpa2F5byBBZGVwb2p1JnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2ZpazRjaHJpc3RAeWFob28uY29tJnF1b3Q7LAogICAgcG9zdHM6IFsKICAgICAgewogICAgICAgIGlkOiAxLAogICAgICAgIHRpdGxlOiAmcXVvdDtDcmVhdGluZyBhbiBFbW9qaSBHYW1lIHdpdGggVnVlLCBBdXRoMCwgYW5kIEdvb2dsZSBWaXNpb24gQVBJJnF1b3Q7LAogICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSwKICAgICAgICBsaW5rOgogICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hdXRoMC5jb20vYmxvZy9jcmVhdGluZy1hbi1lbW9qaS1nYW1lLXdpdGgtdnVlLWF1dGgwLWFuZC1nb29nbGUtdmlzaW9uLWFwaS8mcXVvdDssCiAgICAgICAgYXV0aG9yOiAxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBpZDogMiwKICAgICAgICB0aXRsZTogJnF1b3Q7RWxlY3Ryb24gVHV0b3JpYWw6IEJ1aWxkaW5nIE1vZGVybiBEZXNrdG9wIEFwcHMgd2l0aCBWdWUuanMmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2F1dGgwLmNvbS9ibG9nL2VsZWN0cm9uLXR1dG9yaWFsLWJ1aWxkaW5nLW1vZGVybi1kZXNrdG9wLWFwcHMtd2l0aC12dWUtanMvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDMsCiAgICAgICAgdGl0bGU6ICZxdW90O1N0YXRlIE1hbmFnZW1lbnQgd2l0aCBWdWV4OiBhIFByYWN0aWNhbCBUdXRvcmlhbCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazoKICAgICAgICAgICZxdW90O2h0dHBzOi8vYXV0aDAuY29tL2Jsb2cvc3RhdGUtbWFuYWdlbWVudC13aXRoLXZ1ZXgtYS1wcmFjdGljYWwtdHV0b3JpYWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMiwKICAgIG5hbWU6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2pvaG5AY29tcGFueS5jb20mcXVvdDssCiAgICBwb3N0czogWwogICAgICB7CiAgICAgICAgaWQ6IDQsCiAgICAgICAgdGl0bGU6ICZxdW90O0J1aWxkIGEgQ0kgcG93ZXJlZCBSRVNUZnVsIEFQSSB3aXRoIExhcmF2ZWwmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2J1aWxkLWEtY2ktcG93ZXJlZC1yZXN0ZnVsLWFwaS13aXRoLWxhcmF2ZWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDUsCiAgICAgICAgdGl0bGU6ICZxdW90O0F1dG9tYXRlIHlvdXIgTnV4dC5qcyBhcHAgZGVwbG95bWVudCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazogJnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hdXRvbWF0ZS15b3VyLW51eHQtanMtYXBwLWRlcGxveW1lbnQvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMywKICAgIG5hbWU6ICZxdW90O0phbmUgUGF1bCZxdW90OywKICAgIGVtYWlsOiAmcXVvdDtqYW5lQGNvbXBhbnkuY29tJnF1b3Q7LAogICAgcG9zdHM6IFtdCiAgfQpdOwoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgVXNlcnMKfTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBjb2RlIGFib3ZlLCB3ZSBoYXZlIGFuIGFycmF5IG9mIHVzZXIgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgcG9zdHMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIHNlZWQgb3VyIGluLW1lbW9yeSBkYXRhYmFzZSBvbmNlIGl0IGlzIGluc3RhbnRpYXRlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCB0YXNrIGlzIHRvIHNldCB1cCBvdXIgbW9jayBNb25nb0RCIGRhdGFiYXNlIHNlcnZlci4gSW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhYmFzZS5qcyZsdDsvY29kZSZndDsgYW5kIGluc2VydCB0aGUgZm9sbG93aW5nIGNvZGUgaW50byB0aGUgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O01vbmdvTWVtb3J5U2VydmVyJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtyZXF1aXJlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtzMiZxdW90OyZndDsmcXVvdDttb25nb2RiLW1lbW9yeS1zZXJ2ZXImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O21vbmdvZGImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtjb25zdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bm8mcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90Oy4vZGF0YSZxdW90OyZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0Oyk7Jmx0Oy9zcGFuJmd0OwoKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7bGV0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDtudWxsJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXN5bmMmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7ZnVuY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25mJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoKSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDt7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7bmV3Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtNb25nb01lbW9yeVNlcnZlciZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygpOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtubyZxdW90OyZndDttb25nb0RCVVJMJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXdhaXQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7LiZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtnZXRDb25uZWN0aW9uU3RyaW5nJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3QmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvREJVUkwmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDssJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7CiAgICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDt1c2VOZXdVcmxQYXJzZXImbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs6Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDt0cnVlJmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSk7Jmx0Oy9zcGFuJmd0OwoKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtjMSZxdW90OyZndDsvL1NlZWQgRGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7CiAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtpZiZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7ISZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OykmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsKICAgICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RhdGFiYXNlJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RiJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbGxlY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O3VzZXJzJnF1b3Q7Jmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7aW5zZXJ0TWFueSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7VXNlcnMmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7CgogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7cmV0dXJuJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OzsmbHQ7L3NwYW4mZ3Q7CiZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vZHVsZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZXhwb3J0cyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtzdGFydERhdGFiYXNlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGNvZGUgYWJvdmUsIHdlIGV4cG9ydCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L2NvZGUmZ3Q7IGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBzdGFydHMgYSBuZXcgKG1vY2tlZCkgTW9uZ29EQiBzZXJ2ZXIgaW5zdGFuY2UgYW5kIGdldHMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuIEl0IHRoZW4gY3JlYXRlcyBhIG5ldyBNb25nb0RCIGNsaWVudCBjb25uZWN0aW9uIHVzaW5nIHRoZSBjb25uZWN0aW9uIHN0cmluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwgd2Ugc2VlZCBpdCB3aXRoIG91ciB1c2VyIGRhdGEgZXhwb3J0ZWQgZnJvbSBvdXIgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZGF0YS5qcyZsdDsvY29kZSZndDsgZmlsZS4gQSBjaGVjayBpcyBtYWRlIHRvIHNlZSBpZiB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIGlzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O251bGwmbHQ7L2NvZGUmZ3Q7IGJlZm9yZSBzZWVkaW5nIGl0IHdpdGggZGF0YSwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBmcm9tIGJlaW5nIGVudGVyZWQgaW50byB0aGUgZGF0YWJhc2UgZWFjaCB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdXAuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGRhdGFiYXNlIHJlZmVyZW5jZS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgb3VyIHJlc29sdmVycyZsdDsvaDImZ3Q7CiZsdDtwJmd0O05leHQgdXAsIHdlIG5lZWQgdG8gZGVmaW5lIHJlc29sdmVycyBmb3Igb3VyIEdyYXBoUUwgcXVlcmllcyBpbiBvcmRlciB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGRhdGEgZm9yIGVhY2ggcXVlcnkgb3BlcmF0aW9uLiBXZSB3aWxsIGRlZmluZSByZXNvbHZlcnMgZm9yIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt1c2VycyZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3VzZXImbHQ7L2NvZGUmZ3Q7IHF1ZXJpZXMgYW5kIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtlZGl0VXNlciZsdDsvY29kZSZndDsgbXV0YXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Jlc29sdmVycy5qcyZsdDsvY29kZSZndDsgYW5kIHBhc3RlIGluIHRoZSBmb2xsb3dpbmcgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IHJlc29sdmVycyA9IHsKICB1c2VyczogYXN5bmMgKF8sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIKICAgICAgLmNvbGxlY3Rpb24oJnF1b3Q7dXNlcnMmcXVvdDspCiAgICAgIC5maW5kKCkKICAgICAgLnRvQXJyYXkoKTsKICB9LAogIHVzZXI6IGFzeW5jICh7IGlkIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIuY29sbGVjdGlvbigmcXVvdDt1c2VycyZxdW90OykuZmluZE9uZSh7IGlkIH0pOwogIH0sCiAgLy9NdXRhdGlvbiByZXNvbHZlcnMKICBlZGl0VXNlcjogYXN5bmMgKHsgaWQsIG5hbWUsIGVtYWlsIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CgogICAgcmV0dXJuIGRiCiAgICAgIC5jb2xsZWN0aW9uKCZxdW90O3VzZXJzJnF1b3Q7KQogICAgICAuZmluZE9uZUFuZFVwZGF0ZSgKICAgICAgICB7IGlkIH0sCiAgICAgICAgeyAkc2V0OiB7IG5hbWUsIGVtYWlsIH0gfSwKICAgICAgICB7IHJldHVybk9yaWdpbmFsOiBmYWxzZSB9CiAgICAgICkKICAgICAgLnRoZW4ocmVzcCA9JmFtcDtndDsgcmVzcC52YWx1ZSk7CiAgfSAKfTsKCm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZXJzOwoKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgc2VlbiBhYm92ZSwgd2Ugbm93IGhhdmUgcmVzb2x2ZXJzIGZvciB0aGUgdGhyZWUgR3JhcGhRTCByZXF1ZXN0cyBhdmFpbGFibGUgb24gb3VyIHNlcnZlci4gVGhlc2UgcmVzb2x2ZXJzIGZldGNoIGFuZCB1cGRhdGUgZGF0YSB1c2luZyB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIHdlIGNyZWF0ZWQgZWFybGllciBieSByZWZlcmVuY2luZyBpdCBmcm9tIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb250ZXh0Jmx0Oy9jb2RlJmd0OyBvYmplY3Qgb2YgdGhlIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgcmVmZXJlbmNlIHdpbGwgYmUgYWRkZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbnRleHQmbHQ7L2NvZGUmZ3Q7IG9iamVjdCBvZiBvdXIgR3JhcGhRTCBzZXJ2ZXIgc2V0dXAgaW4gdGhlIG5leHQgc2VjdGlvbiB3aGVuIHdlIHB1dCBldmVyeXRoaW5nIHRvZ2V0aGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTZXR0aW5nIHVwIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O0l0IGlzIHRpbWUgdG8gcHV0IGV2ZXJ5IGNvbXBvbmVudCB3ZSBidWlsdCB0b2dldGhlciB0byBzZXQgdXAgb3VyIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlZm9yZSB3ZSBiZWdpbiwgd2UgbmVlZCB0byBpbnN0YWxsIG9uZSBtb3JlIHBhY2thZ2UuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIGNvbWVzIHdpdGggdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0dyYXBoaVFMJmx0Oy9jb2RlJmd0OyBhcHBsaWNhdGlvbiwgd2hpY2ggYWxsb3dzIHlvdSB0byBxdWVyeSB5b3VyIEdyYXBoUUwgZW5kcG9pbnQsIGJ1dCBsZXTigJlzIGFkZCBhIHRvb2wgdGhhdCBpcyBtb3JlIHJvYnVzdC4gV2Ugd2lsbCBpbnN0YWxsIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIHRvIGdpdmUgdXMgYSBmYW5jaWVyIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgb3VyIEdyYXBoUUwgZW5kcG9pbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSBmb2xsb3dpbmcgY29kZSB0byBpbnN0YWxsIHRoZSBwYWNrYWdlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGluc3RhbGwgLS1zYXZlIGdyYXBocWwtcGxheWdyb3VuZC1taWRkbGV3YXJlLWV4cHJlc3MKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7V2Ugd2lsbCB1c2UgdGhpcyBtaWRkbGV3YXJlIHRvIHNldCB1cCB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kIGZvciBxdWVyeWluZyBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0xldOKAmXMgc2V0IHVwIG91ciBzZXJ2ZXIgYnkgY3JlYXRpbmcgYSBmaWxlIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2luZGV4LmpzJmx0Oy9jb2RlJmd0OyBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBhbmQgcGxhY2luZyB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBleHByZXNzID0gcmVxdWlyZSgmcXVvdDtleHByZXNzJnF1b3Q7KTsKY29uc3QgZ3JhcGhxbEhUVFAgPSByZXF1aXJlKCZxdW90O2V4cHJlc3MtZ3JhcGhxbCZxdW90Oyk7CmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoJnF1b3Q7Li9zcmMvc2NoZW1hJnF1b3Q7KTsKY29uc3QgcmVzb2x2ZXJzID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9yZXNvbHZlcnMmcXVvdDspOwpjb25zdCBzdGFydERhdGFiYXNlID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9kYXRhYmFzZSZxdW90Oyk7CmNvbnN0IGV4cHJlc3NQbGF5Z3JvdW5kID0gcmVxdWlyZSgmcXVvdDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJnF1b3Q7KS5kZWZhdWx0OwoKLy8gQ3JlYXRlIGEgY29udGV4dCBmb3IgaG9sZGluZyBjb250ZXh0dWFsIGRhdGEgCmNvbnN0IGNvbnRleHQgPSBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IGRiID0gYXdhaXQgc3RhcnREYXRhYmFzZSgpOwoKICByZXR1cm4geyBkYiB9Owp9OwoKY29uc3QgYXBwID0gZXhwcmVzcygpOwoKYXBwLnVzZSgKICAmcXVvdDsvZ3JhcGhxbCZxdW90OywKICBncmFwaHFsSFRUUCh7CiAgICBzY2hlbWEsCiAgICByb290VmFsdWU6IHJlc29sdmVycywKICAgIGNvbnRleHQKICB9KQopOwoKLy9HcmFwaHFsIFBsYXlncm91bmQgcm91dGUKYXBwLmdldCgmcXVvdDsvcGxheWdyb3VuZCZxdW90OywgZXhwcmVzc1BsYXlncm91bmQoeyBlbmRwb2ludDogJnF1b3Q7L2dyYXBocWwmcXVvdDsgfSkpOwoKY29uc3QgcG9ydCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgJnF1b3Q7NDAwMCZxdW90OzsKCmFwcC5saXN0ZW4ocG9ydCk7Cgpjb25zb2xlLmxvZyhg8J+agCBTZXJ2ZXIgcmVhZHkgYXQgaHR0cDovL2xvY2FsaG9zdDo0MDAwL2dyYXBocWxgKTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBmaWxlIGFib3ZlLCB3ZSBzdGFydCBieSBpbXBvcnRpbmcgYWxsIG5lY2Vzc2FyeSBtb2R1bGVzLiBUaGVuLCB3ZSBjcmVhdGUgb3VyIEdyYXBoUUwgY29udGV4dCBhbmQgcmV0dXJuIGFuIG9iamVjdCBmcm9tIGl0IGNvbnRhaW5pbmcgdGhlIHJlZmVyZW5jZSB0byBvdXIgTW9uZ29EQiBpbnN0YW5jZS4gTmV4dCwgd2UgY3JlYXRlIG91ciBFeHByZXNzSlMgYXBwbGljYXRpb24gYW5kIHNldCB1cCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OyBtaWRkbGV3YXJlIHdpdGggR3JhcGhRTCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEmbHQ7L2NvZGUmZ3Q7LCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtyZXNvbHZlcnMmbHQ7L2NvZGUmZ3Q7LCBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29udGV4dCZsdDsvY29kZSZndDsuIFdlIHRoZW4gc2V0IHVwIHRoZSBHcmFwaFFMIFBsYXlncm91bmQgYXQgdGhlIHJvdXRlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBsb2FkIG91ciBHcmFwaFFMIGVuZHBvaW50LiBGaW5hbGx5LCB3ZSBzdGFydCBvdXIgRXhwcmVzc0pTIHNlcnZlciB0byBsaXN0ZW4gYXQgcG9ydCA0MDAwIGFuZCBwcmludCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1F1ZXJ5aW5nIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O05vdyB0aGF0IHdlIGhhdmUgb3VyIHNlcnZlciBzZXQgdXAsIGxldOKAmXMgdGFrZSBpdCBmb3IgYSBzcGluLiBGaXJzdCwgbGV04oCZcyBjcmVhdGUgYSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzdGFydCZsdDsvY29kZSZndDsgc2NyaXB0IGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3BhY2thZ2UuanNvbiZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHNjcmlwdCB0byB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2NyaXB0cyZsdDsvY29kZSZndDsgc2VjdGlvbiBvZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Li4uCgrigJxzY3JpcHRz4oCdIDogewoJLi4uLAoJ4oCcc3RhcnTigJ0gOiDigJxub2RlIGluZGV4Lmpz4oCdCn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25wbSBzdGFydCZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCB0aGUgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNlcnZlciBpcyB1cCBhbmQgcnVubmluZywgb3BlbiB1cCB5b3VyIGJyb3dzZXIgYW5kIHZpc2l0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMC9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBvcGVuIHVwIHRoZSBwbGF5Z3JvdW5kLiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDEucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgcGxheWdyb3VuZCBhdXRvbWF0aWNhbGx5IHBvaW50cyB0byBvdXIgR3JhcGhRTCBlbmRwb2ludC4gRnJvbSBoZXJlIHdlIGNhbiB3cml0ZSBxdWVyaWVzIGFnYWluc3Qgb3VyIGVuZHBvaW50IGFuZCBnZXQgdGhlIHJlc3VsdHMuIFBhc3RlIHRoZSBxdWVyeSBiZWxvdyBpbnRvIHRoZSBxdWVyeSBzZWN0aW9uIG9mIHRoZSBwbGF5Z3JvdW5kIGFuZCBoaXQgUGxheSB0byBydW4gaXQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt7CiAgdXNlcnMgewogICAgbmFtZQogICAgZW1haWwKICAgIHBvc3RzIHsKICAgICAgdGl0bGUKICAgICAgcHVibGlzaGVkCiAgICB9CiAgfQp9CgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtSdW5uaW5nIHRoZSBhYm92ZSBxdWVyeSB3aWxsIHByb2R1Y2UgdGhlIHJlc3VsdCBzaG93biBvbiB0aGUgc2NyZWVuIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsMi5wbmcmcXVvdDsgd2lkdGg9JnF1b3Q7ODc1JnF1b3Q7IC8mZ3Q7CiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIHNlZW4gYWJvdmUsIG91ciBHcmFwaFFMIHNlcnZlciBpcyB3b3JraW5nIGZpbmUgYW5kIHJldHVybmluZyB0aGUgZXhwZWN0ZWQgZGF0YS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRvIEhlcm9rdSB3aXRoIENpcmNsZUNJJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7T3VyIGZpbmFsIHRhc2sgaXMgdG8gZGVwbG95IG91ciBHcmFwaFFMIHNlcnZlciB0aHJvdWdoIGEgQ0kgcGlwZWxpbmUgd2l0aCBDaXJjbGVDSSBvbiB0aGUgSGVyb2t1IGhvc3RpbmcgcGxhdGZvcm0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2UgYXJlIGdvaW5nIHRvIHRha2UgdGhlIGZvbGxvd2luZyBzdGVwcyB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7UHVzaCB0aGUgcHJvamVjdCB0byBhIEdpdEh1YiByZXBvc2l0b3J5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgbmV3IEhlcm9rdSBhcHAgYW5kIGdldCB0aGUgSGVyb2t1IEFQSSBrZXkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgYSBuZXcgcHJvamVjdCB0byBvdXIgQ2lyY2xlQ0kgYWNjb3VudCBhbmQgY29ubmVjdCBpdCB0byB0aGUgR2l0SHViIHJlcG8mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgb3VyIEhlcm9rdSBhcHAgbmFtZSBhbmQgQVBJIGtleSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gb3VyIG5ldyBwcm9qZWN0Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7V3JpdGUgb3VyIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgZGVwbG95bWVudCB0byBIZXJva3UmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIHRoZSBjb25maWd1cmF0aW9uIHRvIG91ciBHaXRIdWIgcmVwbyB0byBkZXBsb3kgdG8gSGVyb2t1Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0xldOKAmXMgYmVnaW4uIEZpcnN0LCBwdXNoIHRoZSBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG8uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY3JlYXRlIGEgSGVyb2t1IGFwcGxpY2F0aW9uIGFzIHNob3duIGJlbG93LiBUaGUgbmFtZSB5b3UgZW50ZXIgaXMgdGhlIG5hbWUgeW91IHdpbGwgc2F2ZSBhcyB5b3VyIEhlcm9rdSBhcHAgbmFtZSBvbiBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWwzLnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7WW91IGNhbiBnZXQgeW91ciBIZXJva3UgQVBJIGtleSBieSBnb2luZyB0byAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgYW5kIHNjcm9sbGluZyBkb3duIHRvIHRoZSAmbHQ7c3Ryb25nJmd0O0FQSSBLZXkmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIHRvIGRlcGxveWluZyBvdXIgYXBwbGljYXRpb24gdG8gSGVyb2t1IGlzIHRvIGNvbm5lY3QgdGhlIGFwcGxpY2F0aW9uIG9uIG91ciBHaXRIdWIgcmVwb3NpdG9yeSB0byBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIZWFkIHRvIHlvdXIgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9kYXNoYm9hcmQmcXVvdDsmZ3Q7Q2lyY2xlQ0kgZGFzaGJvYXJkJmx0Oy9hJmd0OyBhbmQgYWRkIHRoZSBwcm9qZWN0IGluIHRoZSAmbHQ7c3Ryb25nJmd0O0FkZCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7IHNlY3Rpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsNC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCAoaW4gdGhpcyBjYXNlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NpbXBsZS1ncmFwaHFsLW5vZGUtc2VydmVyJmx0Oy9jb2RlJmd0OyksIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0IFVwIFByb2plY3QmbHQ7L3N0cm9uZyZndDsuIFRoaXMgd2lsbCBicmluZyB5b3UgdG8gYSBwYWdlIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDUucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IGJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIHByb2plY3QuIFRoaXMgd2lsbCBpbW1lZGlhdGVseSBnaXZlIHVzIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCBhIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIHByb2plY3QuIFRoaXMgaXMgdW5kZXJzdGFuZGFibGUsIGFzIHdlIGFyZSB5ZXQgdG8gaW5jbHVkZSBvdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlLiBXZSB3aWxsIGJlIGRvaW5nIHRoYXQgbGF0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIG5leHQgc3RlcCBpcyB0byBhZGQgb3VyIEhlcm9rdSBkZXRhaWxzIGFzICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wL2Vudi12YXJzLyZxdW90OyZndDtlbnZpcm9ubWVudCB2YXJpYWJsZXMmbHQ7L2EmZ3Q7IHRvIHRoZSBuZXdseSBzZXQgdXAgcHJvamVjdC4KSW4gb3JkZXIgdG8gcHVzaCBvdXIgcHJvamVjdCB0byBIZXJva3UgZnJvbSBDaXJjbGVDSSwgd2UgbmVlZCB0byBjb25maWd1cmUgYW4gYXV0aGVudGljYXRlZCBoYW5kc2hha2UgYmV0d2VlbiBDaXJjbGVDSSBhbmQgSGVyb2t1LiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcgdHdvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgc2V0dGluZ3MgZm9yIHlvdXIgQ2lyY2xlQ0kgcHJvamVjdC4gVGhlIHR3byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtIRVJPS1VfQVBQX05BTUUmbHQ7L2NvZGUmZ3Q7OiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIChpbiB0aGlzIGNhc2UgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2ltcGxlLWdyYXBocWwtbm9kZS1zZXJ2ZXImbHQ7L2NvZGUmZ3Q7KSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OzogWW91ciBIZXJva3UgYWNjb3VudCBBUEkga2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBvbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50Jmx0Oy9zdHJvbmcmZ3Q7IHRhYiBvZiB5b3VyIEhlcm9rdSBhY2NvdW50IHVuZGVyICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VG8gYWRkIHRoZXNlIGRldGFpbHMsIGhlYWQgb3ZlciB0byB5b3VyIENpcmNsZUNJIGRhc2hib2FyZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBmb3IgeW91ciBwcm9qZWN0LiBPbiB0aGUgc2lkZWJhciBtZW51IG9uIHRoZSBzZXR0aW5ncyBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O0Vudmlyb25tZW50IFZhcmlhYmxlcyZsdDsvc3Ryb25nJmd0OyB1bmRlciAmbHQ7c3Ryb25nJmd0O0J1aWxkIFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDYucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIHBhZ2UsIGNyZWF0ZSB0d28gdmFyaWFibGVzIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OyBhbmQgYWRkIHRoZSByZXNwZWN0aXZlIHZhbHVlcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZXNlIGluIHBsYWNlLCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBjYW4gdXNlIHRoZW0gdG8gbWFrZSBhdXRoZW50aWNhdGVkIGRlcGxveW1lbnRzIHRvIHRoZSBIZXJva3UgcGxhdGZvcm0uCk5vdywgbGV04oCZcyB3cml0ZSBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyIHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtDcmVhdGUgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsuY2lyY2xlY2kmbHQ7L2NvZGUmZ3Q7IGF0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCBhbmQgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgaXQuIEFkZCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uJmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpvcmJzOgogIGhlcm9rdTogY2lyY2xlY2kvaGVyb2t1QDAuMC4xMAp3b3JrZmxvd3M6CiAgaGVyb2t1X2RlcGxveToKICAgIGpvYnM6CiAgICAgIC0gaGVyb2t1L2RlcGxveS12aWEtZ2l0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7VGhlIGNvZGUgYWJvdmUgdXNlcyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7SGVyb2t1IG9yYiZsdDsvYSZndDsgdG8gcGVyZm9ybSBhIHNlYW1sZXNzIGRlcGxveW1lbnQgdG8gSGVyb2t1LiBBbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYiZsdDsvYSZndDsgaXMgYSByZXVzYWJsZSBwYWNrYWdlIG9mIGEgWUFNTCBjb25maWd1cmF0aW9uIHRoYXQgY29uZGVuc2VzIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoaXMgb25lIG1ha2VzIGl0IHZlcnkgZWFzeSB0byBkZXBsb3kgdG8gSGVyb2t1IHdpdGhvdXQgd3JpdGluZyBhIHNvcGhpc3RpY2F0ZWQgY29uZmlnIHlvdXJzZWxmLiZsdDsvcCZndDsKCiZsdDtwJmd0O1NhdmUgdGhpcyBmaWxlIGFuZCBwdXNoIHlvdXIgY2hhbmdlcyB0byB0aGUgR2l0SHViIHJlcG9zaXRvcnkuIFRoZW4gd2F0Y2ggeW91ciBDaXJjbGVDSSBkYXNoYm9hcmQgdHJpZ2dlciBhIGRlcGxveW1lbnQgYWZ0ZXIgdGhlIHN1Y2Nlc3NmdWwgcHVzaC4gWW91IHdpbGwgc2VlIGEgc3VjY2Vzc2Z1bCBkZXBsb3ltZW50IG9uIHlvdXIgZGFzaGJvYXJkIHNpbWlsYXIgdG8gdGhlIHNjcmVlbiBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWw3LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXdlc29tZSEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXTigJlzIG5vdyB2aXNpdCBvdXIgUGxheWdyb3VuZCBvbiB0aGUgbGl2ZSBhcHBsaWNhdGlvbiB0byBjb25maXJtIHRoYXQgb3VyIGRlcGxveW1lbnQgaXMgZmluZS4gVmlzaXQgdGhlIGxpbmsgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9ZT1VSX0hFUk9LVV9BUFBfTkFNRS5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7LiBGb3Igb3VyIGV4ZXJjaXNlLCB0aGlzIHdpbGwgYmUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9zaW1wbGUtZ3JhcGhxbC1ub2RlLXNlcnZlci5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7IGFzIHNlZW4gYmVsb3cuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsOC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SW4gdGhpcyBhcnRpY2xlLCB3ZSBoYXZlIGJlZW4gYWJsZSB0byBzdWNjZXNzZnVsbHkgcHV0IHRvZ2V0aGVyIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyIGFuZCBhdXRvbWF0ZSBpdHMgZGVwbG95bWVudCB1c2luZyBDaXJjbGVDSS4gR3JhcGhRTCBpcyBoZXJlIHRvIHN0YXkgYW5kIGlzIGV4cGVjdGVkIHRvIGdhaW4gbW9yZSBhZG9wdGlvbiwgc2luY2UgaXRzIG1hbnkgYmVuZWZpdHMgbWFrZSBpdCB3b3J0aHkgb2YgaW5jcmVhc2VkIHVzZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIYXBweSBjb2RpbmchJmx0Oy9wJmd0OwoKJmx0O2hyIC8mZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Eb2NrZXIgYW5kIENJL0NEIHR1dG9yaWFsOiBhIGRlZXAgZGl2ZSBpbnRvIGNvbnRhaW5lcnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZG9ja2VyLWFuZC1jaWNkLXR1dG9yaWFsLWEtZGVlcC1kaXZlLWludG8tY29udGFpbmVycy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+RnJpLCAyNCBBcHIgMjAyMCAxMjowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9kb2NrZXItYW5kLWNpY2QtdHV0b3JpYWwtYS1kZWVwLWRpdmUtaW50by1jb250YWluZXJzLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkFuZ2VsIFJpdmVyYTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtUaGlzIGlzIGEgZm9sbG93LXVwIHRvIGEgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7IHRoYXQgSSB3cm90ZSBhZnRlciBDaXJjbGVDSSAyLjAgd2FzIHJlbGVhc2VkLiBUaGlzIHJlbGVhc2UgaW1wbGVtZW50ZWQgYnVpbGQgc3VwcG9ydCB1c2luZyBEb2NrZXIgZXhlY3V0b3JzLiBBZnRlciB0aGUgcmVsZWFzZSwgd2UgcmVhbGl6ZWQgdGhhdCBvbmUgb2YgdGhlIGJpZ2dlc3QgYmFycmllcnMgdGhhdCBDaXJjbGVDSSB1c2VycyBlbmNvdW50ZXJlZCB3YXMgYSBsYWNrIG9mIGV4cGVyaWVuY2Ugd2l0aCBEb2NrZXIuIFRoaXMgd2FzIGNvbmZpcm1lZCB0aHJvdWdoIG15IGNvbnZlcnNhdGlvbnMgd2l0aCBudW1lcm91cyBkZXZlbG9wZXJzLCBpbiB0aGUgY29tbXVuaXR5IGFuZCBhdCBldmVudHMsIGFib3V0IHRoZWlyIHVzZSBvZiBjb250YWluZXIgdGVjaG5vbG9naWVzIGluIHRoZWlyICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmVzLiBUaGVzZSBjb252ZXJzYXRpb25zIGhhdmUgaGlnaGxpZ2h0ZWQgdGhhdCBtYW55IGRldmVsb3BlcnMgZG9u4oCZdCBoYXZlIGEgZnVsbCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byB1c2UgY29udGFpbmVyIHRlY2hub2xvZ2llcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgd2lsbCBleHBhbmQgb24gYW5kIGRlbW9uc3RyYXRlIHNvbWUgb2YgdGhlIG1vcmUgdXNlZnVsIERvY2tlciBjb21tYW5kcyBkaXNjdXNzZWQgaW4gbXkgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtXaGF0IGlzIERvY2tlcj8mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZSBpcyB0aGUgc2ltcGxpZmllZCBkZWZpbml0aW9uIG9mIERvY2tlciB0aGF0IEkgdXNlZCBpbiBteSBwcmV2aW91cyBwb3N0OiZsdDsvcCZndDsKCiZsdDtibG9ja3F1b3RlJmd0OwogICZsdDtwJmd0O0RvY2tlciBpcyBhIHBsYXRmb3JtIGZvciBkZXZlbG9wZXJzIGFuZCBzeXNhZG1pbnMgdG8gZGV2ZWxvcCwgZGVwbG95LCBhbmQgcnVuIGFwcGxpY2F0aW9ucyB1c2luZyBjb250YWluZXJzLiZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7RG9ja2VyIGlzIGFsc28gcmVmZXJyZWQgdG8gYXMgYW4gYXBwbGljYXRpb24gcGFja2FnaW5nIHRvb2wgdGhhdCBlbmFibGVzIGFwcGxpY2F0aW9ucyB0byBiZSBjb25maWd1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZC8jaW1hZ2VzLWFuZC1jb250YWluZXJzJnF1b3Q7Jmd0O0RvY2tlciBpbWFnZSZsdDsvYSZndDsgdGhhdCBjYW4gYmUgdXNlZCB0byBzcGF3biAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyNpbWFnZXMtYW5kLWNvbnRhaW5lcnMmcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IHRoYXQgcnVuIGluc3RhbmNlcyBvZiB0aGUgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIG1hbnkgYmVuZWZpdHMgaW5jbHVkaW5nIHJ1bnRpbWUgZW52aXJvbm1lbnQgaXNvbGF0aW9uLCBjb25zaXN0ZW5jeSB2aWEgY29kZSwgYW5kIHBvcnRhYmlsaXR5LiBEb2NrZXIgY29udGFpbmVycyBjYW4gcnVuIG9uIGFueSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgc3VwcG9ydHMgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZW5naW5lJnF1b3Q7Jmd0O0RvY2tlciBFbmdpbmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtCYXNpYyBEb2NrZXIgdGVybWlub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZeKAmXMgYSBsaXN0IG9mIGJhc2ljIERvY2tlciBjb21tYW5kcyBhbmQgdGVybXMgd2l0aCBsaW5rcyB0byBtb3JlIGluZm9ybWF0aW9uLiBUaGVzZSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgRG9ja2VyIGFuZCBjb250cm9sIHRoZSBleGVjdXRvci4gVGhlIGNvbW1hbmRzIGNhbiBiZSBydW4gbG9jYWxseSBvbiBhbnkgY29tcHV0ZXIgdGhhdCBoYXMgdGhlIERvY2tlciBlbmdpbmUgaW5zdGFsbGVkLiZsdDsvcCZndDsKCiZsdDtoMyZndDtCdWlsZGluZyBEb2NrZXIgaW1hZ2VzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBhIHRleHQgZG9jdW1lbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNvbW1hbmRzIGEgdXNlciBjb3VsZCBjYWxsIG9uIHRoZSBjb21tYW5kIGxpbmUgdG8gYXNzZW1ibGUgYW4gaW1hZ2UuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBEb2NrZXJmaWxlIGlzIGEgYmx1ZXByaW50IGZvciBidWlsZGluZyBEb2NrZXIgaW1hZ2VzLiBEb2NrZXJmaWxlIHRlbXBsYXRlcyBob2xkIGVsZW1lbnRzIHN1Y2ggYXMgdGhlIGJhc2Ugb3BlcmF0aW5nIHN5c3RlbSBpbWFnZSB1c2VkIGFzIGEgZm91bmRhdGlvbiwgZXhlY3V0aW9uIGNvbW1hbmRzIHRoYXQgaW5zdGFsbC9jb25maWd1cmUgZGVwZW5kZW5jaWVzLCBhbmQgY29weSBjb21tYW5kcyB0aGF0IHB1c2ggbG9jYWwgc291cmNlIGNvZGUgb3IgYXJ0aWZhY3RzIGludG8gdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBEb2NrZXJmaWxlIGZvciBhIHNpbXBsZSBOb2RlLmpzIGFwcGxpY2F0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7RlJPTSBub2RlOjEwCgojIENyZWF0ZSBhcHAgZGlyZWN0b3J5CldPUktESVIgL3Vzci9zcmMvYXBwCgojIEluc3RhbGwgYXBwIGRlcGVuZGVuY2llcwojIEEgd2lsZGNhcmQgaXMgdXNlZCB0byBlbnN1cmUgYm90aCBwYWNrYWdlLmpzb24gQU5EIHBhY2thZ2UtbG9jay5qc29uIGFyZSBjb3BpZWQKIyB3aGVyZSBhdmFpbGFibGUgKG5wbUA1KykKQ09QWSBwYWNrYWdlKi5qc29uIC4vCgpSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIyBJZiB5b3UgYXJlIGJ1aWxkaW5nIHlvdXIgY29kZSBmb3IgcHJvZHVjdGlvbgojIFJVTiBucG0gaW5zdGFsbCAtLW9ubHk9cHJvZHVjdGlvbgoKIyBCdW5kbGUgYXBwIHNvdXJjZQpDT1BZIC4gLgoKRVhQT1NFIDUwMDAKQ01EIFsgJnF1b3Q7bnBtJnF1b3Q7LCAmcXVvdDtzdGFydCZxdW90OyBdCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2ltYWdlcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7IGxpc3RzIERvY2tlciBpbWFnZXMgZm91bmQgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gbGlzdCBhbGwgb2YgdGhlIERvY2tlciBpbWFnZXMgYW5kIHJlbGF0ZWQgZGF0YSB0aGF0IGN1cnJlbnRseSBleGlzdCBvbiB0aGUgbG9jYWwgbWFjaGluZS4gSXTigJlzIGNvbXBhcmFibGUgdG8gYSBsaW51eCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtscyZsdDsvY29kZSZndDsgb3Igd2luZG93cyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkaXImbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdXNlZCB0byBzaG93IHRoZSBjb250ZW50cyBvZiBkaXJlY3RvcmllcyBpbiBhIHRlcm1pbmFsLiBUaGlzIGNvbW1hbmQgaXMgdmVyeSB1c2VmdWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRvIG1hbmFnZSwgbWFpbnRhaW4sIGFuZCBidWlsZCBEb2NrZXIgaW1hZ2VzIGxvY2FsbHkuIEJlbG93IGlzIGFuIGV4YW1wbGUgcmVzdWx0IG9mIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgZXhlY3V0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UkVQT1NJVE9SWSAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHICAgICAgICAgICAgICAgICBJTUFHRSBJRCAgICAgICAgICAgIENSRUFURUQgICAgICAgICAgICAgU0laRQphcml2M3JhL25vZGVqcy1jaXJjbGVjaSAgICAgICAgICAgICBsYXRlc3QgICAgICAgICAgICAgIGY0MTllNGE2YjFiOCAgICAgICAgMTEgZGF5cyBhZ28gICAgICAgICA5NDNNQgpub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAgICAgICAgICAgICAgICAgIDAxYjgxNjA1MWQzNCAgICAgICAgMiB3ZWVrcyBhZ28gICAgICAgICA5MTFNQgpjaXJjbGVjaS9weXRob24gICAgICAgICAgICAgICAgICAgICAzLjcuNiAgICAgICAgICAgICAgIDBkMjk3NTg5NmM3MyAgICAgICAgNSB3ZWVrcyBhZ28gICAgICAgICAxLjQzR0IKYXJpdjNyYS9pbmZyYXN0cnVjdHVyZS1hcy1jb2RlMTAxICAgbGF0ZXN0ICAgICAgICAgICAgICBjYjIxYTM2YTI5NzMgICAgICAgIDggd2Vla3MgYWdvICAgICAgICAgOTI5TUIKcHl0aG9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43LjYgICAgICAgICAgICAgICA4NzkxNjU1MzVhNTQgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgOTE5TUIKY2lyY2xlY2kvcnVzdCAgICAgICAgICAgICAgICAgICAgICAgMS1idXN0ZXIgICAgICAgICAgICAyMTgzMjliOTI5Y2YgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgMS42OEdCCnJ1c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtYnVzdGVyICAgICAgICAgICAgZjVmZGUwOTJhMWNkICAgICAgICAyIG1vbnRocyBhZ28gICAgICAgIDEuMTlHQgpweXRob24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcuNCAgICAgICAgICAgICAgIDlmYTU2ZDBhZGRhZSAgICAgICAgNiBtb250aHMgYWdvICAgICAgICA5MThNQgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGJ1aWxkIC10ICZhbXA7bHQ7aW1hZ2UgbmFtZSZhbXA7Z3Q7IC4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBjcmVhdGVzIGEgRG9ja2VyIGltYWdlIHdpdGggYSB0YWcgdXNpbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LXQmbHQ7L2NvZGUmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhYm92ZSBjb21tYW5kLCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgdmFsaWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDssIGJ1aWxkcyBhIERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgZXhlY3V0aW9uIGNvbW1hbmRzIGRlZmluZWQgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7LiBPbmUgY3JpdGljYWwgZWxlbWVudCB0byBidWlsZGluZyBpbWFnZXMgYW5kIHN0YXJ0aW5nIGNvbnRhaW5lcnMgaXMgdW5kZXJzdGFuZGluZyB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9hJmd0Oy4gQnVpbGRpbmcgRG9ja2VyIGltYWdlcyB1c2luZyB0aGlzIGNvbW1hbmQgc3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIERvY2tlciBpbWFnZXMgdXRpbGl6ZXMgYSBuYW1pbmcgY29udmVudGlvbiBtYWRlIHVwIG9mIHNsYXNoLXNlcGFyYXRlZCBuYW1lIGNvbXBvbmVudHMgdGhhdCBtYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgc2VwYXJhdG9ycy4gQSBzZXBhcmF0b3IgaXMgZGVmaW5lZCBhcyBhIHBlcmlvZCwgb25lIG9yIHR3byB1bmRlcnNjb3Jlcywgb3Igb25lIG9yIG1vcmUgZGFzaGVzLiBBIG5hbWUgY29tcG9uZW50IG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggYSBzZXBhcmF0b3IuIEEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7ZG9ja2VyIHRhZyZsdDsvYSZndDsgbmFtZSBtdXN0IGJlIHZhbGlkIEFTQ0lJIGFuZCBtYXkgY29udGFpbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHVuZGVyc2NvcmVzLCBwZXJpb2RzLCBhbmQgZGFzaGVzLiBBIHRhZyBuYW1lIG1heSBub3Qgc3RhcnQgd2l0aCBhIHBlcmlvZCBvciBhIGRhc2ggYW5kIG1heSBjb250YWluIGEgbWF4aW11bSBvZiAxMjggY2hhcmFjdGVycy4gWW91IGNhbiBncm91cCB5b3VyIGltYWdlcyB0b2dldGhlciB1c2luZyBuYW1lcyBhbmQgdGFncy4gSW4gdGhpcyBwb3N0LCB3ZSB3aWxsIHVzZSB0aGlzIG5hbWluZyBjb252ZW50aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB0aGF0IHdl4oCZdmUgZGlzY3Vzc2VkIG5hbWluZyBjb252ZW50aW9ucyBsZXTigJlzIGJ1aWxkIGEgRG9ja2VyIGltYWdlIGJhc2VkIG9uIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXJmaWxlJmx0Oy9jb2RlJmd0OyBpbiBvdXIgZXhhbXBsZSBhYm92ZS4gSW4gdGhpcyBwb3N0IHdlIGNhbiB1dGlsaXplIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9wdW5rZGF0YS9ub2RlanMtY2lyY2xlY2kmcXVvdDsmZ3Q7cHVua2RhdGEvbm9kZWpzLWNpcmNsZWNpJmx0Oy9hJmd0OyBnaXQgcmVwby4gQ2xvbmUgaXQgbG9jYWxseSBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7JCBjZCZsdDsvY29kZSZndDsgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlbiBydW4gdGhpcyBjb21tYW5kIHRvIGJ1aWxkIGEgbmV3IERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgcHJvamVjdCBzb3VyY2UgY29kZSBhbmQgdGhlIGV4YW1wbGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgYnVpbGQgLXQgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0FmdGVyIHJ1bm5pbmcgdGhpcyBidWlsZCBjb21tYW5kLCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtTZW5kaW5nIGJ1aWxkIGNvbnRleHQgdG8gRG9ja2VyIGRhZW1vbiAgOTguMDdNQgpTdGVwIDEvNyA6IEZST00gbm9kZToxMAogLS0tJmFtcDtndDsgMDFiODE2MDUxZDM0ClN0ZXAgMi83IDogV09SS0RJUiAvdXNyL3NyYy9hcHAKIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyAxMmIyZWRjMmI5N2MKU3RlcCAzLzcgOiBDT1BZIHBhY2thZ2UqLmpzb24gLi8KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyA1M2I1YjhlNGU2NTQKU3RlcCA0LzcgOiBSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyBlZWZkZjU2MGJjNGQKU3RlcCA1LzcgOiBDT1BZIC4gLgogLS0tJmFtcDtndDsgYWE3ZDU0ZTk1NWM2ClN0ZXAgNi83IDogRVhQT1NFIDUwMDAKIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gY2M0MjdkYmFmZGNjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgY2M0MjdkYmFmZGNjCiAtLS0mYW1wO2d0OyA0Y2U5MDg0ZTM5ZWIKU3RlcCA3LzcgOiBDTUQgWyAmcXVvdDtucG0mcXVvdDssICZxdW90O3N0YXJ0JnF1b3Q7IF0KIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gZjZlODU0NTk5ZGRjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgZjZlODU0NTk5ZGRjCiAtLS0mYW1wO2d0OyA3OWE4ZDk0Y2JmNDIKU3VjY2Vzc2Z1bGx5IGJ1aWx0IDc5YThkOTRjYmY0MgpTdWNjZXNzZnVsbHkgdGFnZ2VkIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2VzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgeW91ciBuZXdseSBjcmVhdGVkIERvY2tlciBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDskIGRvY2tlciBpbWFnZXMKClJFUE9TSVRPUlkgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRyAgICAgICAgICAgICAgICAgSU1BR0UgSUQgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNJWkUKdHV0b3JpYWwvY2lyY2xlY2ktbm9kZSAgICAgICAgICAgICAgMTAgICAgICAgICAgICAgICAgICA3OWE4ZDk0Y2JmNDIgICAgICAgIDQgbWludXRlcyBhZ28gICAgICAgMS4wM0dCCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyB5b3UgaGF2ZSBhbiBhd2Vzb21lIERvY2tlciBpbWFnZSBidWlsdCBhbmQgcmVhZHkgdG8gdXNlLiBJbiB0aGUgbmV4dCBzZWN0aW9uIEnigJlsbCBjcmVhdGUgbmV3IGluc3RhbmNlcyBvZiB0aGlzIERvY2tlciBpbWFnZSBpbiB0aGUgZm9ybSBvZiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvY29udGFpbmVyLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXIgY29udGFpbmVycyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBjb250YWluZXJzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IGFyZSBkZXNpZ25lZCB0byBydW4gYXBwbGljYXRpb25zIGluIGlzb2xhdGlvbiBhbmQgYXQgc2NhbGUuICBUaGV5IGFsbG93IGZvciBzdHJlYW1saW5pbmcgdGhlIG1hbmFnZW1lbnQgYW5kIGltcGxlbWVudGF0aW9uIG9mIGFwcGxpY2F0aW9ucy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7QmVmb3JlIHdlIHN0YXJ0IGNyZWF0aW5nIGFuZCBydW5uaW5nIERvY2tlciBjb250YWluZXJzLCBJ4oCZbGwgYWRkIHNvbWUgY29udGV4dC4gRG9ja2VyIGNvbnRhaW5lcnMgYXJlIG9iamVjdHMgdGhhdCBhcmUgYmFzZWQgb24gYW5kIHNwYXduZWQgZnJvbSBEb2NrZXIgaW1hZ2VzLiBEb2NrZXIgaW1hZ2VzIGFyZSB0ZW1wbGF0ZXMuIEkgbGlrZW4gdGhlbSB0byBjb29raWUgY3V0dGVyIG1vbGRzLiBDb29raWUgY3V0dGVyIG1vbGRzIGVuYWJsZSB5b3UgdG8gcXVpY2tseSBhbmQgY29uc2lzdGVudGx5IHByb2R1Y2UgaW5kaXZpZHVhbCBjb29raWVzIGZyb20gZG91Z2guIEkgbGlrZW4gdGhlc2UgY29va2llcyB0byBEb2NrZXIgY29udGFpbmVycyB3aGljaCBhcmUgZGlzdGluZ3Vpc2hlZCBpbiBzaGFwZSBieSB0aGUgdHlwZSBvZiBjb29raWUgbW9sZCwgb3IgRG9ja2VyIGNvbnRhaW5lciwgdXNlZCBpbiB0aGUgY3V0dGluZy9idWlsZGluZyBwcm9jZXNzLiBTbyB1c2luZyBteSBjb29raWUgY3V0dGVyIGFuYWxvZ3ksIERvY2tlciBpbWFnZXMgYXJlIHRoZSBjb29raWUgY3V0dGVyIGFuZCB0aGUgaW5kaXZpZHVhbCBjb29raWVzIGN1dCB1c2luZyB0aGF0IGN1dHRlciBhcmUgZXF1aXZhbGVudCB0byBEb2NrZXIgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCBJ4oCZdmUgcHJvYmFibHkgbWFkZSB5b3UgYSBiaXQgaHVuZ2FyeSBmb3IgY29va2llcywgbGV04oCZcyBzdGFydCBydW5uaW5nIHNvbWUgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBydW5zIGEgY29tbWFuZCBpbiBhIG5ldyBjb250YWluZXIuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY29tbWFuZCBvZiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgc3RhcnRpbmcgRG9ja2VyIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCBhIG5ldyBjb250YWluZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcnVuIC1kIC1wIDUwMDA6NTAwMCAtLW5hbWUgbm9kZXRlc3QwMSB0dXRvcmlhbC9jaXJjbGVjaS1ub2RlOjEwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NvbmdyYXRzISBZb3Ugc2hvdWxkIG5vdyBoYXZlIHRoZSBOb2RlLmpzIGltYWdlIHJ1bm5pbmcgaW4gdGhlIG5ldyBjb250YWluZXIgdGhhdCB5b3UganVzdCBjcmVhdGVkIGF2YWlsYWJsZSBvbiBwb3J0IDUwMDAuIE9wZW4gYSB3ZWIgYnJvd3NlciBhbmQgZ28gdG8gdGhpcyBhZGRyZXNzOiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtodHRwOi8vbG9jYWxob3N0OjUwMDAmbHQ7L2NvZGUmZ3Q7LiBJdCB3aWxsIHRha2UgeW91IHRoZSBzdGF0aWMg4oCcV2VsY29tZSB0byBDSS9DRCAxMDEgdXNpbmcgQ2lyY2xlQ0kh4oCdIHdlYiBwYWdlIHNlcnZlZCBieSB0aGlzIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsc28gdmVyaWZ5IHlvdXIgY29udGFpbmVyIGlzIHJ1bm5pbmcgYnkgZXhlY3V0aW5nIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbC4gV2XigJlsbCBkaXNjdXNzIHRoaXMgaW4gdGhlIG5leHQgc2VjdGlvbi4gQmVmb3JlIHRoYXQsIGxldOKAmXMgc3RhcnQgYW4gb3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGFwcGxpY2F0aW9uIGJ5IHJ1bm5pbmcgYW5vdGhlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnRlZCBvdXIgZmlyc3QgY29udGFpbmVyIHdpdGggdGhlIG5hbWUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDsgYW5kIHNpbmNlIGNvbnRhaW5lciBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgd2XigJlyZSBnb2luZyB0byBuYW1lIG91ciBuZXcgY29udGFpbmVyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7LiBBbm90aGVyIGNoYW5nZSB0aGF0IG11c3QgYmUgbWFkZSBpbiBvdXIgbmV3IGNvbnRhaW5lciBpcyB0aGUgcG9ydCBudW1iZXIuIFdl4oCZbGwgY2hhbmdlIGl0IGZyb20gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMCZsdDsvY29kZSZndDsgdG8gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMSZsdDsvY29kZSZndDsgc2luY2UgYXBwbGljYXRpb25zIGNhbm5vdCBvY2N1cHkgdGhlIHNhbWUgcG9ydCBudW1iZXIgb24gdGhlIHNhbWUgbmV0d29yayBpbnRlcmZhY2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RXhlY3V0ZSB0aGUgZm9sbG93aW5nICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtZCAtcCA1MDAxOjUwMDAgLS1uYW1lIG5vZGV0ZXN0MDIgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISBZb3Ugbm93IGhhdmUgdHdvIGNvbnRhaW5lcnMgcnVubmluZyBvbiB5b3VyIGxvY2FsIG1hY2hpbmUuIFlvdSBjYW4gZ28gdG8gdGhpcyBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMSZsdDsvY29kZSZndDsgaW4gYSBicm93c2VyIGFuZCBzZWUgdGhlIGFwcCBydW5uaW5nIGluIHlvdXIgc2Vjb25kIERvY2tlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaXMgdmVyeSByb2J1c3QgYW5kIGhhcyBtYW55IHByb3BlcnR5IGFuZCBjb25maWd1cmF0aW9uIGZsYWdzIHdoaWNoIEkgd29u4oCZdCBiZSBhYmxlIHRvIGFkZHJlc3Mgb3IgZGVtb25zdHJhdGUgaW4gdGhpcyBwb3N0LiBJIGhpZ2hseSByZWNvbW1lbmQgdGhhdCB5b3UgcmVhZCBhbmQgZmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgbWFueSB3YXlzIHRoYXQgeW91IGNhbiBleGVjdXRlIGFuZCBydW4gRG9ja2VyIGNvbnRhaW5lcnMuIFlvdSBjYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7cmVhZCB1cCBvbiBEb2NrZXIgY29udGFpbmVycyBjb21tYW5kcyBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9wcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbGlzdHMgYWxsIG9mIHRoZSBydW5uaW5nIERvY2tlciBjb250YWluZXJzLiBUaGlzIGNvbW1hbmQgc2VydmVzIGEgc2ltaWxhciBwdXJwb3NlIGFzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2UmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgYW5kIGxpc3RzIGFjdGl2ZWx5IHJ1bm5pbmcgY29udGFpbmVycy4gVXNlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDstYSZsdDsvY29kZSZndDsgZmxhZyB0byBzaG93IGFsbCBvZiB0aGUgcnVubmluZyBhbmQgbm90IHJ1bm5pbmcgY29udGFpbmVycy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoaXMgY29tbWFuZCBpbiBhIHRlcm1pbmFsIGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIGJvdGggb2YgdGhlIHByZXZpb3VzbHkgY3JlYXRlZCBjb250YWluZXJzIHJ1bm5pbmcgaW4gdGhlIHJlc3VsdHM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlIHJlc3VsdHMgd2lsbCBiZSBzaW1pbGFyIHRvIHRoaXMgc2hvd2luZyBib3RoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDEmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcnMgc3RpbGwgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0NPTlRBSU5FUiBJRCAgICAgICAgSU1BR0UgICAgICAgICAgICAgICAgICAgICAgIENPTU1BTkQgICAgICAgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNUQVRVUyAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICAgICAgIE5BTUVTCmRmZDMwMTgxZTE1YyAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAxMiBtaW51dGVzIGFnbyAgICAgIFVwIDEyIG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAxLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAyOCBtaW51dGVzIGFnbyAgICAgIFVwIDI4IG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAwLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7CiAgICAmbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvc3RhcnQvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdGFydHMgYW4gZXhpc3RpbmcgY29udGFpbmVyLiZsdDsvcCZndDsKICAmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsKICAgICZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9zdG9wLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdG9wcyBhbiBleGlzdGluZyBjb250YWluZXIuJmx0Oy9wJmd0OwogICZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgaXMgb25seSB1c2VkIHRvIHN0YXJ0ICZsdDtzdHJvbmcmZ3Q7ZXhpc3RpbmcmbHQ7L3N0cm9uZyZndDsgY29udGFpbmVycyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcnVuJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBVbmxlc3MgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy0tcm09dHJ1ZSZsdDsvY29kZSZndDsgZmxhZyBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgbmV3bHkgY3JlYXRlZCBjb250YWluZXJzIHdpbGwgcGVyc2lzdCBhbmQgY2FuIGJlIHJldXNlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RhcnQmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCZsdDsvY29kZSZndDsgY29tbWFuZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdG9wIHNvbWUgcnVubmluZyBjb250YWluZXJzIGJ5IGV4ZWN1dGluZyB0aGVzZSBjb21tYW5kczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBzdG9wIG5vZGV0ZXN0MDEgbm9kZXRlc3QwMgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBydW5uaW5nIGNvbnRhaW5lcnMgc2hvdWxkIG5vdyBiZSBpbmFjdGl2ZSBhbmQgc3RvcHBlZC4gU2luY2UgdGhleeKAmXJlIHN0b3BwZWQsIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgaW5kaWNhdGluZyBzdG9wcGVkIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtDT05UQUlORVIgSUQgICAgICAgIElNQUdFICAgICAgICAgICAgICAgICAgICAgICBDT01NQU5EICAgICAgICAgICAgICAgICAgQ1JFQVRFRCAgICAgICAgICAgICBTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICBOQU1FUwpkZmQzMDE4MWUxNWMgICAgICAgIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAgICAmcXVvdDtkb2NrZXItZW50cnlwb2ludC5z4oCmJnF1b3Q7ICAgMzEgbWludXRlcyBhZ28gICAgICBFeGl0ZWQgKDApIDM4IHNlY29uZHMgYWdvICAgICAgICAgICAgICAgICAgICAgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICBBYm91dCBhbiBob3VyIGFnbyAgIEV4aXRlZCAoMCkgMzggc2Vjb25kcyBhZ28gICAgICAgICAgICAgICAgICAgICAgIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhvdWdoIHRoZXNlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQgdGhleSB3aWxsIHBlcnNpc3QgYW5kIGNhbiBiZSByZXN0YXJ0ZWQgdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCZsdDsvY29kZSZndDsgY29tbWFuZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXRzIHN0YXJ0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAxJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgc28gd2UgY2FuIGxlYXJuIGhvdyB0byB1c2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBmZWF0dXJlcyBpbiB0aGUgbmV4dCBzZWN0aW9uLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHN0YXJ0IG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Tm93IHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBOb3RpY2UgdGhlIHN0YXR1cyBmb3IgdGhpcyBjb250YWluZXIgcmVhZHMgc2ltaWxhciB0byAgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXAgYWJvdXQgYSAzMCBzZWNvbmRzJmx0Oy9jb2RlJmd0OyBvciBzb21ldGhpbmcgdG8gdGhhdCBlZmZlY3QuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9ncy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ3MmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBmZXRjaGVzIGEgY29udGFpbmVy4oCZcyBsb2dzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIHNlZSBsb2dzIHRoYXQgYXJlIHByZXNlbnQgYXQgdGhlIHRpbWUgb2YgZXhlY3V0aW9uLiBTaW5jZSB5b3VyIGFwcHMgYXJlIHJ1bm5pbmcgaW5zaWRlIHRoZXNlIGNvbnRhaW5lcnMsIHRoZSBsb2dzIGNvbW1hbmQgaXMgdXNlZnVsIGZvciByZWFkaW5nIG91dCBjcml0aWNhbCBhcHAgb3V0cHV0cy4gVGhpcyBoZWxwcyBpbiB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgYXBwIGlzIHBlcmZvcm1pbmcgYW5kIGFueSBkZWJ1Z2dpbmcvdHJvdWJsZXNob290aW5nIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBydW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDEmbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBsb2dzIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIGNvbW1hbmQgeW91IHNob3VsZCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHdoYXTigJlzIHNob3duIGJlbG93LiBJdCBzaG93cyB0aGF0IHRoZSBhcHAgaW5zaWRlIGNvbnRhaW5lciBpcyB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O05vZGUgc2VydmVyIGlzIHJ1bm5pbmcuLgoKJmFtcDtndDsgbm9kZWpzLWNpcmNsZWNpQDAuMC4xIHN0YXJ0IC91c3Ivc3JjL2FwcAomYW1wO2d0OyBub2RlIGFwcC5qcwoKTm9kZSBzZXJ2ZXIgaXMgcnVubmluZy4uCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0gJmFtcDtsdDtjb250YWluZXIgbmFtZSZhbXA7Z3Q7Jmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgZGVsZXRlcyBhIGNvbnRhaW5lciBvciBtdWx0aXBsZSBjb250YWluZXJzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtQZXJzaXN0aW5nIERvY2tlciBjb250YWluZXJzIGNvbnN1bWVzIGRpc2sgc3BhY2UgYW5kIHJlc291cmNlcyBvbiBpdHMgaG9zdC4gT3BlcmF0aW9uYWxseSwgaXQgZG9lc27igJl0IG1ha2UgbXVjaCBzZW5zZSB0byBwZXJzaXN0IGV2ZXJ5IGNvbnRhaW5lciBvbiBkaXNrIHNpbmNlIGluIG1vc3QgY2FzZXMgY29udGFpbmVycyBhcmUgZGlzcG9zYWJsZSBhbmQgc2hvdWxkIGJlIHVzZWQgdGhhdCB3YXkuIFNvIHdoZW4gYSBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpdCBzaG91bGQgYmUgcGVybWFuZW50bHkgZGlzY2FyZGVkIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgcGVybWFuZW50bHkgZGVsZXRlcyBjb250YWluZXJzIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAyJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBzbyBsZXTigJlzIHNhdmUgc29tZSBkaXNrIHNwYWNlIGFuZCBkZWxldGUgaXQuIE5vdGUgdGhpcyBjb21tYW5kIHdpbGwgb25seSBkZWxldGUgaW5hY3RpdmUvc3RvcHBlZCBjb250YWluZXJzIGFuZCB3aWxsIGVycm9yIG91dCBpZiBpdOKAmXMgcnVuIGFnYWluc3QgYW4gYWN0aXZlL3J1bm5pbmcgY29udGFpbmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBybSBub2RldGVzdDAyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm8gbG9uZ2VyIHNlZSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMiZsdDsvY29kZSZndDsgY29udGFpbmVyIG9uIHRoZSBob3N0IGFmdGVyIHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGhhcyBvdGhlciBwcm9wZXJ0aWVzIGFuZCBmbGFncyBhbmQgeW91IHNob3VsZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcm0vJnF1b3Q7Jmd0O2ZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggdGhlbSBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ybWkvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBybWkmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBkZWxldGVzIERvY2tlciBpbWFnZXMgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGFwcGxpZXMgdG8gZGVsZXRpbmcgRG9ja2VyIGltYWdlcyBmcm9tIGEgaG9zdC4gSWYgdGhlcmUgYXJlIGV4aXN0aW5nIGNvbnRhaW5lcnMgb24gdGhlIGhvc3QgdGhhdCBhcmUgYmFzZWQgb24gYSBzcGVjaWZpYyBpbWFnZSwgdGhlbiB0aGlzIGNvbW1hbmQgd2lsbCBub3QgYWxsb3cgdGhlIGRlbGV0aW9uIG9mIHRoZSBjb250YWluZXIgYmFzZWQgb24gdGhlIGltYWdlLiBZb3UgbXVzdCBmaXJzdCBlbnN1cmUgdGhlIGNvbnRhaW5lciBpcyBzdG9wcGVkIGFuZCBkZWxldGVkIGJlZm9yZSB5b3UgY2FuIGRlbGV0ZSBEb2NrZXIgaW1hZ2VzIHVzaW5nIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtaSZsdDsvY29kZSZndDsgY29tbWFuZC4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtaS8mcXVvdDsmZ3Q7UmVhZCB1cCBvbiB0aGUgZG9ja2VyIHJtaSBjb21tYW5kIGhlcmUmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBpbWFnZSBkZXBsb3ltZW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtNYW55IERvY2tlciBpbWFnZXMgYXJlIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgaG9zdGVkIG9uIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2RvY2tlci1odWIvJnF1b3Q7Jmd0O0RvY2tlciBIdWIgUmVnaXN0cnkmbHQ7L2EmZ3Q7IHdoaWNoIGlzIGFuIG9ubGluZSBjZW50cmFsIGhvc3Rpbmcgc29sdXRpb24gZm9yIERvY2tlciBpbWFnZXMuIERvY2tlciBIdWIgZW5hYmxlcyBhbnlvbmUgd2l0aCBhbiBpbnRlcm5ldCBjb25uZWN0aW9uIHRvIHB1bGwgZG93biBwdWJsaWNseSBhdmFpbGFibGUgaW1hZ2VzIGZyb20gdGhlIHJlZ2lzdHJ5IHRvIHRoZWlyIGxvY2FsIG1hY2hpbmVzIG9yIHNlcnZlcnMuIEl0IGFsc28gZW5hYmxlcyByZWdpc3RlcmVkIHVzZXJzIHRvIHVwbG9hZCBhbmQgcHVibGljbHkgc2hhcmUgYW55IG9mIHRoZWlyIGNvbnRhaW5lcnMgc28gdGhhdCBhbnlvbmUgY2FuIHB1bGwgZG93biB0aGF0IGltYWdlIGZyb20gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2h1Yi5kb2NrZXIuY29tLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIEnigJlsbCBicmllZmx5IGRpc2N1c3Mgc29tZSBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItaHViLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0OyByZWxhdGVkIGNvbW1hbmRzLiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3B1bGwvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBwdWxsJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgcHVsbHMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IGZyb20gYSByZWdpc3RyeS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGVuYWJsZXMgeW91IHRvIGRvd25sb2FkIGEgdmFsaWQgRG9ja2VyIGltYWdlIGZyb20gRG9ja2VyIEh1Yi4gUHVibGljbHkgYXZhaWxhYmxlIERvY2tlciBpbWFnZXMgZG8gbm90IHJlcXVpcmUgYXV0aGVudGljYXRpb24uIElmIHRoZSByZWdpc3RyeSBpcyBwcml2YXRlIHlvdSB3aWxsIG5lZWQgdG8gYXV0aGVudGljYXRlIHVzaW5nIGFuIGFzc2lnbmVkIGNyZWRlbnRpYWwgdXN1YWxseSBpbiB0aGUgZm9ybSBvZiBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ2luJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbG9ncyBpbnRvIGEgRG9ja2VyIHJlZ2lzdHJ5LiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyB5b3UgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgYSBEb2NrZXIgUmVnaXN0cnkuIElmIHlvdeKAmXJlIHVzaW5nIHRoaXMgbG9naW4gY29tbWFuZCB5b3Ugc2hvdWxkICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8jcHJvdmlkZS1hLXBhc3N3b3JkLXVzaW5nLXN0ZGluJnF1b3Q7Jmd0O3BvcHVsYXRlIGEgLnR4dCBmaWxlJmx0Oy9hJmd0OyB3aXRoIHlvdXIgRG9ja2VyIEh1YiBhY2NvdW50IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBwcm90ZWN0IHRoZXNlIGNyZWRlbnRpYWxzIGZyb20gZXhwb3N1cmUuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcHVzaC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHB1c2gmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBwdXNoZXMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IHRvIGEgcmVnaXN0cnkuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBlbmFibGVzIHVzZXJzIHRvIHVwbG9hZCBpbWFnZXMgdG8gYSBEb2NrZXIgcmVnaXN0cnkgYW5kIHJlcXVpcmVzIHZhbGlkIGNyZWRlbnRpYWxzLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O1NvIHRoZXJlIHlvdSBoYXZlIGl0LiBJbiB0aGlzIHBvc3QgSSB3ZW50IGEgYml0IGRlZXBlciBpbiBleHBsYWluaW5nIERvY2tlciB0ZXJtaW5vbG9neSBhbmQgY29tbWFuZHMgYXMgd2VsbCBhcyBjb250YWluZXJzIGFuZCB0aGVpciB1c2FnZS4gVGhlIGNvbW1hbmRzIEkgZGlzY3Vzc2VkIGFuZCBkZW1vbnN0cmF0ZWQsIGFyZSB0aGUgbW9zdCB3aWRlbHkgdXNlZCBjb21tYW5kcyBpbiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGxlYXJuaW5nIGEgYml0IG1vcmUgYWJvdXQgdGhlbSBhbmQgdGhlaXIgcHJvcGVydGllcyBhbmQgZmxhZ3Mgd2lsbCBkZWZpbml0ZWx5IGhlbHAgeW91IGxldmVsIHVwIHlvdXIgRG9ja2VyIGFuZCBjb250YWluZXIgc2tpbGxzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZhbWlsaWFyaXppbmcgeW91cnNlbGYgd2l0aCB0aGVzZSBiYXNpYyBjb21tYW5kcyB3aWxsIHJlbW92ZSBvbmUgb2YgdGhlIGxhcmdlciBiYXJyaWVycyB0aGF0IG5ldyB1c2VycyBvZiBDaXJjbGVDSSBlbmNvdW50ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SWYgeW91IHdhbnQgdG8gbGVhcm4gbW9yZSBhYm91dCBDaXJjbGVDSSBjaGVjayBvdXQgdGhlICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wLyZxdW90OyZndDtkb2N1bWVudGF0aW9uIHNpdGUmbHQ7L2EmZ3Q7LCBhbmQgaWYgeW91IHJlYWxseSBnZXQgc3R1Y2sgeW91IGNhbiByZWFjaCBvdXQgdG8gdGhlIENpcmNsZUNJIGNvbW11bml0eSB2aWEgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mbHQ7L2EmZ3Q7IGNvbW11bml0eS9mb3J1bSBzaXRlLiZsdDsvcCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogIDwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:52 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:56:52 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"1388cb2d43ebb126","ot-tracer-traceid":"7251f8193c128a78","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889412261:e878be5c7ea7
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:11:52 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da31a38330f52-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce64446100000f52f7939200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:52 GMT
+recorded_with: VCR 5.1.0
diff --git a/spec/support/fixtures/vcr_cassettes/RssReader/_get_all_articles/queues_as_many_slack_messages_as_there_are_articles.yml b/spec/support/fixtures/vcr_cassettes/RssReader/_get_all_articles/queues_as_many_slack_messages_as_there_are_articles.yml
new file mode 100644
index 000000000..8eae27ee5
--- /dev/null
+++ b/spec/support/fixtures/vcr_cassettes/RssReader/_get_all_articles/queues_as_many_slack_messages_as_there_are_articles.yml
@@ -0,0 +1,726 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:57:03 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"036e8f0448867312","ot-tracer-traceid":"3b88d8b94859ffa2","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889423549:4abdd05619f5
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:12:03 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da360bdedf92f-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce6470770000f92f55214200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDExOjQ4OjUyIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:57:03 GMT
+- request:
+ method: get
+ uri: https://circleci.com/blog/feed.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/xml
+ Date:
+ - Tue, 19 May 2020 11:57:04 GMT
+ Etag:
+ - '"d148e5f0c8f6530989f97099948abd37"'
+ Last-Modified:
+ - Tue, 19 May 2020 02:33:22 GMT
+ Server:
+ - nginx
+ Strict-Transport-Security:
+ - max-age=15724800
+ X-Amz-Id-2:
+ - w8ozbsz8A6sZ+SaBLpkIBJ4iz0h/gVsAjw2ebtYp2MDQPXZuz6Fj2J02mlc1m6OnTp72lLE2T2E=
+ X-Amz-Request-Id:
+ - 38A1E646B0F6A0DA
+ X-Frame-Options:
+ - SAMEORIGIN
+ Content-Length:
+ - '183502'
+ Connection:
+ - keep-alive
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiCiAgeG1sOmJhc2U9Imh0dHBzOi8vY2lyY2xlY2kuY29tLyIKICB4bWxuczphdG9tPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8Y2hhbm5lbD4KICAgIDx0aXRsZT5UaGUgQ2lyY2xlQ0kgQmxvZyBGZWVkIC0gQ2lyY2xlQ0k8L3RpdGxlPgogICAgPGRlc2NyaXB0aW9uPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgbmV3cywgdXBkYXRlcywgYW5kIGhhY2tzIGZyb20gQ2lyY2xlQ0kuPC9kZXNjcmlwdGlvbj4KICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvPC9saW5rPgogICAgPGF0b206bGluayBocmVmPSJodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2ZlZWQueG1sIiByZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Db250aW51b3VzIGludGVncmF0aW9uIGZvciBJb25pYyBhcHBsaWNhdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvY29udGlub3VzLWludGVncmF0aW9uLWZvci1pb25pYy1hcHBzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDE4IE1heSAyMDIwIDE3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbm91cy1pbnRlZ3JhdGlvbi1mb3ItaW9uaWMtYXBwcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5GaWtheW8gQWRlcG9qdTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtJbiB0aGUgd29ybGQgb2YgaHlicmlkIG1vYmlsZSBkZXZlbG9wbWVudCwgbm8gb3RoZXIgZnJhbWV3b3JrIGhhcyBkb25lIG1vcmUgZm9yIHRoZSBpbmR1c3RyeSB0aGFuIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tLyZxdW90OyZndDtJb25pYyBmcmFtZXdvcmsmbHQ7L2EmZ3Q7LiBDcmVhdGVkIGluIDIwMTMgYW5kIG9yaWdpbmFsbHkgYnVpbHQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXJqcy5vcmcvJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7IGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY29yZG92YS5hcGFjaGUub3JnLyZxdW90OyZndDtBcGFjaGUgQ29yZG92YSZsdDsvYSZndDssIElvbmljIGhhcyBncm93biB0byBhIGZ1bGwtZmVhdHVyZWQgYXBwbGljYXRpb24gZnJhbWV3b3JrIGZvciBkZXZlbG9waW5nIG1vYmlsZSwgZGVza3RvcCwgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93ZWIuZGV2L3Byb2dyZXNzaXZlLXdlYi1hcHBzLyZxdW90OyZndDtwcm9ncmVzc2l2ZSB3ZWIgYXBwbGljYXRpb25zJmx0Oy9hJmd0Oy4gSW9uaWMgaGFzIGFsc28gYmVjb21lIGZyYW1ld29yay1hZ25vc3RpYywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byB1c2UgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXIuaW8vJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oywgb3IgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3Z1ZWpzLm9yZy8mcXVvdDsmZ3Q7VnVlLmpzJmx0Oy9hJmd0OyBmb3IgZGV2ZWxvcG1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2Ugd2lsbCBiZSBidWlsZGluZyBhIGhhbmR5IHRhc2sgbWFuYWdlci4gV2Ugd2lsbCB3cml0ZSB0ZXN0cyBmb3IgZmVhdHVyZXMgaW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBzZXQgdXAgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbm91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgKENJKSBwaXBlbGluZSB0byBhdXRvbWF0ZSBvdXIgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFdlIHdpbGwgYmUgZGV2ZWxvcGluZyBvdXIgYXBwbGljYXRpb24gdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9yZWFjdCZxdW90OyZndDtJb25pYyBSZWFjdCZsdDsvYSZndDssIHRoZSBJb25pYyB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgZGV2ZWxvcGluZyB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBmb2xsb3cgdGhpcyBwb3N0LCBhIGZldyB0aGluZ3MgYXJlIHJlcXVpcmVkOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QmFzaWMga25vd2xlZGdlIG9mIFJlYWN0LmpzIChOb3QgYSBkZWFsLWJyZWFrZXIsIHlvdSBvbmx5IGhhdmUgdG8gY29weS1wYXN0ZSB0aGUgY29kZSBzbmlwcGV0cykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbm9kZWpzLm9yZyZxdW90OyZndDtOb2RlLmpzJmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtUaGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2NsaSZxdW90OyZndDtJb25pYyBDTEkmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L29sJmd0OwoKJmx0O2gyJmd0O1NjYWZmb2xkaW5nIHRoZSBJb25pYyBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBiZWdpbiwgbGV04oCZcyBzY2FmZm9sZCBhIG5ldyBJb25pYyBhcHBsaWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2lvbmljIHN0YXJ0IHRhc2stbWFuYWdlciB0YWJzIC0tdHlwZT1yZWFjdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgSW9uaWMgQ0xJIHRvIHNjYWZmb2xkIGEgbmV3IHByb2plY3QgZm9yIHVzIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0YWJzJmx0Oy9jb2RlJmd0OyB0ZW1wbGF0ZSBpbnNpZGUgYSBmb2xkZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGFzay1tYW5hZ2VyJmx0Oy9jb2RlJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1lvdSBtaWdodCBiZSBwcm9tcHRlZCBhdCBzb21lIHBvaW50IHdpdGggJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Q3JlYXRlIGZyZWUgSW9uaWMgYWNjb3VudD8mbHQ7L2NvZGUmZ3Q7LiBIaXQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7biZsdDsvY29kZSZndDsgdG8gZGVjbGluZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYW4gSW9uaWMgYWNjb3VudCBzZWUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9hcHBmbG93JnF1b3Q7Jmd0O2hlcmUmbHQ7L2EmZ3Q7LiZsdDsvaSZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmNlIHRoaXMgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb24gKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIHRhc2stbWFuYWdlciZsdDsvY29kZSZndDspIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHNlcnZlIHRoZSBhcHBsaWNhdGlvbiBpbiB5b3VyIHdlYiBicm93c2VyOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7aW9uaWMgc2VydmUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGlzIGNvbW1hbmQgaGFzIGNvbXBsZXRlZCwgeW91IHdpbGwgc2VlIGFuIGFwcGxpY2F0aW9uIHZpZXcgaW4geW91ciBicm93c2VyIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O0kgYW0gdXNpbmcgYSBtb2JpbGUgcHJldmlldyBhY3RpdmF0ZWQgaW4gQ2hyb21l4oCZcyBkZXZlbG9wbWVudCB0b29scy4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXNjYWZmb2xkLXByZXZpZXcucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtEb27igJl0IGJlIHN1cnByaXNlZCBpZiB5b3VycyBoYXMgYSBibGFjayBiYWNrZ3JvdW5kIGFuZCB3aGl0ZSBmb250LiBJdCB1c2VzIHRoZSBkZWZhdWx0IG1vZGUgb2YgeW91ciBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMiZndDtCdWlsZGluZyB0aGUgVGFzayBNYW5hZ2VyIGFwcGxpY2F0aW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05leHQsIGxldOKAmXMgYmVnaW4gYnVpbGRpbmcgdGhlIG1haW4gYXBwbGljYXRpb24uIEdvIGludG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyIG9mIHlvdXIgYXBwbGljYXRpb24gYW5kIG9wZW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGhvbWUgcGFnZSBmb3IgdGhlIG5ld2x5IHNjYWZmb2xkZWQgYXBwbGljYXRpb24uIFJlbW92ZSBldmVyeXRoaW5nIGluIHRoaXMgZmlsZSBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRzeAoKaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsKICBJb25Db250ZW50LAogIElvbkhlYWRlciwKICBJb25QYWdlLAogIElvblRpdGxlLAogIElvblRvb2xiYXIsCiAgSW9uTGlzdCwKICBJb25JdGVtU2xpZGluZywKICBJb25JdGVtLAogIElvbkxhYmVsLAogIElvbkl0ZW1PcHRpb25zLAogIElvbkl0ZW1PcHRpb24sCiAgSW9uRmFiLAogIElvbkZhYkJ1dHRvbiwKICBJb25JY29uLAogIElvbk1vZGFsLAogIElvbkJ1dHRvbiwKICBJb25DYXJkLAogIElvbkNhcmRDb250ZW50LAogIElvbklucHV0LAp9IGZyb20gJnF1b3Q7QGlvbmljL3JlYWN0JnF1b3Q7OwoKaW1wb3J0IHsgYWRkIH0gZnJvbSAmcXVvdDtpb25pY29ucy9pY29ucyZxdW90OzsKCmltcG9ydCAmcXVvdDsuL1RhYjEuY3NzJnF1b3Q7OwoKaW50ZXJmYWNlIFRhc2sgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwp9Cgpjb25zdCBUYWIxOiBSZWFjdC5GQyA9ICgpID0mYW1wO2d0OyB7CiAgY29uc3QgW3Rhc2tzLCBzZXRUYXNrc10gPSB1c2VTdGF0ZSZhbXA7bHQ7VGFza1tdJmFtcDtndDsoW10pOwogIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7CiAgY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKCiAgZnVuY3Rpb24gYWRkTmV3VGFzaygpIHsKICAgIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogICAgY29uc3QgbmV3VGFzayA9IHsKICAgICAgaWQ6IG5ld19pZCwKICAgICAgbmFtZTogdGFza05hbWUsCiAgICB9OwoKICAgIHRhc2tzLnB1c2gobmV3VGFzayk7CgogICAgc2V0VGFza3ModGFza3MpOwoKICAgIHNldFRhc2tOYW1lKCZxdW90OyZxdW90Oyk7CgogICAgc2V0U2hvd01vZGFsKGZhbHNlKTsKICB9CgogIHJldHVybiAoCiAgICAmYW1wO2x0O0lvblBhZ2UmYW1wO2d0OwogICAgICAmYW1wO2x0O0lvbkhlYWRlciZhbXA7Z3Q7CiAgICAgICAgJmFtcDtsdDtJb25Ub29sYmFyJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uVGl0bGUmYW1wO2d0O1Rhc2sgTWFuYWdlciZhbXA7bHQ7L0lvblRpdGxlJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25Ub29sYmFyJmFtcDtndDsKICAgICAgJmFtcDtsdDsvSW9uSGVhZGVyJmFtcDtndDsKICAgICAgJmFtcDtsdDtJb25Db250ZW50JmFtcDtndDsKICAgICAgICAmYW1wO2x0O0lvbkxpc3QmYW1wO2d0OwogICAgICAgICAge3Rhc2tzLmxlbmd0aCAmYW1wO2d0OyAwID8gKAogICAgICAgICAgICB0YXNrcy5tYXAoKGl0ZW06IFRhc2spID0mYW1wO2d0OyB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbVNsaWRpbmcga2V5PXtpdGVtLmlkfSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbSBjbGFzc05hbWU9JnF1b3Q7dG9kby1pdGVtJnF1b3Q7JmFtcDtndDsKICAgICAgICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDt7aXRlbS5uYW1lfSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbnMgc2lkZT0mcXVvdDtlbmQmcXVvdDsmYW1wO2d0OwogICAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsge319JmFtcDtndDtEb25lJmFtcDtsdDsvSW9uSXRlbU9wdGlvbiZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1PcHRpb25zJmFtcDtndDsKICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1TbGlkaW5nJmFtcDtndDsKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KQogICAgICAgICAgKSA6ICgKICAgICAgICAgICAgJmFtcDtsdDtJb25JdGVtJmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICApfQogICAgICAgICZhbXA7bHQ7L0lvbkxpc3QmYW1wO2d0OwoKICAgICAgICB7LyogTW9kYWwqL30KICAgICAgICAmYW1wO2x0O0lvbk1vZGFsIGlzT3Blbj17c2hvd01vZGFsfSZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkNhcmQmYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICZhbXA7bHQ7SW9uTGFiZWwmYW1wO2d0O0FkZCBOZXcgVGFzayZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAmYW1wO2x0O0lvbkNhcmRDb250ZW50JmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICAgJmFtcDtsdDtJb25JbnB1dAogICAgICAgICAgICAgICAgICB2YWx1ZT17dGFza05hbWV9CiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSZxdW90O0VudGVyIFRhc2sgTmFtZS4uLiZxdW90OwogICAgICAgICAgICAgICAgICBvbklvbkNoYW5nZT17KGUpID0mYW1wO2d0OyBzZXRUYXNrTmFtZShlLmRldGFpbC52YWx1ZSEpfQogICAgICAgICAgICAgICAgJmFtcDtndDsmYW1wO2x0Oy9Jb25JbnB1dCZhbXA7Z3Q7CiAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uCiAgICAgICAgICAgICAgICBleHBhbmQ9JnF1b3Q7ZnVsbCZxdW90OwogICAgICAgICAgICAgICAgY29sb3I9JnF1b3Q7cHJpbWFyeSZxdW90OwogICAgICAgICAgICAgICAgb25DbGljaz17KCkgPSZhbXA7Z3Q7IGFkZE5ld1Rhc2soKX0KICAgICAgICAgICAgICAmYW1wO2d0OwogICAgICAgICAgICAgICAgQWRkIFRhc2sKICAgICAgICAgICAgICAmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkQ29udGVudCZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uIG9uQ2xpY2s9eygpID0mYW1wO2d0OyBzZXRTaG93TW9kYWwoZmFsc2UpfSZhbXA7Z3Q7Q2xvc2UgTW9kYWwmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICZhbXA7bHQ7L0lvbk1vZGFsJmFtcDtndDsKCiAgICAgICAgey8qIEFkZCBUYXNrIEJ1dHRvbiAqL30KICAgICAgICAmYW1wO2x0O0lvbkZhYiB2ZXJ0aWNhbD0mcXVvdDtib3R0b20mcXVvdDsgaG9yaXpvbnRhbD0mcXVvdDtlbmQmcXVvdDsgc2xvdD0mcXVvdDtmaXhlZCZxdW90OyZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkZhYkJ1dHRvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsgc2V0U2hvd01vZGFsKHRydWUpfSZhbXA7Z3Q7CiAgICAgICAgICAgICZhbXA7bHQ7SW9uSWNvbiBpY29uPXthZGR9IC8mYW1wO2d0OwogICAgICAgICAgJmFtcDtsdDsvSW9uRmFiQnV0dG9uJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25GYWImYW1wO2d0OwogICAgICAmYW1wO2x0Oy9Jb25Db250ZW50JmFtcDtndDsKICAgICZhbXA7bHQ7L0lvblBhZ2UmYW1wO2d0OwogICk7Cn07CgpleHBvcnQgZGVmYXVsdCBUYWIxOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyBsZXTigJlzIGdvIHRocm91Z2ggdGhlIGNvZGUgc25pcHBldCBhYm92ZS4gVGhpcyBpcyB0aGUgZW50aXJlIGNvZGUgZm9yIG91ciBUYXNrIE1hbmFnZXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnQgYnkgaW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzIGluY2x1ZGluZyB0aGUgY3NzIGZpbGUgZm9yIG91ciBwYWdlLiBXZSB0aGVuIGRlZmluZSBhbiBpbnRlcmZhY2UgdG8gZGVmaW5lIG91ciB0YXNrIG9iamVjdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtpbnRlcmZhY2UgVGFzayB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7Cn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7TmV4dCwgd2UgY3JlYXRlIG91ciBjb21wb25lbnQgYXMgYSBSZWFjdCBmdW5jdGlvbiBjb21wb25lbnQgdHlwZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtSZWFjdC5GQyZsdDsvY29kZSZndDsgYW5kIGJlZ2luIHRoZSBmdW5jdGlvbiBieSBkZWZpbmluZyB0aGUgZGF0YSB3ZSB3YW50IHRvIGhvbGQgaW4gb3VyIHN0YXRlIHVzaW5nIGhvb2tzOiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tzJmx0Oy9jb2RlJmd0OyBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYXNrJmx0Oy9jb2RlJmd0O3MsIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2hvd01vZGFsJmx0Oy9jb2RlJmd0OyBib29sZWFuIHRvIGNvbnRyb2wgdGhlIG9wZW5pbmcgYW5kIGNsb3Npbmcgb2Ygb3VyIHRhc2sgY3JlYXRpb24gZm9ybSwgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tOYW1lJmx0Oy9jb2RlJmd0OyB3aGljaCBob2xkcyB0aGUgdmFsdWUgb2YgYSBuZXcgdGFzayBpbiB0aGUgcHJvY2VzcyBvZiBjcmVhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IFt0YXNrcywgc2V0VGFza3NdID0gdXNlU3RhdGUmYW1wO2x0O1Rhc2tbXSZhbXA7Z3Q7KFtdKTsKY29uc3QgW3Nob3dNb2RhbCwgc2V0U2hvd01vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTsKY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Rm9sbG93aW5nIHRoZXNlIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdlIGNhbGwgdG8gYWRkIGEgbmV3IHRhc2suIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyB0YXNrIGJ5IHNldHRpbmcgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lkJmx0Oy9jb2RlJmd0OyBiYXNlZCBvbiB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBhbmQgY2xlYXJzIHRoZSBmb3JtIGFmdGVyIGFkZGluZyB0aGUgbmV3IHRhc2sgdG8gb3VyIGV4aXN0aW5nIGxpc3Qgb2YgdGFza3MuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtmdW5jdGlvbiBhZGROZXdUYXNrKCkgewogIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogIGNvbnN0IG5ld1Rhc2sgPSB7CiAgICBpZDogbmV3X2lkLAogICAgbmFtZTogdGFza05hbWUsCiAgfTsKCiAgdGFza3MucHVzaChuZXdUYXNrKTsKCiAgc2V0VGFza3ModGFza3MpOwoKICBzZXRUYXNrTmFtZSgmcXVvdDsmcXVvdDspOwoKICBzZXRTaG93TW9kYWwoZmFsc2UpOwp9CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05leHQsIHdlIHJlbmRlciBvdXIgdGVtcGxhdGUgdG8gZGlzcGxheSBvdXIgbGlzdCBvZiB0YXNrcyBhbmQgYWxzbyBkaXNwbGF5IGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgcmVhZHMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmbHQ7L2NvZGUmZ3Q7IHdoZW4gdGhlIHRhc2sgbGlzdCBpcyBlbXB0eS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtGb2xsb3dpbmcgdGhlIGxpc3QgaXMgYSBtb2RhbCBjb21wb25lbnQgdGhhdCBjb250YWlucyBvdXIgdGFzayBmb3JtIGZvciBhZGRpbmcgbmV3IHRhc2tzLiBCZWxvdyB0aGUgY29tcG9uZW50IGlzIGEgZmxvYXRpbmcgYWN0aW9uIGJ1dHRvbiB0aGF0IHRoZSB1c2VyIGNsaWNrcyB0byBvcGVuIHRoZSBtb2RhbC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWZvcmUgd2UgcHJldmlldyB0aGlzLCBvcGVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEuY3NzJmx0Oy9jb2RlJmd0OyBsb2NhdGVkIGluIHRoZSBzYW1lIGZvbGRlciBhcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRzeCZsdDsvY29kZSZndDsgYW5kIHJlcGxhY2UgaXRzIGNvbnRlbnRzIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Lyogc3JjL3BhZ2VzL1RhYjEuY3NzICovCgoudG9kby1pdGVtIHsKICAtLW1pbi1oZWlnaHQ6IDcwcHg7CiAgZm9udC1zaXplOiAxLjJlbTsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHNpbXBseSBidW1wcyB1cCB0aGUgaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgdGhlIGxpc3QgaXRlbXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm93LCBnbyB0byB5b3VyIGJyb3dzZXIgYW5kIGxvYWQgdGhlIGhvbWVwYWdlIG9mIHlvdXIgYXBwbGljYXRpb24gKFRhYjEpLiBZb3Ugd2lsbCBzZWUgdGhlIHBhZ2UgZGlzcGxheWVkIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1ob21lLW5vLXRhc2tzLnBuZyZxdW90OyAvJmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QmVjYXVzZSB3ZSBoYXZlbuKAmXQgYWRkZWQgYW55IHRhc2tzIHlldCwgd2UgaGF2ZSB0aGUgbWVzc2FnZSAmbHQ7c3Ryb25nJmd0O1lvdSBoYXZlIHlldCB0byBhZGQgdGFza3MgZm9yIHRvZGF5Jmx0Oy9zdHJvbmcmZ3Q7IGRpc3BsYXllZC4gV2UgYWxzbyBoYXZlIG91ciAmbHQ7c3Ryb25nJmd0O0FkZCBUYXNrJmx0Oy9zdHJvbmcmZ3Q7IGJ1dHRvbiBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lciB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwbHVzJmx0Oy9jb2RlJmd0OyBzeW1ib2wuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0FkZGluZyB0YXNrcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBhZGQgYSBuZXcgdGFzaywgY2xpY2sgdGhlIGJvdHRvbS1yaWdodCBibHVlIGJ1dHRvbiB0byBwdWxsIHVwIHRoZSB0YXNrIGNyZWF0aW9uIGZvcm0gYW5kIHR5cGUgaW4gYSB0YXNrIGFzIHNob3duIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtdGFzay5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7QUREIFRBU0smbHQ7L3N0cm9uZyZndDsgdG8gYWRkIHRoZSB0YXNrIGFuZCBnbyBhaGVhZCB0byBhZGQgMiB0byAzIG1vcmUgdGFza3MuIFdlIHNob3VsZCBub3cgaGF2ZSBlbm91Z2ggdGFza3Mgb24gdGhlIHBhZ2UgZm9yIG91ciBhcHBsaWNhdGlvbiB0byBsb29rIGZ1bmN0aW9uYWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXRhc2stbGlzdC5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB3ZSBoYXZlIGEgZnVuY3Rpb25hbCBhcHBsaWNhdGlvbi4gTm90IHByb2R1Y3Rpb24tcmVhZHksIGJ1dCBnb29kIGVub3VnaCB0byBzdGFydCB0ZXN0aW5nLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBZGRpbmcgdGVzdHMgdG8gdGhlIFRhc2sgTWFuYWdlciBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtPbmUgYWR2YW50YWdlIHRoYXQgd2UgaGF2ZSB3aXRoIHRlc3Rpbmcgb3VyIElvbmljIGFwcGxpY2F0aW9ucyBpcyB0aGF0IHdoaWxlIHNjYWZmb2xkaW5nIHRoZSBhcHBsaWNhdGlvbiwgdGhlIElvbmljIENMSSBoYXMgc2V0IHVwIGFsbCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcywgaW4gdGVybXMgb2YgcGFja2FnZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCBmb3IgdGVzdGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUZXN0aW5nIElvbmljIFJlYWN0IGFwcGxpY2F0aW9ucyBpcyBkb25lIHVzaW5nIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vamVzdGpzLmlvLyZxdW90OyZndDtKZXN0Jmx0Oy9hJmd0OyB0ZXN0aW5nIGZyYW1ld29yayB0b2dldGhlciB3aXRoIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdGVzdGluZy1saWJyYXJ5LmNvbS9kb2NzL3JlYWN0LXRlc3RpbmctbGlicmFyeS9pbnRybyZxdW90OyZndDtSZWFjdCBUZXN0aW5nIExpYnJhcnkmbHQ7L2EmZ3Q7IGFuZCB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1yZWFjdC10ZXN0LXV0aWxzJnF1b3Q7Jmd0O0lvbmljIFJlYWN0IFRlc3QgVXRpbHMmbHQ7L2EmZ3Q7IGxpYnJhcnkgd2hpY2ggaXMgYSBzbWFsbCBzdWl0ZSBvZiB1dGlsaXRpZXMgdG8gc2ltdWxhdGUgY29tbW9uIGZlYXR1cmVzIGluIElvbmljIGxpa2UgZmlyaW5nIGN1c3RvbSBJb25pYyBldmVudHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIHByb2plY3QgYWxyZWFkeSBjb21lcyB3aXRoIGEgdGVzdCBmaWxlIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7QXBwLnRzeCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLiBBcyB5b3UgbWF5IGhhdmUgZ3Vlc3NlZCwgdGhlIHRlc3QgZmlsZSBpcyBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtBcHAudGVzdC50c3gmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGZvbGxvd3MgdGhlIGNvbnZlbnRpb24gZm9yIEplc3QgdGVzdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsvLyBzcmMvQXBwLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgQXBwIGZyb20gJnF1b3Q7Li9BcHAmcXVvdDs7Cgp0ZXN0KCZxdW90O3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZyZxdW90OywgKCkgPSZhbXA7Z3Q7IHsKICBjb25zdCB7IGJhc2VFbGVtZW50IH0gPSByZW5kZXIoJmFtcDtsdDtBcHAgLyZhbXA7Z3Q7KTsKICBleHBlY3QoYmFzZUVsZW1lbnQpLnRvQmVEZWZpbmVkKCk7Cn0pOwombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHRlc3Qgc2ltcGx5IGNoZWNrcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiByZW5kZXJzIHByb3Blcmx5IGFuZCBkb2VzIG5vdCBjcmFzaC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBydW4gdGhpcyB0ZXN0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBpbnZva2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2plc3QmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gcnVuIHRoZSB0ZXN0IGRlZmluZWQgaW4gdGhlIGZpbGUuIEFzIGRpcmVjdGVkLCBwcmVzcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDthJmx0Oy9jb2RlJmd0OyB0byBydW4gYWxsIHRlc3RzLiBUaGUgYWJvdmUgY29tbWFuZCBpcyB0aGUgY29tbWFuZCB3ZSB3aWxsIGJlIHVzaW5nIHRvIHJ1biBhbGwgdGVzdHMgaW4gb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgbGV04oCZcyBhZGQgc29tZSB0ZXN0cyBvZiBvdXIgb3duLiBXZSB3aWxsIGJlIGNyZWF0aW5nIGEgdGVzdCBmaWxlIHRvIHRlc3QgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIHdlIGhhdmUgaW4gb3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlIHdoaWNoIGhvdXNlcyBvdXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRlc3QudHN4Jmx0Oy9jb2RlJmd0OyBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyLiBJdOKAmXMgdGhlIHNhbWUgcGxhY2UgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VGFiMS50c3gmbHQ7L2NvZGUmZ3Q7IGZpbGUgaXMgbG9jYXRlZC4gSW5zaWRlIHRoZSBuZXdseSBjcmVhdGVkIGZpbGUsIHBsYWNlIGluIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgVGFiMSBmcm9tICZxdW90Oy4vVGFiMSZxdW90OzsKCnRlc3QoJnF1b3Q7UGFnZSB0aXRsZSBpcyBUYXNrIE1hbmFnZXImcXVvdDssIGFzeW5jICgpID0mYW1wO2d0OyB7CiAgY29uc3QgeyBmaW5kQnlUZXh0IH0gPSByZW5kZXIoJmFtcDtsdDtUYWIxIC8mYW1wO2d0Oyk7CiAgYXdhaXQgZmluZEJ5VGV4dCgmcXVvdDtUYXNrIE1hbmFnZXImcXVvdDspOwp9KTsKCnRlc3QoJnF1b3Q7V2hlbiB0aGVyZSBhcmUgbm8gVGFza3MsIGluZm9ybSB0aGUgdXNlciB0aGF0IG5vIHRhc2tzIGhhdmUgYmVlbiBjcmVhdGVkJnF1b3Q7LCBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IHsgZmluZEJ5VGV4dCB9ID0gcmVuZGVyKCZhbXA7bHQ7VGFiMSAvJmFtcDtndDspOwogIGF3YWl0IGZpbmRCeVRleHQoJnF1b3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmcXVvdDspOwp9KTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBmaWxlLCB3ZSBoYXZlIGFkZGVkIHR3byB0ZXN0cy4gVGhlIGZpcnN0IHRlc3QgY2hlY2tzIGlmIG91ciBwYWdlIGRpc3BsYXlzIHdpdGggdGhlIGNvcnJlY3QgdGl0bGUgd2hpY2ggaXMgJmx0O3N0cm9uZyZndDtUYXNrIE1hbmFnZXImbHQ7L3N0cm9uZyZndDsuIFRoZSBzZWNvbmQgdGVzdCBjaGVja3MgaWYgb3VyIGFwcGxpY2F0aW9uIGluaXRpYWxseSBsb2FkcyB3aXRob3V0IHRhc2tzLCBhbmQgaWYgaXQgZG9lcywgaXQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgJmx0O3N0cm9uZyZndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3csIGxldOKAmXMgcnVuIHRoZXNlIHRlc3RzIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGF0IHRoZSByb290IG9mIG91ciBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSBhIHNjcmVlbiBzaW1pbGFyIHRvIHRoZSBvbmUgYmVsb3cgb24geW91ciBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi10ZXN0cy1sb2NhbC1ydW4ucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIG91ciB0ZXN0cyBydW5uaW5nIGFzIGV4cGVjdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBdXRvbWF0aW5nIG91ciB0ZXN0aW5nJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBmaW5hbCB0YXNrIGlzIHRvIGF1dG9tYXRlIG91ciBjb250aW51b3VzIGludGVncmF0aW9uIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhhdCwgd2Ugd2lsbCBiZSBkb2luZyB0aGUgZm9sbG93aW5nOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QWRkIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgdG8gb3VyIHByb2plY3QgdG8gc2V0IHVwIGEgQ0kgcGlwZWxpbmUgb24gQ2lyY2xlQ0kmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIG91ciBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG9zaXRvcnkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDcmVhdGUgYSBDaXJjbGVDSSBwcm9qZWN0IGZvciBvdXIgYXBwbGljYXRpb24mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtSdW4gdGhlIENJIHBpcGVsaW5lIG9uIENpcmNsZUNJJmx0Oy9saSZndDsKJmx0Oy9vbCZndDsKCiZsdDtwJmd0O0xldOKAmXMgZ2V0IHRvIGl0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZpcnN0LCBsZXTigJlzIGFkZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3Igb3VyIENJIHBpcGVsaW5lIHRvIG91ciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLiBJbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbmZpZy55bWwmbHQ7L2NvZGUmZ3Q7IGZpbGUsIGVudGVyIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpqb2JzOgogIGJ1aWxkOgogICAgd29ya2luZ19kaXJlY3Rvcnk6IH4vcmVwbwogICAgZG9ja2VyOgogICAgICAtIGltYWdlOiBjaW1nL25vZGU6MTIuMTYKICAgIHN0ZXBzOgogICAgICAtIGNoZWNrb3V0CiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdXBkYXRlLW5wbQogICAgICAgICAgY29tbWFuZDogJnF1b3Q7c3VkbyBucG0gaW5zdGFsbCAtZyBucG1ANSZxdW90OwogICAgICAtIHJlc3RvcmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgLSBydW46CiAgICAgICAgICBuYW1lOiBpbnN0YWxsLXBhY2thZ2VzCiAgICAgICAgICBjb21tYW5kOiBucG0gaW5zdGFsbAogICAgICAtIHNhdmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgICAgIHBhdGhzOgogICAgICAgICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdGVzdAogICAgICAgICAgY29tbWFuZDogbnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgY29uZmlndXJhdGlvbiBwdWxscyBpbiBhIE5vZGUuanMgaW1hZ2UgYW5kIGluc3RhbGxzIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGRlZmluZWQgaW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0Oy4gT25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCB0aGUgdGVzdCBzY3JpcHQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bnBtIHJ1biB0ZXN0Jmx0Oy9jb2RlJmd0OyBpcyB0aGVuIGV4ZWN1dGVkIHRvIHJ1biBhbGwgdGhlIHRlc3RzIGluIG91ciBhcHBsaWNhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGdvb2QgdG8gZ28uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY29tbWl0IGFsbCB5b3VyIGNoYW5nZXMgYW5kIHB1c2ggdGhlIHByb2plY3QgdG8gYSBHaXRIdWIgcmVwb3NpdG9yeSBvbiB0aGUgR2l0SHViIGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgQ2lyY2xlQ0kgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIGlzIHRvIHNldCB1cCB0aGUgcmVwb3NpdG9yeSBmb3Igb3VyIHByb2plY3QgYXMgYSBDaXJjbGVDSSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBDaXJjbGVDSSBjb25zb2xlLCBnbyB0byB0aGUgJmx0O3N0cm9uZyZndDtBZGQgUHJvamVjdHMmbHQ7L3N0cm9uZyZndDsgcGFnZSB0byBhZGQgdGhlIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtcHJvamVjdC5wbmcmcXVvdDsgYWx0PSZxdW90O0FkZCBQcm9qZWN0JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0Oy4gVGhpcyB3aWxsIGxvYWQgdGhlIG5leHQgc2NyZWVuLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3N0YXJ0LWJ1aWxkaW5nMS5wbmcmcXVvdDsgYWx0PSZxdW90O1N0YXJ0IEJ1aWxkaW5nIC0gQ29uZmlnIHNhbXBsZSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBzZXR1cCBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7LiBCZWZvcmUgdGhlIGJ1aWxkIHN0YXJ0cywgeW91IGdldCBhIHByb21wdCB0byBlaXRoZXIgZG93bmxvYWQgYW5kIHVzZSB0aGUgcHJvdmlkZWQgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBoYXZlIGl0IG9uIGEgc2VwYXJhdGUgYnJhbmNoIG9yIHNldCB1cCBvbmUgbWFudWFsbHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzIucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIEFkZCBtYW51YWxseSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1NlbGVjdCAmbHQ7c3Ryb25nJmd0O0FkZCBNYW51YWxseSZsdDsvc3Ryb25nJmd0OyB0byBwcm9jZWVkLiBUaGlzIHdpbGwgcHJvbXB0IGFub3RoZXIgZGlhbG9nIHRoYXQgY2hlY2tzIHRvIGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXQgdXAgdG8gYmVnaW4gYnVpbGRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzMucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIENvbmZpcm0gY29uZmlndXJhdGlvbiZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsgdG8gY29tcGxldGUgdGhlIHNldHVwLiBUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgcGlwZWxpbmUgdXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBvdXIgcHJvamVjdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGUgYnVpbGQgaXMgZG9uZSBydW5uaW5nLCB5b3Ugd2lsbCBnZXQgYSBzdWNjZXNzZnVsIGJ1aWxkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtc3VjY2Vzc2Z1bC5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHN1Y2Nlc3NmdWwmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O2J1aWxkJmx0Oy9zdHJvbmcmZ3Q7IHRvIHNlZSB0aGUgYmVoaW5kLXRoZS1zY2VuZXMgcHJvY2VzcyhJIGhhdmUgY29sbGFwc2VkIHRoZSAmbHQ7ZW0mZ3Q7dGVzdCZsdDsvZW0mZ3Q7IHN0ZXApLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtcHJvY2Vzcy5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHByb2Nlc3MmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBzY3JlZW4sIG91ciBwcm9qZWN0IGlzIHByb3Blcmx5IHNldCB1cCBhbmQgYWxsIG91ciB0ZXN0cyBhcmUgcnVubmluZyBmaW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgYXMgeW91IGRldmVsb3AsIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgbW9yZSBmZWF0dXJlcywgYWRkIHRlc3RzIHRvIHRoZW0gYW5kIHB1c2ggdG8gR2l0SHViLiBPbmNlIHlvdSBwdXNoLCB0aGUgQ0kgcGlwZWxpbmUgd2lsbCBydW4gYW5kIGFsbCB5b3VyIHRlc3RzIHdpbGwgYmUgZXhlY3V0ZWQuIElmIGFueSB0ZXN0IGZhaWxzLCB5b3VyIGJ1aWxkIHdpbGwgZmFpbCB3aGljaCB3aWxsIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbiB0byBiZSBmaXhlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW914oCZcmUgbm90IHB1c2hpbmcgYW55IGJ1Z3MgaW50byB5b3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIHRoaXMgYXJ0aWNsZSwgd2UgaGF2ZSBzZXQgdXAgYW4gYXV0b21hdGVkIENJIHBpcGVsaW5lIGZvciBvdXIgSW9uaWMgYXBwbGljYXRpb25zIHRvIGltcHJvdmUgb3VyIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGF1dG9tYXRpbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4gSGF2aW5nIGEgQ0kgcGlwZWxpbmUgdGhhdCBwcm9wZXJseSBydW5zIG91ciB0ZXN0cyBwcm90ZWN0cyB1cyBhZ2FpbnN0IG91cnNlbHZlcyBieSBlbnN1cmluZyB0aGF0IHdlIGRvbuKAmXQgZW5kIHVwIHdpdGggYnJva2VuIGFwcGxpY2F0aW9ucyBvciB0aGF0IHdlIGRvbuKAmXQgcHVzaCBidWdneSBjb2RlIHRvIG91ciB0ZWFt4oCZcyByZXBvc2l0b3J5IHdoaWxlIHdvcmtpbmcgdG9nZXRoZXIgb24gYSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyA6KSZsdDsvcCZndDsKCiZsdDtociAvJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3R3aXR0ZXIuY29tL2NvZGVyb25mbGVlaz9sYW5nPWVuJnF1b3Q7Jmd0O0Zpa2F5byZsdDsvYSZndDsgaXMgYSBmdWxsc3RhY2sgZGV2ZWxvcGVyIGFuZCBhdXRob3Igd2l0aCBvdmVyIGEgZGVjYWRlIG9mIGV4cGVyaWVuY2UgZGV2ZWxvcGluZyB3ZWIgYW5kIG1vYmlsZSBzb2x1dGlvbnMuIEhlIGlzIGN1cnJlbnRseSB0aGUgU29mdHdhcmUgTGVhZCBhdCBUZWNoIFNwZWNpYWxpc3QgQ29uc3VsdGluZyBhbmQgZGV2ZWxvcHMgY291cnNlcyBmb3IgUGFja3QgYW5kIFVkZW15LiBIZSBoYXMgYSBzdHJvbmcgcGFzc2lvbiBmb3IgdGVhY2hpbmcgYW5kIGhvcGVzIHRvIGJlY29tZSBhIGZ1bGwtdGltZSBhdXRob3IuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5EcmF3biBPdXQgQ29udmVyc2F0aW9ucywgZmVhdHVyaW5nIENpcmNsZUNJIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlciwgUGF0IFNoaWVsZHM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZHJhd24tb3V0LWNvbnZlcnNhdGlvbi1mZWF0dXJpbmctY2lyY2xlY2ktcHJpbmNpcGFsLXNvZnR3YXJlLWVuZ2luZWVyLXBhdC1zaGllbGRzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5GcmksIDE1IE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RyYXduLW91dC1jb252ZXJzYXRpb24tZmVhdHVyaW5nLWNpcmNsZWNpLXByaW5jaXBhbC1zb2Z0d2FyZS1lbmdpbmVlci1wYXQtc2hpZWxkcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Db3JleSBMZXdpczwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtPbiB0aGlzIGVwaXNvZGUgb2YgRHJhd24gT3V0IENvbnZlcnNhdGlvbnMsIHdlIHRhbGsgYWJvdXQgc29tZXRoaW5nIG5lYXIgYW5kIGRlYXIgdG8gb3VyIGhlYXJ0cyDigJMgQ2lyY2xlQ0kuIFdlLCBhbG9uZyB3aXRoIGh1bmRyZWQgb2YgdGhvdXNhbmRzIG9mIG90aGVyIGRldmVsb3BlcnMgYXQgY29tcGFuaWVzIGxpa2UgU3BvdGlmeSwgRmFjZWJvb2ssIEZvcmQgYW5kIEFldG5hLCB1c2UgQ2lyY2xlQ0kgZXZlcnkgZGF5IHRvIG1ha2Ugc3VyZSB0aGF0IHdl4oCZcmUgZGVwbG95aW5nIHF1YWxpdHkgY29kZSwgYW5kIGJ1aWxkaW5nIGVmZmljaWVuY2llcyBpbnRvIG91ciBlbmdpbmVlcmluZyBwcm9jZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0LCB3aGF0IGV4YWN0bHkgaXMgdW5kZXJuZWF0aCBvdXIgcGxhdGZvcm3igJlzIGhvb2Q/Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Sm9pbiBvdXIgQ1RPIFJvYiBadWJlciBhcyBoZSBob3N0cyBDaXJjbGVDSeKAmXMgUHJpbmNpcGFsIFNvZnR3YXJlIEVuZ2luZWVyIFBhdCBTaGllbGRzIHRvIGRpc2N1c3MgdGhlIGlubmVyLXdvcmtpbmdzIG9mIG91ciB0ZWNobm9sb2d5IGFuZCBwbGF0Zm9ybS4gVGhleSBkaXNjdXNzIGV2ZXJ5dGhpbmcgZnJvbSBwcm9kdWN0IGZlYXR1cmVzIHRvIGFyY2hpdGVjdHVyZSBhbmQgdGFsayBhYm91dCBob3cgYW5kIHdoeSB0aGUgY29yZSBlbGVtZW50cyBvZiBvdXIgcGxhdGZvcm0gZ290IGJ1aWx0LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3JvYi1wYXQucG5nJnF1b3Q7IGFsdD0mcXVvdDtyb2ItcGF0LnBuZyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1JvYiBldmVuIHRha2VzIGEgdHVybiB3aXRoIHRoZSBtYXJrZXJzIHRvIGRpc2N1c3MgZG9tYWluLWRyaXZlbiBkZXNpZ24sIGF1dGhlbnRpY2F0aW9uIGFuZCBtb3JlLiBMZWFybiBldmVyeXRoaW5nIHlvdSBldmVyIHdhbnRlZCB0byBrbm93IGFib3V0IENpcmNsZUNJIGFuZCBtb3JlIGluIHRvZGF54oCZcyBjb252ZXJzYXRpb24uJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXImcXVvdDsmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3lvdXR1LmJlL1dMOVJRNmZNbGUwJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvY2lyY2xlY2kuZ2lmJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsKICAmbHQ7L2EmZ3Q7CgombHQ7YnIgLyZndDsKCiAgJmx0O3AmZ3Q7CiAgICAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8veW91dHUuYmUvV0w5UlE2Zk1sZTAmcXVvdDsgc3R5bGU9JnF1b3Q7Y29sb3I6IzAwMDBFRTsmcXVvdDsmZ3Q7CiAgICAgIFdhdGNoIHRoZSBmdWxsIHZpZGVvIGhlcmUKICAgICZsdDsvYSZndDsKICAmbHQ7L3AmZ3Q7CiZsdDsvZGl2Jmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZG8gSSB1c2UgSW5mcmFzdHJ1Y3R1cmUgYXMgQ29kZT88L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWRvLWktaWFjLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE1heSAyMDIwIDEyOjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2hvdy1kby1pLWlhYy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5BbmdlbCBSaXZlcmE8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7SW5mcmFzdHJ1Y3R1cmUgYXMgY29kZSAoSWFDKSBpcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBhbmQgcHJvdmlzaW9uaW5nIGNsb3VkIGFuZCBJVCByZXNvdXJjZXMgdmlhIG1hY2hpbmUgcmVhZGFibGUgZGVmaW5pdGlvbiBmaWxlcyBhbmQgaXMgYSBwYXJ0IG9mIG1vZGVybiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lcy4gSWFDIGVuYWJsZXMgb3JnYW5pemF0aW9ucyB0byBwcm92aXNpb24sIG1hbmFnZSwgYW5kIGRlc3Ryb3kgY29tcHV0ZSByZXNvdXJjZXMgdXNpbmcgbW9kZXJuIERldk9wcyB0b29scy4gSWFDIGVuYWJsZXMgdGhpcyBieSBzdGF0aWNhbGx5IGRlZmluaW5nIGFuZCBkZWNsYXJpbmcgdGhlc2UgcmVzb3VyY2VzIGluIGNvZGUsIHRoZW4gZGVwbG95aW5nIGFuZCBkeW5hbWljYWxseSBtYWludGFpbmluZyB0aGVzZSByZXNvdXJjZXMgdmlhIGNvZGUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gcmVjZW50IGludGVyYWN0aW9ucyB3aXRoIGRldmVsb3BlcnMsIEnigJl2ZSByZWFsaXplZCB0aGF0IG1hbnkgYXJlIGVpdGhlciBub3QgYXdhcmUgb2YgSWFDLCBvciBhcmUgYXdhcmUgYnV0IGhhdmUgYWJhbmRvbmVkIHRoZWlyIGluaXRpYWwgZWZmb3J0cyBiZWNhdXNlIHJhbXBpbmcgdXAgd2FzIHRvbyBjdW1iZXJzb21lLiBJbiB0aGlzIHBvc3QsIEkgd2lsbCBkaXNjdXNzIHRoZSBiZW5lZml0cyBvZiBJYUMgYW5kIHNvbWUgb2YgdGhlIHRvb2xpbmcgb3B0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgYWxvbmcgd2l0aCBhIGJyaWVmIGRlbW9uc3RyYXRpb24gb24gaG93IHRvIHVzZSB0aGVtIGluIGhvcGVzIG9mIGVhc2luZyB0aGUgdHJhbnNpdGlvbiB0byB1c2luZyBJYUMuIEkgd2lsbCBmb2N1cyBvbiB0aGUgdHdvIG1vc3QgcG9wdWxhciBJYUMgdG9vbHMgdXNlZCBpbiB0aGUgaW5kdXN0cnkgdG9kYXk6ICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cudGVycmFmb3JtLmlvLyZxdW90OyZndDtIYXNoaUNvcnDigJlzIFRlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtCZWZvcmUgeW91IGdldCBzdGFydGVkLCB5b3XigJlsbCBuZWVkIHRvIGhhdmUgdGhlc2UgdGhpbmdzOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9mcmVlJnF1b3Q7Jmd0O0dvb2dsZSBDbG91ZCZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NyZWF0ZSBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3Jlc291cmNlLW1hbmFnZXIvZG9jcy9jcmVhdGluZy1tYW5hZ2luZy1wcm9qZWN0cyNjcmVhdGluZ19hX3Byb2plY3QmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIHByb2plY3QmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FwcC5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkgQVBJIHRva2VuJmx0Oy9hJmd0OyBhbmQgc2F2ZSBpdCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgbG9jYWwgaW5zdGFsbCBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vc2RrL2RvY3MvcXVpY2tzdGFydHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIFNESyBDTEkmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSBsb2NhbCBpbnN0YWxsIG9mIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaHViLmRvY2tlci5jb20vc2VhcmNoLz90eXBlPWVkaXRpb24mYW1wO2FtcDtvZmZlcmluZz1jb21tdW5pdHkmcXVvdDsmZ3Q7RG9ja2VyIGNsaWVudCZsdDsvYSZndDsmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBHb29nbGUgQ2xvdWQgcHJvamVjdCBjcmVkZW50aWFscyZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDbG91ZFBsYXRmb3JtL2NvbW11bml0eS9ibG9iL21hc3Rlci90dXRvcmlhbHMvZ2V0dGluZy1zdGFydGVkLW9uLWdjcC13aXRoLXRlcnJhZm9ybS9pbmRleC5tZCNnZXR0aW5nLXByb2plY3QtY3JlZGVudGlhbHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIGNyZWRlbnRpYWxzJmx0Oy9hJmd0OyBpbiBvcmRlciB0byBwZXJmb3JtIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgdXNpbmcgSWFDIHRvb2xpbmcuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9hcGlzL2NyZWRlbnRpYWxzL3NlcnZpY2VhY2NvdW50a2V5JnF1b3Q7Jmd0O0NyZWF0ZSBTZXJ2aWNlIEFjY291bnQgS2V5IHBhZ2UmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7U2VsZWN0IHRoZSBkZWZhdWx0IHNlcnZpY2UgYWNjb3VudCBvciBjcmVhdGUgYSBuZXcgb25lLCBzZWxlY3QgSlNPTiBhcyB0aGUga2V5IHR5cGUsIGFuZCBjbGljayAmbHQ7c3Ryb25nJmd0O0NyZWF0ZSZsdDsvc3Ryb25nJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O1NhdmUgdGhpcyBKU09OIGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgYW5kIHJlbmFtZSB0aGUgZmlsZSB0byAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaWNkX2RlbW9fZ2NwX2NyZWRzLmpzb24mbHQ7L2NvZGUmZ3Q7LiBUaGlzIGlzICZsdDtzdHJvbmcmZ3Q7dmVyeSBpbXBvcnRhbnQmbHQ7L3N0cm9uZyZndDsgZm9yIGVuYWJsaW5nIHRoZSBHb29nbGUgQ2xvdWQgQ0xJIGluIHRoZSBjb250YWluZXIgbGF0ZXIgb24mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBhIFB1bHVtaSBBUEkgdG9rZW4mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7WW91IHdpbGwgbmVlZCB0byBnZXQgYSBQdWx1bWkgQVBJIHRva2VuIHRvIHN0b3JlIHlvdXIgcHJvamVjdCBzdGF0ZSBvbiBQdWx1bWnigJlzIGJhY2tlbmQgY2xvdWQuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vYXBwLnB1bHVtaS5jb20vJnF1b3Q7Jmd0O2FwcC5wdWx1bWkuY29tLyZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1NlbGVjdCBhbiBPcmdhbml6YXRpb24mbHQ7L3N0cm9uZyZndDsgb24gdGhlIHVwcGVyIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSBhbmQgc2VsZWN0IHlvdXIgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O0FjY2VzcyBUb2tlbnMmbHQ7L3N0cm9uZyZndDsgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7TmV3IEFjY2VzcyBUb2tlbiZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7Q3JlYXRlJmx0Oy9zdHJvbmcmZ3Q7IGFuZCBzYXZlIHRoZSBuZXcgQVBJIHRva2VuIHRoYXQgd2FzIGNyZWF0ZWQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemUgeW91ciBQdWx1bWkgcHJvamVjdCBsYXRlciZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7aDImZ3Q7RG9ja2VyIHB1bGwgSWFDMTAxIERvY2tlciBpbWFnZSZsdDsvaDImZ3Q7CgombHQ7cCZndDtBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlZCBhbmQgeW914oCZcmUgcmVhZHkgdG8gcHVsbCB0aGUgZG9ja2VyIGltYWdlIGZvciB0aGlzIHdvcmtzaG9wLiBJbiB0ZXJtaW5hbCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBwdWxsIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm93IGhhdmUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2FyaXYzcmEvaWFjMTAxJmx0Oy9jb2RlJmd0OyBkb2NrZXIgaW1hZ2UgbG9jYWxseS4gWW91IGNhbiB2ZXJpZnkgYnV5IHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgYW5kIHlvdSBzaG91bGQgc2VlIHRoZSBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0RvY2tlciBydW4gSWFDMTAxIGNvbnRhaW5lciZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgd2XigJlsbCBjcmVhdGUgYSBuZXcgRG9ja2VyIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YXJpdjNyYS9pYWMxMDEmbHQ7L2NvZGUmZ3Q7IGltYWdlIHdoaWNoIGhhcyBhbGwgdGhlIElhQyB0b29scyBhbmQgY29kZSBwcmUtYmFrZWQuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O01vdW50aW5nIHRoZSAvLmNvbmZpZy9nY2xvdWQvIGRpcmVjdG9yeSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtCZWZvcmUgcnVubmluZyB0aGUgbmV3IGNvbnRhaW5lciB5b3UgbmVlZCB0aGUgYWJzb2x1dGUgcGF0aCB0byB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkuIE9uIG15IE1hY09TIG1hY2hpbmUsIG15IGFic29sdXRlIHBhdGggaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7L1VzZXJzL2FuZ2VsLy5jb25maWcvZ2Nsb3VkLyZsdDsvY29kZSZndDsuIEJlIHN1cmUgdG8gZ2V0IHlvdXIgYWJzb2x1dGUgZmlsZSBwYXRoIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2Nsb3VkJmx0Oy9jb2RlJmd0OyBkaXJlY3Rvcnkgb24geW91ciBsb2NhbCBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtSdW4gSWFDMTAxIGNvbnRhaW5lciB3aXRoIG1vdW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtSdW4gdGhpcyBjb21tYW5kIGluIGEgdGVybWluYWwgcnVuIGJ1dCBiZSBzdXJlIHRvIHJlcGxhY2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0OyZsdDsvY29kZSZndDsgYml0IHdpdGggeW91ciBhY3R1YWwgYWJzb2x1dGUgcGF0aCB0byB5b3VyIGxvY2FsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dsb2N1ZC8mbHQ7L2NvZGUmZ3Q7ZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtaXQgLS1uYW1lIGlhY3Rlc3QgLS1tb3VudCB0eXBlPWJpbmQsc291cmNlPSZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0Oy5jb25maWcvZ2Nsb3VkLyx0YXJnZXQ9L3Jvb3QvLmNvbmZpZy9nY2xvdWQvIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJYUMxMDEgY29udGFpbmVyIGlzIHJ1bm5pbmcmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGUgcHJldmlvdXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgeW91ciBJYUMxMDEgY29udGFpbmVyIHdpbGwgYmUgdXAgYW5kIHJ1bm5pbmcgYW5kIHlvdXIgdGVybWluYWwgc2hlbGwgaGFzIGRyb3BwZWQgeW91IGludG8gdGhlIHJ1bm5pbmcgY29udGFpbmVyLiBFdmVyeSBjb21tYW5kIHlvdSBydW4gaW4geW91ciB0ZXJtaW5hbCBzaGVsbCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBEb2NrZXIgY29udGFpbmVyIGZyb20gbm93IG9uIHVudGlsIHlvdSBtYW51YWxseSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtleGl0Jmx0Oy9jb2RlJmd0OyB0aGUgY29udGFpbmVyLiBUaGUgY29udGFpbmVyIGhhcyB0aGUgVGVycmFmb3JtIGFuZCBQdWx1bWkgQ0xJIHRvb2xzIGluc3RhbGxlZCwgYXMgd2VsbCBhcyBleGFtcGxlIGNvZGUgZm9yIGVhY2ggdGhhdCBjcmVhdGVzIGluZnJhc3RydWN0dXJlIGluIHRoZWlyIHJlc3BlY3RpdmUgdG9vbHMuIFRoZSBjb250YWluZXIgcHJvamVjdHMgZmlsZXMgYXJlIG1hcHBlZCBhcyBmb2xsb3dzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHJvamVjdHMvCnxfIHRlcnJhZm9ybS9nY3AvY29tcHV0ZS8gICAjIENvbnRhaW5zIHRoZSBUZXJyYWZvcm0gY29kZSBmaWxlcwp8XyBwdWx1bWkvZ2NwL2NvbXB1dGUvICAgICAgIyBDb250YWlucyB0aGUgUHVsdW1pIGNvZGUgZmlsZXMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gyJmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2EmZ3Q7IGlzIGEgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgYnVpbGRpbmcsIGNoYW5naW5nLCBhbmQgdmVyc2lvbmluZyBpbmZyYXN0cnVjdHVyZSBzYWZlbHkgYW5kIGVmZmljaWVudGx5LiBUZXJyYWZvcm0gY2FuIG1hbmFnZSBleGlzdGluZyBzZXJ2aWNlIHByb3ZpZGVycyBhcyB3ZWxsIGFzIGN1c3RvbSBpbi1ob3VzZSBzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q29uZmlndXJhdGlvbiBmaWxlcyBkZXNjcmliZSB0aGUgY29tcG9uZW50cyBuZWVkZWQgdG8gcnVuIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yIHlvdXIgZW50aXJlIGRhdGFjZW50ZXIgb24gVGVycmFmb3JtLiBUZXJyYWZvcm0gZ2VuZXJhdGVzIGFuIGV4ZWN1dGlvbiBwbGFuIGRlc2NyaWJpbmcgd2hhdCBpdCB3aWxsIGRvIHRvIHJlYWNoIHRoZSBkZXNpcmVkIHN0YXRlLCBhbmQgdGhlbiBleGVjdXRlcyBpdCB0byBidWlsZCB0aGUgZGVzY3JpYmVkIGluZnJhc3RydWN0dXJlLiBBcyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBUZXJyYWZvcm0gaXMgYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBjaGFuZ2VkIGFuZCBjcmVhdGUgaW5jcmVtZW50YWwgZXhlY3V0aW9uIHBsYW5zIHdoaWNoIGNhbiBiZSBhcHBsaWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZSBpbmZyYXN0cnVjdHVyZSBUZXJyYWZvcm0gY2FuIG1hbmFnZSBpbmNsdWRlcyBsb3ctbGV2ZWwgY29tcG9uZW50cyBzdWNoIGFzIGNvbXB1dGUgaW5zdGFuY2VzLCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZywgYXMgd2VsbCBhcyBoaWdoLWxldmVsIGNvbXBvbmVudHMgc3VjaCBhcyBETlMgZW50cmllcywgU2FhUyBmZWF0dXJlcywgZXRjLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBUZXJyYWZvcm0mbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCB3aXRoIHByb3Zpc2lvbmluZyBzb21lIHJlc291cmNlcyBpbiBHQ1AgdXNpbmcgVGVycmFmb3JtIGNvZGUuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDttYWluLnRmICZsdDsvY29kZSZndDsgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBjb2RlIHRoYXQgaGFzIG91ciBpbmZyYXN0cnVjdHVyZSBkZWZpbmVkLiBJbiB0aGlzIGZpbGUgd2XigJlyZSBjcmVhdGluZyBhIG5ldyBjb21wdXRlIGluc3RhbmNlIHRoYXQgd2lsbCBpbnN0YWxsIGFuZCBydW4gYSBQeXRob24gRmxhc2sgYXBwIHBhY2thZ2VkIGluIGEgRG9ja2VyIGNvbnRhaW5lci4gVGhlIFRlcnJhZm9ybSBjb2RlIHdpbGwgYWxzbyBjcmVhdGUgc29tZSBmaXJld2FsbCBydWxlcyB0aGF0IHdpbGwgYWxsb3cgcHVibGljIGFjY2VzcyB0byB0aGUgYXBwIG92ZXIgcG9ydCA1MDAwLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHByb3Zpc2lvbiB0aGlzLCBydW4gdGhpcyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NkIH4vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJbml0aWFsaXppbmcgVGVycmFmb3JtJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1doaWxlIGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBydW4gdGhpcyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7dGVycmZvcm0gaW5pdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSByZXN1bHRzIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cm9vdEBkOWNlNzIxMjkzZTI6fi9wcm9qZWN0L3RlcnJhZm9ybS9nY3AvY29tcHV0ZSMgdGVycmFmb3JtIGluaXQKCkluaXRpYWxpemluZyB0aGUgYmFja2VuZC4uLgoKSW5pdGlhbGl6aW5nIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBDaGVja2luZyBmb3IgYXZhaWxhYmxlIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBEb3dubG9hZGluZyBwbHVnaW4gZm9yIHByb3ZpZGVyICZxdW90O2dvb2dsZSZxdW90OyAoaGFzaGljb3JwL2dvb2dsZSkgMy4xMC4wLi4uCgoqIHByb3ZpZGVyLmdvb2dsZTogdmVyc2lvbiA9ICZxdW90O34mYW1wO2d0OyAzLjEwJnF1b3Q7CgpUZXJyYWZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7aDMmZ3Q7UHJldmlld2luZyB3aXRoIFRlcnJhZm9ybSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUZXJyYWZvcm0gaGFzIGEgY29tbWFuZCB0aGF0IGFsbG93cyB5b3UgdG8gZHJ5IHJ1biBhbmQgdmFsaWRhdGUgeW91ciBUZXJyYWZvcm0gY29kZSB3aXRob3V0IGFjdHVhbGx5IGV4ZWN1dGluZyBhbnl0aGluZy4gVGhlIGNvbW1hbmQgaXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybSBwbGFuJmx0Oy9jb2RlJmd0OyB3aGljaCBhbHNvIGdyYXBocyBhbGwgdGhlIGFjdGlvbnMgYW5kIGNoYW5nZXMgdGhhdCBUZXJyYWZvcm0gd2lsbCBleGVjdXRlIGFnYWluc3QgeW91ciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS4gSW4gdGhlIHRlcm1pbmFsIHJ1bjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3RlcnJhZm9ybSBwbGFuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSByZXN1bHRzIHNpbWlsYXIgdG8gdGhpcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0FuIGV4ZWN1dGlvbiBwbGFuIGhhcyBiZWVuIGdlbmVyYXRlZCBhbmQgaXMgc2hvd24gYmVsb3cuClJlc291cmNlIGFjdGlvbnMgYXJlIGluZGljYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKICArIGNyZWF0ZQoKVGVycmFmb3JtIHdpbGwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGFjdGlvbnM6CgogICMgZ29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwuaHR0cC01MDAwIHdpbGwgYmUgY3JlYXRlZAogICsgcmVzb3VyY2UgJnF1b3Q7Z29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwmcXVvdDsgJnF1b3Q7aHR0cC01MDAwJnF1b3Q7IHsKICAgICAgKyBjcmVhdGlvbl90aW1lc3RhbXAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVzdGluYXRpb25fcmFuZ2VzID0gKGtub3duIGFmdGVyIGFwcGx5KQogIH0KCiAgICAjIGdvb2dsZV9jb21wdXRlX2luc3RhbmNlLmRlZmF1bHQgd2lsbCBiZSBjcmVhdGVkCiAgKyByZXNvdXJjZSAmcXVvdDtnb29nbGVfY29tcHV0ZV9pbnN0YW5jZSZxdW90OyAmcXVvdDtkZWZhdWx0JnF1b3Q7IHsKICAgICAgKyBjYW5faXBfZm9yd2FyZCAgICAgICA9IGZhbHNlCiAgICAgICsgY3B1X3BsYXRmb3JtICAgICAgICAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVsZXRpb25fcHJvdGVjdGlvbiAgPSBmYWxzZQogICAgICArIGd1ZXN0X2FjY2VsZXJhdG9yICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGlkICAgICAgICAgICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGluc3RhbmNlX2lkICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVsX2ZpbmdlcnByaW50ICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVscyAgICAgICAgICAgICAgID0gewogICAgICAgICAgKyAmcXVvdDtjb250YWluZXItdm0mcXVvdDsgPSAmcXVvdDtjb3Mtc3RhYmxlLTY5LTEwODk1LTYyLTAmcXVvdDsKICAgICAgICB9CiAgICAgICsgbWFjaGluZV90eXBlICAgICAgICAgPSAmcXVvdDtnMS1zbWFsbCZxdW90OwogIH0KICBQbGFuOiAyIHRvIGFkZCwgMCB0byBjaGFuZ2UsIDAgdG8gZGVzdHJveS4KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgeW91IGNhbiBzZWUsIFRlcnJhZm9ybSBpcyBnb2luZyB0byBjcmVhdGUgbmV3IEdDUCByZXNvdXJjZXMgZm9yIHlvdSBiYXNlZCBvbiB0aGUgY29kZSBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bWFpbi50ZiZsdDsvY29kZSZndDsgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGFwcGx5Jmx0Oy9oMyZndDsKCiZsdDtwJmd0O05vdyB5b3XigJlyZSByZWFkeSB0byBjcmVhdGUgdGhlIG5ldyBpbmZyYXN0cnVjdHVyZSBhbmQgZGVwbG95IHRoZSBhcHBsaWNhdGlvbi4gUnVuIHRoaXMgY29tbWFuZCBpbiB0aGUgdGVybWluYWw6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt0ZXJyYWZvcm0gYXBwbHkKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGVycmFmb3JtIHdpbGwgcHJvbXB0IHlvdSB0byBjb25maXJtIHlvdXIgY29tbWFuZC4gVHlwZSB5ZXMgYW5kIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0RvIHlvdSB3YW50IHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucz8KICBUZXJyYWZvcm0gd2lsbCBwZXJmb3JtIHRoZSBhY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KICBPbmx5ICd5ZXMnIHdpbGwgYmUgYWNjZXB0ZWQgdG8gYXBwcm92ZS4KCiAgRW50ZXIgYSB2YWx1ZTogeWVzCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RlcnJhZm9ybSB3aWxsIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgYW5kIHlvdSB3aWxsIGhhdmUgYW4gYXBwbGljYXRpb24gdXAgYW5kIHJ1bm5pbmcgb24gR0NQIHNob3J0bHkgYWZ0ZXIgaXQgY29tcGxldGVzLiBQbGVhc2Ugbm90ZSB0aGF0IGl0IHdpbGwgdGFrZSAzLTUgbWludXRlcyBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbWUgb25saW5lIGFmdGVyIFRlcnJhZm9ybSBjb21wbGV0ZXMuIEl04oCZcyBub3QgYW4gaW5zdGFudCBwcm9jZXNzIGJlY2F1c2UgdGhlIGJhY2tlbmQgc3lzdGVtcyBhcmUgcHJvdmlzaW9uaW5nIGFuZCBicmluZ2luZyB0aGluZ3Mgb25saW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgZG9uZSwgeW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7bGFuZ3VhZ2Utc2hlbGwgaGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7T3V0cHV0czoKClB1YmxpY19JUF9BZGRyZXNzICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgMzQuNzQuNzUuMTcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1B1YmxpY19JUF9BZGRyZXNzJmx0Oy9jb2RlJmd0OyB2YWx1ZSBpcyB0aGUgSVAgQWRkcmVzcyB0aGF0IHlvdXIgYXBwIGlzIHJ1bm5pbmcgb24sIHNvIGlmIHlvdSBnbyB0byBhIGJyb3dzZXIgYW5kIHBsdWcgdGhhdCBudW1iZXIgaW4gcGx1cyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7OjUwMDAmbHQ7L2NvZGUmZ3Q7IHBvcnQgYWRkcmVzcyAoaXQgd291bGQgbG9vayBsaWtlIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7MzQuNzQuNzUuMTc6NTAwMCZsdDsvY29kZSZndDspIHlvdSB3aWxsIHNlZSB5b3VyIGFwcCBydW5uaW5nIGluIEdDUC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Tm93IHRoYXQgeW91IGhhdmUgcHJvb2YgdGhhdCB5b3VyIEdvb2dsZSBDb21wdXRlIGluc3RhbmNlIGFuZCB5b3VyIGFwcGxpY2F0aW9uIHdvcmssIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gZGVzdHJveSB0aGUgYXNzZXRzIHRoYXQgeW91IGNyZWF0ZWQgaW4gdGhpcyB0dXRvcmlhbC4gWW91IGNhbiBsZWF2ZSBpdCB1cCBhbmQgcnVubmluZywgYnV0IGJlIGF3YXJlIHRoYXQgdGhlcmUgaXMgYSBjb3N0IGFzc29jaWF0ZWQgd2l0aCBhbnkgYXNzZXRzIHJ1bm5pbmcgb24gdGhlIEdvb2dsZSBDbG91ZCBQbGF0Zm9ybSBhbmQgeW91IHdpbGwgYmUgbGlhYmxlIGZvciB0aG9zZSBjb3N0cy4gR29vZ2xlIGdpdmVzIGEgZ2VuZXJvdXMgJDMwMCBjcmVkaXQgZm9yIGl0cyBmcmVlIHRyaWFsIHNpZ24tdXAsIGJ1dCB5b3UgY291bGQgZWFzaWx5IGVhdCB0aHJvdWdoIHRoYXQgaWYgeW91IGxlYXZlIGFzc2V0cyBydW5uaW5nLiBJdOKAmXMgdXAgdG8geW91LCBidXQgcnVubmluZyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0ZXJyYWZvcm0gZGVzdHJveSZsdDsvY29kZSZndDsgd2lsbCB0ZXJtaW5hdGUgYW55IHJ1bm5pbmcgYXNzZXRzLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIEnigJlsbCBkZW1vbnN0cmF0ZSBob3cgdG8gcGVyZm9ybSBpbmZyYXN0cnVjdHVyZSBwcm92aXNpb25pbmcgdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtQdWx1bWkgU0RLJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9wcm9kdWN0LyNzZGsmcXVvdDsmZ3Q7UHVsdW1pIFNESyZsdDsvYSZndDsgaXMgYW4gb3BlbiBzb3VyY2UgZnJhbWV3b3JrIGZvciBkZWZpbmluZyBhbmQgZGVwbG95aW5nIGNsb3VkIGFwcHMgYW5kIElhQy4gUHVsdW1pIGVuYWJsZXMgZGV2ZWxvcGVycyB0byB3cml0ZSBjb2RlIGluIHRoZWlyIGZhdm9yaXRlIGxhbmd1YWdlIHN1Y2ggYXMgVHlwZVNjcmlwdCwgSmF2YVNjcmlwdCwgUHl0aG9uLCBhbmQgR28uIFRoaXMgZW5hYmxlcyBtb2Rlcm4gYXBwcm9hY2hlcyB0byBjbG91ZCBhcHBsaWNhdGlvbnMgYW5kIGluZnJhc3RydWN0dXJlIHdpdGhvdXQgbmVlZGluZyB0byBsZWFybiBhbm90aGVyIFlBTUwgb3IgRFNMIGRpYWxlY3QuIFRoaXMgdW5sb2NrcyBhYnN0cmFjdGlvbnMgYW5kIHJldXNlLCBhcyB3ZWxsIGFzIGFjY2VzcyB0byB5b3VyIGZhdm9yaXRlIElERXMsIHJlZmFjdG9yaW5nLCBhbmQgdGVzdGluZyB0b29scy4gTWFzdGVyIG9uZSB0b29sY2hhaW4gYW5kIHNldCBvZiBmcmFtZXdvcmtzIGFuZCBnbyB0byBhbnkgY2xvdWQgKEFXUywgQXp1cmUsIEdDUCwgb3IgS3ViZXJuZXRlcykgd2l0aCBlYXNlLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBQdWx1bWkmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUgZXhwZXJpZW5jZWQgYnVpbGRpbmcgaW5mcmFzdHJ1Y3R1cmUgdXNpbmcgVGVycmFmb3JtLCBub3cgeW914oCZbGwgbGVhcm4gaG93IHRvIHByb3Zpc2lvbiBhbmQgZGVwbG95IG5ldyBpbmZyYXN0cnVjdHVyZSB1c2luZyBQdWx1bWkuIFRoZSBQdWx1bWkgZXhhbXBsZSB3aWxsIGNyZWF0ZSB0aGUgc2FtZSBHQ1AgcmVzb3VyY2VzIHByZXZpb3VzbHkgdXNpbmcgUHVsdW1pIGNvZGUgYW5kIHRvb2xzLiBQdWx1bWkgZW5hYmxlcyB5b3UgdG8gZGVmaW5lIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgaW4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHdoaWNoIHByb3ZpZGVzIGxvdHMgb2YgZmxleGliaWxpdHkuIEluIHRoaXMgZXhhbXBsZSwgd2XigJlyZSB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vd3d3LnB5dGhvbi5vcmcvJnF1b3Q7Jmd0O1B5dGhvbiZsdDsvYSZndDsgYXMgb3VyIGxhbmd1YWdlLiBUaGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7X19tYWluLnB5X18mbHQ7L2NvZGUmZ3Q7IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC9wdWx1bWkvZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgaXMgd2hlcmUgd2VyZSBnb2luZyB0byBkZWZpbmUgb3VyIGluZnJhc3RydWN0dXJlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlIHN1cmUgdG8gaGF2ZSB5b3VyIFB1bHVtaSBBUEkgdG9rZW4gYXZhaWxhYmxlLiBZb3XigJlsbCBuZWVkIGl0IGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIFB1bHVtaSBleGFtcGxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7fi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGRpcmVjdG9yeS4gUnVuIHRoaXMgY29tbWFuZCB0byBjaGFuZ2UgaW50byB0aGUgUHVsdW1pIGV4YW1wbGUgZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2Qgfi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gzJmd0O0luc3RhbGxpbmcgZGVwZW5kaWVuY2llcyBmb3IgUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1NpbmNlIHdl4oCZcmUgZGVmaW5pbmcgb3VyIElhQyBzcGVjcyB1c2luZyBQeXRob24gd2XigJlsbCBuZWVkIHRvIGZpcnN0IGluc3RhbGwgdGhlIFB1bHVtaSBQeXRob24gU0RLIGRlcGVuZGVuY2llcy4gSW4gdGhlIHRlcm1pbmFsIHJ1biB0aGlzIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtwaXAgaW5zdGFsbCAtciAuLi9yZXF1aXJlbWVudHMudHh0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtQcmV2aWV3aW5nIHdpdGggUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1B1bHVtaSBoYXMgYSBkcnktcnVuIGNvbW1hbmQgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBwcmV2aWV3Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRpc3BsYXlzIGEgcHJldmlldyBvZiB0aGUgdXBkYXRlcyB0byBhbiBleGlzdGluZyBzdGFjayB3aG9zZSBzdGF0ZSBpcyByZXByZXNlbnRlZCBieSBhbiBleGlzdGluZyBzdGF0ZSBmaWxlLiBUaGUgbmV3IGRlc2lyZWQgc3RhdGUgaXMgY29tcHV0ZWQgYnkgcnVubmluZyBhIFB1bHVtaSBwcm9ncmFtLCBhbmQgZXh0cmFjdGluZyBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbnMgZnJvbSBpdHMgcmVzdWx0aW5nIG9iamVjdCBncmFwaC4gVGhlc2UgYWxsb2NhdGlvbnMgYXJlIHRoZW4gY29tcGFyZWQgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc3RhdGUgdG8gZGV0ZXJtaW5lIHdoYXQgb3BlcmF0aW9ucyBtdXN0IHRha2UgcGxhY2UgdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZCBzdGF0ZS4gTm8gY2hhbmdlcyB0byB0aGUgc3RhY2sgd2lsbCBhY3R1YWxseSB0YWtlIHBsYWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGlzIGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHByZXZpZXcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHJlc3VsdHMgcHJvbXB0aW5nIHlvdSBmb3IgdGhlIFB1bHVtaSBBUEkgdG9rZW4geW91IGNyZWF0ZWQgZWFybGllci4gUGFzdGUgdGhlIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLiBBZnRlciB5b3UgcGFzdGUgdGhlIHRva2VuIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O01hbmFnZSB5b3VyIFB1bHVtaSBzdGFja3MgYnkgbG9nZ2luZyBpbi4KUnVuIGBwdWx1bWkgbG9naW4gLS1oZWxwYCBmb3IgYWx0ZXJuYXRpdmUgbG9naW4gb3B0aW9ucy4KRW50ZXIgeW91ciBhY2Nlc3MgdG9rZW4gZnJvbSBodHRwczovL2FwcC5wdWx1bWkuY29tL2FjY291bnQvdG9rZW5zCiAgICBvciBoaXQgJmFtcDtsdDtFTlRFUiZhbXA7Z3Q7IHRvIGxvZyBpbiB1c2luZyB5b3VyIGJyb3dzZXIgICAgICAgICAgICAgICAgICAgOgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1doZW4gcGFzdGluZyB0aGUgQVBJIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLCBubyB2YWx1ZXMgd2lsbCBiZSBkaXNwbGF5ZWQuIEl0IHdpbGwgcmVtYWluIGludmlzaWJsZSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuJmx0Oy9pJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBtYXkgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGEgc3RhY2sgaW4gdGhlIHRlcm1pbmFsLiBJZiBzbywgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkZXYmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB0aGVuIGhpdCBlbnRlci4gWW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UHJldmlld2luZyB1cGRhdGUgKGRldik6CiAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICAgICBQbGFuCiArICAgcHVsdW1pOnB1bHVtaTpTdGFjayAgICAgIGNvbXB1dGUtZGV2ICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6TmV0d29yayAgIG5ldHdvcmsgICAgICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6SW5zdGFuY2UgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJTilIAgZ2NwOmNvbXB1dGU6RmlyZXdhbGwgIGZpcmV3YWxsICAgICAgICAgICAgICAgICAgICBjcmVhdGUKClJlc291cmNlczoKICAgICsgNSB0byBjcmVhdGUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUganVzdCBlbmFibGVkIGFjY2VzcyB0byB0aGUgUHVsdW1pIGJhY2tlbmQgY2xvdWQgd2hpY2gga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXRlIG9mIHlvdXIgaW5mcmFzdHJ1Y3R1cmVzLiBOb3cgeW914oCZcmUgcmVhZHkgdG8gcnVuIHNvbWUgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7UHVsdW1pIHVwJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1RvIGV4ZWN1dGUgdGhlIFB1bHVtaSBjb2RlLCB1c2UgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIHVwJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGNyZWF0ZXMgb3IgdXBkYXRlcyByZXNvdXJjZXMgaW4gYSBzdGFjay4gVGhlIG5ldyBkZXNpcmVkIGdvYWwgc3RhdGUgZm9yIHRoZSB0YXJnZXQgc3RhY2sgaXMgY29tcHV0ZWQgYnkgcnVubmluZyB0aGUgY3VycmVudCBQdWx1bWkgcHJvZ3JhbSBhbmQgb2JzZXJ2aW5nIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9ucyB0byBwcm9kdWNlIGEgcmVzb3VyY2UgZ3JhcGguIFRoaXMgZ29hbCBzdGF0ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIGV4aXN0aW5nIHN0YXRlIHRvIGRldGVybWluZSB3aGF0IGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQvb3IgZGVsZXRlIG9wZXJhdGlvbnMgbXVzdCB0YWtlIHBsYWNlIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgZ29hbCBzdGF0ZSBpbiB0aGUgbW9zdCBtaW5pbWFsbHkgZGlzcnVwdGl2ZSB3YXkuIEFmdGVyd2FyZCwgdGhpcyBjb21tYW5kIHJlY29yZHMgYSBmdWxsIHRyYW5zYWN0aW9uYWwgc25hcHNob3Qgb2YgdGhlIHN0YWNr4oCZcyBuZXcgc3RhdGUgc28gdGhhdCB0aGUgc3RhY2sgbWF5IGJlIHVwZGF0ZWQgaW5jcmVtZW50YWxseSBhZ2FpbiBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgdGVybWluYWwgcnVuOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHVwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1NlbGVjdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7eWVzJmx0Oy9jb2RlJmd0OyBvcHRpb24gYW5kIGhpdCBlbnRlci4gVGhlIFB1bHVtaSBhcHAgd2lsbCBleGVjdXRlLCBhbmQgc2hvcnRseSBhZnRlciB5b3XigJlsbCBoYXZlIGEgY29tcGxldGUgc2VydmVyIHJ1bm5pbmcgYW4gYXBwbGljYXRpb24gb24gR0NQLiBZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtVcGRhdGluZyAoZGV2KToKICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cwogKyAgIHB1bHVtaTpwdWx1bWk6U3RhY2sgICAgICBjb21wdXRlLWRldiAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUnOKUgCBnY3A6Y29tcHV0ZTpOZXR3b3JrICAgbmV0d29yayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGVkCiArICAg4pSc4pSAIGdjcDpjb21wdXRlOkZpcmV3YWxsICBmaXJld2FsbCAgICAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUlOKUgCBnY3A6Y29tcHV0ZTpJbnN0YW5jZSAgd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDEgIGNyZWF0ZWQKCk91dHB1dHM6CiAgICBleHRlcm5hbF9pcCAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICBpbnN0YW5jZV9tZXRhX2RhdGE6IHsKICAgICAgICBnY2UtY29udGFpbmVyLWRlY2xhcmF0aW9uOiAmcXVvdDtzcGVjOlxuICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDFcbiAgICAgIGltYWdlOiBhcml2M3JhL3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxOmxhdGVzdFxuICAgICAgc3RkaW46IGZhbHNlXG4gICAgICB0dHk6IGZhbHNlXG4gIHJlc3RhcnRQb2xpY3k6IEFsd2F5c1xuJnF1b3Q7CiAgICB9CiAgICBpbnN0YW5jZV9uYW1lICAgICA6ICZxdW90O3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxJnF1b3Q7CiAgICBpbnN0YW5jZV9uZXR3b3JrICA6IFsKICAgICAgICBbMF06IHsKICAgICAgICAgICAgYWNjZXNzQ29uZmlncyAgICA6IFsKICAgICAgICAgICAgICAgIFswXTogewogICAgICAgICAgICAgICAgICAgIG5hdElwICAgICAgICAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICAgICAgICAgICAgICAgICAgbmV0d29ya190aWVyICAgICAgIDogJnF1b3Q7UFJFTUlVTSZxdW90OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgOiAmcXVvdDtuaWMwJnF1b3Q7CiAgICAgICAgfQogICAgXQoKUmVzb3VyY2VzOgogICAgKyA1IGNyZWF0ZWQKCkR1cmF0aW9uOiA1OHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlc2UgcmVzdWx0cywgeW914oCZbGwgc2VlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXh0ZXJuYWxfaXAmbHQ7L2NvZGUmZ3Q7IGtleS4gSXTigJlzIHZhbHVlIGlzIHRoZSBJUCBBZGRyZXNzIHRvIHRoZSBwdWJsaWMgZmFjaW5nIGFwcGxpY2F0aW9uIGV4cG9zZWQgb24gcG9ydCA1MDAwLiBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIFRlcnJhZm9ybSBleGFtcGxlLCB5b3UgY2FuIGFjY2VzcyB0aGUgYXBwbGljYXRpb24gaW4gYSBicm93c2VyLiBSZW1lbWJlciB0byBhbGxvdyBmb3IgYSBmZXcgbWludXRlcyBzbyB0aGUgYmFja2VuZCBzeXN0ZW0gY2FuIGJyaW5nIGV2ZXJ5dGhpbmcgb25saW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQdWx1bWkgZGVzdHJveSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtQdWx1bWkgaGFzIGEgY29tbWFuZCB0byB0ZXJtaW5hdGUgYWxsIG9mIHRoZSBjbG91ZCByZXNvdXJjZXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBkZXN0cm95Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRlbGV0ZXMgYW4gZW50aXJlIGV4aXN0aW5nIHN0YWNrIGJ5IG5hbWUuIFRoZSBjdXJyZW50IHN0YXRlIGlzIGxvYWRlZCBmcm9tIHRoZSBhc3NvY2lhdGVkIHN0YXRlIGZpbGUgaW4gdGhlIHdvcmtzcGFjZS4gQWZ0ZXIgcnVubmluZyB0byBjb21wbGV0aW9uLCBhbGwgb2YgdGhpcyBzdGFja+KAmXMgcmVzb3VyY2VzIGFuZCBhc3NvY2lhdGVkIHN0YXRlIHdpbGwgYmUgZ29uZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtSdW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGluIHRoZSB0ZXJtaW5hbCBhbmQgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5ZXMmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB3aGVuIHByb21wdGVkIHRvICZsdDtzdHJvbmcmZ3Q7cGVybWFuZW50bHkmbHQ7L3N0cm9uZyZndDsgZGVzdHJveSB0aGUgR0NQIHJlc291cmNlcyBjcmVhdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O0NvbmdyYXR1bGF0aW9ucyEgWW914oCZdmUganVzdCBsZXZlbGVkIHVwIGFuZCBub3cgaGF2ZSBleHBlcmllbmNlIHByb3Zpc2lvbmluZyBhbmQgZGVwbG95aW5nIGFwcGxpY2F0aW9ucyB0byBHQ1AgdXNpbmcgdGhlIG1vZGVybiBJYUMgdG9vbHMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O1RlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4gVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2lsbCBoZWxwIHlvdSBleHBhbmQgeW91ciBrbm93bGVkZ2UgZnJvbSBoZXJlOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9jbGktaW5kZXguaHRtbCZxdW90OyZndDtUZXJyYWZvcm0gR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9kb2NzL2dldC1zdGFydGVkLyZxdW90OyZndDtQdWx1bWkgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS9vcmIvcHVsdW1pL3B1bHVtaSZxdW90OyZndDtQdWx1bWkgb3JiIGZvciBDaXJjbGVDSSZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyZxdW90OyZndDtEb2NrZXIgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm0vY29tbXVuaXR5L2Jsb2IvbWFzdGVyL3R1dG9yaWFscy9nZXR0aW5nLXN0YXJ0ZWQtb24tZ2NwLXdpdGgtdGVycmFmb3JtL2luZGV4Lm1kI2dldHRpbmctcHJvamVjdC1jcmVkZW50aWFscyZxdW90OyZndDtHb29nbGUgQ2xvdWQgUGxhdGZvcm0mbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogICAgICAKICAgICAgPGl0ZW0+CiAgICAgICAgPHRpdGxlPkEgbG9vayBhdCBDaXJjbGVDSeKAmXMgaW5kdXN0cnktbGVhZGluZyBzdXBwb3J0IGZvciB0cmFuc2l0aW9uLXJlbGF0ZWQgbWVkaWNhbCBsZWF2ZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hLWxvb2stYXQtY2lyY2xlY2ktcy1pbmR1c3RyeS1sZWFkaW5nLXN1cHBvcnQtZm9yLXRyYW5zaXRpb24tcmVsYXRlZC1tZWRpY2FsLWxlYXZlLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5XZWQsIDEzIE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2EtbG9vay1hdC1jaXJjbGVjaS1zLWluZHVzdHJ5LWxlYWRpbmctc3VwcG9ydC1mb3ItdHJhbnNpdGlvbi1yZWxhdGVkLW1lZGljYWwtbGVhdmUvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RWxpemFiZXRoIEJlbGw8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7T25lIG9mIHRoZSBncmVhdCB0aGluZ3MgYWJvdXQgd29ya2luZyBhdCBDaXJjbGVDSSBpcyB0aGF0IHRoZSBjb21wYW55IGJlbGlldmVzIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGJlIGFibGUgdG8gYmUgdGhlaXIgd2hvbGUgc2VsZiBhdCB3b3JrLiBJbmNsdXNpdml0eSwgZGVtb25zdHJhdGluZyB0cnVzdCBhbmQgcmVzcGVjdCwgYW5kIG1ha2luZyBzdXJlIGV2ZXJ5b25lIGhhcyB0aGUgdG9vbHMgYW5kIHN1cHBvcnQgdGhleSBuZWVkIGFyZSBhbGwgYnVyaWVkIGRlZXAgaW4gdGhlIGN1bHR1cmUgaGVyZSDigJMgaXQgaXMgYSBiaWcgcGFydCBvZiBob3cgd2UgZGVsaXZlciB0aGUgYmVzdCB2YWx1ZSBmb3Igb3VyIGN1c3RvbWVycy4gV2l0aCB0aGF0IGluIG1pbmQsIHRoZSBjb21wYW55IHJlY2VudGx5IHJvbGxlZCBvdXQgYSBuZXcgaGVhbHRoY2FyZSBwb2xpY3kgZm9yIG91ciB0cmFuc2dlbmRlciBjby13b3JrZXJzLiBJbiBhIGZpcnN0IGZvciBjb21wYW5pZXMgaW4gdGhlIENJL0NEIHNwYWNlLCBDaXJjbGVDSSBub3cgb2ZmZXJzIGZ1bGx5LWNvbXBlbnNhdGVkIHBhaWQgbGVhdmUgZm9yIGVtcGxveWVlcyByZWNvdmVyaW5nIGZyb20gdHJhbnNpdGlvbi1yZWxhdGVkIG1lZGljYWwgcHJvY2VkdXJlcy4gVGhpcyBwb2xpY3kgaXMgYW4gZXh0cmVtZWx5IGltcG9ydGFudCBhZGRpdGlvbiB0byBDaXJjbGVDSeKAmXMgYmVuZWZpdHMgcGFja2FnZSBhbmQgYW5vdGhlciBleGFtcGxlIG9mIHRoZSBjb21wYW554oCZcyBkZWRpY2F0aW9uIHRvIHRoZSB3ZWxsLWJlaW5nIG9mIGFsbCBlbXBsb3llZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VHJhbnNpdGlvbiBpcyBhbiBpbW1lbnNlbHkgc3RyZXNzZnVsIHByb2Nlc3MsIGFuZCB0aGUgbWVkaWNhbCBwcm9jZWR1cmVzIHJlcXVpcmVkIHRvIHRyZWF0IHRoZSBkeXNwaG9yaWEgZXhwZXJpZW5jZWQgYnkgc29tZSB0cmFuc2dlbmRlciBwZW9wbGUgb2Z0ZW4gbmVlZCBhIHZlcnkgY2FyZWZ1bCBhcHByb2FjaCB0byByZWNvdmVyeS4mbHQ7L3AmZ3Q7CgombHQ7YmxvY2txdW90ZSZndDsKICAmbHQ7cCZndDtUaGUgZ29hbCBvZiB0aGUgcG9saWN5IGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRyYW5zZ2VuZGVyIGVtcGxveWVlcyBmZWVsIHN1cHBvcnRlZCBkdXJpbmcgdGhpcyBkaWZmaWN1bHQgdGltZSwgYW5kIGJ5IGVuc3VyaW5nIHRoYXQgdHJhbnNnZW5kZXIgZW1wbG95ZWVzIGhhdmUgYWNjZXNzIHRvIGFwcHJvcHJpYXRlbHkgY29tcGVuc2F0ZWQgbWVkaWNhbCBsZWF2ZSwgdGhlIGNvbXBhbnkgY2FuIHJlbW92ZSBtYWpvciBzb3VyY2VzIG9mIHVubmVjZXNzYXJ5IHN0cmVzcy4gVGhpcyB3YXksIHdlIGNhbiByZXR1cm4gdG8gd29yayBoYXBwaWVyLCBoZWFsdGhpZXIsIGFuZCBiZXR0ZXIgYWJsZSB0byBkbyBvdXIgYmVzdCBmb3Igb3VyIGN1c3RvbWVycyBhbmQgb3VyIGNvbGxlYWd1ZXMuJmx0Oy9wJmd0OwombHQ7L2Jsb2NrcXVvdGUmZ3Q7CgombHQ7aDImZ3Q7SG93IHRoaXMgcG9saWN5IGNhbWUgdG9nZXRoZXImbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgcHVzaCBmb3IgdGhlIGZvcm1hbGl6YXRpb24gb2YgdGhlc2UgYmVuZWZpdHMgZ3JldyBvdXQgb2YgdGhlIGVmZm9ydHMgb2YgbWFueSBpbmRpdmlkdWFscy4gVG9nZXRoZXIsIHRoZSB0cmFucyBlbXBsb3llZXMgYXQgQ2lyY2xlQ0kgZGlzY3Vzc2VkIHRoZSBpc3N1ZSBhbW9uZ3N0IG91cnNlbHZlcywgb3VyIG1hbmFnZXJzLCBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIHdobyBzdXBwb3J0ZWQgdXMgaW4gYnJpbmdpbmcgdGhlIHRvcGljIHRvIG91ciBleGVjdXRpdmUgdGVhbS4gQnkgYnVpbGRpbmcgY29uc2Vuc3VzLCBib3RoIHdpdGhpbiB0aGUgdHJhbnMgcG9wdWxhdGlvbiBhdCB0aGUgY29tcGFueSBhbmQgb3VyIGNpc2dlbmRlciBjb2xsZWFndWVzLCB3ZSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IGFkdm9jYXRlIGZvciBhIGZvcm1hbGl6YXRpb24gb2YsIGFuZCBhIGNvbW1pdG1lbnQgdG8sIHRoaXMgaW5kdXN0cnktbGVhZGluZyB0cmFucyBoZWFsdGhjYXJlIGJlbmVmaXQuIFF1ZWVyU3BoZXJlLCB0aGUgRW1wbG95ZWUgUmVzb3VyY2UgR3JvdXAgaGVyZSBhdCBDaXJjbGVDSSBmb3IgTEdCVFFJQSsgZW1wbG95ZWVzLCBoZWxwZWQgY29vcmRpbmF0ZSB0aGUgZWZmb3J0IHRvIGFkdm9jYXRlLCBhbmQgdGhlIHJlc3VsdCB3YXMgYSBwb2xpY3kgdGhhdCBoZWxwcyBlbnN1cmUgdHJhbnMgZW1wbG95ZWVzIGdldCB0aGUgc3VwcG9ydCB3ZSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uZSBvZiB0aGUgYmVzdCB0aGluZ3MgZm9yIG1lIGFib3V0IHdvcmtpbmcgYXQgQ2lyY2xlQ0kgaXMgaG93IGVtcG93ZXJlZCBJIGZlZWwgdG8gY2FsbCBhdHRlbnRpb24gdG8gaXNzdWVzIG9yIHByYWN0aWNlcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCBhbmQgYnJpbmcgcGVvcGxlIHRvZ2V0aGVyIHRvIHdvcmsgb24gdGhlbSwgdG8gdGhlIGJlbmVmaXQgb2YgYm90aCB0aGUgY29tcGFueSBhcyBhIHdob2xlIGFuZCB1bmRlcnJlcHJlc2VudGVkIG9yIG1hcmdpbmFsaXplZCBlbXBsb3llZXMuIFRyYW5zIHBlb3BsZSBmYWNlIHN5c3RlbWljIGJpYXM6IHRoZXJlIGFyZSBubyBmZWRlcmFsLWxldmVsIHByb3RlY3Rpb25zIGZyb20gZGlzY3JpbWluYXRpb24gb24gdGhlIGJhc2lzIG9mIGdlbmRlciBpZGVudGl0eSBpbiB0aGUgVW5pdGVkIFN0YXRlcywgYW5kIG9mIHRoZSB0cmFucyBwb3B1bGF0aW9uIHN1cnZleWVkIGJ5IHRoZSBOYXRpb25hbCBDZW50ZXIgZm9yIFRyYW5zZ2VuZGVyIEVxdWFsaXR5IGluIDIwMTUsIDgwJSBvZiB0aG9zZSB3aG8gd2VyZSBlbXBsb3llZCByZXBvcnRlZCBleHBlcmllbmNpbmcgaGFyYXNzbWVudCwgbWlzdHJlYXRtZW50LCBvciBoYWQgdG8gdGFrZSBzdGVwcyB0byBhdm9pZCB0aG9zZSBob3N0aWxlIHdvcmtwbGFjZSBiZWhhdmlvcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SSBrbm93IGZpcnN0aGFuZCBob3cgZGlmZmljdWx0IGJlaW5nIG91dCBhdCB3b3JrIGNhbiBiZS4gQXQgYSBwcmV2aW91cyBlbXBsb3llciBlYXJseSBpbiBteSB0cmFuc2l0aW9uLCBJIGZlbHQgYWxpZW5hdGVkIGFuZCBkaXNsaWtlZCBieSBjb2xsZWFndWVzIHdobyBoYWQgcHJldmlvdXNseSBiZWVuIGZyaWVuZGx5IGJlZm9yZSB0aGV5IGtuZXcgSSB3YXMgdHJhbnNnZW5kZXIuIEkgaGF2ZSBoYWQgdG8gbWluaW1pemUgdGhlIGZhY3QgdGhhdCBJ4oCZbSB0cmFucywgdG9sZXJhdGUgYWN0aXZlIGhvc3RpbGl0eSBmcm9tIGNvd29ya2Vycywgb3IgcHJldGVuZCB0aGF0IEkgd2FzIGNpc2dlbmRlciwgaW4gb3JkZXIgdG8gcHJvdGVjdCBteSBqb2IuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgQ2lyY2xlQ0ksIEkgaGF2ZSBmZWx0IHN1cHBvcnRlZCwgcmVzcGVjdGVkLCBhbmQgYWJsZSB0byBjb25maWRlbnRseSBiZSBteXNlbGYuIEkgZmVlbCBleGNlcHRpb25hbGx5IGZvcnR1bmF0ZSB0byBoYXZlIGEgd29uZGVyZnVsIGdyb3VwIG9mIHRyYW5zZ2VuZGVyIGNvbGxlYWd1ZXMgYW5kIGZyaWVuZHMgKHdlIG1ha2UgdXAgNyUgb2YgdGhlIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0ksIGFuZCAzJSBvZiB0aGUgb3JnIGluIHRvdGFsLCBjb21wYXJlZCB0byAwLjYlIG9mIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24pLCBhbmQgdG8gd29yayBzb21ld2hlcmUgd2hlcmUgb3VyIHZpZXdzIGFuZCBleHBlcmllbmNlcyBhcmUgdmFsdWVkIGF0IHRoZSBoaWdoZXN0IGxldmVscyBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0lmIHlvdSBsaWtlIHRoZSBzb3VuZCBvZiB3b3JraW5nIHNvbWV3aGVyZSB3aXRoIGEgcmVtb3RlLWZpcnN0IGN1bHR1cmUgYW5kIGNvbGxhYm9yYXRpbmcgb24gaW50ZXJlc3RpbmcgcHJvYmxlbXMgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIHRyYW5zIGZvbHggYW5kIGFsbGllcywgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9jYXJlZXJzLyZxdW90OyZndDtjaGVjayBvdXQgb3VyIG9wZW5pbmdzIGhlcmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIEdhdHNieSBhcHBzIHRvIEhlcm9rdTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtZ2F0c2J5LWFwcHMtdG8taGVyb2t1LzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDExIE1heSAyMDIwIDA5OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1nYXRzYnktYXBwcy10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9qYW1zdGFjay5vcmcvJnF1b3Q7Jmd0O0pBTVN0YWNrJmx0Oy9hJmd0OyBpcyBxdWlja2x5IGJlY29taW5nIGEgYmlnIGRlYWwgaW4gdGhlIHdvcmxkIG9mIHdlYiBkZXZlbG9wbWVudC4gSkFNU3RhY2ssIHdoaWNoIHN0YW5kcyBmb3IgSmF2YXNjcmlwdCwgQVBJcywgYW5kIEhUTUwgbWFya3VwLCBpcyBhIG1vZGVybiBhcmNoaXRlY3R1cmUgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMgYW5kIG9uZSBvZiBpdHMgbWFqb3IgZmVhdHVyZXMgaXMgdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBhIGRhdGFiYXNlIGFuZCBhIHdlYiBzZXJ2ZXIgaXMgb3B0aW9uYWwuIFRoZSBKQU1TdGFjayBhcmNoaXRlY3R1cmUgaXMgYWltZWQgYXQgZGVjb3VwbGluZyB0aGUgZnJvbnRlbmQgYW5kIHRoZSBiYWNrZW5kIGJ5IGdlbmVyYXRpbmcgYSBmcm9udGVuZCBtYWRlIG9mIEhUTUwsIENTUywgYW5kIEphdmFzY3JpcHQgYW5kIGEgYmFja2VuZCB0aGF0IGlzIHNpbXBseSBhIGNvbnRlbnQgQVBJIHJldHVybmluZyBKU09OIG9yIFhNTC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmUgb2YgdGhlIGxlYWRpbmcgSkFNU3RhY2sgcGxhdGZvcm1zIHRvZGF5IGlzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnLyZxdW90OyZndDtHYXRzYnkuanMmbHQ7L2EmZ3Q7LiBHYXRzYnkuanMgaXMgYSBmcmVlIGFuZCBvcGVuLXNvdXJjZSBmcmFtZXdvcmsgYmFzZWQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3JlYWN0anMub3JnLyZxdW90OyZndDtSZWFjdC5qcyZsdDsvYSZndDsgdGhhdCBoZWxwcyBkZXZlbG9wZXJzIGJ1aWxkIGhpZ2gtc3BlZWQgd2ViIGFwcGxpY2F0aW9ucy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHR1dG9yaWFsLCB3ZSB3aWxsIGJlIGRlbW9uc3RyYXRpbmcgaG93IHRvIGRlcGxveSBhIEdhdHNieS5qcyBzaXRlIHRvIHRoZSBwb3B1bGFyIEhlcm9rdSBwbGF0Zm9ybSBieSBidWlsZGluZyBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmUgZm9yIGl0cyBkZXBsb3ltZW50IHVzaW5nIENpcmNsZUNJLiZsdDsvcCZndDsKCiZsdDtoMiZndDtQcmVyZXF1aXNpdGVzJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIG9yZGVyIHRvIGZvbGxvdyBhbG9uZyB3aXRoIHRoaXMgcG9zdCwgeW91IHdpbGwgbmVlZCBhIGZldyB0aGluZ3MgaW4gcGxhY2U6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7ICZhbXA7Z3Q7PSAxMC4xNiBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZSAtdiZsdDsvY29kZSZndDsgb24geW91ciB0ZXJtaW5hbCB0byBwcmludCBvdXQgeW91ciB2ZXJzaW9uIG9mIE5vZGVKUyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7R2l0Jmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2l0Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsLiBUaGlzIHNob3VsZCBwcmludCBvdXQgYXZhaWxhYmxlIGdpdCBjb21tYW5kcykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuaGVyb2t1LmNvbS8mcXVvdDsmZ3Q7SGVyb2t1Jmx0Oy9hJmd0OyBhY2NvdW50Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O0dpdEh1YiZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7V2l0aCB0aGVzZSwgeW91IGFyZSByZWFkeSB0byBmb2xsb3cgYWxvbmcuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NyZWF0aW5nIGEgR2F0c2J5LmpzIHByb2plY3QmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7VG8gYmVnaW4sIHdlIG5lZWQgdG8gY3JlYXRlIG91ciBHYXRzYnkuanMgcHJvamVjdC4gSW4gYW4gYXBwcm9wcmlhdGUgbG9jYXRpb24gd2l0aGluIHlvdXIgc3lzdGVtLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGdhdHNieSBuZXcgZ2F0c2J5LWhlcm9rdS1kZXBsb3kKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBwYXJ0IG9mIHRoaXMgY29tbWFuZCBpcyB0aGUgZm9sZGVyIG5hbWUgZm9yIG15IHByb2plY3QgdG8gYmUgc2NhZmZvbGRlZCBpbi4gWW91IGNhbiB1c2UgYW55IHByZWZlcnJlZCBuYW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCB3aWxsIGltbWVkaWF0ZWx5IGJlZ2luIHNjYWZmb2xkaW5nIGEgbmV3IEdhdHNieS5qcyBwcm9qZWN0LiBZb3UgbWlnaHQgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGVpdGhlciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5YXJuJmx0Oy9jb2RlJmd0OyBvciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7IGFzIHlvdXIgcGFja2FnZSBtYW5hZ2VyLCBmb3IgdGhpcyB0dXRvcmlhbCwgZ28gd2l0aCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNjYWZmb2xkaW5nIHByb2Nlc3MgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIGdhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OykgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gYm9vdCB1cCBhIHNlcnZlciB0byBzZXJ2ZSB0aGUgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBydW4gZGV2ZWxvcAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgc2VydmUgdGhlIGFwcGxpY2F0aW9uIGF0IHRoZSBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8mbHQ7L2NvZGUmZ3Q7IGFuZCBkaXNwbGF5IHRoZSBwYWdlIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MS5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIGEgZnVuY3Rpb25hbCBHYXRzYnkuanMgc2l0ZSB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7U2V0dGluZyB1cCBhIEhlcm9rdSBBcHAgZm9yIEdhdHNieSZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBzZXQgdXAgYSBIZXJva3UgYXBwIGZvciBvdXIgR2F0c2J5IGFwcGxpY2F0aW9uLCB3ZSBuZWVkIHRvIGxvZyBpbnRvIEhlcm9rdSBhbmQgY3JlYXRlIGEgbmV3IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5Mi5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdlIG5lZWQgdG8gZ2V0IHRoZSBuYW1lIG9mIG91ciBhcHBsaWNhdGlvbiAodGhpcyB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBmb3IgdGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgYWJvdmUpIGFuZCB0aGUgQVBJIGtleSBmb3Igb3VyIEhlcm9rdSBhY2NvdW50LiBUaGUgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIEhlcm9rdSAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXZSB3aWxsIG5lZWQgdGhlc2UgdHdvIHZhbHVlcyAodGhlIGFwcCBuYW1lIGFuZCBBUEkga2V5KSBsYXRlciBvbiB0byBjcmVhdGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9uIG91ciBDaXJjbGVDSSBwcm9qZWN0IGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiBvdXIgSGVyb2t1IGFjY291bnQgaXMgdG8gaW5zdGFsbCBzb21lIG5lY2Vzc2FyeSBidWlsZHBhY2tzLiBCdWlsZHBhY2tzIGFyZSBzY3JpcHRzIHRoYXQgcnVuIHdoZW4geW91ciBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZC4gV2Ugd2lsbCBuZWVkIHR3byBidWlsZCBwYWNrcyBmb3IgdGhpcyBleGVyY2lzZTombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0O2hlcm9rdS9ub2RlanM6IFJlcXVpcmVkIGZvciBhbGwgTm9kZS5qcyBhcHBsaWNhdGlvbnMmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtoZXJva3UvaGVyb2t1LWJ1aWxkcGFjay1zdGF0aWM6IFRoZSBIZXJva3UgQnVpbGRwYWNrIFN0YXRpYyBwYWNrYWdlIChiZWNhdXNlIEdhdHNieS5qc+KAmXMgYnVpbGQgaXMgbWFkZSB1cCBvZiBzdGF0aWMgZmlsZXMsIHRoaXMgd2lsbCBoZWxwIHVzIHNlcnZlIHRoZSBzdGF0aWMgZmlsZXMgb24gdGhlIEhlcm9rdSBwbGF0Zm9ybSkmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7R28gdG8geW91ciBIZXJva3UgYXBwbGljYXRpb27igJlzICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgcGFnZSBhbmQgc2Nyb2xsIGRvd24gdG8gJmx0O3N0cm9uZyZndDtCdWlsZHBhY2tzJmx0Oy9zdHJvbmcmZ3Q7ICh5b3UgbWlnaHQgYWxyZWFkeSBzZWUgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgYnVpbGRwYWNrIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQpLiBDbGljayAmbHQ7c3Ryb25nJmd0O0FkZCBidWlsZHBhY2smbHQ7L3N0cm9uZyZndDsgYW5kIHlvdSB3aWxsIHNlZSBhIGRpYWxvZyBwb3AgdXAgc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnkzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rm9yIGVhY2ggYnVpbGRwYWNrICgmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3Uvbm9kZWpzJmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L2hlcm9rdS1idWlsZHBhY2stc3RhdGljJmx0Oy9jb2RlJmd0OykgZW50ZXIgdGhlIGlkZW50aWZpZXIgaW50byB0aGUgdGV4dCBmaWVsZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTYXZlIENoYW5nZXMmbHQ7L3N0cm9uZyZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtOb3RlOiZsdDsvc3Ryb25nJmd0OyAmbHQ7aSZndDtJZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCwgb25seSBhZGQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2hlcm9rdS9oZXJva3UtYnVpbGRwYWNrLXN0YXRpYyZsdDsvY29kZSZndDsgYnVpbGQgcGFjay4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgZG9pbmcgdGhpcyBmb3IgYm90aCBidWlsZHBhY2tzLCB5b3Ugd2lsbCBzZWUgdGhlIHR3byBidWlsZCBwYWNrcyBub3cgbGlzdGVkIGluICZsdDtzdHJvbmcmZ3Q7QnVpbGRwYWNrcyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGF0IGNvbXBsZXRlcyB0aGUgc2V0IHVwIHJlcXVpcmVkIGZvciBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1NldHRpbmcgdXAgdGhlIEdhdHNieS5qcyBwcm9qZWN0IG9uIENpcmNsZUNJJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBuZXh0IHRhc2sgaXMgdG8gZ2V0IG91ciBHYXRzYnkuanMgcHJvamVjdCBzZXQgdXAgb24gQ2lyY2xlQ0kuIFdlIG5lZWQgdG8gcHVzaCBvdXIgY29kZSB0byBhIEdpdEh1YiByZXBvc2l0b3J5IG9uIHRoZSBhY2NvdW50IHlvdSBoYXZlIGxpbmtlZCB0byB5b3VyIENpcmNsZUNJIGFjY291bnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgZ28gdG8gdGhlICZsdDtzdHJvbmcmZ3Q7QWRkIFByb2plY3RzJmx0Oy9zdHJvbmcmZ3Q7IHBhZ2UgdG8gYWRkIHRoZSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk0LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0OyB0byBiZWdpbiBzZXR0aW5nIHVwIHRoZSBwcm9qZWN0LiBUaGlzIHdpbGwgbG9hZCB0aGUgbmV4dCBzY3JlZW4uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk1LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhlIHNldHVwIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsuIEJlZm9yZSB0aGUgYnVpbGQgc3RhcnRzLCB5b3Ugd2lsbCBnZXQgYSBwcm9tcHQgdG8gZWl0aGVyIGRvd25sb2FkIGFuZCB1c2UgdGhlIHByb3ZpZGVkIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgaGF2ZSBpdCBhZGRlZCBvbiBhIHNlcGFyYXRlIGJyYW5jaCBvciBzZXQgb25lIHVwIG1hbnVhbGx5LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk2LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U2VsZWN0ICZsdDtzdHJvbmcmZ3Q7QWRkIE1hbnVhbGx5Jmx0Oy9zdHJvbmcmZ3Q7IHRvIHByb2NlZWQuIFRoaXMgd2lsbCBwcm9tcHQgYW5vdGhlciBkaWFsb2cgdGhhdCBjaGVja3MgdG8gY29uZmlybSB0aGF0IHlvdSBoYXZlIGEgY29uZmlndXJhdGlvbiBmaWxlIHNldCB1cCB0byBiZWdpbiBidWlsZGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTcucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGNvbXBsZXRlIHRoZSBzZXR1cC4gVGhlIGJ1aWxkIHdpbGwgc3VyZWx5IGZhaWwgYmVjYXVzZSB3ZSBoYXZlIG5vdCBzZXQgdXAgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB5ZXQsIHRoaXMgd2Ugd2lsbCBkbyBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiB0aGUgQ2lyY2xlQ0kgY29uc29sZSBpcyB0byBzZXQgdXAgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZW52LXZhcnMvJnF1b3Q7Jmd0O2Vudmlyb25tZW50IHZhcmlhYmxlcyZsdDsvYSZndDsgZm9yIHRoZSBwcm9qZWN0IHdlIGp1c3QgYWRkZWQuIFRoaXMgd2lsbCBlbmFibGUgaXQgdG8gaGF2ZSBhdXRoZW50aWNhdGVkIGFjY2VzcyB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIGZvciBkZXBsb3ltZW50cy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHbyB0byB5b3VyIHByb2plY3TigJlzIHNldHRpbmdzIGJ5IGNsaWNraW5nICZsdDtzdHJvbmcmZ3Q7UHJvamVjdCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgJmx0O3N0cm9uZyZndDtQaXBlbGluZXMmbHQ7L3N0cm9uZyZndDsgcGFnZSAobWFrZSBzdXJlIHlvdXIgcHJvamVjdCBpcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2plY3QpLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5OC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBuYXZpZ2F0ZSB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBwYWdlLiBPbiB0aGlzIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7RW52aXJvbm1lbnQgVmFyaWFibGVzJmx0Oy9zdHJvbmcmZ3Q7IG9uIHRoZSBzaWRlIG1lbnUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk5LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFnZSwgY2xpY2sgJmx0O3N0cm9uZyZndDtBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUgYnV0dG9uJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTAucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZGQgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Jmx0Oy9wJmd0OwombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDs6IFRoaXMgaXMgdGhlIG5hbWUgb2YgeW91ciBIZXJva3UgYXBwbGljYXRpb24gKGluIHRoaXMgY2FzZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnYXRzYnktaGVyb2t1LWRlcGxveSZsdDsvY29kZSZndDspJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7SEVST0tVX0FQSV9LRVkmbHQ7L2NvZGUmZ3Q7OiBZb3VyIEhlcm9rdSBhY2NvdW50IEFQSSBrZXkgZm91bmQgdW5kZXIgdGhlICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCZsdDsvc3Ryb25nJmd0OyB0YWIgb2YgeW91ciBIZXJva3UgYWNjb3VudCBpbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50IFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O09uY2UgYWRkZWQsIHlvdSB3aWxsIGhhdmUgZXZlcnl0aGluZyBzZXQgdXAgb24geW91ciBDaXJjbGVDSSBjb25zb2xlIGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRoZSBHYXRic3kuanMgc2l0ZSB1c2luZyBvcmJzJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy8mcXVvdDsmZ3Q7T3JicyZsdDsvYSZndDsgYXJlIHJldXNhYmxlIHBhY2thZ2VzIG9mIFlBTUwgY29uZmlndXJhdGlvbiB0aGF0IGNvbmRlbnNlIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoZXkgZW5hYmxlIGRldmVsb3BlcnMgdG8gZWFzaWx5IHVzZSBwb3dlcmZ1bCBwaXBlbGluZSBmdW5jdGlvbmFsaXRpZXMgd2l0aCBhbGwgdGhlIGJvaWxlcnBsYXRlIGFic3RyYWN0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBleGVyY2lzZSwgd2Ugd2lsbCBiZSB1c2luZyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7b3JiIGZvciBIZXJva3UmbHQ7L2EmZ3Q7IHRvIGNvbmZpZ3VyZSBvdXIgcGlwZWxpbmUgdG8gZGVwbG95IG91ciBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0IGJlZm9yZSB0aGF0LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGZpbGUgdG8gaW5zdHJ1Y3Qgb3VyIEhlcm9rdSBCdWlsZHBhY2sgU3RhdGljIHBhY2thZ2Ugb24gaG93IHRvIGRlcGxveSBhbmQgc2VydmUgb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgbmV3IGZpbGUgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3RhdGljLmpzb24mbHQ7L2NvZGUmZ3Q7IGFuZCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGUgaW50byBpdDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3sKICAmcXVvdDtyb290JnF1b3Q7OiAmcXVvdDtwdWJsaWMvJnF1b3Q7LAogICZxdW90O2hlYWRlcnMmcXVvdDs6IHsKICAgICZxdW90Oy8qKiZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJnF1b3Q7CiAgICB9LAogICAgJnF1b3Q7LyoqLmNzcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy8qKi5qcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy9zdGF0aWMvKiomcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0sCiAgICAmcXVvdDsvaWNvbnMvKi5wbmcmcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0KICB9LAogICZxdW90O2h0dHBzX29ubHkmcXVvdDs6IHRydWUsCiAgJnF1b3Q7ZXJyb3JfcGFnZSZxdW90OzogJnF1b3Q7NDA0Lmh0bWwmcXVvdDsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgbW9zdCBpbXBvcnRhbnQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaGVyZSBpcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkuIFdoZW4gR2F0c2J5LmpzIHJ1bnMgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2J1aWxkJmx0Oy9jb2RlJmd0OyBzY3JpcHQgKHRoaXMgaXMgYWxzbyB0aGUgc2NyaXB0IHVzZWQgYnkgSGVyb2t1IHRvIHJ1biB0aGUgYnVpbGQgYmVmb3JlIGRlcGxveW1lbnQpLCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1YmxpYyZsdDsvY29kZSZndDsgZm9sZGVyIGlzIGdlbmVyYXRlZCBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBjb250YWluaW5nIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb2R1Y3Rpb24gdmVyc2lvbiBpcyB3aGF0IHRoZSBob3N0IHNlcnZlcyB0byB1c2Vycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaHVzLCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkgaXMgdXNlZCB0byBwb2ludCB0byB0aGlzIGZvbGRlciBzbyB0aGF0IHRoZSBob3N0IHNlcnZlcyB0aGUgYXBwcm9wcmlhdGUgY29kZS4gT3RoZXIgcGFyYW1ldGVycyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gYXJlIHNpbXBseSBiZXN0LXByYWN0aWNlIGNvbmZpZ3VyYXRpb25zIGZvciBHYXRzYnkuanMgc2l0ZXMuIEZvciBleGFtcGxlLCBjYWNoaW5nIGd1aWRlbGluZXMgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvY2FjaGluZy8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7R29vZCEgTm93IHdlIGNhbiB3cml0ZSBvdXIgZGVwbG95bWVudCBzY3JpcHQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgdGhlIHJvb3Qgb2YgeW91ciBHYXRzYnkuanMgcHJvamVjdCwgY3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgYW5kIGEgZmlsZSB3aXRoaW4gaXQgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0Oy4gSW5zaWRlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGU6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt2ZXJzaW9uOiAyLjEKb3JiczoKICBoZXJva3U6IGNpcmNsZWNpL2hlcm9rdUAwLjAuMTAKd29ya2Zsb3dzOgogIGhlcm9rdV9kZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGhlcm9rdS9kZXBsb3ktdmlhLWdpdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGF04oCZcyBpdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgY29uZmlndXJhdGlvbiBhYm92ZSwgd2UgcHVsbCBpbiB0aGUgSGVyb2t1IG9yYiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaXJjbGVjaS9oZXJva3VAMC4wLjEwJmx0Oy9jb2RlJmd0OyB3aGljaCBhdXRvbWF0aWNhbGx5IGdpdmVzIHVzIGFjY2VzcyB0byBhIHBvd2VyZnVsIHNldCBvZiBIZXJva3Ugam9icyBhbmQgY29tbWFuZHMuIE9uZSBvZiB0aG9zZSBqb2JzIGlzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3UvZGVwbG95LXZpYS1naXQmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGRlcGxveXMgeW91ciBhcHBsaWNhdGlvbiBzdHJhaWdodCBmcm9tIHlvdXIgR2l0SHViIHJlcG8gdG8geW91ciBIZXJva3UgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIGpvYiBhbHJlYWR5IHRha2VzIGNhcmUgb2YgaW5zdGFsbGluZyB0aGUgSGVyb2t1IENMSSwgaW5zdGFsbGluZyBwcm9qZWN0IGRlcGVuZGVuY2llcywgcnVubmluZyB0aGUgYnVpbGQgc2NyaXB0LCBhbmQgZGVwbG95aW5nIHRoZSBhcHBsaWNhdGlvbi4gSXQgYWxzbyBwaWNrcyB1cCBvdXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGggZGVwbG95bWVudCB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgdGhlIG1vbWVudCBvZiB0cnV0aCAoZHJ1bSByb2xsKS4gTGV04oCZcyBjb21taXQgYWxsIHRoZSBjaGFuZ2VzIHdlIGhhdmUgbWFkZSB0byBvdXIgR2F0c2J5LmpzIHByb2plY3QgYW5kIHB1c2ggdG8gb3VyIHJlcG8gdG8gdHJpZ2dlciB0aGUgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTEucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBzZWUgdGhlIGJlaGluZC10aGUtc2NlbmVzIHpjdGlvbiBvZiB0aGUgZGVwbG95bWVudCwgeW91IGNhbiBjbGljayBpbnRvIHRoZSBidWlsZC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTIucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgZm9yIHRoZSBmaW5hbCBjb25maXJtYXRpb24gdGhhdCB0aGUgZGVwbG95bWVudCBvZiBvdXIgR2F0c2J5LmpzIHNpdGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bCwgdmlzaXQgdGhlIGRlZmF1bHQgSGVyb2t1IGFkZHJlc3MgZm9yIHRoZSBzaXRlIGF0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vW0FQUF9OQU1FXS5oZXJva3VhcHAuY29tJmx0Oy9jb2RlJmd0Oy4gSWYgeW91IHVzZWQgdGhlIHNhbWUgbmFtZSBhcyBJIGRpZCBmb3IgdGhpcyBleGVyY2lzZSwgdGhhdCB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vZ2F0c2J5LWhlcm9rdS1kZXBsb3kuaGVyb2t1YXBwLmNvbS8mbHQ7L2NvZGUmZ3Q7LiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93ICh0aGlzIG1pZ2h0IGJlIGRpZmZlcmVudCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IEdhdHNieS5qcyBzdGFydGVyIHRlbXBsYXRlLCBsZWFybiBtb3JlIGFib3V0IHN0YXJ0ZXJzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvcGx1Z2lucy10aGVtZXMtYW5kLXN0YXJ0ZXJzLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OykuJmx0Oy9wJmd0OwoKJmx0O3AgYWxpZ249JnF1b3Q7Y2VudGVyJnF1b3Q7Jmd0OwogICAmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTEzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NvbmNsdXNpb24mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2UgZGVwbG95ZWQgYSBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UgdXNpbmcgQ2lyY2xlQ0kgb3Jicy4gTm93IHdoZW4gd2UgcHVzaCBvdXIgY29kZSwgYWxsIGNoYW5nZXMgd2lsbCBiZSBkZXBsb3llZCBhdXRvbWF0aWNhbGx5LiBUaGlzIHR1dG9yaWFsIGhhcyBhbHNvIGRlbW9uc3RyYXRlZCBob3cgQ2lyY2xlQ0kgb3JicyBtYWtlcyBkZXBsb3ltZW50IGVhc3kuIEluc3RlYWQgb2Ygd3JpdGluZyBtYW55IGxpbmVzIG9mIGNvbmZpZyBuZWVkIHRvIGRlcGxveSB0byBIZXJva3UsIG9yYnMgYWJzdHJhY3QgYWxsIG9mIHRoYXQgaW50byBjb252ZW5pZW50IGNvbW1hbmRzIGZvciB1cyB0byB1c2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2hlY2sgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kgb3JicyByZWdpc3RyeSZsdDsvYSZndDsgZm9yIG9yYnMgdGhhdCBzdWl0IHlvdXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGRlcGxveW1lbnQgZGVzdGluYXRpb24gb2YgY2hvaWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyEmbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5MZXR0aW5nIGNoYW5nZSBhbmQgdW5jZXJ0YWludHkgYWR2YW5jZSB5b3VyIHNvZnR3YXJlIGFyY2hpdGVjdHVyZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VGh1LCAwNyBNYXkgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Sb2IgWnViZXI8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIGZpcnN0IGxpbmVzIG9mIENpcmNsZUNJ4oCZcyBjb2RlYmFzZSB3ZXJlIHdyaXR0ZW4gbmVhcmx5IG5pbmUgeWVhcnMgYWdvLiBMb29raW5nIGJhY2sgb24gd2hhdCB3ZSBoYXZlIGJ1aWx0IHNvIGZhciB3aXRoIHRoZSBjbGFyaXR5IG9mIGhpbmRzaWdodCBleHBvc2VzIHNvbWUgaW50ZXJlc3RpbmcgdGhlbWVzIHRoYXQgY2FuIGJlIGluc3RydWN0aXZlIGluIGlkZW50aWZ5aW5nIGFwcHJvYWNoZXMgdG8gZGVhbGluZyB3aXRoIGNoYW5nZS4gV2hpbGUgdGhleSB3ZXJlbuKAmXQgYWxsIGludGVudGlvbmFsLCBpdCBkb2VzbuKAmXQgbWFrZSB0aGVtIGFueSBsZXNzIHZhbHVhYmxlLiBUaHJlZSBzdWNoIHRoZW1lcyBhcmU6IGRlZmVycmluZyB0aGUgbmVlZCB0byBoYW5kbGUgY2hhbmdlLCB0aGlua2luZyBsaWtlIGEgcHJvZHVjdCBtYW5hZ2VyLCBhbmQga2VlcGluZyB5b3VyIGhlYWQgdXAuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NoYW5nZSBpcyBhIGNvbnN0YW50IGluIHRlY2hub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Q2hhbmdlIG1pZ2h0IGJlIG9uZSBvZiB0aGUgb25seSBjb25zdGFudHMgZW5naW5lZXJzIHdpbGwgZGVhbCB3aXRoIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGVpciBjYXJlZXJzLiBJdCBjZXJ0YWlubHkgZHJpdmVzIG1hbnkgb2Ygb3VyIG1vc3QgaW50ZXJlc3RpbmcgY2hhbGxlbmdlcy4gVGhlIG1hcmtldCBpcyBjaGFuZ2luZywgb3VyIGJ1c2luZXNzIGlzIGV2b2x2aW5nLCBvdXIgY3VzdG9tZXIgYmFzZSBpcyBncm93aW5nLCBhbmQgb3VyIHRlYW0gaXMgc2NhbGluZy4gV2UgbmVlZCB0byBidWlsZCBhIHNvbHV0aW9uIHRoYXQgbWVldHMgdG9kYXnigJlzIG5lZWRzIGJ1dCBzZXRzIHVzIHVwIGZvciB0aGUgZGVtYW5kcyBvZiB0b21vcnJvdy4gSG93IGRvIHdlIGRlc2lnbiBvdXIgc3lzdGVtcyBpbiBhIG1hbm5lciB0aGF0IGNhbiBhZGFwdCBhbmQgY2hhbmdlIHRvIHRoaW5ncyB0aGF0IGRvbuKAmXQgZXZlbiBleGlzdCB3aGVuIHdlIHN0YXJ0IGJ1aWxkaW5nIGl0PyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZXJlIGhhcyBiZWVuIGEgbG90IG9mIHRhbGsgaW4gcmVjZW50IHllYXJzIGFib3V0IGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGV2b2x2ZSBvciBtb3JlIGVhc2lseSBhZGFwdCB0byBjaGFuZ2UuIFRoZW4gd2Ugc3RhcnQgdG8gZGViYXRlIHRoZSBtZXJpdHMgb2YgdGhlc2UgYXJjaGl0ZWN0dXJlcyB1c2luZyBhIGxpbmUgb2YgdGhpbmtpbmcgdGhhdCBzdWdnZXN0cyB5b3UgYXJlIGNob29zaW5nIHRvIGhhdmUgYSDigJxNaWNyb3NlcnZpY2VzIEFyY2hpdGVjdHVyZeKAnSBvciBhbiDigJxFdmVudC1Ecml2ZW4gQXJjaGl0ZWN0dXJl4oCdIG9yIGEg4oCcU2VydmVybGVzcyBBcmNoaXRlY3R1cmUu4oCdIEkgd291bGQgcG9zaXQgdGhhdCB0aGlzIHR5cGUgb2YgZGVzY3JpcHRpb24gY3JlYXRlcyBhIGZhbHNlIHNlbnNlIG9mIGZpbmFsaXR5IHRoYXQgZG9lc27igJl0IGFjdHVhbGx5IGV4aXN0IGluIG1vc3QgcmVhbC13b3JsZCBzeXN0ZW1zLiZsdDsvcCZndDsKCiZsdDtwJmd0O091dHNpZGUgb2YgdGhlIHlvdW5nZXN0IG9mIHByb2plY3RzLCBpdOKAmXMgdW5saWtlbHkgdGhhdCB5b3UgY2FuIGRlc2NyaWJlIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCB5b3UgaGF2ZSB3aXRoIGFueSBzaW1wbGUgb25lLWxpbmVyLiBJdOKAmXMgbW9yZSBsaWtlbHkganVzdCDigJx5b3VyIGFyY2hpdGVjdHVyZSzigJ0gYW5kIGlmIHlvdeKAmXZlIGJlZW4gd29ya2luZyBvbiBpdCBmb3IgYW55IHNpZ25pZmljYW50IGFtb3VudCBvZiB0aW1lLCB5b3UgbWF5IGhhdmUgYXBwbGllZCBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0dGVybnMgYWxvbmcgdGhlIHdheSB0byBzb2x2ZSBzcGVjaWZpYyBwcm9ibGVtcy4gVGhlcmXigJlzIHByb2JhYmx5IGEgbW9ub2xpdGggc29tZXdoZXJlLCBzb21lIG51bWJlciBvZiBtaWNyb3NlcnZpY2VzLCBhIGZldyBldmVudHMsIGFuZCBhIHNlcnZlcmxlc3MgZWxlbWVudCBvciB0d28uIE9uIHRvcCBvZiBhbGwgdGhhdCwgeW91IG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YgdHJhbnNpdGlvbmluZyBzb21lIG9mIHRob3NlIHBpZWNlcyBmcm9tIG9uZSBwYXR0ZXJuIHRvIGFub3RoZXIuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0Rlc2lnbiBhcmNoaXRlY3R1cmUgdG8gc29sdmUgcHJvYmxlbXMmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gb2Z0ZW4gYXNrZWQgYnkgZm9sa3Mgd2hpY2ggYXJjaGl0ZWN0dXJlIHRoZXkgc2hvdWxkIGNob29zZSwgb3Igd2hlbiB0aGV5IHNob3VsZCBzd2l0Y2ggZnJvbSBvbmUgdG8gYW5vdGhlci4gSSBoYXZlIGEgZ3JlYXQgdGVuZGVuY3kgdG8gZGlzYXBwb2ludCB3aXRoIGFuc3dlcnMgbGlrZSDigJx3aGF0IHByb2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gc29sdmU/4oCdJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28sIHdoYXQgJmx0O3N0cm9uZyZndDtzaG91bGQmbHQ7L3N0cm9uZyZndDsgeW91IGJlIHRoaW5raW5nIGFib3V0IGFzIHlvdXIgcHJvZHVjdCBldm9sdmVzIGFuZCB5b3VyIG5lZWRzIGFyZSBjaGFuZ2luZz8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGVyZSBhcmUgYSBsb3Qgb2YgYXBwcm9hY2hlcyB0aGF0IHdlIGNhbiB1c2UgdG8gZGVzaWduIHNvZnR3YXJlIGFuZCBzeXN0ZW1zIHRvIGJlIG1vcmUgcmVzaWxpZW50IHRvIGNoYW5nZS4gVGhlIGFsbHVyZSBvZiBub3QgaGF2aW5nIHRvIGRvIGNvbXBsZXggcmVmYWN0b3Jpbmcgb3IgcmVidWlsZGluZyBkb3duIHRoZSByb2FkIGxlYWRzIHVzIHRvIHdhbnQgdG8gZGVzaWduIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG93IGNvc3Qgb2YgY2hhbmdlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2hpbGUgZ2VuZXJhbGl6ZWQgYWJzdHJhY3Rpb25zIGFuZCByZXVzYWJsZSBjb21wb25lbnRzIGFyZSBhdCB0aGUgY29yZSBvZiByZWR1Y2luZyB0aGUgaW1wYWN0IG9mIGNoYW5nZSwgdGhleSBhcmUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Jsb2cuY29kaW5naG9ycm9yLmNvbS90aGUtZGVsdXNpb24tb2YtcmV1c2UvJnF1b3Q7Jmd0O2hhcmQgdG8gZ2V0IHJpZ2h0IGluIHRoZSBmaXJzdCBwbGFjZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0l04oCZcyBoYXJkIHRvIHByZWRpY3QgdGhlIGZ1dHVyZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtBdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHRlY2huaWNhbCBsYW5kc2NhcGUgaXMgY2hhbmdpbmcsIHlvdXIgYnVzaW5lc3MgYW5kIHlvdXIgb3JnYW5pemF0aW9uIGFyZSBib3RoIGV2b2x2aW5nIGFzIHdlbGwuIFRoZXNlIGJvdGggaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiB5b3VyIGFyY2hpdGVjdHVyYWwgZGVjaXNpb25zLiBUaGUgc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlIHRoYXQgeW91IGFyZSB1bmRlcmdvaW5nIHdpbGwgaW5mbHVlbmNlIHRoZSBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUgYmVzdCBzdWl0ZWQgdG8gYWJzb3JiIHRob3NlIGNoYW5nZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGVhcmx5IGRheXMgb2YgYSBwcm9qZWN0IG9yIGNvbXBhbnksIGl04oCZcyBwb3NzaWJsZSB0byBtYWtlIHN3ZWVwaW5nIGZ1bmRhbWVudGFsIHNoaWZ0cyBpbiB0aGUgb2JqZWN0aXZlLiBFeHRyZW1lLCBidXQgbm90IHVuY29tbW9uLCBleGFtcGxlcyBpbmNsdWRlIFRpbnkgU3BlY2sgYmVjb21pbmcgU2xhY2sgYW5kIE9kZW8gYmVjb21pbmcgVHdpdHRlci4gV2hlbiB0aGUgZG9tYWluIG9mIHlvdXIgYnVzaW5lc3MgY2FuIG1vdmUgdGhhdCBkcmFzdGljYWxseSwgdGhlIGNsZWFuIGJvdW5kYXJpZXMgb2YgeW91ciBEREQgbW9kZWwgYXJlIG91dCB0aGUgd2luZG93LiBJbiBhIHNldCBvZiBtaWNyb3NlcnZpY2VzLCB0aGVzZSBib3VuZGFyaWVzIHdpbGwgYmUgY29kaWZpZWQsIHNvIGlmIHlvdSBoYXZlIHRvIGN1dCB0aHJvdWdoIHRoZW0sIHlvdeKAmWxsIGxpa2VseSBiZSB0aGFua2Z1bCBmb3IgYSBtb3JlIHBsaWFibGUgbW9ub2xpdGguJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB5b3UgZmluZCBwcm9kdWN0IC8gbWFya2V0IGZpdCwgeW91ciBwcmlvcml0aWVzIHdpbGwgc2hpZnQgdG93YXJkcyBzdXBwb3J0aW5nIHlvdXIgcmFwaWQgZ3Jvd3RoLiBXaXRoIHN5c3RlbSBzY2FsZSBhcyBhIGRyaXZlciBvZiBjaGFuZ2UsIHRoZSBhYmlsaXR5IHRvIHJlc3BvbmQgdG8gY2hhbmdlIGlzIG9mdGVuIHRpZWQgdG8gdGhlIGluZGVwZW5kZW5jZSBvZiBzeXN0ZW1zIGJhc2VkIG9uIHRoZWlyIG9wZXJhdGlvbmFsIGNoYXJhY3RlcmlzdGljcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGF0IHNjYWxpbmcgcGhhc2UsIHlvdeKAmWxsIGhhdmUgYSBsYXJnZXIgb3JnYW5pemF0aW9uIGFuZCBmYXIgbW9yZSB0ZWFtcy4gSWYgeW914oCZcmUgbHVja3kgeW914oCZbGwgYmUgYmFjayB0byBzdXN0YWluYWJsZSBwcm9kdWN0IGV2b2x1dGlvbi4gVGhlbiB0aGUgY29zdCBvZiBjaGFuZ2Ugd2lsbCBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIGFtb3VudCBvZiBjcm9zcy10ZWFtIGNvb3JkaW5hdGlvbiByZXF1aXJlZCB0byBtYWtlIGEgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtoMiZndDtEZWZlciByZXNwb25zZSB0byBjaGFuZ2UmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7V2hlbiBhbiBpbmRpdmlkdWFsIG9yIHRlYW0gaGFzIGEgcHJvYmxlbSB0aGV54oCZcmUgdHJ5aW5nIHRvIHNvbHZlLCB0aGV5IGdlbmVyYWxseSBzdGFydCBvZmYgd2l0aCBhIHByZXR0eSBzaW1wbGUgZGlyZWN0aXZlIOKAkyBsZXTigJlzIGJ1aWxkIHRvIHNvbHZlIHRoYXQgcHJvYmxlbS4gV2hhdOKAmXMgdGhlIG1vc3QgZWZmZWN0aXZlIGFyY2hpdGVjdHVyZSB3ZSBjYW4gdXNlIHRvIGJ1aWxkIGEgdmlhYmxlIHByb2R1Y3QgYXQgdGhlIGxvd2VzdCBjb3N0PyBUaGlzIGlzIGdlbmVyYWxseSB0cnVlIHdoZXRoZXIgaXTigJlzIGEgc3RhcnR1cCBvciBhIGh1Z2UgbXVsdGluYXRpb25hbCBjb3Jwb3JhdGlvbi4gQSBuZXcgcHJvamVjdCB3aWxsIGJlIGJ1aWx0IG9uIGEgc3lzdGVtIHRoYXTigJlzIHJlbGF0aXZlbHkgbmV3LCBhbmQgd2lsbCBiZSB1bmxpa2VseSB0byBoYXZlIHByb2R1Y3QtbWFya2V0IGZpdCBiZWNhdXNlIHRoZSBjb21wYW55IHdvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCBpdHMgYnVzaW5lc3MgZG9tYWluIHlldCwgYW5kIHdvbuKAmXQga25vdyB3aGVyZSB0aGUgcHJpbWFyeSBzb3VyY2VzIG9mIGNoYW5nZSB3aWxsIGNvbWUgZnJvbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHNpdHVhdGlvbiwgZGVzaWduaW5nIGZvciBjaGFuZ2UgYmVjb21lcyBhIGxvdCBoYXJkZXIuIElmIGl04oCZcyBhIGxvdCBtb3JlIGV4cGVuc2l2ZSB0byBtYWtlIHRoaW5ncyByZXNpbGllbnQgdG8gY2hhbmdlIGFuZCB5b3UgY2Fu4oCZdCB0ZWxsIHlldCB3aGljaCBwYXJ0cyBvZiB5b3VyIHN5c3RlbSB3aWxsIGNoYW5nZSwgaG93IGRvIHlvdSBtYWtlIHRoZSBkZWNpc2lvbiBhYm91dCB3aGVyZSB0byBtYWtlIHRoYXQgaW52ZXN0bWVudD8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBjb3VudGVyaW50dWl0aXZlIGFzIGl0IG1heSBzb3VuZCwgdGhlIGFuc3dlciBpcyBwcm9iYWJseSBub3doZXJlLiBBdCBsZWFzdCBub3QgeWV0LiBJbnN0ZWFkIHdhdGNoIGNoYW5nZSBjbG9zZWx5IGFuZCBidWlsZCBpbiBhIHdheSB0aGF0IG1pbmltaXplcyB0aGUgY29zdCBvZiBiZWluZyB3cm9uZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiDigJwmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9zaG9wLm9yZWlsbHkuY29tL3Byb2R1Y3QvOTc4MDU5NjUyMjcwNC5kbyZxdW90OyZndDs5NyBUaGluZ3MgRXZlcnkgU29mdHdhcmUgQXJjaGl0ZWN0IFNob3VsZCBLbm93Jmx0Oy9hJmd0O+KAnSBLZXZsaW4gSGVubmV5LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbWVkaXVtLmNvbS9Aa2V2bGluaGVubmV5L2h0dHBzLW1lZGl1bS1jb20ta2V2bGluaGVubmV5LXVzZS11bmNlcnRhaW50eS1hcy1hLWRyaXZlci00OTNlYmViZDU3NWQmcXVvdDsmZ3Q7ZGVzY3JpYmVzIGFuIGltcG9ydGFudCBhcHByb2FjaCB0byB0aGlua2luZyBhYm91dCB1bmNlcnRhaW50eSZsdDsvYSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2Jsb2NrcXVvdGUmZ3Q7CiAgJmx0O3AmZ3Q74oCcVGhlIHByZXNlbmNlIG9mIHR3byBvcHRpb25zIGlzIGFuIGluZGljYXRvciB0aGF0IHlvdSBuZWVkIHRvIGNvbnNpZGVyIHVuY2VydGFpbnR5IGluIHRoZSBkZXNpZ24uIFVzZSB0aGUgdW5jZXJ0YWludHkgYXMgYSBkcml2ZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHlvdSBjYW4gZGVmZXIgY29tbWl0bWVudCB0byBkZXRhaWxzIGFuZCB3aGVyZSB5b3UgY2FuIHBhcnRpdGlvbiBhbmQgYWJzdHJhY3QgdG8gcmVkdWNlIHRoZSBzaWduaWZpY2FuY2Ugb2YgZGVzaWduIGRlY2lzaW9ucy4gSWYgeW91IGhhcmR3aXJlIHRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQsIHlvdeKAmXJlIG1vcmUgbGlrZWx5IHRvIGJlIHN0dWNrIHdpdGggaXQg4oCTIGluY2lkZW50YWwgZGVjaXNpb25zIGJlY29tZSBzaWduaWZpY2FudCBhbmQgdGhlIHNvZnRuZXNzIG9mIHRoZSBzb2Z0d2FyZSBoYXJkZW5zLuKAnSZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7VGhpcyBmcmFtaW5nIGlzIGdyZWF0IGZvciBleHBsaWNpdCBkZWNpc2lvbnMsIGJ1dCB3aGF0IGlmIHlvdSBkb27igJl0IGtub3cgeW914oCZcmUgbWFraW5nIGEgY2hvaWNlPyZsdDsvcCZndDsKCiZsdDtwJmd0O01hbnkgdGltZXMsIHRoZSBjaG9pY2UgaXNu4oCZdCBldmVuIHZpc2libGUgeWV0LCBidXQgd2lsbCByZXZlYWwgaXRzZWxmIGxhdGVyLiBJbiB0aGVzZSBzaXR1YXRpb25zLCB0aGUgYW5zd2VyIGlzIG5vdCB0byBvdmVyIGdlbmVyYWxpemUsIGJ1aWxkaW5nIGFic3RyYWN0aW9ucyBldmVyeXdoZXJlIGp1c3QgaW4gY2FzZS4gSW5zdGVhZCwga2VlcCB0aGluZ3MgYXMgc2ltcGxlIGFzIHBvc3NpYmxlIHNvIHlvdSBjYW4gdW5kZXJzdGFuZCB0aGVtIGxhdGVyIGlmIHlvdSBoYXZlIHRvIG1ha2UgYSBjaGFuZ2UuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O1NpbXBsaWNpdHkgbWFrZXMgaXQgZWFzaWVyIHRvIGFkYXB0IHRvIGNoYW5nZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZWFybHkgZGF5cywgdGhlIENpcmNsZUNJIGFwcGxpY2F0aW9uIHdhcyBhIG1vbm9saXRoIHRoYXQgdG9vayBhIGN1c3RvbWVy4oCZcyBidWlsZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRhdGEgYW5kIHB1c2hlZCBpdCBpbnRvIG9uZSBvZiBzZXZlcmFsIExYQyBjb250YWluZXJzLiBFdmVyeSBjb250YWluZXIgdGhhdCB3ZSBzcHVuIHVwIHdhcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgc2FtZSBpbWFnZSB0aGF0IGNvbnRhaW5lZCBldmVyeXRoaW5nIHRoYXQgd2UgdGhvdWdodCBhbnlvbmUgd291bGQgZXZlciB3YW50IGluIHRoZWlyIHRlc3QgZW52aXJvbm1lbnQuIEluIGhpbmRzaWdodCwgdGhpcyBzb3VuZHMgbGlrZSBhIHRlcnJpYmxlIGlkZWEsIGJ1dCBhdCB0aGUgdGltZSwgaXQgd2FzIGZhbnRhc3RpYy4gSXQgd2FzIHNpbXBsZSB0byBtYWludGFpbiBhbmQgc3VwcG9ydGVkIHRoZSBuZWVkcyBvZiBvdXIgZWFybHkgY3VzdG9tZXJzLCBtYW55IG9mIHdob20gd2VyZSBidWlsZGluZyBSYWlscyBtb25vbGl0aHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXMgdGltZSBwYXNzZWQgYW5kIG91ciBjdXN0b21lciBiYXNlIGdyZXcsIHNvIGRpZCB0aGUgZGl2ZXJzaXR5IG9mIHRoZWlyIG5lZWRzIGluIHRlcm1zIG9mIHRlc3QgZW52aXJvbm1lbnRzLiBVcGdyYWRlZCB2ZXJzaW9ucyBvZiB0aGVpciB1bmRlcmx5aW5nIGRhdGFiYXNlcywgbm92ZWwgbmV3IGRldmVsb3BtZW50IGZyYW1ld29ya3MsIGV2ZW4gbmV3IG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbnMgYmVjYW1lIG5lY2Vzc2FyeS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgb3JpZ2luYWwgY29udGFpbmVyIG1hbmFnZW1lbnQgaW4gQ2lyY2xlQ0kgd2FzbuKAmXQgZGVzaWduZWQgaW4gYSB3YXkgdGhhdCBhbGxvd2VkIHVzIHRvIGFkYXB0IGVhc2lseSB0byB0aGVzZSBjaGFuZ2luZyBuZWVkcy4gQnV0IGl0IHdhcyBmYWlybHkgc2ltcGxlLiBTbyB3aGVuIHdlIHNldCBvdXQgdG8gc29sdmUgdGhlc2UgcHJvYmxlbXMsIHdlIGtuZXcgd2hlcmUgdG8gc3BsaWNlIGluIGEgbmV3IGFwcHJvYWNoIGFuZCBpdCB3YXMgbWluaW1hbCB3b3JrIHRvIGVuYWJsZSB0aGF0IHNwbGljaW5nLiBXZSBhbHNvIGRpZG7igJl0IGhhdmUgdG8gdW5yYXZlbCBhIHBvb3IgZ2VuZXJhbGl6YXRpb24gdGhhdCBkaWRu4oCZdCBzdXBwb3J0IG91ciBuZXcgcHJvYmxlbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3aGlsZSBzZWVtaW5nbHkgc2ltcGxlLCB3ZSB3ZXJlIGZpdmUgeWVhcnMgaW50byBzdWNjZXNzZnVsIGdyb3d0aCBhcyBhIGNvbXBhbnkgbWVldGluZyB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycyBvbiB0aGF0IHNpbXBsZSBzeXN0ZW0gYmVmb3JlIG91ciBmaXJzdCBjdXN0b21lcnMgdGVzdGVkIGl0cyByZXBsYWNlbWVudC4gSW4gdGhvc2UgZml2ZSB5ZWFycywgRG9ja2VyIHdhcyBjcmVhdGVkLCBhcyB3YXMgSGFzaGlDb3Jw4oCZcyBOb21hZC4gQ29tYmluZWQsIHRob3NlIHRvb2xzIGVsaW1pbmF0ZWQgaHVnZSBwb3J0aW9ucyBvZiB0aGUgd29yayBuZWNlc3NhcnkgdG8gZ2V0IHRoZSBmbGV4aWJsZSBhbmQgc2NhbGFibGUgZW52aXJvbm1lbnRzIHRoYXQgd2Ugc3VwcG9ydCBmb3IgY3VzdG9tZXJzIHRvZGF5LiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28sIGFzIHdlIHJldG9vbGVkIHRoZSBzeXN0ZW0gdG8gYWRhcHQgdG8gdGhlIGNoYW5nZWQgbWFya2V0IHdlIHdlcmUgaW4gYSBwb3NpdGlvbiB0byBhc2sg4oCcSG93IGRvIHdlIGRvIHRoaXMgaW4gYSB3YXkgdGhhdCBiZXR0ZXIgcG9zaXRpb25zIHVzIGZvciBpbmNyZW1lbnRhbCBjaGFuZ2U/4oCdIEl0IHdvdWxkIGJlIGRpZmZpY3VsdCB0byBvdmVyc3RhdGUgaG93IG11Y2ggdmFsdWUgdGhhdCBmaXZlIHllYXJzIG9mIGV4cGVyaWVuY2UgcHJvdmlkZWQgd2hlbiBkZXNpZ25pbmcgYSBzb2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdCBzb3VuZHMgd2VpcmQgYW5kIGdyb3NzbHkgdW5mYWlyIHRvIHNheSB0aGlzLCBidXQgbW9zdCBvZiB0aGUgdGltZSB3ZSBkb27igJl0IGV2ZW4ga25vdyB0aGF0IHdl4oCZcmUgbWFraW5nIGEgbW9udW1lbnRhbCBkZXNpZ24gZGVjaXNpb24gYmVjYXVzZSB0aGUgYWx0ZXJuYXRlIHBhdGggaGFzbuKAmXQgc2hvd24gdXAgeWV0LiBIb3cgZG8geW91IGd1YXJkIGFnYWluc3QgdGhpcz8mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7RGVmZXIsIGRlZmVyLCBkZWZlciZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUaGUgY29ycmVjdCBzb2x1dGlvbnMgaGF2ZSBhIGhhYml0IG9mIHJldmVhbGluZyB0aGVtc2VsdmVzIGlmIHlvdSBjYW4gZmluZCBhIHdheSB0byB3YWl0IGxvbmcgZW5vdWdoLiBUZWNobm9sb2d5IGdhaW5zIHRyYWN0aW9uIG9yIGRpZXMuIElmIHlvdSBjaG9zZSBhIGNvbnRhaW5lciBvcmNoZXN0cmF0aW9uIGVuZ2luZSBpbiAyMDE2LCB0aGVyZeKAmXMgYSByb3VnaGx5IDIwJSBjaGFuY2UgdGhhdCB5b3Ugd291bGQgaGF2ZSBjaG9zZW4gS3ViZXJuZXRlcy4gVGhhdCBtZWFucyBieSB0aGUgYmVnaW5uaW5nIG9mIDIwMTgsIGFsbW9zdCA4MCUgb2YgY29tcGFuaWVzIHdlcmUgc3dpdGNoaW5nLiBUaG9zZSBhcmUgbm90IGdyZWF0IG9kZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28gZGVmZXJyaW5nIGNhbiBiZSBnb29kLiBEZWZlcnJpbmcgdG8gdGhlIHBvaW50IG9mIGNyZWF0aW5nIGEgY3Jpc2lzIGlzIG5vdC4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7VGhpbmsgbGlrZSBhIHByb2R1Y3QgbWFuYWdlciZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3VyIGFyY2hpdGVjdHVyZSBpcyBhIGxlYWt5IGFic3RyYWN0aW9uLiBXaGlsZSBDaXJjbGVDSSBpcyBwcm9iYWJseSBhbiBleHRyZW1lIGV4YW1wbGUgb2YgdGhpcyBjYXNlIGR1ZSB0byB0aGUgYWNjZXNzIG91ciBjdXN0b21lcnMgaGF2ZSB0byBzeXN0ZW1zIGluIG91ciBwbGF0Zm9ybSwgdGhlcmUgaXMgYWx3YXlzIHNvbWUgaW1wbGljYXRpb24gZm9yIGN1c3RvbWVycyBvZiB0aGUgZGVjaXNpb25zIHlvdSBtYWtlIGluIGRlZmluaW5nIHlvdXIgYXJjaGl0ZWN0dXJlLiBSZWNvZ25pemluZyB0aGlzIGltcGFjdCBhbmQgYmVpbmcgYWJsZSB0byBjb2hlcmVudGx5IGRpc2N1c3MgYXBwcm9hY2hlcyBhbmQgYWx0ZXJuYXRpdmVzIGlzIGEgaHVnZSBhc3NldCB0aGF0IGFuIGVuZ2luZWVyIGNhbiBicmluZyB0byB0aGVpciBQTSBhbmQgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaGlsZSB3ZSB3ZXJlIHdpdG5lc3NpbmcgYWxsIG9mIHRoaXMgY2hhbmdlIGluIGhvdyBvdXIgY3VzdG9tZXJzIHdlcmUgYnVpbGRpbmcgc29mdHdhcmUsIG9uZSB0aGluZyB3ZSBpZ25vcmVkIGZvciB0b28gbG9uZyB3YXMgdGhlIHJpc2Ugb2YgRG9ja2VyLiBEb2NrZXIgZGlkbuKAmXQgZXZlbiBleGlzdCB3aGVuIENpcmNsZUNJIHN0YXJ0ZWQgaW4gMjAxMSwgdGhlbiBieSAyMDE0IGl0IHdhcyBldmVyeXdoZXJlLiBNYW55IG9mIG91ciBjdXN0b21lcnMgaGFkIHN0YXJ0ZWQgYnVpbGRpbmcgRG9ja2VyIGltYWdlcyBhcyBwYXJ0IG9mIHRoZWlyIGJ1aWxkIHRvIHByZXBhcmUgZm9yIGRlcGxveS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtEb2NrZXIgd2FzIG9yaWdpbmFsbHkgYnVpbHQgb24gdG9wIG9mIExYQywgYW5kIHRoYXQgbWVhbnQgaW4gdGhvc2UgZWFybHkgZGF5cyB3ZSBjb3VsZCBzdXBwb3J0IHRoZSB1c2Ugb2YgRG9ja2VyIGNvbW1hbmRzIHRvIGJ1aWxkIGltYWdlcyBhbmQgcHVzaCB0aGVtIHRvIHJlcG9zaXRvcmllcyBhbGwgaW5zaWRlIG9mIG9uZSBvZiBvdXIgTFhDIGNvbnRhaW5lcnMuIEluIDIwMTQsIERvY2tlciBsYXVuY2hlZCBzb21ldGhpbmcgY2FsbGVkIGxpYmNvbnRhaW5lciBhbmQgdGhleSBwdWxsZWQgYXBhcnQgdGhlIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBzeXN0ZW0gYW5kIGNyZWF0ZWQgZXhlY3V0aW9uIGRyaXZlcnMsIHdoaWNoIHNvb24gbGVkIHRvIHRoZSBkZXByZWNhdGlvbiBvZiB0aGUgTFhDIGRyaXZlci4gRGlzYXBwb2ludGluZywgYnV0IGl0IHN0aWxsIHdvcmtlZC4gVGhlbiBEb2NrZXIgZGVsZXRlZCBhbGwgTFhDIHN1cHBvcnQuIFRoYXQgd2FzIGJhZC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QWx3YXlzIHRoaW5rIGFib3V0IHVzZXJzJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVycyBhbmQgYXJjaGl0ZWN0cywgd2Ugc2F3IHRoaXMgY29taW5nLCBhbmQgZnJhbmtseSwgaXQgd2FzIHVuZGVyIHRoZSByYWRhciBvZiBvdXIgcHJvZHVjdCB0ZWFtLiBPdXIgbm9uLXRlY2huaWNhbCBwcm9kdWN0IGZvbGtzIGRpZG7igJl0IG5lY2Vzc2FyaWx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBidXQgb3VyIGVuZ2luZWVycyB3ZXJlIHRhbGtpbmcgYWJvdXQgaXQgZXZlcnkgZGF5LiBTbyBhcyBhbiBlbmdpbmVlciwgYW4gYXJjaGl0ZWN0LCBvciBhIGxlYWRlciBpbiB0ZWNobm9sb2d5LCB5b3UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBwcm9kdWN0IGFuZCB3b3JraW5nIHdpdGggeW91ciBwcm9kdWN0IG1hbmFnZXJzIHRvIGVuc3VyZSBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGUgaW1wbGljYXRpb25zIG9mIHRlY2huaWNhbCBjaG9pY2VzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0l04oCZcyBpbXBvcnRhbnQgdG8gc2VwYXJhdGUgdGhpcyBkaXNjdXNzaW9uIGZyb20gdGVjaG5pY2FsIGludmVzdG1lbnRzLiBUaGVyZSBpcyBhYnNvbHV0ZWx5IGEgcGxhY2UgZm9yIHRoaXMgdHlwZSBvZiBpbnZlc3RtZW50LCBhbmQsIGFuIGFyZ3VtZW50IHRoYXQgZnJhbWluZyB0aGVzZSBpbnZlc3RtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB5b3UgZnJhbWUgcHJvZHVjdCBpbnZlc3RtZW50cyBtYWtlcyBpdCBtdWNoIGVhc2llciB0byBtYWtlIHRyYWRlb2ZmIGRlY2lzaW9ucy4gSG93ZXZlciwgaWRlbnRpZnlpbmcgdGhlIGRpcmVjdGx5IGN1c3RvbWVyLXZpc2libGUgZmVhdHVyZSBpbXBhY3Qgb2YgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBtb3JlIGNvbW1vbmx5IGRpc2N1c3NlZCBpbXBhY3RzIG9mIGNvc3QsIHBlcmZvcm1hbmNlLCBzZWN1cml0eSwgZXRjLiZsdDsvcCZndDsKCiZsdDtwJmd0O0J1aWxkaW5nIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHlvdXIgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgdmFsdWUgYWNoaWV2ZWQgYnkgeW91ciBjdXN0b21lcnMgd2lsbCBwdXQgeW91IGluIGEgcG9zaXRpb24gdG8gbWFrZSBtb3JlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB3aGF0IGFuZCBob3cgdG8gYnVpbGQgYXMgeW91ciBidXNpbmVzcyBldm9sdmVzLiBUaGVuIHlvdSBjYW4gZm9jdXMgb24gZ2V0dGluZyBhaGVhZCBvZiB0aGF0IGV2b2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7S2VlcCB5b3VyIGhlYWQgdXAmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gQ2FuYWRpYW4gYW5kLCB1bnN1cnByaXNpbmdseSwgSSBncmV3IHVwIHBsYXlpbmcgaWNlIGhvY2tleS4gVGhyb3VnaG91dCBteSBjaGlsZGhvb2QsIEkgc3BlbnQgYW4gZW5kbGVzcyBhbW91bnQgb2YgdGltZSBhdCBwcmFjdGljZSBqdXN0IHNrYXRpbmc6IGZvcndhcmRzLCBiYWNrd2FyZHMsIHR1cm5pbmcsIHN0b3BwaW5nLCBmaWd1cmUgZWlnaHRzIGFyb3VuZCBjb25lcy4gVGhlbiBjYW1lIHN0aWNrIGhhbmRsaW5nLiBUaGUgaWRlYSB3YXMgdG8gaGF2ZSB0aGUgbW92ZW1lbnQgb24gdGhlIGljZSBiZWNvbWUgc2Vjb25kIG5hdHVyZSBzbyBJIGNvdWxkIGZvY3VzIG9uIHdoYXQgcmVhbGx5IG1hdHRlcmVkOiBzZWVpbmcgdGhlIHBsYXkgZGV2ZWxvcCwgZ2V0dGluZyBpbnRvIHNwYWNlLCBhbmQgdHJ5aW5nIHRvIHNjb3JlLiBNYWtlIHRoZSBmdW5kYW1lbnRhbHMgYWxtb3N0IGVmZm9ydGxlc3Mgc28geW91IGNhbiBwdXQgeW91ciBlbmVyZ3kgaW50byB0aGUgbm92ZWwgc3R1ZmYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gc29mdHdhcmUsIHdlIGhhdmUgYSBiYWQgdGVuZGVuY3kgdG8gbWFrZSB0aGUgZnVuZGFtZW50YWxzIGEgbG90IGhhcmRlciB0aGFuIHRoZXkgc2hvdWxkIGJlIGJ5IGFkb3B0aW5nIG5ldyB0ZWNobm9sb2d5IHRoYXQgd2UgdGhpbmsgaXMgZ29pbmcgdG8gYmUgZ2FtZSBjaGFuZ2luZywgYnV0IGVuZHMgdXAgaGF2aW5nIG1vZGVzdCB1cHNpZGUgaWYgYW55LiBUbyBtYWtlIHRoaW5ncyB3b3JzZSwgdGhlIGRvd25zaWRlIGlzIG9mdGVuIHVuYm91bmRlZCBhcyB3ZSBnZXQgb3VyIHRlYW1zIHVwIHRoZSBsZWFybmluZyBjdXJ2ZSwgZmluZCB1bnRlc3RlZCBlZGdlIGNhc2VzIGR1cmluZyBwcm9kdWN0aW9uIGluY2lkZW50cywgYW5kIGludmVudCBvdXIgb3duIOKAnGJlc3QgcHJhY3RpY2VzLuKAnSBBIHdvcmxkIHdoZXJlIFN0YWNrIE92ZXJmbG93IGhhcyBubyBhbnN3ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1doaWxlIHdl4oCZcmUgcHV0dGluZyB0aGlzIGVmZm9ydCBpbnRvIG91ciBub3ZlbCB0ZWNoLCB3ZeKAmXJlIG5vdCBmb2N1c2luZyBvbiBob3cgb3VyIHN5c3RlbXMgbmVlZCB0byBldm9sdmUgdG8gbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QSB0aW1lIHNpbXBsaWNpdHkgd291bGQgaGF2ZSBoZWxwZWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Q2lyY2xlQ0kgaXMgYSBDbG9qdXJlIHNob3AgYW5kLCBpbiBvdXIgZWFybHkgZGF5cywgd2UgZGVjaWRlZCB3ZeKAmWQgYmUgYmV0dGVyIGF0IGZyb250IGVuZCBkZXZlbG9wbWVudCBpZiB3ZSB1c2VkIHRoZSBzYW1lIGxhbmd1YWdlIHRoYXQgd2UgdXNlZCBpbiB0aGUgYmFja2VuZC4gU28gd2UgYWRvcHRlZCBPbSwgYSBDbG9qdXJlU2NyaXB0IHdyYXBwZXIgYXJvdW5kIFJlYWN0LiBBIGZldyB5ZWFycyBsYXRlciwgRGF2aWQgTm9sZW4sIHRoZSBwZXJzb24gd2hvIHN0YXJ0ZWQgT20sIGRlY2lkZWQgaGUgZGlkbuKAmXQgbGlrZSB0aGUgbW9kZWwgc28gaGUgcmVwbGFjZWQgaXQgd2l0aCBzb21ldGhpbmcgaW5jb21wYXRpYmxlIGNhbGxlZCBPbSBOZXh0LiBXZSB0cmllZCB0byBtaWdyYXRlIGluY3JlbWVudGFsbHkgdG8gT20gTmV4dCBhbmQgZW5kZWQgdXAgd2l0aCBhbiBvdmVybHkgY29tcGxleCBmcm9udGVuZCB3aXRoIHR3byBzdGF0ZSBtb2RlbHMgYW5kIG1hc3NpdmUgb3ZlcmhlYWQgdG8gZXZlcnkgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGVuZGVkIHVwIHJld3JpdGluZyBpdCBpbiBSZWFjdC4gSW4gcmV0cm9zcGVjdCwgT20gaGFkIGJvdGggaGlnaCByaXNrIGFuZCBoaWdoIGNvc3QgdG8gY2hhbmdlIGFuZCB3ZSBwYWlkIHRoZSBwcmljZS4gQW5kIHdlIHNwZW50IHRoYXQgdGltZSBsb29raW5nIGF0IG91ciBmZWV0LCBub3QgYWhlYWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm8gY29tcGFueSBoYXMgZXZlciB3b24gYmVjYXVzZSBvZiBhbiBhbWF6aW5nbHkgbm92ZWwgb3IgZXNvdGVyaWMgdGVjaG5vbG9neSBjaG9pY2UuIFRoZXJlIGlzIGFuIGVuZGxlc3MgbGlzdCwgaG93ZXZlciwgb2YgY29tcGFuaWVzIHRoYXQgaGF2ZSB3b24gYmVjYXVzZSB0aGV5IGNhbiBtb3ZlIHF1aWNrbHkgYW5kIHdpdGggYWdpbGl0eSwgYWRhcHRpbmcgdG8gY2hhbmdlIGFzIGl0IGhhcHBlbnMuIFRlY2hub2xvZ3kgc2hvdWxkIGJlIGFuIGFjY2VsZXJhdG9yIGhlbHBpbmcgdXMgbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4gV2VsbC11bmRlcnN0b29kLCBwcm9kdWN0aW9uLXRlc3RlZCB0b29scyBhcmUgZmFyIG1vcmUgbGlrZWx5IHRvIGZpdCB0aGF0IGJpbGwuIEFzIG15IGNvbGxlYWd1ZSBCZWFyIHNheXMsIOKAnElmIGEgdG9vbCBpc27igJl0IGhlbHBpbmcsIGl04oCZcyBub3QgYSB0b29sLCBpdOKAmXMgYSBjaG9yZS4gRHJvcCBpdC7igJ0mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7Q29uY2x1c2lvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtVbmZvcmVzZWVuIGNoYW5nZSBpcyB0b3Atb2YtbWluZCBmb3Igc28gbWFueSBvZiB1cyByaWdodCBub3csIGFuZCBpdOKAmXMgbW9yZSBvYnZpb3VzIHRoYW4gZXZlciB0aGF0LCBpbiBidXNpbmVzcywgbm9ib2R5IGNhbiBwcmVkaWN0IHRoZSBmdXR1cmUuIEl04oCZcyBhIHNhZmUgYmV0IHRoYXQgZm9sa3MgYXQgR00gZGlkbuKAmXQgc3RhcnQgdGhlIHllYXIgdGhpbmtpbmcgYWJvdXQgaG93IHRvIHVzZSB0aGVpciBmYWN0b3JpZXMgdG8gbWFrZSB2ZW50aWxhdG9ycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWluZyBwcmVwYXJlZCB0byBhZGFwdCBpbiB0aGUgZmFjZSBvZiBjaGFuZ2UgcmVxdWlyZXMgdGhpbmtpbmcgYWJvdXQgY2hhbmdlIGFzIGEgZHJpdmVyIGluIGV2ZXJ5dGhpbmcgeW91IGRvLiBXYXRjaCBob3cgeW91ciBtYXJrZXQgaXMgY2hhbmdpbmcgYW5kIHJlZmxlY3Q9IG9uIGhvdyB0aGF0IGltcGFjdHMgeW91ciBhcmNoaXRlY3R1cmUgc28gdGhhdCB5b3UgY2FuIG1ha2UgdGFyZ2V0ZWQsIGluY3JlbWVudGFsIGltcHJvdmVtZW50cyBpbiBpdHMgYWRhcHRhYmlsaXR5LiBUaGlzIHdpbGwgaGVscCBrZWVwIHlvdSBmb2N1c2VkIG9uIGV2b2x1dGlvbiB3aXRob3V0IHdhc3RpbmcgdGltZSBvciBtb25leSBvbiBhcmVhcyB0aGF0IHdvbuKAmXQgbmVlZCBpdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCbGFjayBTd2FuIGV2ZW50cyBhcmUgc28gdW51c3VhbCB0aGF0IHN0dWR5aW5nIHRoZSBzcGVjaWZpY3MgY2FuIGJlIGxvdyB2YWx1ZSwgYnV0IHRoZXkgcmVtaW5kIHVzIGhvdyBmYXIgcmVhbGl0eSBjYW4gYmUgZnJvbSBvdXIgcGxhbnMuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZW5naW5lZXJpbmcgbWFuYWdlcnMgY2FuIGVmZmVjdGl2ZWx5IHN1cHBvcnQgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWVuZ2luZWVyaW5nLW1hbmFnZXJzLWNhbi1lZmZlY3RpdmVseS1zdXBwb3J0LWVuZ2luZWVycy10ZWFtcy1hbmQtb3JnYW5pemF0aW9ucy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+V2VkLCAyOSBBcHIgMjAyMCAxNTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9ob3ctZW5naW5lZXJpbmctbWFuYWdlcnMtY2FuLWVmZmVjdGl2ZWx5LXN1cHBvcnQtZW5naW5lZXJzLXRlYW1zLWFuZC1vcmdhbml6YXRpb25zLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkxlbmEgUmVpbmhhcmQ8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIHR5cGljYWwgam9iIGRlc2NyaXB0aW9uIGZvciBtYW55IGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMgaXMgYWN0aW9uLXBhY2tlZC4gSXQgaXMgYSBtaXggb2YgaGFuZHMtb24gY29kaW5nLCB0ZWNobmljYWwgbGVhZGVyc2hpcCBhbmQgZGVjaXNpb24gbWFraW5nLCBwcm9jZXNzIGFuZCBwcm9qZWN0IG1hbmFnZW1lbnQsIHByb2R1Y3Qgb3ZlcnNpZ2h0LCBwZW9wbGUgbWFuYWdlbWVudCwgZmluZGluZyBhbmQgaGlyaW5nIHRhbGVudCDigKYgdGhlIGxpc3QgZ29lcyBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiBvdXIgd29yaywgd2UgZGVhbCB3aXRoIGJvdGggdGVjaG5pY2FsIGFuZCBwZW9wbGUgc3lzdGVtczogd2Ugc3VwcG9ydCBpbmRpdmlkdWFsIGVuZ2luZWVyc+KAmSBncm93dGg7IGhlbHAgdGVhbXMgYmVjb21lIHN1Y2Nlc3NmdWw7IGFuZCBtYWtlIHRoZSBvcmdhbml6YXRpb24gbW9yZSBwcm9kdWN0aXZlLCBmdW5jdGlvbmFsLCBhbmQgaW5ub3ZhdGl2ZS4gQWJvdmUgYWxsLCBhbiBlbmdpbmVlcmluZyBtYW5hZ2VyIGlzIGEgc2VydmljZSBvciBzdXBwb3J0IHJvbGUgYWNyb3NzIHRoZXNlIHZhcmlvdXMgbGF5ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1BlcmhhcHMgbW9zdCBmYXNjaW5hdGluZyBhbmQgZGlmZmljdWx0IGlzIHRoZSBoaWdoLWxldmVsIG9mIGFtYmlndWl0eSB0aGF0IGNvbWVzIHdpdGggZW5naW5lZXJpbmcgbWFuYWdlbWVudC4gTWFueSBwcm9ibGVtcyBvciBxdWVzdGlvbnMgZG9u4oCZdCBoYXZlIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLiBUaGVyZSBhcmVu4oCZdCBhYnNvbHV0ZSBhbnN3ZXJzIHRvIHdoYXQgaXQgbWVhbnMgdG8gYmUgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgZWl0aGVyLCBidXQgdGhlcmUgYXJlIGNlcnRhaW4gdmFsdWVzIGFuZCBndWlkZXBvc3RzIHRvIGZvbGxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgbG9vayBhdCB3aGF0IGNhbiBzaGFwZSBvdXIgdGhpbmtpbmcgYWJvdXQgb3VyIHJvbGUgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgYW5kIGhvdyB0byBlZmZlY3RpdmVseSBzdXBwb3J0IGluZGl2aWR1YWwgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1doYXQgZG8gZW5naW5lZXJzIG5lZWQgdG8gdGhyaXZlIGF0IHdvcms/Jmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SXQgaGVscHMgdG8gc3RhcnQgc2hhcGluZyBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IHJvbGVzIGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCBlbmdpbmVlcnMgbmVlZCwgYW5kIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGV5IHRocml2ZS4gUmVzZWFyY2ggZnJvbSBwZXJmb3JtYW5jZSBjb2FjaCBhbmQgdHJhaW5lciBQYWxvbWEgTWVkaW5hIGV4cG9zZXMgc2l4IGNvcmUgbmVlZHMgaHVtYW5zIGhhdmUgKGluY2x1ZGluZyBhdCB3b3JrKS4gU2hlIGNhbGxzIHRoaXMgcmVzZWFyY2ggdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGFsb21hbWVkaW5hLmNvbS9iaWNlcHMmcXVvdDsmZ3Q7QklDRVBTIG1vZGVsJmx0Oy9hJmd0OzombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7QmVsb25naW5nLiZsdDsvc3Ryb25nJmd0OyBBcyBodW1hbnMsIHdlIHN0cml2ZSB0byBiZSBwYXJ0IG9mIGEgY29tbXVuaXR5IG9mIGxpa2UtbWluZGVkIHBlb3BsZSB3aGVyZSB3ZSB1bmRlcnN0YW5kIGFuZCBzdXBwb3J0IGVhY2ggb3RoZXIuIFdlIGFsc28gd2FudCB0byBmZWVsIGFzIGlmIHdlIGFyZSBub3QgYmVpbmcgZGlzY3JpbWluYXRlZCBhZ2FpbnN0IG9yIG1hcmdpbmFsaXplZC4gQmVsb25naW5nIGlzIHJlYWxseSBpbXBvcnRhbnQgdG8gbWUgcGVyc29uYWxseTogSSBsb3ZlIHdvcmtpbmcgYXMgcGFydCBvZiBhIGRpc3RyaWJ1dGVkIHRlYW0sIGJ1dCBJIGFsc28gcmVhbGx5IGVuam95IHNlZWluZyBwZW9wbGUgaW4gcGVyc29uIGV2ZXJ5IG9uY2UgaW4gYSB3aGlsZS4gSXQgbWFrZXMgbWUgZmVlbCBtb3JlIGNvbm5lY3RlZCB0byB0aGVtLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7SW1wcm92ZW1lbnQuJmx0Oy9zdHJvbmcmZ3Q7IFdlIGFsc28gc2VlayB0byBjb250aW51b3VzbHkgbGVhcm4sIGltcHJvdmUsIGFuZCBncm93IGluIGFyZWFzIHRoYXQgbWF0dGVyIHRvIHVzLCBhcyB3ZWxsIGFzIHRvIG91ciB0ZWFtIG9yIGNvbXBhbnkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtDaG9pY2UuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8gaGF2ZSBjaG9pY2UsIGNvbnRyb2wsIGFuZCBhdXRvbm9teSBvdmVyIGltcG9ydGFudCBwYXJ0cyBvZiBvdXIgbGl2ZXMuIEluIG9uZSBvZiBteSBwcmV2aW91cyByb2xlcywgSSB0b29rIG9uIGEgbG90IG9mIHdvcmsgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLiBCdXQgdWx0aW1hdGVseSwgdGhlIGNvbnRyb2wgSSBoYWQgb3ZlciBteSBkb21haW4gd2FzIGxpbWl0ZWQgZHVlIHRvIG9yZ2FuaXphdGlvbmFsIGlzc3VlcyDigJMgd2hpY2ggbGVkIG1lIHRvIGxlYXZlIHRoZSBjb21wYW55LiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7RXF1YWxpdHkuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8ga25vdyB0aGF0IG91ciBhY2Nlc3MgdG8gaW5mb3JtYXRpb24sIG1vbmV5LCB0aW1lLCBhbmQgb3RoZXIgcmVzb3VyY2VzIGlzIGZhaXIgYW5kIGVxdWFsIGZvciBldmVyeW9uZSDigJMgbm90IGp1c3QgZm9yIG91cnNlbHZlcywgYnV0IGFsc28gZm9yIHRoZSBwZW9wbGUgYXJvdW5kIHVzLiBFdmVyeW9uZeKAmXMgbmVlZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZXF1YWxseSBpbXBvcnRhbnQuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtQcmVkaWN0YWJpbGl0eS4mbHQ7L3N0cm9uZyZndDsgV2UgbG9vayBmb3IgY2VydGFpbnR5LCBzYWZldHksIGFuZCBzdGFiaWxpdHkgaW4gb3VyIGxpdmVzLiBXZSBhbHNvIHdhbnQgZ29hbHMsIHN0cmF0ZWd5LCBhbmQgZGlyZWN0aW9uIHRvIGJlIGNvbnNpc3RlbnQg4oCTIGFuZCB0byBub3QgY2hhbmdlIHRvbyBxdWlja2x5LiBJ4oCZdmUgYmVlbiBsZWFkaW5nIHRlYW1zIGluIGZhc3QtZ3Jvd2luZyBzdGFydHVwcyBmb3IgdGhlIGxhc3QgY291cGxlIG9mIHllYXJzLCBhbmQgd2hlbiB0aGVyZeKAmXMgYSBsb3Qgb2YgY2hhbmdlIGhhcHBlbmluZywgaXTigJlzIGEgY2hhbGxlbmdlIHRvIGluc3RpbGwgcHJlZGljdGFiaWxpdHkgaW4gdGVhbXMuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtTaWduaWZpY2FuY2UuJmx0Oy9zdHJvbmcmZ3Q7IERlZXAgZG93biwgYWxsIG9mIHVzIHNlZWsgbWVhbmluZywgaW1wb3J0YW5jZSwgYW5kIHN0YXR1cy4gV2UgYWxzbyB3YW50IHRvIGJlIGFwcHJlY2lhdGVkIGZvciBvdXIgd29yayBieSBwZW9wbGUgd2hvc2Ugb3BpbmlvbnMgbWVhbiBzb21ldGhpbmcgdG8gdXMuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0lmIG91ciBjb3JlIG5lZWRzIGFyZSB0aHJlYXRlbmVkLCBwZW9wbGUgcmVzb3J0IHRvIGZpZ2h0LW9yLWZsaWdodCBtb2RlcyBvZiByZWFjdGlvbiwgd2hpY2ggYXJlIHZlcnkgc3RyZXNzZnVsLiBUaGUgZmFpbHVyZSB0byBtZWV0IGNvcmUgbmVlZHMgaGFzIGhpZ2ggY29zdHMgZm9yIG9yZ2FuaXphdGlvbnMgYnkgaGFybWluZyBwZW9wbGUgb24gb3VyIHRlYW1zLiBTbyBob3cgY2FuIGVuZ2luZWVyaW5nIG1hbmFnZXJzIHB1dCB0aGUgQklDRVBTIG1vZGVsIGludG8gYWN0aW9uIHRvIGhlbHAgdGhlaXIgdGVhbXMgdGhyaXZlPyZsdDsvcCZndDsKCiZsdDtoMiZndDtVc2luZyB0cnVzdC1iYXNlZCByZWxhdGlvbnNoaXBzIHRvIGhlbHAgZW5naW5lZXJzIGdyb3cmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgZm91bmRhdGlvbiBvZiBiZWluZyBhIGdvb2QgZW5naW5lZXJpbmcgbWFuYWdlciBpcyBnZXR0aW5nIHRvIGtub3cgb3VyIHRlYW1tYXRlcyBhbmQgdW5kZXJzdGFuZGluZyB3aGF0IGlzIGltcG9ydGFudCB0byB0aGVtLiBIZXJlIGFyZSBhIGZldyBwbGFjZXMgdG8gc3RhcnQgYnVpbGRpbmcgdHJ1c3Qgd2l0aGluIHlvdXIgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0FzayBxdWVzdGlvbnMuJmx0Oy9zdHJvbmcmZ3Q7IE9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCB0b29scyBtYW5hZ2VycyBoYXZlIGlzIGFza2luZyBnb29kIHF1ZXN0aW9ucy4gVGhlIGJhc2lzIGZvciBkb2luZyBvdXIgam9icyB3ZWxsIGlzIGxpc3RlbmluZywgb2JzZXJ2aW5nLCB0YWtpbmcgbm90ZSBvZiB3aGF0IG1vdGl2YXRlcyBvdXIgdGVhbW1hdGVzLCBhbmQgcmVhbGx5IGRpZ2dpbmcgaW50byB0aGVpciByZXNwb25zZXMgdG8gb3VyIHF1ZXN0aW9ucy4gSSB1c3VhbGx5IGdhdGhlciBxdWVzdGlvbnMgYmVmb3JlIEkgbWVldCB3aXRoIG15IHRlYW1tYXRlcyBvbmUtb24tb25lLCBzbyBJIGFtIHByZXBhcmVkIGFuZCBJIGNhbiBndWlkZSB0aGUgY29udmVyc2F0aW9uIHRvd2FyZHMgdW5kZXJzdGFuZGluZyB0aGVtIGJldHRlci4gT3ZlciB0aW1lLCBJIGhhdmUgYnVpbHQgYSBraXQgb2Ygb25lLW9uLW9uZSBxdWVzdGlvbnMgdGhhdCBJIHB1bGwgb3V0IHdoZW4gSSBuZWVkIHNvbWUgaW5zcGlyYXRpb24gZm9yIHRoZXNlIGNvbnZlcnNhdGlvbnMuIEFza2luZyBxdWVzdGlvbnMgaGVscHMgdXMgYWRqdXN0IG91ciBsZWFkZXJzaGlwIHN0eWxlIHRvIHRoZSBwZW9wbGUgd2UgYXJlIGxlYWRpbmcuIEl0IGFsc28gZW5zdXJlcyB0aGF0IHRoZXkgZmVlbCB1bmRlcnN0b29kIGFuZCBoZWFyZCwgd2hpY2ggYXJlIHJlYWxseSBpbXBvcnRhbnQgcGlsbGFycyBvZiBpbmNsdXNpb24gYW5kIGJlbG9uZ2luZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0JlIGN1cmlvdXMuJmx0Oy9zdHJvbmcmZ3Q7IFBlb3BsZSBhcmUgZnVsbCBvZiBzdXJwcmlzZXMsIGFuZCBzb21ldGltZXMgb3VyIHRlYW1tYXRlc+KAmSByZWFjdGlvbnMgbWF5IGJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBleHBlY3RlZC4gSSBvbmNlIHJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIGVuZ2luZWVyIG9uIG15IHRlYW0gd2hvIHdhcyBkZWVwbHkgdXBzZXQgYWJvdXQgdGhlIHNwZWNpZmljIHdvcmRpbmcgdXNlZCBpbiBhIHByb2R1Y3QtcmVsZWFzZSBub3RlIHRvIGN1c3RvbWVycy4gQXQgZmlyc3QgSSBkaWQgbm90IHVuZGVyc3RhbmQgdGhlaXIgc3Ryb25nIHJlYWN0aW9uLiBCdXQgd2hlbiB3ZSB0YWxrZWQsIEkgbGVhcm5lZCB0aGUgZW5naW5lZXIgaGFkIGJlZW4gb3ZlcnJ1bGVkIGJ5IHNvbWVvbmUgd2l0aCBtb3JlIHBvd2VyLCBtYWtpbmcgdGhlbSBmZWVsIGhlbHBsZXNzLCBhbmQgdGhyZWF0ZW5pbmcgdGhlaXIgY29yZSBuZWVkIGZvciBjaG9pY2UgYW5kIGVxdWFsaXR5LiZsdDsvcCZndDsKCiZsdDtwJmd0O1doYXQgbWFuYWdlcnMgbWlnaHQgcGVyY2VpdmUgYXMgbm8gYmlnIGRlYWwgY2FuIGJlIGVub3Jtb3VzIHRocmVhdHMgdG8gb3RoZXIgcGVvcGxlLiBDYXNlcyB3aGVyZSB3ZeKAmXJlIHN1cnByaXNlZCBieSBvdXIgdGVhbW1hdGVz4oCZIHJlYWN0aW9ucyBhcmUgZ29vZCBvcHBvcnR1bml0aWVzIHRvIGZvY3VzIG9uIGh1bWFuLWNlbnRyaWMgcmVzcG9uc2VzLCBsaWtlIGdpdmluZyBwZW9wbGUgdGhlIG9wcG9ydHVuaXR5IHRvIHRhbGsgdGhyb3VnaCB0aGVpciBmZWVsaW5ncy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0Nvbm5lY3QgdG8gdGhlIGJpZ2dlciBwaWN0dXJlLiZsdDsvc3Ryb25nJmd0OyBDcmVhdGluZyBhbiBpbXBhY3QgaXMgYSB2ZXJ5IGdvb2QgbW90aXZhdG9yIGZvciBhbGwgb2YgdXMsIHNvIGhlbHBpbmcgZW5naW5lZXJzIHVuZGVyc3RhbmQgaG93IHRoZWlyIHdvcmsgY29ubmVjdHMgdG8gdGhlIGJpZ2dlciBwaWN0dXJlIChob3cgaXQgaGVscHMgdXNlcnMgb3Igc3VwcG9ydHMgb3RoZXIgdGVhbXMpIGlzIGFuIGV4dHJlbWVseSBpbXBvcnRhbnQgYW5kIHN0cmF0ZWdpYyBza2lsbCBmb3IgbWFuYWdlcnMuIFdoaWxlIGdvYWwtc2V0dGluZyBmcmFtZXdvcmtzIGxpa2UgT0tScyBjYW4gaGVscCwgaXQgaXMgYWxzbyBjcnVjaWFsIHRvIGFsaWduIGVuZ2luZWVyaW5nIGluaXRpYXRpdmVzIHdpdGggaGlnaGVyLWxldmVsIGdvYWxzLCBhbmQgY29ubmVjdCB0aGVtIGNsZWFybHkgd2l0aCB1c2VyIHZhbHVlLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7SW52b2x2ZSBlbmdpbmVlcnMgaW4gZGVjaXNpb24gbWFraW5nLiZsdDsvc3Ryb25nJmd0OyBGZWVsaW5nIHRoYXQgZGVjaXNpb25zIGFyZSBmYWlyIGFuZCBlcXVpdGFibGUgaXMgYW4gaW1wb3J0YW50IGNvbXBvbmVudCBvZiB0aGUgQklDRVBTIG1vZGVsLiBXaGVuIHdlIG1ha2UgZGVjaXNpb25zLCBpdCBpcyBoZWxwZnVsIHRvIGFzayBldmVyeW9uZSBmb3IgdGhlaXIgb3BpbmlvbnMgZmlyc3QsIGFuZCB0YWtlIHRoZWlyIG9waW5pb25zIGludG8gYWNjb3VudC4gSXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBnbyB3aXRoIHdoYXQgZXZlcnlvbmUgd2FudHMuIEJ1dCB3ZSBjYW4gc3RpbGwgZG8gYSBnb29kIGpvYiBhdCBjb250ZXh0dWFsaXppbmcgdGhlIGRlY2lzaW9ucyB3ZSBtYWtlLCBhbmQgaGVscGluZyBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IHRoZWlyIGZlZWRiYWNrIHdhcyBjb25zaWRlcmVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7R2l2ZSBmZWVkYmFjayBmb3IgZ3Jvd3RoLiZsdDsvc3Ryb25nJmd0OyBPbmUgb2YgdGhlIGJlc3QgdGhpbmdzIHdlIGdldCB0byBkbyBhcyBlbmdpbmVlcmluZyBtYW5hZ2VycyBpcyBzdXBwb3J0IGVuZ2luZWVyc+KAmSBncm93dGguIEdpdmUgZmVlZGJhY2sgcmVndWxhcmx5IHRvIGhlbHAgdGhlIHBlb3BsZSBvbiB5b3VyIHRlYW0gdW5kZXJzdGFuZCB3aGVyZSB0aGV5IGFyZSBhdCBhbmQgZ3JvdyDigJMgYnkgY291cnNlLWNvcnJlY3Rpbmcgd2hlcmUgbmVlZGVkLCBhcyB3ZWxsIGFzIGJ5IGRvaW5nIG1vcmUgaW4gdGhlIGFyZWFzIGluIHdoaWNoIHRoZXkgYXJlIGFscmVhZHkgZG9pbmcgZ3JlYXQuIE1hbmFnZXJzIG5lZWQgZmVlZGJhY2sgYXMgd2VsbDogaXTigJlzIGltcG9ydGFudCB0byByZWd1bGFybHkgYXNrIHlvdXIgdGVhbSBmb3IgZmVlZGJhY2sgc28geW91IGNhbiBtYWtlIGFkanVzdG1lbnRzLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Q29hY2ggZW5naW5lZXJzLiZsdDsvc3Ryb25nJmd0OyBDb2FjaGluZyBoZWxwcyBwZW9wbGUgZmluZCBhbnN3ZXJzIHRoZW1zZWx2ZXMsIGltcHJvdmVzIHRoZWlyIHByb2JsZW0tc29sdmluZyBhbmQgbGVhZGVyc2hpcCBza2lsbHMsIGFuZCBpbmNyZWFzZXMgbGVhcm5pbmcsIHJlc2lsaWVuY2UsIGFuZCBzZWxmLW1hbmFnZW1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTcG9uc29yIGVuZ2luZWVycy4mbHQ7L3N0cm9uZyZndDsgVGhpbmsgYmFjayBvbiB5b3VyIGNhcmVlciwgYW5kIHdoZXRoZXIgeW91IGhhdmUgaGFkIGEgbWVudG9yIHdobyBjb25uZWN0ZWQgeW91IHdpdGggc29tZW9uZSwgcHV0IHlvdXIgbmFtZSBmb3J3YXJkLCBhbmQgdXNlZCB0aGVpciBpbmZsdWVuY2UgdG8gbWFrZSBhIGRpZmZlcmVuY2UgaW4geW91ciBjYXJlZXIuIEJlIHRoYXQgcGVyc29uIGZvciBzb21lb25lIGVsc2U6IGludmVzdCBpbiB0aGVpciBncm93dGgsIGxpZnQgdGhlbSB1cCwgYW5kIHB1dCB5b3VyIHdlaWdodCBiZWhpbmQgdGhlaXIgc3VjY2Vzcy4gU3VwcG9ydGluZyB5b3VyIHRlYW3igJlzIHN1Y2Nlc3MgY2FuIG1ha2UgYSByZWFsIGRpZmZlcmVuY2UgZm9yIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhpcyBpcyB0aGUgZm91bmRhdGlvbiBvZiBvdXIgd29yayBhcyBlbmdpbmVlcmluZyBtYW5hZ2Vycy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RHJpdmluZyBhIGN1bHR1cmUgb2YgdHJ1c3QgYW5kIGNvbnRpbnVvdXMgaW1wcm92ZW1lbnQgb24gdGVhbXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgbmV4dCBpbXBvcnRhbnQgYnVpbGRpbmcgYmxvY2sgaW4gb3VyIHdvcmsgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgaXMgdGhlIHRlYW0uIEFjY29yZGluZyB0byByZXNlYXJjaCwgaGlnaC1wZXJmb3JtaW5nIHRlYW1zIG5lZWQgdGhlIGZvbGxvd2luZyBlbGVtZW50cy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7UHN5Y2hvbG9naWNhbCBzYWZldHkuJmx0Oy9zdHJvbmcmZ3Q7IFRoaXMgaXMgYWJvdXQgYmVsaWV2aW5nIHRoYXQgd2Ugd2lsbCBub3QgYmUgcmVqZWN0ZWQsIGFuZCBmZWVsaW5nIGZyZWUgdG8gZXhwcmVzcyBvdXIgd29yay1yZWxhdGVkIHRob3VnaHRzIGFuZCBmZWVsaW5ncyB0byB0aGUgcGVvcGxlIGFyb3VuZCB1cy4gSXQgYWxzbyBtZWFucyBiZWxpZXZpbmcgdGhhdCBvdGhlcnMgd29u4oCZdCB0aGluayBsZXNzIG9mIHVzIGlmIHdlIG1ha2UgYSB3ZWxsLWludGVudGlvbmVkIG1pc3Rha2Ugb3IgYXNrIGZvciBoZWxwLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7U3RydWN0dXJlIGFuZCBjbGFyaXR5LiZsdDsvc3Ryb25nJmd0OyBFdmVyeW9uZSBvbiB0aGUgdGVhbSBzaG91bGQgdW5kZXJzdGFuZCBleHBlY3RhdGlvbnMsIGdvYWxzLCBhbmQgYWNjb3VudGFiaWxpdHkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtNZWFuaW5nIGFuZCBpbXBhY3QuJmx0Oy9zdHJvbmcmZ3Q7IEhpZ2gtcGVyZm9ybWluZyB0ZWFtcyBmaW5kIGEgc2Vuc2Ugb2YgcHVycG9zZSBpbiB0aGVpciB3b3JrLCBhbmQga25vdyB0aGF0IHRoZWlyIHdvcmsgaGFzIGFuIGltcGFjdC4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7THVja2lseSBmb3IgbWFuYWdlcnMsIHRoaXMgcmVzZWFyY2ggbmVhdGx5IGFsaWducyB3aXRoIHRoZSBCSUNFUFMgbW9kZWwuIEFsbCBodW1hbiBjb3JlIG5lZWRzIGFyZSByZXByZXNlbnRlZCBhbmQgaGF2ZSBpbXBhY3QgYXQgdGhlIHRlYW0gbGV2ZWwgYXMgd2VsbC4gQnkgdW5kZXJzdGFuZGluZyBhbmQgcmVzcG9uZGluZyB0byBwZW9wbGXigJlzIG1vdGl2YXRpb25zLCBsZWFkZXJzIGNyZWF0ZSB0aGUgYmFzaXMgZm9yIHRlYW1zICB0byBleHByZXNzIHRoZW1zZWx2ZXMg4oCTIGFuZCBwcm92aWRlIHRoZSBzdHJ1Y3R1cmUsIG1lYW5pbmcsIGFuZCBpbXBhY3QgdGhleSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgdHJ1c3QuJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBmaXJzdCBzdGVwIGluIGNyZWF0aW5nIHN0cnVjdHVyZSBpcyBidWlsZGluZyByZWxhdGlvbnNoaXBzLiBGb3Igb3VyIGRpc3RyaWJ1dGVkIHRlYW1zIGF0IENpcmNsZUNJLCB3ZeKAmXZlIGJ1aWx0IGRpZmZlcmVudCBzdHJ1Y3R1cmVzIHRvIGhlbHAgdGVhbW1hdGVzIGRvIHRoYXQsIHN1Y2ggYXMgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucyBhbmQgZW5naW5lZXJpbmcgdGFsa3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTdHJ1Y3R1cmUgYXJvdW5kIGhvdyB3ZSBjb2xsYWJvcmF0ZS4mbHQ7L3N0cm9uZyZndDsgT3VyIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0kgaGFzIGRvdWJsZWQgaW4gc2l6ZSBmb3IgdGhyZWUgeWVhcnMgaW4gYSByb3cuIE92ZXIgdGhpcyB0aW1lLCB3ZeKAmXZlIG1vdmVkIHRvIGEgbW9yZSBzdHJlYW1saW5lZCBlbmdpbmVlcmluZyBkZWxpdmVyeSBwcm9jZXNzIGZvciBhbGwgdGVhbXMuIEJ1dCB3ZSBzdGlsbCBsZWF2ZSBpdCB0byB0aGUgdGVhbXMgdG8gZGVjaWRlIGhvdyB0byBpbXBsZW1lbnQgdCBkYXktdG8tZGF5IHByb2Nlc3NlcywgaW5jbHVkaW5nIGRhaWx5IHN0YW5kdXAgbWVldGluZ3MsIHBsYW5uaW5nIHNlc3Npb25zLCBvciBjb2xsYWJvcmF0aW9uLiBFdmVyeSB0ZWFtIGhhcyBzcGVjaWZpYyBuZWVkcywgYW5kIHRoZXkga25vdyBiZXN0IGhvdyB0byBhZGRyZXNzIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtSZW1vdmUgYmxvY2tlcnMuJmx0Oy9zdHJvbmcmZ3Q7IFN0cnVjdHVyZXMgY2FuIGFsc28gaGVscCBtaXRpZ2F0ZSB0aGUgaW1wYWN0IG9mIGdldHRpbmcgYmxvY2tlZCBhdCB3b3JrLiBXZSBhbGwga25vdyBob3cgZnJ1c3RyYXRpbmcgaXQgaXMgdG8gYmUgc3R1Y2suIFB1dHRpbmcgdXAgcGF0aHdheXMgdG8gaGVscCBwZW9wbGUgZ2V0IHVuYmxvY2tlZCBjYW4gYmUgcmVhbGx5IGltcG9ydGFudCDigJMgZm9yIGV4YW1wbGUsIHNldHRpbmcgdXAgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucywgaW52ZXN0aW5nIGluIHNlbGYtc2VydmUgaW5mb3JtYXRpb24gYWNjZXNzLCBzdXBwb3J0aW5nIGVhY2ggb3RoZXIgYWNyb3NzIHRlYW1zLCBwdXR0aW5nIHVwIGVzY2FsYXRpb24gcGF0aHMgZm9yIHBlb3BsZSB0byBnZXQgaGVscCB3aGVuIHRoZXkgbmVlZCBpdCwgb3IgaGVscGluZyBwZW9wbGUgc3VwcG9ydCBlYWNoIG90aGVyIHRocm91Z2gga25vd2xlZGdlLXNoYXJpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtDb250aW51b3VzbHkgaW1wcm92ZS4mbHQ7L3N0cm9uZyZndDsgV2UgY2FuIHVzZSByZXRyb3NwZWN0aXZlcyB0byBkaXNjdXNzIGFuZCBpbXByb3ZlIGhvdyB3ZSB3b3JrIHRvZ2V0aGVyLiBCbGFtZWxlc3MgcG9zdG1vcnRlbXMgYXJlIGFsc28gYSBncmVhdCB0b29sIHRvIGhlbHAgdW5kZXJzdGFuZCBwcm9ibGVtcyBhbmQgZHJpdmUgdG93YXJkcyBzb2x1dGlvbnMuIENvZGUgcmV2aWV3cywgbWVudG9yaW5nLCBvciBrbm93bGVkZ2Ugc2hhcmluZyBjYW4gaGVscCB0ZWFtIG1lbWJlcnMgbGVhcm4gZnJvbSBlYWNoIG90aGVyLiBUaGUgd2F5IHdlIHRhbGsgYWJvdXQgbGVhcm5pbmcgbWF0dGVycyDigJMgZXNwZWNpYWxseSB0aGUgd2F5IHdlIGRpc2N1c3MgbWlzdGFrZXMuIFRoZXNlIGRlY2lzaW9ucyB3aWxsIGZ1bmRhbWVudGFsbHkgc2hhcGUgdGhlIGN1bHR1cmUgb2Ygb3VyIHRlYW1zLCBhbmQgZGV0ZXJtaW5lIHdoZXRoZXIgcGVvcGxlIGZlZWwgc2FmZSBvciB0aHJlYXRlbmVkIGluIHRoZWlyIGNvcmUgbmVlZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtEcml2ZSB0b3dhcmQgYWxpZ25tZW50LiZsdDsvc3Ryb25nJmd0OyBDb21tdW5pY2F0ZSBzdHJhdGVneSwgZGlyZWN0aW9uLCBhbmQgcmVsZXZhbnQgdGFjdGljYWwgZGV0YWlscyB0byBvdXIgdGVhbXMg4oCTIGFuZCByZW1lbWJlciBpdOKAmXMgYWxtb3N0IGltcG9zc2libGUgdG8gb3Zlci1jb21tdW5pY2F0ZSB0aGVzZSBkZXRhaWxzLiBBbHdheXMgcmVwZWF0IHdoYXTigJlzIGltcG9ydGFudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBlbmdpbmVlcmluZyBtYW5hZ2Vycywgd2UgYXJlIGxpa2UgbW9ydGFyOiBXZSBjb25uZWN0IHN0cnVjdHVyZXMsIHRlYW1zLCBhbmQgcGVvcGxlLiBXZSBob2xkIHRoZW0gdG9nZXRoZXIsIGJ1dCBhbHNvIGlkZW50aWZ5IGFuZCBmaWxsIGdhcHMgYXMgbmVlZGVkLiBIYW5kbGluZyBhbWJpZ3VpdHkgaXMgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgZGlmZmljdWx0IGFzcGVjdHMgb2YgZW5naW5lZXJpbmcgbWFuYWdlbWVudC4uIEZvciBhIGxvdCBvZiB3b3JrIGluIG91ciBmaWVsZCwgdGhlcmUgYXJlIG5vIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLCBsZXQgYWxvbmUgcmVzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T3VyIHdvcmsgaXNu4oCZdCBzbyBtdWNoIGFib3V0IHVzOyBpdOKAmXMgYWJvdXQgdGhlIHBlb3BsZSwgdGVhbXMsIGFuZCBvcmdhbml6YXRpb25zIHdlIHN1cHBvcnQuIFdlIGJ1aWxkIHN0cnVjdHVyZXMgdG8gaGVscCBvdGhlcnMgc2hpbmUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1N1cHBvcnRpbmcgb3JnYW5pemF0aW9uYWwgY2hhbmdlJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7TGFzdGx5LCBjcmVhdGluZyBlbnZpcm9ubWVudHMgaW4gd2hpY2ggZW5naW5lZXJzIGNhbiB0aHJpdmUgaXMgYWJvdXQgc3VwcG9ydGluZyBvdXIgb3JnYW5pemF0aW9uLiBXZSBuZWVkIHRvIHVzZSBvdXIgcG93ZXIgYXMgbWFuYWdlcnMgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLCBubyBtYXR0ZXIgdGhlIHNpemUgb2Ygb3VyIGJ1c2luZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtBZHZvY2F0ZSBmb3IgY2hhbmdlLiZsdDsvc3Ryb25nJmd0OyBUbyBiZSBlZmZlY3RpdmUgYXMgbWFuYWdlcnMsIHdlIG5lZWQgdG8gcHVzaCBmb3Igb3JnYW5pemF0aW9uYWwgY2hhbmdlIHRvIGltcHJvdmUgdGhlIGxhcmdlciBzdHJ1Y3R1cmVzIGFyb3VuZCB1cy4gRm9yIGV4YW1wbGUsIHdlIG1heSBuZWVkIHRvIGFkdm9jYXRlIGZvciBtb3JlIGNsYXJpdHkgYXJvdW5kIGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMsIGhhdmUgY29udmVyc2F0aW9ucyBhYm91dCB3aGF0IGVuZ2luZWVyaW5nIG1hbmFnZW1lbnQgc2hvdWxkIGJlIGxpa2UgaW4gb3VyIGNvbXBhbnksIGFuZCBkZXRlcm1pbmUgcmVxdWlyZW1lbnRzIGZvciBoaXJpbmcgZW5naW5lZXJpbmcgbWFuYWdlcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtNYW5hZ2UgdXAuJmx0Oy9zdHJvbmcmZ3Q7IE1hbmFnaW5nIG91ciBvd24gbWFuYWdlcnMgaXMgYSB1c2VmdWwgYnV0IGRpZmZpY3VsdCBza2lsbC4gRHJpdmluZyBvcmdhbml6YXRpb25hbCBjaGFuZ2UgYWxzbyBtZWFucyBtYWtpbmcgc3VyZSB0aGF0IG91ciBlbmdpbmVlcnPigJkgY29uY2VybnMgYXJlIGhlYXJkIGF0IHRoZSBoaWdoZXN0IGxldmVscywgYW5kIHRoYXQgd2UgdXNlIG91ciBwb3dlciB0byBtYWtlIHN1cmUgZW5naW5lZXJzIGhhdmUgYSB2b2ljZSBpbiB0aGUgcmVzdCBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgZnJhbWV3b3JrcyBhbmQgc3RhbmRhcmRzLiZsdDsvc3Ryb25nJmd0OyBXaGlsZSBpdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIG1ha2Ugcm9vbSBmb3IgaW5kaXZpZHVhbCBuZWVkcywgc3RydWN0dXJlcyBhbmQgZnJhbWV3b3JrcyBmb3IgbWFuYWdlcnMgaGVscCB1cyBob2xkIGVhY2ggb3RoZXIgYWNjb3VudGFibGUuIFRoZXkgYWxzbyAgaGVscCBsZXZlbCB0aGUgcGxheWluZyBmaWVsZCBhbmQgYnVpbGQgaW4gZXF1YWxpdHkgZm9yIHRoZSBwZW9wbGUgb24gb3VyIHRlYW1zLiBPbiBteSBjdXJyZW50IHRlYW0sIGV2ZXJ5IHF1YXJ0ZXIgd2UgcGljayBzb21lIGhpZ2gtcHJpb3JpdHkgcHJvamVjdHMgIHRvIGltcHJvdmUgaG93IHdlIHdvcmsgYXMgYW4gb3JnYW5pemF0aW9uLiBNb3N0IHJlY2VudGx5LCB3ZeKAmXZlIHdvcmtlZCBvbiBvdXIgaGlyaW5nIHByb2Nlc3MgYW5kIGluY2lkZW50IHJlbWVkaWF0aW9uOyBsYXN0IHllYXIsIHdlIGRldmVsb3BlZCBhbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvd2h5LXdlLXJlLWRlc2lnbmVkLW91ci1lbmdpbmVlcmluZy1jYXJlZXItcGF0aHMtYXQtY2lyY2xlY2kvJnF1b3Q7Jmd0O2ludGVybmFsIGNhcmVlciBncm93dGggZnJhbWV3b3JrIGZvciBlbmdpbmVlcnMmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtHcm93aW5nIGFzIGEgbGVhZGVyJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7QmVpbmcgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgaXNu4oCZdCBhbHdheXMgYSBzdHJhaWdodGZvcndhcmQgcGF0aDsgYSBsb3QgZGVwZW5kcyBvbiB3aGVyZSB3ZSBhcmUgYXQgaW4gb3VyIGNhcmVlcnMgYW5kIHdoZXJlIHdlIGFyZSBsb29raW5nIHRvIGdvLCBhcyB3ZWxsIGFzIHRoZSBncm93dGggc3RhZ2UsIHNpemUsIGFuZCBuZWVkcyBvZiBvdXIgb3JnYW5pemF0aW9ucy4gSW4gb3VyIGRhaWx5IHdvcmssIHdlIGhvbGQgdmFzdCBhbW91bnRzIG9mIHVuY2VydGFpbnR5IHdoaWxlIGFsc28gdHJ5aW5nIHRvIG1ha2UgcHJvZ3Jlc3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QW4gb3ZlcmFyY2hpbmcgdGhlbWUgaW4gbXkgd29yayBpbiBlbmdpbmVlcmluZyBtYW5hZ2VtZW50ICBoYXMgYmVlbiBncm93dGggYW5kIGltcHJvdmVtZW50LiBXZSByYXJlbHkgZGVhbCB3aXRoIGdyZWVuZmllbGQgcHJvamVjdHMgb3IgYXJlIGFibGUgdG8gYnVpbGQgYSB0ZWFtIG9yIGRlcGFydG1lbnQgZnJvbSBzY3JhdGNoLiBFdmVuIHdoZW4gd2UgZG8sIHdlIGJ1aWxkIG9uIGV4aXN0aW5nIHN0cnVjdHVyZXMgaW4gb3VyIG9yZ2FuaXphdGlvbi4gSSBiZWxpZXZlIG91ciBzdXBwb3J0aW5nIHJvbGUgbGFyZ2VseSBtZWFucyBoZWxwaW5nIGVuZ2luZWVycyBncm93LCBzdXBwb3J0aW5nIHRlYW1zIGF0IGNvbnRpbnVvdXNseSBsZWFybmluZywgYW5kIGhlbHBpbmcgb3JnYW5pemF0aW9ucyBiZWNvbWUgYmV0dGVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVyaW5nIG1hbmFnZXJzLCB3ZSBmcmVxdWVudGx5IGZhY2UgcXVlc3Rpb25zIHRoYXQgZG9u4oCZdCBjbGVhciByaWdodCBvciB3cm9uZyBhbnN3ZXJzLiBNYW55IHllYXJzIGFnbywgbXkgbGVhZGVyc2hpcCBjb2FjaCBlbmNvdXJhZ2VkIG1lIHRvIHVzZSB0aG9zZSBraW5kcyBvZiB1bmNlcnRhaW4gc2l0dWF0aW9ucyB0byBhc2sgbXlzZWxmLCDigJxXaGF0IGtpbmQgb2YgbGVhZGVyIGRvIEkgd2FudCB0byBiZT/igJ0mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJIHdhbnQgdG8gbGVhdmUgdGhlIGxhc3QgY2FsbCB0byBncm93dGggYW5kIGltcHJvdmVtZW50IHdpdGggeW91IChhbmQgbWUpOiBObyBtYXR0ZXIgd2hhdCB5b3VyIHJvbGUgb3IgY29tcGFueSBpcyBsaWtlLCB3b3JrIG9uIHNoYXBpbmcgeW91ciBhcHByb2FjaCB0byBlbmdpbmVlcmluZyBtYW5hZ2VtZW50LiBHZXQgdG8ga25vdyB0aGUgcGVvcGxlIHRoYXQgeW91IHdvcmsgd2l0aCwgYW5kIHVzZSBmZWVkYmFjayB0byBoZWxwIHRoZW0gY291cnNlLWNvcnJlY3QuIEJ1aWxkIHRlYW1zIHRoYXQgYXJlIHBzeWNob2xvZ2ljYWxseSBzYWZlIHBsYWNlcywgd2hlcmUgcGVvcGxlIGZpbmQgbWVhbmluZyBpbiBhIHNoYXJlZCBwdXJwb3NlLiBBbmQgdXNlIHlvdXIgcG93ZXIgYW5kIHByaXZpbGVnZSB0byBkcml2ZSBjaGFuZ2UgaW4geW91ciBvcmdhbml6YXRpb24uIE1ha2UgcGVvcGxlIHRoZSBjZW50ZXIgYW5kIGZvY3VzIG9mIHlvdXIgd29yaywgYW5kIGJ1aWxkIG9uIHRoYXQgZm91bmRhdGlvbiB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhleSBjYW4gdGhyaXZlLiAgQWx3YXlzIHB1c2ggdG8gY29udGludW91c2x5IGltcHJvdmUuIExlYWQgd2l0aCBodW1ibGVuZXNzLCBlbXBhdGh5LCBhbmQgbG90cyBvZiBjdXJpb3NpdHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2hhdCBraW5kIG9mIGxlYWRlciBkbyB5b3Ugd2FudCB0byBiZT8mbHQ7L3AmZ3Q7CgombHQ7aHIgLyZndDsKJmx0O3AmZ3Q7SWYgeW914oCZcmUgY3VyaW91cyBhYm91dCBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IGF0IENpcmNsZUNJIGFuZCB3b3JraW5nIHdpdGggdXM6IGpvaW4gdXMhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9ib2FyZHMuZ3JlZW5ob3VzZS5pby9jaXJjbGVjaSZxdW90OyZndDtXZeKAmXJlIGhpcmluZyBlbmdpbmVlcmluZyBtYW5hZ2VycyZsdDsvYSZndDsuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5CdWlsZGluZyBhbmQgZGVwbG95aW5nIEZsdXR0ZXIgYXBwcyB3aXRoIEZhc3RsYW5lPC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RlcGxveS1mbHV0dGVyLWFuZHJvaWQvPC9saW5rPgogICAgICAgIDxwdWJEYXRlPldlZCwgMjkgQXByIDIwMjAgMTA6MDA6MDAgLTA3MDA8L3B1YkRhdGU+CiAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9InRydWUiPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZGVwbG95LWZsdXR0ZXItYW5kcm9pZC88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5HYWJyaWVsIFNpbW1lcjwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvJnF1b3Q7Jmd0O0ZsdXR0ZXImbHQ7L2EmZ3Q7IGlzIGEgdG9vbGtpdCBwcm92aWRlZCBieSBHb29nbGUgZm9yIGJ1aWxkaW5nIGNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9ucywgaW5jbHVkaW5nIEFuZHJvaWQsIGlPUywgYW5kIHdlYiBhcHBzLiBBcyBtb3JlIGFwcHMgYXJlIHdyaXR0ZW4gdXNpbmcgaXQgYW5kIERhcnQgKHRoZSB1bmRlcmx5aW5nIGxhbmd1YWdlKSwgaXTigJlzIGJlY29taW5nIG1vcmUgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyBkZXZlbG9wZXJzIGNhbiBwYWNrYWdlIGFuZCBkZWxpdmVyIHRoZWlyIGNvZGUgdG8gdGhlaXIgdXNlcnMuIExldmVyYWdpbmcgQ2lyY2xlQ0kgYW5kIEZhc3RsYW5lLCB0aGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcHJvY2VzcyB0aGF0IGNhbiBiZSBhdXRvbWF0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbGluZyBGbHV0dGVyIGFuZCBjcmVhdGluZyB5b3VyIGZpcnN0IGFwcCBjYW4gYmUgZG9uZSBieSBmb2xsb3dpbmcgdGhlc2UgZ3VpZGVzOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvZG9jcy9nZXQtc3RhcnRlZC9pbnN0YWxsJnF1b3Q7Jmd0O0luc3RhbGwmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2ZsdXR0ZXIuZGV2L2RvY3MvZ2V0LXN0YXJ0ZWQvY29kZWxhYiZxdW90OyZndDtXcml0ZSB5b3VyIGZpcnN0IGFwcCZsdDsvYSZndDsuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBkZWZhdWx0IOKAnGhlbGxvIHdvcmxk4oCdIGFwcCB3aWxsIHN1ZmZpY2UuIFdlIHdvbuKAmXQgYmUgZGVhbGluZyBtdWNoIHdpdGggdGhlIGFwcGxpY2F0aW9uIGl0c2VsZi4gUHVzaCBpdCB0byBhIHJlcG9zaXRvcnkgb24gR2l0SHViLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Vuc3VyZSB0aGF0IHlvdSBhcmUgc2V0IHVwIHRvIHB1Ymxpc2ggYXBwcyB1c2luZyBHb29nbGUgUGxheSBvciB0aGUgQXBwbGUgQXBwIFN0b3JlIC0gc3RlcHMgZm9yIGVhY2ggd2lsbCB2YXJ5LCBzbyBiZSBzdXJlIHRvIGZvbGxvdyB0aGUgc3RlcHMgb3V0bGluZWQgZm9yIHRoZSByZXNwZWN0aXZlIHByb3ZpZGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBbmRyb2lkJmx0Oy9oMiZndDsKCiZsdDtwJmd0O1doZW4gcHVibGlzaGluZyBBbmRyb2lkIGFwcHMsIHRoZXJlIGFyZSBhIGZldyByZXF1aXJlbWVudHMgdG8gc2F0aXNmeSBiZWZvcmUgaW1wbGVtZW50aW5nIEZhc3RsYW5lLiBBbiDigJx1cGxvYWQga2V54oCdIGlzIHJlcXVpcmVkIHNvIHRoYXQgR29vZ2xlIGNhbiB2ZXJpZnkgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUgYXBwIGJlZm9yZSBhY2NlcHRpbmcgaXQuIFN0ZXBzIGZvciBzZXR0aW5nIHRoaXMgdXAgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9mbHV0dGVyLmRldi9kb2NzL2RlcGxveW1lbnQvYW5kcm9pZCZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oy4gSXTigJlzIHJlY29tbWVuZGVkIHRvIHVzZSBBcHBCdW5kbGVzIHdoZW4gYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBhcyBpdCBhbGxvd3MgR29vZ2xlIHRvIGJ1aWxkIGluZGl2aWR1YWwgQVBLcyBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyB3aGlsZSBrZWVwaW5nIGZpbGVzaXplIGRvd24uIFRha2Ugbm90ZSBvZiB3aGVyZSB5b3Ugc2F2ZSB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5qa3MmbHQ7L2NvZGUmZ3Q7IGZpbGUuIFdoaWxlIGl0IGNhbiBsaXZlIGluIHlvdXIgaG9tZSBkaXJlY3RvcnksIGhhdmluZyBpdCBzYXZlZCB0byBhIGdpdC1pZ25vcmVkIGRpcmVjdG9yeSBpbiB5b3VyIHByb2plY3Qgd2lsbCBjb21lIGluIGhhbmR5IHdoZW4gY29uZmlndXJpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1R3byB0aGluZ3MgZnJvbSB0aGlzIGd1aWRlIHdpbGwgbmVlZCB0byBiZSBhZGRlZCB0byBDaXJjbGVDSSBhcyAmbHQ7YSBocmVmPSZxdW90Oy9kb2NzLzIuMC9lbnYtdmFycy8mcXVvdDsmZ3Q7ZW52aW9ybm1lbnQgdmFyaWFibGVzJmx0Oy9hJmd0OzogdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlIGFuZCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7a2V5LmprcyZsdDsvY29kZSZndDsgZmlsZS4gVGhpcyB3aWxsIGFsbG93IHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBzaWduIHRoZSBhcHBsaWNhdGlvbi4gU2luY2Ugb25lIGZpbGUgcmVxdWlyZXMgbmV3bGluZXMgdG8gYmUgcHJlc2VudCwgYW5kIGFub3RoZXIgaXMgYSBiaW5hcnkgZmlsZSwgaXTigJlzIHJlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgYmFzZTY0LWVuY29kZWQgcHJpb3IgdG8gYWRkaW5nIHRoZW0gYXMgZW52aW9ybm1lbnQgdmFyaWFibGVzIHRvIHByZXNlcnZlIHRoZSBkYXRhLiZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBjYW4gZW5jb2RlIHRoZW0gYnkgcnVpbm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2F0ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7IHwgYmFzZTY0IC13IDAgIyAtdyAwIHdpbGwgZW5zdXJlIG5vIG5ld2xpbmVzIGFyZSBwcmVzZW50LgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBmaWxlcyBjYW4gdGhlbiBiZSByZS1hZGRlZCBkdXJpbmcgdGhlIGpvYiB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2VjaG8gJnF1b3Q7JEVOVl9WQVJJQUJMRV9OQU1FJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIGFsc28gd2FudCB0byBzZXQgdXAgYSBGYXN0bGFuZSBzZXJ2aWNlIGFjY291bnQgd2hpbGUgY3JlYXRpbmcgeW91ciBBbmRyb2lkIHNldHVwLiBZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5mYXN0bGFuZS50b29scy9nZXR0aW5nLXN0YXJ0ZWQvYW5kcm9pZC9zZXR1cC8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuIEJlIHN1cmUgdG8ga2VlcCB5b3VyIFNlcnZpY2UgQWNjb3VudCBKU09OIGZpbGUgaGFuZHkuIFdl4oCZbGwgYmUgYWRkaW5nIHRoYXQgdG8gdGhlIHBpcGVsaW5lIHNob3J0bHkuIEFsc28gbm90ZSB0aGF0IGNvbW1hbmRzIHNob3VsZCBiZSBydW4gZnJvbSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZCZsdDsvY29kZSZndDsgZGlyZWN0b3J5IHVuZGVyIHlvdXIgRmx1dHRlciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IHJlcXVpcmVkIGJ5IEZhc3RsYW5lIGNhbiBiZSBkb25lIGJ5IGFkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IEpTT04gZmlsZSBjb250ZW50cyBhcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IGVudmlvcm5tZW50IHZhcmlhYmxlLiBUaGlzIGlzIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1NVUFBMWV9KU09OX0tFWSZsdDsvY29kZSZndDsgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgYSBmaWxlIHBhdGggdG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0Zhc3RsYW5lJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05vdyB0aGF0IG91ciBlbnZpb3JubWVudCB2YXJpYWJsZXMgYXJlIGluIHBsYWNlIGFuZCB3ZSBjYW4gYnVpbGQgYSBzaWduZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LmFhYiZsdDsvY29kZSZndDsgZmlsZSB1c2luZyBGbHV0dGVyLCBpdOKAmXMgdGltZSB0byB0ZWxsIEZhc3RsYW5lIGhvdyB0byBkbyB0aGlzIGZvciB1cy4gV2XigJlsbCBzdGFydCB3aXRoIEFuZHJvaWQuIE9wZW5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZC9mYXN0bGFuZS9GYXN0ZmlsZSZsdDsvY29kZSZndDsgd2lsbCByZXZlYWwgc29tZSBkZWZhdWx0cyBmb3IgYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBidXQgdGhleSB3b27igJl0IHdvcmsgZm9yIG91ciB1c2UgY2FzZS4gV2XigJlyZSBidWlsZGluZyB3aXRoIEZsdXR0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rmlyc3QsIGxldOKAmXMgZGVmaW5lIGEgbmV3IOKAnGxhbmXigJ0uIFRoaXMgaXMgYSBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgRmFzdGxhbmUgd2lsbCBleGVjdXRlIHdoZW4gY2FsbGVkLiBGb3Igbm93LCB3ZeKAmWxsIGJlIHB1c2hpbmcgb3VyIGFwcCB0byB0aGUg4oCcYmV0YeKAnSBjaGFubmVsLCBub3QgdG8gcHJvZHVjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwoKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgaXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIGxhbmUuIE5leHQsIHdl4oCZbGwgd2FudCB0byBncmFiIGEgYnVpbGQgbnVtYmVyIHdoaWNoIGlzIGFuIGluY3JlbWVudGluZyBudW1iZXIgdXNlZCBhcyBhIHJlZmVyZW5jZSBmb3IgdGhlIHZlcnNpb24gb2YgdGhlIGFwcCAod2hpY2ggZGlmZmVycyBmcm9tIHRoZSB1c2VyLWZhY2luZyBzZW12ZXIpLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHRvIHRoZSBsYW5lOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ICBidWlsZF9udW1iZXIgPSBudW1iZXJfb2ZfY29tbWl0cygpCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgZW5zdXJlcyB0aGF0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZF9udW1iZXImbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0aGF0IGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBHaXQgcmVwb3NpdG9yeS4gVGhpcyBjYW4gYWxzbyBiZSBtYW51YWxseSBpbmNyZW1lbnRlZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVic3BlYy55YW1sJmx0Oy9jb2RlJmd0OyBmaWxlIHRoYXQgRmx1dHRlciB1c2VzIHRvIGJ1aWxkIHRoZSBwYWNrYWdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdl4oCZbGwgZG8gdGhlIGJ1aWxkaW5nLiBXZSBuZWVkIHRvIGdvIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5LCBydW4gYSBmZXcgc2hlbGwgY29tbWFuZHMgdG8gZmV0Y2ggb3VyIHBhY2thZ2VzLCBjbGVhbiB0aGUgcHJldmlvdXMgYnVpbGQgKGlmIGF2YWlsYWJsZSksIHRoZW4gYnVpbGQgdGhlIGFwcGJ1bmRsZSB3aXRoIG91ciBidWlsZCBudW1iZXIuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIERpci5jaGRpciAmcXVvdDsuLi8uLiZxdW90OyBkbwogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7cGFja2FnZXMmcXVvdDssICZxdW90O2dldCZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2NsZWFuJnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7YnVpbGQmcXVvdDssICZxdW90O2FwcGJ1bmRsZSZxdW90OywgJnF1b3Q7LS1idWlsZC1udW1iZXI9I3tidWlsZF9udW1iZXJ9JnF1b3Q7KQogIGVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtGaW5hbGx5LCB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYXBwIHN0b3JlIG9uIHRoZSBiZXRhIGNoYW5uZWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIHVwbG9hZF90b19wbGF5X3N0b3JlKHRyYWNrOiAnYmV0YScsIGFhYjogJy4uL2J1aWxkL2FwcC9vdXRwdXRzL2J1bmRsZS9yZWxlYXNlL2FwcC5hYWInKQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGxhbmUgd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwogIGJ1aWxkX251bWJlciA9IG51bWJlcl9vZl9jb21taXRzKCkKICBEaXIuY2hkaXIgJnF1b3Q7Li4vLi4mcXVvdDsgZG8KICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O3BhY2thZ2VzJnF1b3Q7LCAmcXVvdDtnZXQmcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtjbGVhbiZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2J1aWxkJnF1b3Q7LCAmcXVvdDthcHBidW5kbGUmcXVvdDssICZxdW90Oy0tYnVpbGQtbnVtYmVyPSN7YnVpbGRfbnVtYmVyfSZxdW90OykKICBlbmQKICB1cGxvYWRfdG9fcGxheV9zdG9yZSh0cmFjazogJ2JldGEnLCBhYWI6ICcuLi9idWlsZC9hcHAvb3V0cHV0cy9idW5kbGUvcmVsZWFzZS9hcHAuYWFiJykKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dvIGFoZWFkIGFuZCBzYXZlIHRoZSBmaWxlLCBhbmQgdGhlbiBydW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZmFzdGxhbmUgYmV0YSZsdDsvY29kZSZndDsuIEl0IHdpbGwgcnVuIHRocm91Z2ggdGhlIHN0ZXBzLCBidWlsZGluZyB0aGUgYXBwIGFuZCBwdXNoaW5nIHRoZSBhcHBsaWNhdGlvbiBmb3IgeW91LiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgd2XigJlsbCBkbyB0aGUgc2FtZSBmb3IgaU9TLCBidXQgcmVwbGFjaW5nIHNvbWUgb2YgdGhlIGNvbW1hbmRzIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBpT1MgY29tbWFuZHMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lvcy9GYXN0bGFuZSZsdDsvY29kZSZndDsgZGlyZWN0b3J5LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZGVzYyAmcXVvdDtEZXBsb3kgYSBuZXcgYnVpbGQgdG8gVGVzdGZsaWdodCZxdW90OwpsYW5lIDpiZXRhIGRvCiAgRGlyLmNoZGlyICZxdW90Oy4uLy4uJnF1b3Q7IGRvCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtwYWNrYWdlcyZxdW90OywgJnF1b3Q7Z2V0JnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7Y2xlYW4mcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtidWlsZCZxdW90OywgJnF1b3Q7aW9zJnF1b3Q7LCAmcXVvdDstLXJlbGVhc2UmcXVvdDssICZxdW90Oy0tbm8tY29kZXNpZ24mcXVvdDspCiAgZW5kCiAgYnVpbGRfaW9zX2FwcChzY2hlbWU6ICZxdW90O015QXBwJnF1b3Q7KQogIHVwbG9hZF90b190ZXN0ZmxpZ2h0CmVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhcHAgaXMgYnVpbHQgdHdpY2UuIFRoZSBmaXJzdCBidWlsZCBidWlsZHMgYWdhaW5zdCB0aGUgbGF0ZXN0IEZsdXR0ZXIgdG9vbGNoYWluLCB3aGlsZSB0aGUgc2Vjb25kIGJ1aWxkIGJ1aWxkcyB0aGUgYWN0dWFsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5pcGEmbHQ7L2NvZGUmZ3Q7IGZpbGUgdGhhdCB3aWxsIGJlIHVwbG9hZGVkIHRvIFRlc3RmbGlnaHQuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O05vdywgd2l0aCBDaXJjbGVDSSZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gcGxhY2UsIGl04oCZcyB0aW1lIHRvIGdldCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB3cml0dGVuIHNvIHRoYXQgYSBwdXNoIHRvIGEgYnJhbmNoIGlzIHRyYW5zbGF0ZWQgdG8gYSBuZXcgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7aU9TJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0ZvciBkZXBsb3lpbmcgd2l0aCBpT1MsIENpcmNsZUNJIGFscmVhZHkgaGFzIGRvY3MgdG8gY292ZXIgdGhpcyEgU3RlcHMgZm9yIHNldHRpbmcgdXAgRmFzdGxhbmUgZGVwbG95bWVudCB3aXRoIEZsdXR0ZXIgaXMgc2ltaWxhciB0byB0aGUgc3RlcHMgb3V0bGluZWQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvaW9zLWNvZGVzaWduaW5nLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OyBhbmQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZGVwbG95aW5nLWlvcy8jYXBwLXN0b3JlLWNvbm5lY3QmcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0FuZHJvaWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7V2hlbiBpdCBjb21lcyB0byB0aGUgRG9ja2VyIGltYWdlIHRvIHBpY2ssIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gRWl0aGVyIHlvdSBjYW4gYnVpbGQgYW5kIHB1c2ggdGhlIERvY2tlciBpbWFnZSB1c2VkIGJ5IHRoZSBGbHV0dGVyIHByb2plY3QgZm91bmQgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2Jsb2IvbWFzdGVyL2Rldi9jaS9kb2NrZXJfbGludXgvRG9ja2VyZmlsZSZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oywgb3IgeW91IGNhbiBwdWxsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dtZW1zdHIvZmx1dHRlci1mYXN0bGFuZTpsYXRlc3QmbHQ7L2NvZGUmZ3Q7LCB3aGljaCBpcyBidWlsdCBvbiB0b3Agb2YgYW4gZXhpc3RpbmcgRmx1dHRlciBEb2NrZXIgaW1hZ2UgYW5kIGluc3RhbGxzIEZhc3RsYW5lIGFsb25nc2lkZSBpdCwgYXZvaWRpbmcgYWRkaXRpb25hbCBvdmVyaGVhZCBvZiBpbnN0YWxsaW5nIGl0IGR1cmluZyBydW50aW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28gZW5zdXJlIHRoYXQgdGhlIGVudmlvcm5tZW50IHZhcmlhYmxlcyBtZW50aW9uZWQgZWFybGllciBhcmUgYWRkZWQgdG8geW91ciBwcm9qZWN0LiBOYW1lbHk6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQTEFZX1NUT1JFX1VQTE9BRF9LRVkmbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtrZXkuamtzJmx0Oy9jb2RlJmd0OyBmaWxlJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7UExBWV9TVE9SRV9VUExPQURfS0VZX0lORk8mbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCBmaWxlIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIGFuZCBvdGhlciBpbmZvIHJlZ2FyZGluZyB0aGUgdXBsb2FkIHNpZ25pbmcga2V5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IC0gWW91ciBHb29nbGUgU2VydmljZSBBY2NvdW50IEpTT04gc3RyaW5nIGZvciBhdXRoZW50aWNhdGlvbiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtJbiB5b3VyIHByb2plY3RzIHJvb3QsIGFkZCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLCBhbmQgaW4gdGhhdCBmb2xkZXIgYWRkIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y2lyY2xlY2kueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLiBBZGQgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSBuZXdseSBjcmVhdGVkIGZpbGU6Jmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7JwogIAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgc25pcHBldCBhYm92ZSBkZWZpbmVzIGFuIGV4ZWN1dG9yIHdlIGNhbiByZXVzZSBsYXRlciBpbiBvdXIgY29uZmlndXJhdGlvbiB0aGFua3MgdG8gdGhlIHVzZSBvZiByZXVzYWJsZSBjb25maWd1cmF0aW9uIGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYnMmbHQ7L2EmZ3Q7IGluIENpcmNsZUNJIDIuMS4gSXQgYWxzbyBpbmNsdWRlcyBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBlbnN1cmUgSmF2YSBkb2VzbuKAmXQgY29uc3VtZSBhbGwgb2Ygb3VyIG1lbW9yeSB3aGlsZSBidWlsZGluZyB0aGUgYXBwLiBOZXh0LCB3ZeKAmWxsIGRlZmluZSB0aGUgam9iIHdlIHdhbnQgdG8gcnVuIHRoZSBjb21tYW5kcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2pvYnM6CiAgYmV0YV9kZXBsb3k6CiAgICBleGVjdXRvcjogYW5kcm9pZC1mbHV0dGVyCiAgICBzdGVwczoKICAgICAgLSBjaGVja291dAogICAgICAtIHJ1bjogZWNobyAmcXVvdDskUExBWV9TVE9SRV9VUExPQURfS0VZJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGtleS5qa3MKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWV9JTkZPJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGFuZHJvaWQva2V5LnByb3BlcnRpZXMKICAgICAgLSBydW46IGNkIGFuZHJvaWQgJmFtcDthbXA7JmFtcDthbXA7IGZhc3RsYW5lIGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgd2XigJlsbCBkZWZpbmUgb3VyIHdvcmtmbG93IHdoaWNoIHdpbGwgb25seSBydW4gdGhlIGpvYiB3aGVuIHRoZSBuZXcgY29kZSBpcyBwdXNoZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2JldGEmbHQ7L2NvZGUmZ3Q7IGJyYW5jaC4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3dvcmtmbG93czoKICBkZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGJldGFfZGVwbG95OgogICAgICAgICAgZmlsdGVyczoKICAgICAgICAgICAgYnJhbmNoZXM6CiAgICAgICAgICAgICAgb25seTogYmV0YQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7Jwpqb2JzOgogIGJldGFfZGVwbG95OgogICAgZXhlY3V0b3I6IGFuZHJvaWQtZmx1dHRlcgogICAgc3RlcHM6CiAgICAgIC0gY2hlY2tvdXQKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWSZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBrZXkuamtzCiAgICAgIC0gcnVuOiBlY2hvICZxdW90OyRQTEFZX1NUT1JFX1VQTE9BRF9LRVlfSU5GTyZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBhbmRyb2lkL2tleS5wcm9wZXJ0aWVzCiAgICAgIC0gcnVuOiBjZCBhbmRyb2lkICZhbXA7YW1wOyZhbXA7YW1wOyBmYXN0bGFuZSBiZXRhCgp3b3JrZmxvd3M6CiAgZGVwbG95OgogICAgam9iczoKICAgICAgLSBiZXRhX2RlcGxveToKICAgICAgICAgIGZpbHRlcnM6CiAgICAgICAgICAgIGJyYW5jaGVzOgogICAgICAgICAgICAgIG9ubHk6IGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvcHJvamVjdHMvJnF1b3Q7Jmd0O1NldCB1cCB5b3VyIHByb2plY3Qgb24gQ2lyY2xlQ0kmbHQ7L2EmZ3Q7LiBPbmNlIHlvdSBjbGljayAmbHQ7c3Ryb25nJmd0O1NldCBVcCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7LCB5b3Ugd2lsbCBiZSBicm91Z2h0IHRvIGEgdGV4dCBlZGl0b3IgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBjb3B5IGluIHRoZSBjb25maWcgZnJvbSBhYm92ZS4gQ2xpY2sgJmx0O3N0cm9uZyZndDtTdGFydCBCdWlsZGluZyZsdDsvc3Ryb25nJmd0Oy4gTm93IGV2ZXJ5IG5ldyBjb21taXQgdG8gdGhlIGJldGEgYnJhbmNoIHdpbGwgcmVzdWx0IGluIGEgZGVwbG95LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIGFuIEV4cHJlc3MgR3JhcGhRTCBzZXJ2ZXIgdG8gSGVyb2t1PC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1hbi1leHByZXNzLWdyYXBocWwtc2VydmVyLXRvLWhlcm9rdS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VHVlLCAyOCBBcHIgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtYW4tZXhwcmVzcy1ncmFwaHFsLXNlcnZlci10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dyYXBocWwub3JnLyZxdW90OyZndDtHcmFwaFFMJmx0Oy9hJmd0OyBjb250aW51ZXMgdG8gZ3JvdyBpbiBwb3B1bGFyaXR5IHdpdGggZWFjaCBwYXNzaW5nIGRheSwgc2luY2UgaXRzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9lbmdpbmVlcmluZy5mYi5jb20vY29yZS1kYXRhL2dyYXBocWwtYS1kYXRhLXF1ZXJ5LWxhbmd1YWdlLyZxdW90OyZndDtwdWJsaWMgcmVsZWFzZSBieSBGYWNlYm9vayZsdDsvYSZndDsgaW4gMjAxNS4gVGhlIHRlY2hub2xvZ3kgZW5hYmxlcyBmcm9udCBlbmQgY2xpZW50cyB0byBxdWVyeSBleGFjdGx5IHdoYXQgdGhleSBuZWVkIGZyb20gdGhlIGJhY2tlbmQsIGFuZCBpcyBnYWluaW5nIHdpZGUgcmVjb2duaXRpb24gYW5kIGFkb3B0aW9uIGJ5IHJlcHV0YWJsZSBjb21wYW5pZXMgc3VjaCBhcyBQaW50ZXJlc3QsIENvdXJzZXJhLCBBaXJibmIsIGFuZCBGYWNlYm9vayBpdHNlbGYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBwb3N0LCB3ZSB3aWxsIGxlYXJuIGhvdyB0byBkZXBsb3kgYSBzaW1wbGUgR3JhcGhRTCBzZXJ2ZXIgd3JpdHRlbiBpbiBOb2RlLmpzIHRvIEhlcm9rdSB2aWEgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IChDSSkgcGlwZWxpbmUgdXNpbmcgQ2lyY2xlQ0kuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1ByZXJlcXVpc2l0ZXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUbyBmb2xsb3cgYWxvbmcgd2l0aCB0aGlzIHBvc3QsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhbHJlYWR5IHNldCB1cDombHQ7L3AmZ3Q7CiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL25vZGVqcy5vcmcvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlIC12Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsIHRvIHByaW50IG91dCB5b3VyIHZlcnNpb24gb2YgTm9kZS5qcyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdC1zY20uY29tLyZxdW90OyZndDtHaXQmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnaXQmbHQ7L2NvZGUmZ3Q7IG9uIHlvdXIgdGVybWluYWw7IHRoaXMgc2hvdWxkIHByaW50IG91dCBhdmFpbGFibGUgZ2l0IGNvbW1hbmRzKSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5oZXJva3UuY29tLyZxdW90OyZndDtIZXJva3UmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tLyZxdW90OyZndDtHaXRIdWImbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vc2lnbnVwLyZxdW90OyZndDtDaXJjbGVDSSZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDsjI1NjYWZmb2xkaW5nIHRoZSBHcmFwaFFMIHNlcnZlciBwcm9qZWN0ClRvIGJlZ2luIHNldHRpbmcgdXAgYSBHcmFwaFFMIHNlcnZlciwgY3JlYXRlIGEgbmV3IGZvbGRlciBmb3IgdGhlIHByb2plY3QgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtta2RpciBncmFwaHFsLXRlc3Qtc2VydmVyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7Tm93IGdvIGludG8gdGhlIHJvb3Qgb2YgdGhlIGZvbGRlciBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBzY2FmZm9sZCBhIG5ldyBOb2RlLmpzIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5pdCAteQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDtwJmd0O1RoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsteSZsdDsvY29kZSZndDsgb3B0aW9uYWwgZmxhZyBhbGxvd3MgeW91IHRvIHNraXAgY29uZmlybWluZyB0aGUgZGVmYXVsdCBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwYWNrYWdlLmpzb24mbHQ7L2NvZGUmZ3Q7IGZpbGUgYW5kIGp1c3QgYWNjZXB0cyB0aGVtLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGFyZSBnb2luZyB0byBjcmVhdGUgYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2V4cHJlc3Nqcy5jb20vJnF1b3Q7Jmd0O0V4cHJlc3NKUyZsdDsvYSZndDsgTm9kZS5qcyBhcHBsaWNhdGlvbiBhbmQgYnVpbGQgdGhlIEdyYXBoUUwgc2VydmVyLiBUbyBkbyB0aGlzLCB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIGZvbGxvd2luZyBwYWNrYWdlczombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2V4cHJlc3MmbHQ7L2NvZGUmZ3Q7OiB0byBjcmVhdGUgb3VyIEV4cHJlc3NKUyBOb2RlLmpzIGFwcGxpY2F0aW9uJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z3JhcGhxbCZsdDsvY29kZSZndDs6IHRoZSBHcmFwaFFMIG5wbSBwYWNrYWdlIGZvciBOb2RlLmpzJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OzogRXhwcmVzc0pTIG1pZGRsZXdhcmUgZm9yIEdyYXBoUUwmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbCB0aGVzZSBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBpbnN0YWxsIC0tc2F2ZSBleHByZXNzIGdyYXBocWwgZXhwcmVzcy1ncmFwaHFsCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIHRoZSByZXF1aXJlZCBwYWNrYWdlcyB0byBzdGFydCBwdXR0aW5nIHRvZ2V0aGVyIG91ciBHcmFwaFFMIHNlcnZlci4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgdGhlIEdyYXBoUUwgc2NoZW1hJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7Q3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bWtkaXIgc3JjCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1dpdGhpbiB0aGlzIGZvbGRlciwgY3JlYXRlIGEgbmV3IGZpbGUgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEuanMmbHQ7L2NvZGUmZ3Q7IGFuZCBwYXN0ZSBpbiB0aGUgY29kZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Owpjb25zdCB7IGJ1aWxkU2NoZW1hIH0gPSByZXF1aXJlKCZxdW90O2dyYXBocWwmcXVvdDspOwoKY29uc3Qgc2NoZW1hID0gYnVpbGRTY2hlbWEoYAogICAgdHlwZSBRdWVyeSB7CiAgICAgICAgdXNlcnM6IFtVc2VyIV0hLAogICAgICAgIHVzZXIoaWQ6IEludCEpOiBVc2VyIQogICAgfQoKICAgIHR5cGUgTXV0YXRpb24gewogICAgICAgIGVkaXRVc2VyKGlkOiBJbnQhLCBuYW1lOiBTdHJpbmchLCBlbWFpbDogU3RyaW5nISk6IFVzZXIhCiAgICB9CgogICAgdHlwZSBVc2VyIHsKICAgICAgICBpZDogSUQhCiAgICAgICAgbmFtZTogU3RyaW5nIQogICAgICAgIGVtYWlsOiBTdHJpbmcKICAgICAgICBwb3N0czogW1Bvc3QhXQogICAgfQoKICAgIHR5cGUgUG9zdCB7CiAgICAgICAgaWQ6IElEIQogICAgICAgIHRpdGxlOiBTdHJpbmchCiAgICAgICAgcHVibGlzaGVkOiBCb29sZWFuIQogICAgICAgIGxpbms6IFN0cmluZwogICAgfQpgKTsKCm1vZHVsZS5leHBvcnRzID0gc2NoZW1hOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBhYm92ZSBjb2RlLCB3ZSBoYXZlIGNyZWF0ZWQgZm91ciB0eXBlcywgY29uc2lzdGluZyBvZiB0d28gYnVpbHQtaW4gdHlwZXMgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7KSBhbmQgdHdvIGN1c3RvbSB0eXBlcyAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXNlciZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1Bvc3QmbHQ7L2NvZGUmZ3Q7KS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWdpbm5pbmcgd2l0aCB0aGUgY3VzdG9tIHR5cGVzLCB3ZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmc6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VyJmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHVzZXIgaW4gdGhlIGFwcGxpY2F0aW9uIHdpdGggaXRzIHJlc3BlY3RpdmUgZmllbGRzIGFuZCBhIHJlbGF0aW9uYWwgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cG9zdHMmbHQ7L2NvZGUmZ3Q7IGZpZWxkLCB3aGljaCByZXR1cm5zIGFuIGFycmF5IG9mIHBvc3RzIGNyZWF0ZWQgYnkgdGhlIHVzZXImbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQb3N0Jmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHB1YmxpY2F0aW9uIGNyZWF0ZWQgYnkgYSB1c2VyIGluIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGl0cyByZXNwZWN0aXZlIGZpZWxkcyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OzogaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyB0eXBlLCB3ZSBkZWZpbmVkIHR3byBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgcXVlcmllZCBmcm9tIG91ciBHcmFwaFFMIHNlcnZlciBhcyBmb2xsb3dzOgogICAgJmx0O3VsJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlcnMmbHQ7L2NvZGUmZ3Q7OiBhbiBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VycyZsdDsvY29kZSZndDsmbHQ7L2xpJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlciZsdDsvY29kZSZndDs6IGEgc2luZ2xlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1VzZXImbHQ7L2NvZGUmZ3Q7IHdpdGggdGhlIHNwZWNpZmllZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgaW4gdGhlIGFyZ3VtZW50cyBsaXN0Jmx0Oy9saSZndDsKICAgICZsdDsvdWwmZ3Q7CiAgJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7OiBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7IHR5cGUsIHdlIGRlZmluZWQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VkaXRVc2VyJmx0Oy9jb2RlJmd0OyBtdXRhdGlvbiwgd2hpY2gsIGdpdmVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgb2YgdGhlIHVzZXIsIGNhbiBiZSBjYWxsZWQgdG8gZWRpdCBhIHVzZXIgYW5kIHRoZW4gdXBkYXRlIHRoZSBpbmZvcm1hdGlvbiAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bmFtZSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VtYWlsJmx0Oy9jb2RlJmd0OykmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhlIHNjaGVtYSBpcyBjcmVhdGVkIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZFNjaGVtYSZsdDsvY29kZSZndDsgb2YgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dyYXBocWwmbHQ7L2NvZGUmZ3Q7IHBhY2thZ2UgYW5kIGV4cG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O01vY2tpbmcgZGF0YSZsdDsvaDImZ3Q7CiZsdDtwJmd0O0luIG9yZGVyIHRvIGhhdmUgcmVzdWx0cyBmb3Igb3VyIHF1ZXJpZXMsIHdlIG5lZWQgZGF0YS4gRm9yIHRoaXMgZXhlcmNpc2UsIHdlIHdpbGwgYmUgdXNpbmcgTW9uZ29EQi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIb3dldmVyLCBzaW5jZSB0aGUgZ29hbCBvZiB0aGlzIHBvc3QgaXMgdG8gZGVtb25zdHJhdGUgZGVwbG95aW5nIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyLCB3ZSB3b27igJl0IGJvdGhlciB3aXRoIHNldHRpbmcgdXAgYSBNb25nb0RCIHNlcnZlci4gSW5zdGVhZCwgd2Ugd2lsbCAgdXNlIGEgbW9ja2VkIHZlcnNpb24gdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O21vbmdvZGItbWVtb3J5LXNlcnZlciZsdDsvY29kZSZndDsuIFRoaXMgcGFja2FnZSBhbGxvd3MgdXMgdG8gY3JlYXRlIGFuZCB1c2UgYW4gaW4tbWVtb3J5IE1vbmdvREIgZGF0YWJhc2Ugc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHNldCB0aGlzIHVwLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhdCB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5zdGFsbCAtLXNhdmUgbW9uZ29kYiBtb25nb2RiLW1lbW9yeS1zZXJ2ZXIKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwombHQ7cCZndDtUaGlzIGluc3RhbGxhdGlvbiBtaWdodCB0YWtlIGEgd2hpbGUsIGRlcGVuZGluZyBvbiB5b3VyIGRvd25sb2FkIHNwZWVkLiBNb25nb0RCIHdhcyBhdCBsZWFzdCA2NiBtZWdhYnl0ZXMgaW4gc2l6ZSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhLmpzJmx0Oy9jb2RlJmd0OyBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3JjJmx0Oy9jb2RlJmd0OyBmb2xkZXIuIFRoaXMgZmlsZSB3aWxsIGV4cG9ydCBhbiBhcnJheSBvZiBoYXJkLWNvZGVkIHVzZXIgZGF0YS4gUGFzdGUgdGhlIGZvbGxvd2luZyBjb2RlIGJlbG93IGludG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBVc2VycyA9IFsKICB7CiAgICBpZDogMSwKICAgIG5hbWU6ICZxdW90O0Zpa2F5byBBZGVwb2p1JnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2ZpazRjaHJpc3RAeWFob28uY29tJnF1b3Q7LAogICAgcG9zdHM6IFsKICAgICAgewogICAgICAgIGlkOiAxLAogICAgICAgIHRpdGxlOiAmcXVvdDtDcmVhdGluZyBhbiBFbW9qaSBHYW1lIHdpdGggVnVlLCBBdXRoMCwgYW5kIEdvb2dsZSBWaXNpb24gQVBJJnF1b3Q7LAogICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSwKICAgICAgICBsaW5rOgogICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hdXRoMC5jb20vYmxvZy9jcmVhdGluZy1hbi1lbW9qaS1nYW1lLXdpdGgtdnVlLWF1dGgwLWFuZC1nb29nbGUtdmlzaW9uLWFwaS8mcXVvdDssCiAgICAgICAgYXV0aG9yOiAxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBpZDogMiwKICAgICAgICB0aXRsZTogJnF1b3Q7RWxlY3Ryb24gVHV0b3JpYWw6IEJ1aWxkaW5nIE1vZGVybiBEZXNrdG9wIEFwcHMgd2l0aCBWdWUuanMmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2F1dGgwLmNvbS9ibG9nL2VsZWN0cm9uLXR1dG9yaWFsLWJ1aWxkaW5nLW1vZGVybi1kZXNrdG9wLWFwcHMtd2l0aC12dWUtanMvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDMsCiAgICAgICAgdGl0bGU6ICZxdW90O1N0YXRlIE1hbmFnZW1lbnQgd2l0aCBWdWV4OiBhIFByYWN0aWNhbCBUdXRvcmlhbCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazoKICAgICAgICAgICZxdW90O2h0dHBzOi8vYXV0aDAuY29tL2Jsb2cvc3RhdGUtbWFuYWdlbWVudC13aXRoLXZ1ZXgtYS1wcmFjdGljYWwtdHV0b3JpYWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMiwKICAgIG5hbWU6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2pvaG5AY29tcGFueS5jb20mcXVvdDssCiAgICBwb3N0czogWwogICAgICB7CiAgICAgICAgaWQ6IDQsCiAgICAgICAgdGl0bGU6ICZxdW90O0J1aWxkIGEgQ0kgcG93ZXJlZCBSRVNUZnVsIEFQSSB3aXRoIExhcmF2ZWwmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2J1aWxkLWEtY2ktcG93ZXJlZC1yZXN0ZnVsLWFwaS13aXRoLWxhcmF2ZWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDUsCiAgICAgICAgdGl0bGU6ICZxdW90O0F1dG9tYXRlIHlvdXIgTnV4dC5qcyBhcHAgZGVwbG95bWVudCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazogJnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hdXRvbWF0ZS15b3VyLW51eHQtanMtYXBwLWRlcGxveW1lbnQvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMywKICAgIG5hbWU6ICZxdW90O0phbmUgUGF1bCZxdW90OywKICAgIGVtYWlsOiAmcXVvdDtqYW5lQGNvbXBhbnkuY29tJnF1b3Q7LAogICAgcG9zdHM6IFtdCiAgfQpdOwoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgVXNlcnMKfTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBjb2RlIGFib3ZlLCB3ZSBoYXZlIGFuIGFycmF5IG9mIHVzZXIgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgcG9zdHMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIHNlZWQgb3VyIGluLW1lbW9yeSBkYXRhYmFzZSBvbmNlIGl0IGlzIGluc3RhbnRpYXRlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCB0YXNrIGlzIHRvIHNldCB1cCBvdXIgbW9jayBNb25nb0RCIGRhdGFiYXNlIHNlcnZlci4gSW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhYmFzZS5qcyZsdDsvY29kZSZndDsgYW5kIGluc2VydCB0aGUgZm9sbG93aW5nIGNvZGUgaW50byB0aGUgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O01vbmdvTWVtb3J5U2VydmVyJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtyZXF1aXJlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtzMiZxdW90OyZndDsmcXVvdDttb25nb2RiLW1lbW9yeS1zZXJ2ZXImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O21vbmdvZGImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtjb25zdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bm8mcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90Oy4vZGF0YSZxdW90OyZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0Oyk7Jmx0Oy9zcGFuJmd0OwoKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7bGV0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDtudWxsJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXN5bmMmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7ZnVuY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25mJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoKSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDt7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7bmV3Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtNb25nb01lbW9yeVNlcnZlciZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygpOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtubyZxdW90OyZndDttb25nb0RCVVJMJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXdhaXQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7LiZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtnZXRDb25uZWN0aW9uU3RyaW5nJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3QmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvREJVUkwmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDssJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7CiAgICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDt1c2VOZXdVcmxQYXJzZXImbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs6Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDt0cnVlJmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSk7Jmx0Oy9zcGFuJmd0OwoKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtjMSZxdW90OyZndDsvL1NlZWQgRGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7CiAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtpZiZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7ISZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OykmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsKICAgICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RhdGFiYXNlJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RiJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbGxlY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O3VzZXJzJnF1b3Q7Jmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7aW5zZXJ0TWFueSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7VXNlcnMmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7CgogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7cmV0dXJuJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OzsmbHQ7L3NwYW4mZ3Q7CiZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vZHVsZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZXhwb3J0cyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtzdGFydERhdGFiYXNlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGNvZGUgYWJvdmUsIHdlIGV4cG9ydCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L2NvZGUmZ3Q7IGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBzdGFydHMgYSBuZXcgKG1vY2tlZCkgTW9uZ29EQiBzZXJ2ZXIgaW5zdGFuY2UgYW5kIGdldHMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuIEl0IHRoZW4gY3JlYXRlcyBhIG5ldyBNb25nb0RCIGNsaWVudCBjb25uZWN0aW9uIHVzaW5nIHRoZSBjb25uZWN0aW9uIHN0cmluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwgd2Ugc2VlZCBpdCB3aXRoIG91ciB1c2VyIGRhdGEgZXhwb3J0ZWQgZnJvbSBvdXIgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZGF0YS5qcyZsdDsvY29kZSZndDsgZmlsZS4gQSBjaGVjayBpcyBtYWRlIHRvIHNlZSBpZiB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIGlzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O251bGwmbHQ7L2NvZGUmZ3Q7IGJlZm9yZSBzZWVkaW5nIGl0IHdpdGggZGF0YSwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBmcm9tIGJlaW5nIGVudGVyZWQgaW50byB0aGUgZGF0YWJhc2UgZWFjaCB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdXAuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGRhdGFiYXNlIHJlZmVyZW5jZS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgb3VyIHJlc29sdmVycyZsdDsvaDImZ3Q7CiZsdDtwJmd0O05leHQgdXAsIHdlIG5lZWQgdG8gZGVmaW5lIHJlc29sdmVycyBmb3Igb3VyIEdyYXBoUUwgcXVlcmllcyBpbiBvcmRlciB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGRhdGEgZm9yIGVhY2ggcXVlcnkgb3BlcmF0aW9uLiBXZSB3aWxsIGRlZmluZSByZXNvbHZlcnMgZm9yIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt1c2VycyZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3VzZXImbHQ7L2NvZGUmZ3Q7IHF1ZXJpZXMgYW5kIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtlZGl0VXNlciZsdDsvY29kZSZndDsgbXV0YXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Jlc29sdmVycy5qcyZsdDsvY29kZSZndDsgYW5kIHBhc3RlIGluIHRoZSBmb2xsb3dpbmcgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IHJlc29sdmVycyA9IHsKICB1c2VyczogYXN5bmMgKF8sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIKICAgICAgLmNvbGxlY3Rpb24oJnF1b3Q7dXNlcnMmcXVvdDspCiAgICAgIC5maW5kKCkKICAgICAgLnRvQXJyYXkoKTsKICB9LAogIHVzZXI6IGFzeW5jICh7IGlkIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIuY29sbGVjdGlvbigmcXVvdDt1c2VycyZxdW90OykuZmluZE9uZSh7IGlkIH0pOwogIH0sCiAgLy9NdXRhdGlvbiByZXNvbHZlcnMKICBlZGl0VXNlcjogYXN5bmMgKHsgaWQsIG5hbWUsIGVtYWlsIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CgogICAgcmV0dXJuIGRiCiAgICAgIC5jb2xsZWN0aW9uKCZxdW90O3VzZXJzJnF1b3Q7KQogICAgICAuZmluZE9uZUFuZFVwZGF0ZSgKICAgICAgICB7IGlkIH0sCiAgICAgICAgeyAkc2V0OiB7IG5hbWUsIGVtYWlsIH0gfSwKICAgICAgICB7IHJldHVybk9yaWdpbmFsOiBmYWxzZSB9CiAgICAgICkKICAgICAgLnRoZW4ocmVzcCA9JmFtcDtndDsgcmVzcC52YWx1ZSk7CiAgfSAKfTsKCm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZXJzOwoKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgc2VlbiBhYm92ZSwgd2Ugbm93IGhhdmUgcmVzb2x2ZXJzIGZvciB0aGUgdGhyZWUgR3JhcGhRTCByZXF1ZXN0cyBhdmFpbGFibGUgb24gb3VyIHNlcnZlci4gVGhlc2UgcmVzb2x2ZXJzIGZldGNoIGFuZCB1cGRhdGUgZGF0YSB1c2luZyB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIHdlIGNyZWF0ZWQgZWFybGllciBieSByZWZlcmVuY2luZyBpdCBmcm9tIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb250ZXh0Jmx0Oy9jb2RlJmd0OyBvYmplY3Qgb2YgdGhlIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgcmVmZXJlbmNlIHdpbGwgYmUgYWRkZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbnRleHQmbHQ7L2NvZGUmZ3Q7IG9iamVjdCBvZiBvdXIgR3JhcGhRTCBzZXJ2ZXIgc2V0dXAgaW4gdGhlIG5leHQgc2VjdGlvbiB3aGVuIHdlIHB1dCBldmVyeXRoaW5nIHRvZ2V0aGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTZXR0aW5nIHVwIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O0l0IGlzIHRpbWUgdG8gcHV0IGV2ZXJ5IGNvbXBvbmVudCB3ZSBidWlsdCB0b2dldGhlciB0byBzZXQgdXAgb3VyIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlZm9yZSB3ZSBiZWdpbiwgd2UgbmVlZCB0byBpbnN0YWxsIG9uZSBtb3JlIHBhY2thZ2UuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIGNvbWVzIHdpdGggdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0dyYXBoaVFMJmx0Oy9jb2RlJmd0OyBhcHBsaWNhdGlvbiwgd2hpY2ggYWxsb3dzIHlvdSB0byBxdWVyeSB5b3VyIEdyYXBoUUwgZW5kcG9pbnQsIGJ1dCBsZXTigJlzIGFkZCBhIHRvb2wgdGhhdCBpcyBtb3JlIHJvYnVzdC4gV2Ugd2lsbCBpbnN0YWxsIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIHRvIGdpdmUgdXMgYSBmYW5jaWVyIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgb3VyIEdyYXBoUUwgZW5kcG9pbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSBmb2xsb3dpbmcgY29kZSB0byBpbnN0YWxsIHRoZSBwYWNrYWdlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGluc3RhbGwgLS1zYXZlIGdyYXBocWwtcGxheWdyb3VuZC1taWRkbGV3YXJlLWV4cHJlc3MKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7V2Ugd2lsbCB1c2UgdGhpcyBtaWRkbGV3YXJlIHRvIHNldCB1cCB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kIGZvciBxdWVyeWluZyBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0xldOKAmXMgc2V0IHVwIG91ciBzZXJ2ZXIgYnkgY3JlYXRpbmcgYSBmaWxlIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2luZGV4LmpzJmx0Oy9jb2RlJmd0OyBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBhbmQgcGxhY2luZyB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBleHByZXNzID0gcmVxdWlyZSgmcXVvdDtleHByZXNzJnF1b3Q7KTsKY29uc3QgZ3JhcGhxbEhUVFAgPSByZXF1aXJlKCZxdW90O2V4cHJlc3MtZ3JhcGhxbCZxdW90Oyk7CmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoJnF1b3Q7Li9zcmMvc2NoZW1hJnF1b3Q7KTsKY29uc3QgcmVzb2x2ZXJzID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9yZXNvbHZlcnMmcXVvdDspOwpjb25zdCBzdGFydERhdGFiYXNlID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9kYXRhYmFzZSZxdW90Oyk7CmNvbnN0IGV4cHJlc3NQbGF5Z3JvdW5kID0gcmVxdWlyZSgmcXVvdDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJnF1b3Q7KS5kZWZhdWx0OwoKLy8gQ3JlYXRlIGEgY29udGV4dCBmb3IgaG9sZGluZyBjb250ZXh0dWFsIGRhdGEgCmNvbnN0IGNvbnRleHQgPSBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IGRiID0gYXdhaXQgc3RhcnREYXRhYmFzZSgpOwoKICByZXR1cm4geyBkYiB9Owp9OwoKY29uc3QgYXBwID0gZXhwcmVzcygpOwoKYXBwLnVzZSgKICAmcXVvdDsvZ3JhcGhxbCZxdW90OywKICBncmFwaHFsSFRUUCh7CiAgICBzY2hlbWEsCiAgICByb290VmFsdWU6IHJlc29sdmVycywKICAgIGNvbnRleHQKICB9KQopOwoKLy9HcmFwaHFsIFBsYXlncm91bmQgcm91dGUKYXBwLmdldCgmcXVvdDsvcGxheWdyb3VuZCZxdW90OywgZXhwcmVzc1BsYXlncm91bmQoeyBlbmRwb2ludDogJnF1b3Q7L2dyYXBocWwmcXVvdDsgfSkpOwoKY29uc3QgcG9ydCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgJnF1b3Q7NDAwMCZxdW90OzsKCmFwcC5saXN0ZW4ocG9ydCk7Cgpjb25zb2xlLmxvZyhg8J+agCBTZXJ2ZXIgcmVhZHkgYXQgaHR0cDovL2xvY2FsaG9zdDo0MDAwL2dyYXBocWxgKTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBmaWxlIGFib3ZlLCB3ZSBzdGFydCBieSBpbXBvcnRpbmcgYWxsIG5lY2Vzc2FyeSBtb2R1bGVzLiBUaGVuLCB3ZSBjcmVhdGUgb3VyIEdyYXBoUUwgY29udGV4dCBhbmQgcmV0dXJuIGFuIG9iamVjdCBmcm9tIGl0IGNvbnRhaW5pbmcgdGhlIHJlZmVyZW5jZSB0byBvdXIgTW9uZ29EQiBpbnN0YW5jZS4gTmV4dCwgd2UgY3JlYXRlIG91ciBFeHByZXNzSlMgYXBwbGljYXRpb24gYW5kIHNldCB1cCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OyBtaWRkbGV3YXJlIHdpdGggR3JhcGhRTCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEmbHQ7L2NvZGUmZ3Q7LCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtyZXNvbHZlcnMmbHQ7L2NvZGUmZ3Q7LCBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29udGV4dCZsdDsvY29kZSZndDsuIFdlIHRoZW4gc2V0IHVwIHRoZSBHcmFwaFFMIFBsYXlncm91bmQgYXQgdGhlIHJvdXRlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBsb2FkIG91ciBHcmFwaFFMIGVuZHBvaW50LiBGaW5hbGx5LCB3ZSBzdGFydCBvdXIgRXhwcmVzc0pTIHNlcnZlciB0byBsaXN0ZW4gYXQgcG9ydCA0MDAwIGFuZCBwcmludCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1F1ZXJ5aW5nIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O05vdyB0aGF0IHdlIGhhdmUgb3VyIHNlcnZlciBzZXQgdXAsIGxldOKAmXMgdGFrZSBpdCBmb3IgYSBzcGluLiBGaXJzdCwgbGV04oCZcyBjcmVhdGUgYSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzdGFydCZsdDsvY29kZSZndDsgc2NyaXB0IGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3BhY2thZ2UuanNvbiZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHNjcmlwdCB0byB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2NyaXB0cyZsdDsvY29kZSZndDsgc2VjdGlvbiBvZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Li4uCgrigJxzY3JpcHRz4oCdIDogewoJLi4uLAoJ4oCcc3RhcnTigJ0gOiDigJxub2RlIGluZGV4Lmpz4oCdCn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25wbSBzdGFydCZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCB0aGUgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNlcnZlciBpcyB1cCBhbmQgcnVubmluZywgb3BlbiB1cCB5b3VyIGJyb3dzZXIgYW5kIHZpc2l0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMC9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBvcGVuIHVwIHRoZSBwbGF5Z3JvdW5kLiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDEucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgcGxheWdyb3VuZCBhdXRvbWF0aWNhbGx5IHBvaW50cyB0byBvdXIgR3JhcGhRTCBlbmRwb2ludC4gRnJvbSBoZXJlIHdlIGNhbiB3cml0ZSBxdWVyaWVzIGFnYWluc3Qgb3VyIGVuZHBvaW50IGFuZCBnZXQgdGhlIHJlc3VsdHMuIFBhc3RlIHRoZSBxdWVyeSBiZWxvdyBpbnRvIHRoZSBxdWVyeSBzZWN0aW9uIG9mIHRoZSBwbGF5Z3JvdW5kIGFuZCBoaXQgUGxheSB0byBydW4gaXQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt7CiAgdXNlcnMgewogICAgbmFtZQogICAgZW1haWwKICAgIHBvc3RzIHsKICAgICAgdGl0bGUKICAgICAgcHVibGlzaGVkCiAgICB9CiAgfQp9CgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtSdW5uaW5nIHRoZSBhYm92ZSBxdWVyeSB3aWxsIHByb2R1Y2UgdGhlIHJlc3VsdCBzaG93biBvbiB0aGUgc2NyZWVuIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsMi5wbmcmcXVvdDsgd2lkdGg9JnF1b3Q7ODc1JnF1b3Q7IC8mZ3Q7CiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIHNlZW4gYWJvdmUsIG91ciBHcmFwaFFMIHNlcnZlciBpcyB3b3JraW5nIGZpbmUgYW5kIHJldHVybmluZyB0aGUgZXhwZWN0ZWQgZGF0YS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRvIEhlcm9rdSB3aXRoIENpcmNsZUNJJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7T3VyIGZpbmFsIHRhc2sgaXMgdG8gZGVwbG95IG91ciBHcmFwaFFMIHNlcnZlciB0aHJvdWdoIGEgQ0kgcGlwZWxpbmUgd2l0aCBDaXJjbGVDSSBvbiB0aGUgSGVyb2t1IGhvc3RpbmcgcGxhdGZvcm0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2UgYXJlIGdvaW5nIHRvIHRha2UgdGhlIGZvbGxvd2luZyBzdGVwcyB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7UHVzaCB0aGUgcHJvamVjdCB0byBhIEdpdEh1YiByZXBvc2l0b3J5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgbmV3IEhlcm9rdSBhcHAgYW5kIGdldCB0aGUgSGVyb2t1IEFQSSBrZXkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgYSBuZXcgcHJvamVjdCB0byBvdXIgQ2lyY2xlQ0kgYWNjb3VudCBhbmQgY29ubmVjdCBpdCB0byB0aGUgR2l0SHViIHJlcG8mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgb3VyIEhlcm9rdSBhcHAgbmFtZSBhbmQgQVBJIGtleSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gb3VyIG5ldyBwcm9qZWN0Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7V3JpdGUgb3VyIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgZGVwbG95bWVudCB0byBIZXJva3UmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIHRoZSBjb25maWd1cmF0aW9uIHRvIG91ciBHaXRIdWIgcmVwbyB0byBkZXBsb3kgdG8gSGVyb2t1Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0xldOKAmXMgYmVnaW4uIEZpcnN0LCBwdXNoIHRoZSBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG8uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY3JlYXRlIGEgSGVyb2t1IGFwcGxpY2F0aW9uIGFzIHNob3duIGJlbG93LiBUaGUgbmFtZSB5b3UgZW50ZXIgaXMgdGhlIG5hbWUgeW91IHdpbGwgc2F2ZSBhcyB5b3VyIEhlcm9rdSBhcHAgbmFtZSBvbiBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWwzLnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7WW91IGNhbiBnZXQgeW91ciBIZXJva3UgQVBJIGtleSBieSBnb2luZyB0byAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgYW5kIHNjcm9sbGluZyBkb3duIHRvIHRoZSAmbHQ7c3Ryb25nJmd0O0FQSSBLZXkmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIHRvIGRlcGxveWluZyBvdXIgYXBwbGljYXRpb24gdG8gSGVyb2t1IGlzIHRvIGNvbm5lY3QgdGhlIGFwcGxpY2F0aW9uIG9uIG91ciBHaXRIdWIgcmVwb3NpdG9yeSB0byBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIZWFkIHRvIHlvdXIgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9kYXNoYm9hcmQmcXVvdDsmZ3Q7Q2lyY2xlQ0kgZGFzaGJvYXJkJmx0Oy9hJmd0OyBhbmQgYWRkIHRoZSBwcm9qZWN0IGluIHRoZSAmbHQ7c3Ryb25nJmd0O0FkZCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7IHNlY3Rpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsNC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCAoaW4gdGhpcyBjYXNlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NpbXBsZS1ncmFwaHFsLW5vZGUtc2VydmVyJmx0Oy9jb2RlJmd0OyksIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0IFVwIFByb2plY3QmbHQ7L3N0cm9uZyZndDsuIFRoaXMgd2lsbCBicmluZyB5b3UgdG8gYSBwYWdlIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDUucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IGJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIHByb2plY3QuIFRoaXMgd2lsbCBpbW1lZGlhdGVseSBnaXZlIHVzIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCBhIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIHByb2plY3QuIFRoaXMgaXMgdW5kZXJzdGFuZGFibGUsIGFzIHdlIGFyZSB5ZXQgdG8gaW5jbHVkZSBvdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlLiBXZSB3aWxsIGJlIGRvaW5nIHRoYXQgbGF0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIG5leHQgc3RlcCBpcyB0byBhZGQgb3VyIEhlcm9rdSBkZXRhaWxzIGFzICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wL2Vudi12YXJzLyZxdW90OyZndDtlbnZpcm9ubWVudCB2YXJpYWJsZXMmbHQ7L2EmZ3Q7IHRvIHRoZSBuZXdseSBzZXQgdXAgcHJvamVjdC4KSW4gb3JkZXIgdG8gcHVzaCBvdXIgcHJvamVjdCB0byBIZXJva3UgZnJvbSBDaXJjbGVDSSwgd2UgbmVlZCB0byBjb25maWd1cmUgYW4gYXV0aGVudGljYXRlZCBoYW5kc2hha2UgYmV0d2VlbiBDaXJjbGVDSSBhbmQgSGVyb2t1LiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcgdHdvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgc2V0dGluZ3MgZm9yIHlvdXIgQ2lyY2xlQ0kgcHJvamVjdC4gVGhlIHR3byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtIRVJPS1VfQVBQX05BTUUmbHQ7L2NvZGUmZ3Q7OiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIChpbiB0aGlzIGNhc2UgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2ltcGxlLWdyYXBocWwtbm9kZS1zZXJ2ZXImbHQ7L2NvZGUmZ3Q7KSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OzogWW91ciBIZXJva3UgYWNjb3VudCBBUEkga2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBvbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50Jmx0Oy9zdHJvbmcmZ3Q7IHRhYiBvZiB5b3VyIEhlcm9rdSBhY2NvdW50IHVuZGVyICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VG8gYWRkIHRoZXNlIGRldGFpbHMsIGhlYWQgb3ZlciB0byB5b3VyIENpcmNsZUNJIGRhc2hib2FyZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBmb3IgeW91ciBwcm9qZWN0LiBPbiB0aGUgc2lkZWJhciBtZW51IG9uIHRoZSBzZXR0aW5ncyBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O0Vudmlyb25tZW50IFZhcmlhYmxlcyZsdDsvc3Ryb25nJmd0OyB1bmRlciAmbHQ7c3Ryb25nJmd0O0J1aWxkIFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDYucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIHBhZ2UsIGNyZWF0ZSB0d28gdmFyaWFibGVzIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OyBhbmQgYWRkIHRoZSByZXNwZWN0aXZlIHZhbHVlcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZXNlIGluIHBsYWNlLCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBjYW4gdXNlIHRoZW0gdG8gbWFrZSBhdXRoZW50aWNhdGVkIGRlcGxveW1lbnRzIHRvIHRoZSBIZXJva3UgcGxhdGZvcm0uCk5vdywgbGV04oCZcyB3cml0ZSBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyIHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtDcmVhdGUgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsuY2lyY2xlY2kmbHQ7L2NvZGUmZ3Q7IGF0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCBhbmQgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgaXQuIEFkZCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uJmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpvcmJzOgogIGhlcm9rdTogY2lyY2xlY2kvaGVyb2t1QDAuMC4xMAp3b3JrZmxvd3M6CiAgaGVyb2t1X2RlcGxveToKICAgIGpvYnM6CiAgICAgIC0gaGVyb2t1L2RlcGxveS12aWEtZ2l0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7VGhlIGNvZGUgYWJvdmUgdXNlcyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7SGVyb2t1IG9yYiZsdDsvYSZndDsgdG8gcGVyZm9ybSBhIHNlYW1sZXNzIGRlcGxveW1lbnQgdG8gSGVyb2t1LiBBbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYiZsdDsvYSZndDsgaXMgYSByZXVzYWJsZSBwYWNrYWdlIG9mIGEgWUFNTCBjb25maWd1cmF0aW9uIHRoYXQgY29uZGVuc2VzIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoaXMgb25lIG1ha2VzIGl0IHZlcnkgZWFzeSB0byBkZXBsb3kgdG8gSGVyb2t1IHdpdGhvdXQgd3JpdGluZyBhIHNvcGhpc3RpY2F0ZWQgY29uZmlnIHlvdXJzZWxmLiZsdDsvcCZndDsKCiZsdDtwJmd0O1NhdmUgdGhpcyBmaWxlIGFuZCBwdXNoIHlvdXIgY2hhbmdlcyB0byB0aGUgR2l0SHViIHJlcG9zaXRvcnkuIFRoZW4gd2F0Y2ggeW91ciBDaXJjbGVDSSBkYXNoYm9hcmQgdHJpZ2dlciBhIGRlcGxveW1lbnQgYWZ0ZXIgdGhlIHN1Y2Nlc3NmdWwgcHVzaC4gWW91IHdpbGwgc2VlIGEgc3VjY2Vzc2Z1bCBkZXBsb3ltZW50IG9uIHlvdXIgZGFzaGJvYXJkIHNpbWlsYXIgdG8gdGhlIHNjcmVlbiBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWw3LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXdlc29tZSEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXTigJlzIG5vdyB2aXNpdCBvdXIgUGxheWdyb3VuZCBvbiB0aGUgbGl2ZSBhcHBsaWNhdGlvbiB0byBjb25maXJtIHRoYXQgb3VyIGRlcGxveW1lbnQgaXMgZmluZS4gVmlzaXQgdGhlIGxpbmsgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9ZT1VSX0hFUk9LVV9BUFBfTkFNRS5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7LiBGb3Igb3VyIGV4ZXJjaXNlLCB0aGlzIHdpbGwgYmUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9zaW1wbGUtZ3JhcGhxbC1ub2RlLXNlcnZlci5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7IGFzIHNlZW4gYmVsb3cuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsOC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SW4gdGhpcyBhcnRpY2xlLCB3ZSBoYXZlIGJlZW4gYWJsZSB0byBzdWNjZXNzZnVsbHkgcHV0IHRvZ2V0aGVyIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyIGFuZCBhdXRvbWF0ZSBpdHMgZGVwbG95bWVudCB1c2luZyBDaXJjbGVDSS4gR3JhcGhRTCBpcyBoZXJlIHRvIHN0YXkgYW5kIGlzIGV4cGVjdGVkIHRvIGdhaW4gbW9yZSBhZG9wdGlvbiwgc2luY2UgaXRzIG1hbnkgYmVuZWZpdHMgbWFrZSBpdCB3b3J0aHkgb2YgaW5jcmVhc2VkIHVzZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIYXBweSBjb2RpbmchJmx0Oy9wJmd0OwoKJmx0O2hyIC8mZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Eb2NrZXIgYW5kIENJL0NEIHR1dG9yaWFsOiBhIGRlZXAgZGl2ZSBpbnRvIGNvbnRhaW5lcnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZG9ja2VyLWFuZC1jaWNkLXR1dG9yaWFsLWEtZGVlcC1kaXZlLWludG8tY29udGFpbmVycy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+RnJpLCAyNCBBcHIgMjAyMCAxMjowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9kb2NrZXItYW5kLWNpY2QtdHV0b3JpYWwtYS1kZWVwLWRpdmUtaW50by1jb250YWluZXJzLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkFuZ2VsIFJpdmVyYTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtUaGlzIGlzIGEgZm9sbG93LXVwIHRvIGEgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7IHRoYXQgSSB3cm90ZSBhZnRlciBDaXJjbGVDSSAyLjAgd2FzIHJlbGVhc2VkLiBUaGlzIHJlbGVhc2UgaW1wbGVtZW50ZWQgYnVpbGQgc3VwcG9ydCB1c2luZyBEb2NrZXIgZXhlY3V0b3JzLiBBZnRlciB0aGUgcmVsZWFzZSwgd2UgcmVhbGl6ZWQgdGhhdCBvbmUgb2YgdGhlIGJpZ2dlc3QgYmFycmllcnMgdGhhdCBDaXJjbGVDSSB1c2VycyBlbmNvdW50ZXJlZCB3YXMgYSBsYWNrIG9mIGV4cGVyaWVuY2Ugd2l0aCBEb2NrZXIuIFRoaXMgd2FzIGNvbmZpcm1lZCB0aHJvdWdoIG15IGNvbnZlcnNhdGlvbnMgd2l0aCBudW1lcm91cyBkZXZlbG9wZXJzLCBpbiB0aGUgY29tbXVuaXR5IGFuZCBhdCBldmVudHMsIGFib3V0IHRoZWlyIHVzZSBvZiBjb250YWluZXIgdGVjaG5vbG9naWVzIGluIHRoZWlyICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmVzLiBUaGVzZSBjb252ZXJzYXRpb25zIGhhdmUgaGlnaGxpZ2h0ZWQgdGhhdCBtYW55IGRldmVsb3BlcnMgZG9u4oCZdCBoYXZlIGEgZnVsbCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byB1c2UgY29udGFpbmVyIHRlY2hub2xvZ2llcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgd2lsbCBleHBhbmQgb24gYW5kIGRlbW9uc3RyYXRlIHNvbWUgb2YgdGhlIG1vcmUgdXNlZnVsIERvY2tlciBjb21tYW5kcyBkaXNjdXNzZWQgaW4gbXkgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtXaGF0IGlzIERvY2tlcj8mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZSBpcyB0aGUgc2ltcGxpZmllZCBkZWZpbml0aW9uIG9mIERvY2tlciB0aGF0IEkgdXNlZCBpbiBteSBwcmV2aW91cyBwb3N0OiZsdDsvcCZndDsKCiZsdDtibG9ja3F1b3RlJmd0OwogICZsdDtwJmd0O0RvY2tlciBpcyBhIHBsYXRmb3JtIGZvciBkZXZlbG9wZXJzIGFuZCBzeXNhZG1pbnMgdG8gZGV2ZWxvcCwgZGVwbG95LCBhbmQgcnVuIGFwcGxpY2F0aW9ucyB1c2luZyBjb250YWluZXJzLiZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7RG9ja2VyIGlzIGFsc28gcmVmZXJyZWQgdG8gYXMgYW4gYXBwbGljYXRpb24gcGFja2FnaW5nIHRvb2wgdGhhdCBlbmFibGVzIGFwcGxpY2F0aW9ucyB0byBiZSBjb25maWd1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZC8jaW1hZ2VzLWFuZC1jb250YWluZXJzJnF1b3Q7Jmd0O0RvY2tlciBpbWFnZSZsdDsvYSZndDsgdGhhdCBjYW4gYmUgdXNlZCB0byBzcGF3biAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyNpbWFnZXMtYW5kLWNvbnRhaW5lcnMmcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IHRoYXQgcnVuIGluc3RhbmNlcyBvZiB0aGUgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIG1hbnkgYmVuZWZpdHMgaW5jbHVkaW5nIHJ1bnRpbWUgZW52aXJvbm1lbnQgaXNvbGF0aW9uLCBjb25zaXN0ZW5jeSB2aWEgY29kZSwgYW5kIHBvcnRhYmlsaXR5LiBEb2NrZXIgY29udGFpbmVycyBjYW4gcnVuIG9uIGFueSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgc3VwcG9ydHMgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZW5naW5lJnF1b3Q7Jmd0O0RvY2tlciBFbmdpbmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtCYXNpYyBEb2NrZXIgdGVybWlub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZeKAmXMgYSBsaXN0IG9mIGJhc2ljIERvY2tlciBjb21tYW5kcyBhbmQgdGVybXMgd2l0aCBsaW5rcyB0byBtb3JlIGluZm9ybWF0aW9uLiBUaGVzZSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgRG9ja2VyIGFuZCBjb250cm9sIHRoZSBleGVjdXRvci4gVGhlIGNvbW1hbmRzIGNhbiBiZSBydW4gbG9jYWxseSBvbiBhbnkgY29tcHV0ZXIgdGhhdCBoYXMgdGhlIERvY2tlciBlbmdpbmUgaW5zdGFsbGVkLiZsdDsvcCZndDsKCiZsdDtoMyZndDtCdWlsZGluZyBEb2NrZXIgaW1hZ2VzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBhIHRleHQgZG9jdW1lbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNvbW1hbmRzIGEgdXNlciBjb3VsZCBjYWxsIG9uIHRoZSBjb21tYW5kIGxpbmUgdG8gYXNzZW1ibGUgYW4gaW1hZ2UuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBEb2NrZXJmaWxlIGlzIGEgYmx1ZXByaW50IGZvciBidWlsZGluZyBEb2NrZXIgaW1hZ2VzLiBEb2NrZXJmaWxlIHRlbXBsYXRlcyBob2xkIGVsZW1lbnRzIHN1Y2ggYXMgdGhlIGJhc2Ugb3BlcmF0aW5nIHN5c3RlbSBpbWFnZSB1c2VkIGFzIGEgZm91bmRhdGlvbiwgZXhlY3V0aW9uIGNvbW1hbmRzIHRoYXQgaW5zdGFsbC9jb25maWd1cmUgZGVwZW5kZW5jaWVzLCBhbmQgY29weSBjb21tYW5kcyB0aGF0IHB1c2ggbG9jYWwgc291cmNlIGNvZGUgb3IgYXJ0aWZhY3RzIGludG8gdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBEb2NrZXJmaWxlIGZvciBhIHNpbXBsZSBOb2RlLmpzIGFwcGxpY2F0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7RlJPTSBub2RlOjEwCgojIENyZWF0ZSBhcHAgZGlyZWN0b3J5CldPUktESVIgL3Vzci9zcmMvYXBwCgojIEluc3RhbGwgYXBwIGRlcGVuZGVuY2llcwojIEEgd2lsZGNhcmQgaXMgdXNlZCB0byBlbnN1cmUgYm90aCBwYWNrYWdlLmpzb24gQU5EIHBhY2thZ2UtbG9jay5qc29uIGFyZSBjb3BpZWQKIyB3aGVyZSBhdmFpbGFibGUgKG5wbUA1KykKQ09QWSBwYWNrYWdlKi5qc29uIC4vCgpSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIyBJZiB5b3UgYXJlIGJ1aWxkaW5nIHlvdXIgY29kZSBmb3IgcHJvZHVjdGlvbgojIFJVTiBucG0gaW5zdGFsbCAtLW9ubHk9cHJvZHVjdGlvbgoKIyBCdW5kbGUgYXBwIHNvdXJjZQpDT1BZIC4gLgoKRVhQT1NFIDUwMDAKQ01EIFsgJnF1b3Q7bnBtJnF1b3Q7LCAmcXVvdDtzdGFydCZxdW90OyBdCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2ltYWdlcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7IGxpc3RzIERvY2tlciBpbWFnZXMgZm91bmQgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gbGlzdCBhbGwgb2YgdGhlIERvY2tlciBpbWFnZXMgYW5kIHJlbGF0ZWQgZGF0YSB0aGF0IGN1cnJlbnRseSBleGlzdCBvbiB0aGUgbG9jYWwgbWFjaGluZS4gSXTigJlzIGNvbXBhcmFibGUgdG8gYSBsaW51eCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtscyZsdDsvY29kZSZndDsgb3Igd2luZG93cyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkaXImbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdXNlZCB0byBzaG93IHRoZSBjb250ZW50cyBvZiBkaXJlY3RvcmllcyBpbiBhIHRlcm1pbmFsLiBUaGlzIGNvbW1hbmQgaXMgdmVyeSB1c2VmdWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRvIG1hbmFnZSwgbWFpbnRhaW4sIGFuZCBidWlsZCBEb2NrZXIgaW1hZ2VzIGxvY2FsbHkuIEJlbG93IGlzIGFuIGV4YW1wbGUgcmVzdWx0IG9mIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgZXhlY3V0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UkVQT1NJVE9SWSAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHICAgICAgICAgICAgICAgICBJTUFHRSBJRCAgICAgICAgICAgIENSRUFURUQgICAgICAgICAgICAgU0laRQphcml2M3JhL25vZGVqcy1jaXJjbGVjaSAgICAgICAgICAgICBsYXRlc3QgICAgICAgICAgICAgIGY0MTllNGE2YjFiOCAgICAgICAgMTEgZGF5cyBhZ28gICAgICAgICA5NDNNQgpub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAgICAgICAgICAgICAgICAgIDAxYjgxNjA1MWQzNCAgICAgICAgMiB3ZWVrcyBhZ28gICAgICAgICA5MTFNQgpjaXJjbGVjaS9weXRob24gICAgICAgICAgICAgICAgICAgICAzLjcuNiAgICAgICAgICAgICAgIDBkMjk3NTg5NmM3MyAgICAgICAgNSB3ZWVrcyBhZ28gICAgICAgICAxLjQzR0IKYXJpdjNyYS9pbmZyYXN0cnVjdHVyZS1hcy1jb2RlMTAxICAgbGF0ZXN0ICAgICAgICAgICAgICBjYjIxYTM2YTI5NzMgICAgICAgIDggd2Vla3MgYWdvICAgICAgICAgOTI5TUIKcHl0aG9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43LjYgICAgICAgICAgICAgICA4NzkxNjU1MzVhNTQgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgOTE5TUIKY2lyY2xlY2kvcnVzdCAgICAgICAgICAgICAgICAgICAgICAgMS1idXN0ZXIgICAgICAgICAgICAyMTgzMjliOTI5Y2YgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgMS42OEdCCnJ1c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtYnVzdGVyICAgICAgICAgICAgZjVmZGUwOTJhMWNkICAgICAgICAyIG1vbnRocyBhZ28gICAgICAgIDEuMTlHQgpweXRob24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcuNCAgICAgICAgICAgICAgIDlmYTU2ZDBhZGRhZSAgICAgICAgNiBtb250aHMgYWdvICAgICAgICA5MThNQgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGJ1aWxkIC10ICZhbXA7bHQ7aW1hZ2UgbmFtZSZhbXA7Z3Q7IC4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBjcmVhdGVzIGEgRG9ja2VyIGltYWdlIHdpdGggYSB0YWcgdXNpbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LXQmbHQ7L2NvZGUmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhYm92ZSBjb21tYW5kLCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgdmFsaWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDssIGJ1aWxkcyBhIERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgZXhlY3V0aW9uIGNvbW1hbmRzIGRlZmluZWQgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7LiBPbmUgY3JpdGljYWwgZWxlbWVudCB0byBidWlsZGluZyBpbWFnZXMgYW5kIHN0YXJ0aW5nIGNvbnRhaW5lcnMgaXMgdW5kZXJzdGFuZGluZyB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9hJmd0Oy4gQnVpbGRpbmcgRG9ja2VyIGltYWdlcyB1c2luZyB0aGlzIGNvbW1hbmQgc3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIERvY2tlciBpbWFnZXMgdXRpbGl6ZXMgYSBuYW1pbmcgY29udmVudGlvbiBtYWRlIHVwIG9mIHNsYXNoLXNlcGFyYXRlZCBuYW1lIGNvbXBvbmVudHMgdGhhdCBtYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgc2VwYXJhdG9ycy4gQSBzZXBhcmF0b3IgaXMgZGVmaW5lZCBhcyBhIHBlcmlvZCwgb25lIG9yIHR3byB1bmRlcnNjb3Jlcywgb3Igb25lIG9yIG1vcmUgZGFzaGVzLiBBIG5hbWUgY29tcG9uZW50IG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggYSBzZXBhcmF0b3IuIEEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7ZG9ja2VyIHRhZyZsdDsvYSZndDsgbmFtZSBtdXN0IGJlIHZhbGlkIEFTQ0lJIGFuZCBtYXkgY29udGFpbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHVuZGVyc2NvcmVzLCBwZXJpb2RzLCBhbmQgZGFzaGVzLiBBIHRhZyBuYW1lIG1heSBub3Qgc3RhcnQgd2l0aCBhIHBlcmlvZCBvciBhIGRhc2ggYW5kIG1heSBjb250YWluIGEgbWF4aW11bSBvZiAxMjggY2hhcmFjdGVycy4gWW91IGNhbiBncm91cCB5b3VyIGltYWdlcyB0b2dldGhlciB1c2luZyBuYW1lcyBhbmQgdGFncy4gSW4gdGhpcyBwb3N0LCB3ZSB3aWxsIHVzZSB0aGlzIG5hbWluZyBjb252ZW50aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB0aGF0IHdl4oCZdmUgZGlzY3Vzc2VkIG5hbWluZyBjb252ZW50aW9ucyBsZXTigJlzIGJ1aWxkIGEgRG9ja2VyIGltYWdlIGJhc2VkIG9uIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXJmaWxlJmx0Oy9jb2RlJmd0OyBpbiBvdXIgZXhhbXBsZSBhYm92ZS4gSW4gdGhpcyBwb3N0IHdlIGNhbiB1dGlsaXplIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9wdW5rZGF0YS9ub2RlanMtY2lyY2xlY2kmcXVvdDsmZ3Q7cHVua2RhdGEvbm9kZWpzLWNpcmNsZWNpJmx0Oy9hJmd0OyBnaXQgcmVwby4gQ2xvbmUgaXQgbG9jYWxseSBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7JCBjZCZsdDsvY29kZSZndDsgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlbiBydW4gdGhpcyBjb21tYW5kIHRvIGJ1aWxkIGEgbmV3IERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgcHJvamVjdCBzb3VyY2UgY29kZSBhbmQgdGhlIGV4YW1wbGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgYnVpbGQgLXQgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0FmdGVyIHJ1bm5pbmcgdGhpcyBidWlsZCBjb21tYW5kLCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtTZW5kaW5nIGJ1aWxkIGNvbnRleHQgdG8gRG9ja2VyIGRhZW1vbiAgOTguMDdNQgpTdGVwIDEvNyA6IEZST00gbm9kZToxMAogLS0tJmFtcDtndDsgMDFiODE2MDUxZDM0ClN0ZXAgMi83IDogV09SS0RJUiAvdXNyL3NyYy9hcHAKIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyAxMmIyZWRjMmI5N2MKU3RlcCAzLzcgOiBDT1BZIHBhY2thZ2UqLmpzb24gLi8KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyA1M2I1YjhlNGU2NTQKU3RlcCA0LzcgOiBSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyBlZWZkZjU2MGJjNGQKU3RlcCA1LzcgOiBDT1BZIC4gLgogLS0tJmFtcDtndDsgYWE3ZDU0ZTk1NWM2ClN0ZXAgNi83IDogRVhQT1NFIDUwMDAKIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gY2M0MjdkYmFmZGNjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgY2M0MjdkYmFmZGNjCiAtLS0mYW1wO2d0OyA0Y2U5MDg0ZTM5ZWIKU3RlcCA3LzcgOiBDTUQgWyAmcXVvdDtucG0mcXVvdDssICZxdW90O3N0YXJ0JnF1b3Q7IF0KIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gZjZlODU0NTk5ZGRjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgZjZlODU0NTk5ZGRjCiAtLS0mYW1wO2d0OyA3OWE4ZDk0Y2JmNDIKU3VjY2Vzc2Z1bGx5IGJ1aWx0IDc5YThkOTRjYmY0MgpTdWNjZXNzZnVsbHkgdGFnZ2VkIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2VzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgeW91ciBuZXdseSBjcmVhdGVkIERvY2tlciBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDskIGRvY2tlciBpbWFnZXMKClJFUE9TSVRPUlkgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRyAgICAgICAgICAgICAgICAgSU1BR0UgSUQgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNJWkUKdHV0b3JpYWwvY2lyY2xlY2ktbm9kZSAgICAgICAgICAgICAgMTAgICAgICAgICAgICAgICAgICA3OWE4ZDk0Y2JmNDIgICAgICAgIDQgbWludXRlcyBhZ28gICAgICAgMS4wM0dCCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyB5b3UgaGF2ZSBhbiBhd2Vzb21lIERvY2tlciBpbWFnZSBidWlsdCBhbmQgcmVhZHkgdG8gdXNlLiBJbiB0aGUgbmV4dCBzZWN0aW9uIEnigJlsbCBjcmVhdGUgbmV3IGluc3RhbmNlcyBvZiB0aGlzIERvY2tlciBpbWFnZSBpbiB0aGUgZm9ybSBvZiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvY29udGFpbmVyLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXIgY29udGFpbmVycyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBjb250YWluZXJzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IGFyZSBkZXNpZ25lZCB0byBydW4gYXBwbGljYXRpb25zIGluIGlzb2xhdGlvbiBhbmQgYXQgc2NhbGUuICBUaGV5IGFsbG93IGZvciBzdHJlYW1saW5pbmcgdGhlIG1hbmFnZW1lbnQgYW5kIGltcGxlbWVudGF0aW9uIG9mIGFwcGxpY2F0aW9ucy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7QmVmb3JlIHdlIHN0YXJ0IGNyZWF0aW5nIGFuZCBydW5uaW5nIERvY2tlciBjb250YWluZXJzLCBJ4oCZbGwgYWRkIHNvbWUgY29udGV4dC4gRG9ja2VyIGNvbnRhaW5lcnMgYXJlIG9iamVjdHMgdGhhdCBhcmUgYmFzZWQgb24gYW5kIHNwYXduZWQgZnJvbSBEb2NrZXIgaW1hZ2VzLiBEb2NrZXIgaW1hZ2VzIGFyZSB0ZW1wbGF0ZXMuIEkgbGlrZW4gdGhlbSB0byBjb29raWUgY3V0dGVyIG1vbGRzLiBDb29raWUgY3V0dGVyIG1vbGRzIGVuYWJsZSB5b3UgdG8gcXVpY2tseSBhbmQgY29uc2lzdGVudGx5IHByb2R1Y2UgaW5kaXZpZHVhbCBjb29raWVzIGZyb20gZG91Z2guIEkgbGlrZW4gdGhlc2UgY29va2llcyB0byBEb2NrZXIgY29udGFpbmVycyB3aGljaCBhcmUgZGlzdGluZ3Vpc2hlZCBpbiBzaGFwZSBieSB0aGUgdHlwZSBvZiBjb29raWUgbW9sZCwgb3IgRG9ja2VyIGNvbnRhaW5lciwgdXNlZCBpbiB0aGUgY3V0dGluZy9idWlsZGluZyBwcm9jZXNzLiBTbyB1c2luZyBteSBjb29raWUgY3V0dGVyIGFuYWxvZ3ksIERvY2tlciBpbWFnZXMgYXJlIHRoZSBjb29raWUgY3V0dGVyIGFuZCB0aGUgaW5kaXZpZHVhbCBjb29raWVzIGN1dCB1c2luZyB0aGF0IGN1dHRlciBhcmUgZXF1aXZhbGVudCB0byBEb2NrZXIgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCBJ4oCZdmUgcHJvYmFibHkgbWFkZSB5b3UgYSBiaXQgaHVuZ2FyeSBmb3IgY29va2llcywgbGV04oCZcyBzdGFydCBydW5uaW5nIHNvbWUgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBydW5zIGEgY29tbWFuZCBpbiBhIG5ldyBjb250YWluZXIuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY29tbWFuZCBvZiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgc3RhcnRpbmcgRG9ja2VyIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCBhIG5ldyBjb250YWluZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcnVuIC1kIC1wIDUwMDA6NTAwMCAtLW5hbWUgbm9kZXRlc3QwMSB0dXRvcmlhbC9jaXJjbGVjaS1ub2RlOjEwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NvbmdyYXRzISBZb3Ugc2hvdWxkIG5vdyBoYXZlIHRoZSBOb2RlLmpzIGltYWdlIHJ1bm5pbmcgaW4gdGhlIG5ldyBjb250YWluZXIgdGhhdCB5b3UganVzdCBjcmVhdGVkIGF2YWlsYWJsZSBvbiBwb3J0IDUwMDAuIE9wZW4gYSB3ZWIgYnJvd3NlciBhbmQgZ28gdG8gdGhpcyBhZGRyZXNzOiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtodHRwOi8vbG9jYWxob3N0OjUwMDAmbHQ7L2NvZGUmZ3Q7LiBJdCB3aWxsIHRha2UgeW91IHRoZSBzdGF0aWMg4oCcV2VsY29tZSB0byBDSS9DRCAxMDEgdXNpbmcgQ2lyY2xlQ0kh4oCdIHdlYiBwYWdlIHNlcnZlZCBieSB0aGlzIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsc28gdmVyaWZ5IHlvdXIgY29udGFpbmVyIGlzIHJ1bm5pbmcgYnkgZXhlY3V0aW5nIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbC4gV2XigJlsbCBkaXNjdXNzIHRoaXMgaW4gdGhlIG5leHQgc2VjdGlvbi4gQmVmb3JlIHRoYXQsIGxldOKAmXMgc3RhcnQgYW4gb3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGFwcGxpY2F0aW9uIGJ5IHJ1bm5pbmcgYW5vdGhlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnRlZCBvdXIgZmlyc3QgY29udGFpbmVyIHdpdGggdGhlIG5hbWUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDsgYW5kIHNpbmNlIGNvbnRhaW5lciBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgd2XigJlyZSBnb2luZyB0byBuYW1lIG91ciBuZXcgY29udGFpbmVyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7LiBBbm90aGVyIGNoYW5nZSB0aGF0IG11c3QgYmUgbWFkZSBpbiBvdXIgbmV3IGNvbnRhaW5lciBpcyB0aGUgcG9ydCBudW1iZXIuIFdl4oCZbGwgY2hhbmdlIGl0IGZyb20gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMCZsdDsvY29kZSZndDsgdG8gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMSZsdDsvY29kZSZndDsgc2luY2UgYXBwbGljYXRpb25zIGNhbm5vdCBvY2N1cHkgdGhlIHNhbWUgcG9ydCBudW1iZXIgb24gdGhlIHNhbWUgbmV0d29yayBpbnRlcmZhY2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RXhlY3V0ZSB0aGUgZm9sbG93aW5nICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtZCAtcCA1MDAxOjUwMDAgLS1uYW1lIG5vZGV0ZXN0MDIgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISBZb3Ugbm93IGhhdmUgdHdvIGNvbnRhaW5lcnMgcnVubmluZyBvbiB5b3VyIGxvY2FsIG1hY2hpbmUuIFlvdSBjYW4gZ28gdG8gdGhpcyBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMSZsdDsvY29kZSZndDsgaW4gYSBicm93c2VyIGFuZCBzZWUgdGhlIGFwcCBydW5uaW5nIGluIHlvdXIgc2Vjb25kIERvY2tlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaXMgdmVyeSByb2J1c3QgYW5kIGhhcyBtYW55IHByb3BlcnR5IGFuZCBjb25maWd1cmF0aW9uIGZsYWdzIHdoaWNoIEkgd29u4oCZdCBiZSBhYmxlIHRvIGFkZHJlc3Mgb3IgZGVtb25zdHJhdGUgaW4gdGhpcyBwb3N0LiBJIGhpZ2hseSByZWNvbW1lbmQgdGhhdCB5b3UgcmVhZCBhbmQgZmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgbWFueSB3YXlzIHRoYXQgeW91IGNhbiBleGVjdXRlIGFuZCBydW4gRG9ja2VyIGNvbnRhaW5lcnMuIFlvdSBjYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7cmVhZCB1cCBvbiBEb2NrZXIgY29udGFpbmVycyBjb21tYW5kcyBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9wcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbGlzdHMgYWxsIG9mIHRoZSBydW5uaW5nIERvY2tlciBjb250YWluZXJzLiBUaGlzIGNvbW1hbmQgc2VydmVzIGEgc2ltaWxhciBwdXJwb3NlIGFzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2UmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgYW5kIGxpc3RzIGFjdGl2ZWx5IHJ1bm5pbmcgY29udGFpbmVycy4gVXNlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDstYSZsdDsvY29kZSZndDsgZmxhZyB0byBzaG93IGFsbCBvZiB0aGUgcnVubmluZyBhbmQgbm90IHJ1bm5pbmcgY29udGFpbmVycy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoaXMgY29tbWFuZCBpbiBhIHRlcm1pbmFsIGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIGJvdGggb2YgdGhlIHByZXZpb3VzbHkgY3JlYXRlZCBjb250YWluZXJzIHJ1bm5pbmcgaW4gdGhlIHJlc3VsdHM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlIHJlc3VsdHMgd2lsbCBiZSBzaW1pbGFyIHRvIHRoaXMgc2hvd2luZyBib3RoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDEmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcnMgc3RpbGwgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0NPTlRBSU5FUiBJRCAgICAgICAgSU1BR0UgICAgICAgICAgICAgICAgICAgICAgIENPTU1BTkQgICAgICAgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNUQVRVUyAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICAgICAgIE5BTUVTCmRmZDMwMTgxZTE1YyAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAxMiBtaW51dGVzIGFnbyAgICAgIFVwIDEyIG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAxLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAyOCBtaW51dGVzIGFnbyAgICAgIFVwIDI4IG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAwLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7CiAgICAmbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvc3RhcnQvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdGFydHMgYW4gZXhpc3RpbmcgY29udGFpbmVyLiZsdDsvcCZndDsKICAmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsKICAgICZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9zdG9wLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdG9wcyBhbiBleGlzdGluZyBjb250YWluZXIuJmx0Oy9wJmd0OwogICZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgaXMgb25seSB1c2VkIHRvIHN0YXJ0ICZsdDtzdHJvbmcmZ3Q7ZXhpc3RpbmcmbHQ7L3N0cm9uZyZndDsgY29udGFpbmVycyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcnVuJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBVbmxlc3MgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy0tcm09dHJ1ZSZsdDsvY29kZSZndDsgZmxhZyBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgbmV3bHkgY3JlYXRlZCBjb250YWluZXJzIHdpbGwgcGVyc2lzdCBhbmQgY2FuIGJlIHJldXNlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RhcnQmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCZsdDsvY29kZSZndDsgY29tbWFuZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdG9wIHNvbWUgcnVubmluZyBjb250YWluZXJzIGJ5IGV4ZWN1dGluZyB0aGVzZSBjb21tYW5kczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBzdG9wIG5vZGV0ZXN0MDEgbm9kZXRlc3QwMgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBydW5uaW5nIGNvbnRhaW5lcnMgc2hvdWxkIG5vdyBiZSBpbmFjdGl2ZSBhbmQgc3RvcHBlZC4gU2luY2UgdGhleeKAmXJlIHN0b3BwZWQsIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgaW5kaWNhdGluZyBzdG9wcGVkIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtDT05UQUlORVIgSUQgICAgICAgIElNQUdFICAgICAgICAgICAgICAgICAgICAgICBDT01NQU5EICAgICAgICAgICAgICAgICAgQ1JFQVRFRCAgICAgICAgICAgICBTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICBOQU1FUwpkZmQzMDE4MWUxNWMgICAgICAgIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAgICAmcXVvdDtkb2NrZXItZW50cnlwb2ludC5z4oCmJnF1b3Q7ICAgMzEgbWludXRlcyBhZ28gICAgICBFeGl0ZWQgKDApIDM4IHNlY29uZHMgYWdvICAgICAgICAgICAgICAgICAgICAgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICBBYm91dCBhbiBob3VyIGFnbyAgIEV4aXRlZCAoMCkgMzggc2Vjb25kcyBhZ28gICAgICAgICAgICAgICAgICAgICAgIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhvdWdoIHRoZXNlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQgdGhleSB3aWxsIHBlcnNpc3QgYW5kIGNhbiBiZSByZXN0YXJ0ZWQgdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCZsdDsvY29kZSZndDsgY29tbWFuZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXRzIHN0YXJ0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAxJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgc28gd2UgY2FuIGxlYXJuIGhvdyB0byB1c2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBmZWF0dXJlcyBpbiB0aGUgbmV4dCBzZWN0aW9uLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHN0YXJ0IG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Tm93IHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBOb3RpY2UgdGhlIHN0YXR1cyBmb3IgdGhpcyBjb250YWluZXIgcmVhZHMgc2ltaWxhciB0byAgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXAgYWJvdXQgYSAzMCBzZWNvbmRzJmx0Oy9jb2RlJmd0OyBvciBzb21ldGhpbmcgdG8gdGhhdCBlZmZlY3QuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9ncy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ3MmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBmZXRjaGVzIGEgY29udGFpbmVy4oCZcyBsb2dzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIHNlZSBsb2dzIHRoYXQgYXJlIHByZXNlbnQgYXQgdGhlIHRpbWUgb2YgZXhlY3V0aW9uLiBTaW5jZSB5b3VyIGFwcHMgYXJlIHJ1bm5pbmcgaW5zaWRlIHRoZXNlIGNvbnRhaW5lcnMsIHRoZSBsb2dzIGNvbW1hbmQgaXMgdXNlZnVsIGZvciByZWFkaW5nIG91dCBjcml0aWNhbCBhcHAgb3V0cHV0cy4gVGhpcyBoZWxwcyBpbiB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgYXBwIGlzIHBlcmZvcm1pbmcgYW5kIGFueSBkZWJ1Z2dpbmcvdHJvdWJsZXNob290aW5nIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBydW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDEmbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBsb2dzIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIGNvbW1hbmQgeW91IHNob3VsZCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHdoYXTigJlzIHNob3duIGJlbG93LiBJdCBzaG93cyB0aGF0IHRoZSBhcHAgaW5zaWRlIGNvbnRhaW5lciBpcyB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O05vZGUgc2VydmVyIGlzIHJ1bm5pbmcuLgoKJmFtcDtndDsgbm9kZWpzLWNpcmNsZWNpQDAuMC4xIHN0YXJ0IC91c3Ivc3JjL2FwcAomYW1wO2d0OyBub2RlIGFwcC5qcwoKTm9kZSBzZXJ2ZXIgaXMgcnVubmluZy4uCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0gJmFtcDtsdDtjb250YWluZXIgbmFtZSZhbXA7Z3Q7Jmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgZGVsZXRlcyBhIGNvbnRhaW5lciBvciBtdWx0aXBsZSBjb250YWluZXJzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtQZXJzaXN0aW5nIERvY2tlciBjb250YWluZXJzIGNvbnN1bWVzIGRpc2sgc3BhY2UgYW5kIHJlc291cmNlcyBvbiBpdHMgaG9zdC4gT3BlcmF0aW9uYWxseSwgaXQgZG9lc27igJl0IG1ha2UgbXVjaCBzZW5zZSB0byBwZXJzaXN0IGV2ZXJ5IGNvbnRhaW5lciBvbiBkaXNrIHNpbmNlIGluIG1vc3QgY2FzZXMgY29udGFpbmVycyBhcmUgZGlzcG9zYWJsZSBhbmQgc2hvdWxkIGJlIHVzZWQgdGhhdCB3YXkuIFNvIHdoZW4gYSBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpdCBzaG91bGQgYmUgcGVybWFuZW50bHkgZGlzY2FyZGVkIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgcGVybWFuZW50bHkgZGVsZXRlcyBjb250YWluZXJzIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAyJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBzbyBsZXTigJlzIHNhdmUgc29tZSBkaXNrIHNwYWNlIGFuZCBkZWxldGUgaXQuIE5vdGUgdGhpcyBjb21tYW5kIHdpbGwgb25seSBkZWxldGUgaW5hY3RpdmUvc3RvcHBlZCBjb250YWluZXJzIGFuZCB3aWxsIGVycm9yIG91dCBpZiBpdOKAmXMgcnVuIGFnYWluc3QgYW4gYWN0aXZlL3J1bm5pbmcgY29udGFpbmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBybSBub2RldGVzdDAyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm8gbG9uZ2VyIHNlZSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMiZsdDsvY29kZSZndDsgY29udGFpbmVyIG9uIHRoZSBob3N0IGFmdGVyIHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGhhcyBvdGhlciBwcm9wZXJ0aWVzIGFuZCBmbGFncyBhbmQgeW91IHNob3VsZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcm0vJnF1b3Q7Jmd0O2ZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggdGhlbSBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ybWkvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBybWkmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBkZWxldGVzIERvY2tlciBpbWFnZXMgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGFwcGxpZXMgdG8gZGVsZXRpbmcgRG9ja2VyIGltYWdlcyBmcm9tIGEgaG9zdC4gSWYgdGhlcmUgYXJlIGV4aXN0aW5nIGNvbnRhaW5lcnMgb24gdGhlIGhvc3QgdGhhdCBhcmUgYmFzZWQgb24gYSBzcGVjaWZpYyBpbWFnZSwgdGhlbiB0aGlzIGNvbW1hbmQgd2lsbCBub3QgYWxsb3cgdGhlIGRlbGV0aW9uIG9mIHRoZSBjb250YWluZXIgYmFzZWQgb24gdGhlIGltYWdlLiBZb3UgbXVzdCBmaXJzdCBlbnN1cmUgdGhlIGNvbnRhaW5lciBpcyBzdG9wcGVkIGFuZCBkZWxldGVkIGJlZm9yZSB5b3UgY2FuIGRlbGV0ZSBEb2NrZXIgaW1hZ2VzIHVzaW5nIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtaSZsdDsvY29kZSZndDsgY29tbWFuZC4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtaS8mcXVvdDsmZ3Q7UmVhZCB1cCBvbiB0aGUgZG9ja2VyIHJtaSBjb21tYW5kIGhlcmUmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBpbWFnZSBkZXBsb3ltZW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtNYW55IERvY2tlciBpbWFnZXMgYXJlIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgaG9zdGVkIG9uIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2RvY2tlci1odWIvJnF1b3Q7Jmd0O0RvY2tlciBIdWIgUmVnaXN0cnkmbHQ7L2EmZ3Q7IHdoaWNoIGlzIGFuIG9ubGluZSBjZW50cmFsIGhvc3Rpbmcgc29sdXRpb24gZm9yIERvY2tlciBpbWFnZXMuIERvY2tlciBIdWIgZW5hYmxlcyBhbnlvbmUgd2l0aCBhbiBpbnRlcm5ldCBjb25uZWN0aW9uIHRvIHB1bGwgZG93biBwdWJsaWNseSBhdmFpbGFibGUgaW1hZ2VzIGZyb20gdGhlIHJlZ2lzdHJ5IHRvIHRoZWlyIGxvY2FsIG1hY2hpbmVzIG9yIHNlcnZlcnMuIEl0IGFsc28gZW5hYmxlcyByZWdpc3RlcmVkIHVzZXJzIHRvIHVwbG9hZCBhbmQgcHVibGljbHkgc2hhcmUgYW55IG9mIHRoZWlyIGNvbnRhaW5lcnMgc28gdGhhdCBhbnlvbmUgY2FuIHB1bGwgZG93biB0aGF0IGltYWdlIGZyb20gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2h1Yi5kb2NrZXIuY29tLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIEnigJlsbCBicmllZmx5IGRpc2N1c3Mgc29tZSBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItaHViLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0OyByZWxhdGVkIGNvbW1hbmRzLiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3B1bGwvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBwdWxsJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgcHVsbHMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IGZyb20gYSByZWdpc3RyeS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGVuYWJsZXMgeW91IHRvIGRvd25sb2FkIGEgdmFsaWQgRG9ja2VyIGltYWdlIGZyb20gRG9ja2VyIEh1Yi4gUHVibGljbHkgYXZhaWxhYmxlIERvY2tlciBpbWFnZXMgZG8gbm90IHJlcXVpcmUgYXV0aGVudGljYXRpb24uIElmIHRoZSByZWdpc3RyeSBpcyBwcml2YXRlIHlvdSB3aWxsIG5lZWQgdG8gYXV0aGVudGljYXRlIHVzaW5nIGFuIGFzc2lnbmVkIGNyZWRlbnRpYWwgdXN1YWxseSBpbiB0aGUgZm9ybSBvZiBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ2luJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbG9ncyBpbnRvIGEgRG9ja2VyIHJlZ2lzdHJ5LiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyB5b3UgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgYSBEb2NrZXIgUmVnaXN0cnkuIElmIHlvdeKAmXJlIHVzaW5nIHRoaXMgbG9naW4gY29tbWFuZCB5b3Ugc2hvdWxkICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8jcHJvdmlkZS1hLXBhc3N3b3JkLXVzaW5nLXN0ZGluJnF1b3Q7Jmd0O3BvcHVsYXRlIGEgLnR4dCBmaWxlJmx0Oy9hJmd0OyB3aXRoIHlvdXIgRG9ja2VyIEh1YiBhY2NvdW50IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBwcm90ZWN0IHRoZXNlIGNyZWRlbnRpYWxzIGZyb20gZXhwb3N1cmUuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcHVzaC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHB1c2gmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBwdXNoZXMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IHRvIGEgcmVnaXN0cnkuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBlbmFibGVzIHVzZXJzIHRvIHVwbG9hZCBpbWFnZXMgdG8gYSBEb2NrZXIgcmVnaXN0cnkgYW5kIHJlcXVpcmVzIHZhbGlkIGNyZWRlbnRpYWxzLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O1NvIHRoZXJlIHlvdSBoYXZlIGl0LiBJbiB0aGlzIHBvc3QgSSB3ZW50IGEgYml0IGRlZXBlciBpbiBleHBsYWluaW5nIERvY2tlciB0ZXJtaW5vbG9neSBhbmQgY29tbWFuZHMgYXMgd2VsbCBhcyBjb250YWluZXJzIGFuZCB0aGVpciB1c2FnZS4gVGhlIGNvbW1hbmRzIEkgZGlzY3Vzc2VkIGFuZCBkZW1vbnN0cmF0ZWQsIGFyZSB0aGUgbW9zdCB3aWRlbHkgdXNlZCBjb21tYW5kcyBpbiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGxlYXJuaW5nIGEgYml0IG1vcmUgYWJvdXQgdGhlbSBhbmQgdGhlaXIgcHJvcGVydGllcyBhbmQgZmxhZ3Mgd2lsbCBkZWZpbml0ZWx5IGhlbHAgeW91IGxldmVsIHVwIHlvdXIgRG9ja2VyIGFuZCBjb250YWluZXIgc2tpbGxzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZhbWlsaWFyaXppbmcgeW91cnNlbGYgd2l0aCB0aGVzZSBiYXNpYyBjb21tYW5kcyB3aWxsIHJlbW92ZSBvbmUgb2YgdGhlIGxhcmdlciBiYXJyaWVycyB0aGF0IG5ldyB1c2VycyBvZiBDaXJjbGVDSSBlbmNvdW50ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SWYgeW91IHdhbnQgdG8gbGVhcm4gbW9yZSBhYm91dCBDaXJjbGVDSSBjaGVjayBvdXQgdGhlICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wLyZxdW90OyZndDtkb2N1bWVudGF0aW9uIHNpdGUmbHQ7L2EmZ3Q7LCBhbmQgaWYgeW91IHJlYWxseSBnZXQgc3R1Y2sgeW91IGNhbiByZWFjaCBvdXQgdG8gdGhlIENpcmNsZUNJIGNvbW11bml0eSB2aWEgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mbHQ7L2EmZ3Q7IGNvbW11bml0eS9mb3J1bSBzaXRlLiZsdDsvcCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogIDwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:57:04 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:57:04 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"2fdcf8c5292f4101","ot-tracer-traceid":"0117bc572da06abf","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889424565:2a5b5d4a2c7e
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:12:04 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da3672e4e0dfe-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce64747600000dfe74a82200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:57:04 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:57:04 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"6de67d9c66b1780c","ot-tracer-traceid":"414c2ba3082e5802","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889424754:f11042e847cd
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:12:04 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da3684f8ee8ff-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce64752f0000e8ff34184200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDExOjQ4OjUyIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:57:04 GMT
+- request:
+ method: get
+ uri: https://circleci.com/blog/feed.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/xml
+ Date:
+ - Tue, 19 May 2020 11:57:07 GMT
+ Etag:
+ - '"d148e5f0c8f6530989f97099948abd37"'
+ Last-Modified:
+ - Tue, 19 May 2020 02:33:22 GMT
+ Server:
+ - nginx
+ Strict-Transport-Security:
+ - max-age=15724800
+ X-Amz-Id-2:
+ - OSMPVHlMmLMH8i3sG9M3KiQ33zgibWoEiq46vXGcYvGJuJvBKO1smudcUuy8ccCyJFVez5Xf6vU=
+ X-Amz-Request-Id:
+ - E8EE8E4F7662D4D2
+ X-Frame-Options:
+ - SAMEORIGIN
+ Content-Length:
+ - '183502'
+ Connection:
+ - keep-alive
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiCiAgeG1sOmJhc2U9Imh0dHBzOi8vY2lyY2xlY2kuY29tLyIKICB4bWxuczphdG9tPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8Y2hhbm5lbD4KICAgIDx0aXRsZT5UaGUgQ2lyY2xlQ0kgQmxvZyBGZWVkIC0gQ2lyY2xlQ0k8L3RpdGxlPgogICAgPGRlc2NyaXB0aW9uPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgbmV3cywgdXBkYXRlcywgYW5kIGhhY2tzIGZyb20gQ2lyY2xlQ0kuPC9kZXNjcmlwdGlvbj4KICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvPC9saW5rPgogICAgPGF0b206bGluayBocmVmPSJodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2ZlZWQueG1sIiByZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Db250aW51b3VzIGludGVncmF0aW9uIGZvciBJb25pYyBhcHBsaWNhdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvY29udGlub3VzLWludGVncmF0aW9uLWZvci1pb25pYy1hcHBzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDE4IE1heSAyMDIwIDE3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbm91cy1pbnRlZ3JhdGlvbi1mb3ItaW9uaWMtYXBwcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5GaWtheW8gQWRlcG9qdTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtJbiB0aGUgd29ybGQgb2YgaHlicmlkIG1vYmlsZSBkZXZlbG9wbWVudCwgbm8gb3RoZXIgZnJhbWV3b3JrIGhhcyBkb25lIG1vcmUgZm9yIHRoZSBpbmR1c3RyeSB0aGFuIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tLyZxdW90OyZndDtJb25pYyBmcmFtZXdvcmsmbHQ7L2EmZ3Q7LiBDcmVhdGVkIGluIDIwMTMgYW5kIG9yaWdpbmFsbHkgYnVpbHQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXJqcy5vcmcvJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7IGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY29yZG92YS5hcGFjaGUub3JnLyZxdW90OyZndDtBcGFjaGUgQ29yZG92YSZsdDsvYSZndDssIElvbmljIGhhcyBncm93biB0byBhIGZ1bGwtZmVhdHVyZWQgYXBwbGljYXRpb24gZnJhbWV3b3JrIGZvciBkZXZlbG9waW5nIG1vYmlsZSwgZGVza3RvcCwgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93ZWIuZGV2L3Byb2dyZXNzaXZlLXdlYi1hcHBzLyZxdW90OyZndDtwcm9ncmVzc2l2ZSB3ZWIgYXBwbGljYXRpb25zJmx0Oy9hJmd0Oy4gSW9uaWMgaGFzIGFsc28gYmVjb21lIGZyYW1ld29yay1hZ25vc3RpYywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byB1c2UgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXIuaW8vJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oywgb3IgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3Z1ZWpzLm9yZy8mcXVvdDsmZ3Q7VnVlLmpzJmx0Oy9hJmd0OyBmb3IgZGV2ZWxvcG1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2Ugd2lsbCBiZSBidWlsZGluZyBhIGhhbmR5IHRhc2sgbWFuYWdlci4gV2Ugd2lsbCB3cml0ZSB0ZXN0cyBmb3IgZmVhdHVyZXMgaW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBzZXQgdXAgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbm91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgKENJKSBwaXBlbGluZSB0byBhdXRvbWF0ZSBvdXIgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFdlIHdpbGwgYmUgZGV2ZWxvcGluZyBvdXIgYXBwbGljYXRpb24gdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9yZWFjdCZxdW90OyZndDtJb25pYyBSZWFjdCZsdDsvYSZndDssIHRoZSBJb25pYyB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgZGV2ZWxvcGluZyB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBmb2xsb3cgdGhpcyBwb3N0LCBhIGZldyB0aGluZ3MgYXJlIHJlcXVpcmVkOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QmFzaWMga25vd2xlZGdlIG9mIFJlYWN0LmpzIChOb3QgYSBkZWFsLWJyZWFrZXIsIHlvdSBvbmx5IGhhdmUgdG8gY29weS1wYXN0ZSB0aGUgY29kZSBzbmlwcGV0cykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbm9kZWpzLm9yZyZxdW90OyZndDtOb2RlLmpzJmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtUaGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2NsaSZxdW90OyZndDtJb25pYyBDTEkmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L29sJmd0OwoKJmx0O2gyJmd0O1NjYWZmb2xkaW5nIHRoZSBJb25pYyBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBiZWdpbiwgbGV04oCZcyBzY2FmZm9sZCBhIG5ldyBJb25pYyBhcHBsaWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2lvbmljIHN0YXJ0IHRhc2stbWFuYWdlciB0YWJzIC0tdHlwZT1yZWFjdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgSW9uaWMgQ0xJIHRvIHNjYWZmb2xkIGEgbmV3IHByb2plY3QgZm9yIHVzIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0YWJzJmx0Oy9jb2RlJmd0OyB0ZW1wbGF0ZSBpbnNpZGUgYSBmb2xkZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGFzay1tYW5hZ2VyJmx0Oy9jb2RlJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1lvdSBtaWdodCBiZSBwcm9tcHRlZCBhdCBzb21lIHBvaW50IHdpdGggJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Q3JlYXRlIGZyZWUgSW9uaWMgYWNjb3VudD8mbHQ7L2NvZGUmZ3Q7LiBIaXQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7biZsdDsvY29kZSZndDsgdG8gZGVjbGluZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYW4gSW9uaWMgYWNjb3VudCBzZWUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9hcHBmbG93JnF1b3Q7Jmd0O2hlcmUmbHQ7L2EmZ3Q7LiZsdDsvaSZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmNlIHRoaXMgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb24gKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIHRhc2stbWFuYWdlciZsdDsvY29kZSZndDspIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHNlcnZlIHRoZSBhcHBsaWNhdGlvbiBpbiB5b3VyIHdlYiBicm93c2VyOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7aW9uaWMgc2VydmUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGlzIGNvbW1hbmQgaGFzIGNvbXBsZXRlZCwgeW91IHdpbGwgc2VlIGFuIGFwcGxpY2F0aW9uIHZpZXcgaW4geW91ciBicm93c2VyIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O0kgYW0gdXNpbmcgYSBtb2JpbGUgcHJldmlldyBhY3RpdmF0ZWQgaW4gQ2hyb21l4oCZcyBkZXZlbG9wbWVudCB0b29scy4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXNjYWZmb2xkLXByZXZpZXcucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtEb27igJl0IGJlIHN1cnByaXNlZCBpZiB5b3VycyBoYXMgYSBibGFjayBiYWNrZ3JvdW5kIGFuZCB3aGl0ZSBmb250LiBJdCB1c2VzIHRoZSBkZWZhdWx0IG1vZGUgb2YgeW91ciBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMiZndDtCdWlsZGluZyB0aGUgVGFzayBNYW5hZ2VyIGFwcGxpY2F0aW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05leHQsIGxldOKAmXMgYmVnaW4gYnVpbGRpbmcgdGhlIG1haW4gYXBwbGljYXRpb24uIEdvIGludG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyIG9mIHlvdXIgYXBwbGljYXRpb24gYW5kIG9wZW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGhvbWUgcGFnZSBmb3IgdGhlIG5ld2x5IHNjYWZmb2xkZWQgYXBwbGljYXRpb24uIFJlbW92ZSBldmVyeXRoaW5nIGluIHRoaXMgZmlsZSBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRzeAoKaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsKICBJb25Db250ZW50LAogIElvbkhlYWRlciwKICBJb25QYWdlLAogIElvblRpdGxlLAogIElvblRvb2xiYXIsCiAgSW9uTGlzdCwKICBJb25JdGVtU2xpZGluZywKICBJb25JdGVtLAogIElvbkxhYmVsLAogIElvbkl0ZW1PcHRpb25zLAogIElvbkl0ZW1PcHRpb24sCiAgSW9uRmFiLAogIElvbkZhYkJ1dHRvbiwKICBJb25JY29uLAogIElvbk1vZGFsLAogIElvbkJ1dHRvbiwKICBJb25DYXJkLAogIElvbkNhcmRDb250ZW50LAogIElvbklucHV0LAp9IGZyb20gJnF1b3Q7QGlvbmljL3JlYWN0JnF1b3Q7OwoKaW1wb3J0IHsgYWRkIH0gZnJvbSAmcXVvdDtpb25pY29ucy9pY29ucyZxdW90OzsKCmltcG9ydCAmcXVvdDsuL1RhYjEuY3NzJnF1b3Q7OwoKaW50ZXJmYWNlIFRhc2sgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwp9Cgpjb25zdCBUYWIxOiBSZWFjdC5GQyA9ICgpID0mYW1wO2d0OyB7CiAgY29uc3QgW3Rhc2tzLCBzZXRUYXNrc10gPSB1c2VTdGF0ZSZhbXA7bHQ7VGFza1tdJmFtcDtndDsoW10pOwogIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7CiAgY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKCiAgZnVuY3Rpb24gYWRkTmV3VGFzaygpIHsKICAgIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogICAgY29uc3QgbmV3VGFzayA9IHsKICAgICAgaWQ6IG5ld19pZCwKICAgICAgbmFtZTogdGFza05hbWUsCiAgICB9OwoKICAgIHRhc2tzLnB1c2gobmV3VGFzayk7CgogICAgc2V0VGFza3ModGFza3MpOwoKICAgIHNldFRhc2tOYW1lKCZxdW90OyZxdW90Oyk7CgogICAgc2V0U2hvd01vZGFsKGZhbHNlKTsKICB9CgogIHJldHVybiAoCiAgICAmYW1wO2x0O0lvblBhZ2UmYW1wO2d0OwogICAgICAmYW1wO2x0O0lvbkhlYWRlciZhbXA7Z3Q7CiAgICAgICAgJmFtcDtsdDtJb25Ub29sYmFyJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uVGl0bGUmYW1wO2d0O1Rhc2sgTWFuYWdlciZhbXA7bHQ7L0lvblRpdGxlJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25Ub29sYmFyJmFtcDtndDsKICAgICAgJmFtcDtsdDsvSW9uSGVhZGVyJmFtcDtndDsKICAgICAgJmFtcDtsdDtJb25Db250ZW50JmFtcDtndDsKICAgICAgICAmYW1wO2x0O0lvbkxpc3QmYW1wO2d0OwogICAgICAgICAge3Rhc2tzLmxlbmd0aCAmYW1wO2d0OyAwID8gKAogICAgICAgICAgICB0YXNrcy5tYXAoKGl0ZW06IFRhc2spID0mYW1wO2d0OyB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbVNsaWRpbmcga2V5PXtpdGVtLmlkfSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbSBjbGFzc05hbWU9JnF1b3Q7dG9kby1pdGVtJnF1b3Q7JmFtcDtndDsKICAgICAgICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDt7aXRlbS5uYW1lfSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbnMgc2lkZT0mcXVvdDtlbmQmcXVvdDsmYW1wO2d0OwogICAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsge319JmFtcDtndDtEb25lJmFtcDtsdDsvSW9uSXRlbU9wdGlvbiZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1PcHRpb25zJmFtcDtndDsKICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1TbGlkaW5nJmFtcDtndDsKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KQogICAgICAgICAgKSA6ICgKICAgICAgICAgICAgJmFtcDtsdDtJb25JdGVtJmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICApfQogICAgICAgICZhbXA7bHQ7L0lvbkxpc3QmYW1wO2d0OwoKICAgICAgICB7LyogTW9kYWwqL30KICAgICAgICAmYW1wO2x0O0lvbk1vZGFsIGlzT3Blbj17c2hvd01vZGFsfSZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkNhcmQmYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICZhbXA7bHQ7SW9uTGFiZWwmYW1wO2d0O0FkZCBOZXcgVGFzayZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAmYW1wO2x0O0lvbkNhcmRDb250ZW50JmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICAgJmFtcDtsdDtJb25JbnB1dAogICAgICAgICAgICAgICAgICB2YWx1ZT17dGFza05hbWV9CiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSZxdW90O0VudGVyIFRhc2sgTmFtZS4uLiZxdW90OwogICAgICAgICAgICAgICAgICBvbklvbkNoYW5nZT17KGUpID0mYW1wO2d0OyBzZXRUYXNrTmFtZShlLmRldGFpbC52YWx1ZSEpfQogICAgICAgICAgICAgICAgJmFtcDtndDsmYW1wO2x0Oy9Jb25JbnB1dCZhbXA7Z3Q7CiAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uCiAgICAgICAgICAgICAgICBleHBhbmQ9JnF1b3Q7ZnVsbCZxdW90OwogICAgICAgICAgICAgICAgY29sb3I9JnF1b3Q7cHJpbWFyeSZxdW90OwogICAgICAgICAgICAgICAgb25DbGljaz17KCkgPSZhbXA7Z3Q7IGFkZE5ld1Rhc2soKX0KICAgICAgICAgICAgICAmYW1wO2d0OwogICAgICAgICAgICAgICAgQWRkIFRhc2sKICAgICAgICAgICAgICAmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkQ29udGVudCZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uIG9uQ2xpY2s9eygpID0mYW1wO2d0OyBzZXRTaG93TW9kYWwoZmFsc2UpfSZhbXA7Z3Q7Q2xvc2UgTW9kYWwmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICZhbXA7bHQ7L0lvbk1vZGFsJmFtcDtndDsKCiAgICAgICAgey8qIEFkZCBUYXNrIEJ1dHRvbiAqL30KICAgICAgICAmYW1wO2x0O0lvbkZhYiB2ZXJ0aWNhbD0mcXVvdDtib3R0b20mcXVvdDsgaG9yaXpvbnRhbD0mcXVvdDtlbmQmcXVvdDsgc2xvdD0mcXVvdDtmaXhlZCZxdW90OyZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkZhYkJ1dHRvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsgc2V0U2hvd01vZGFsKHRydWUpfSZhbXA7Z3Q7CiAgICAgICAgICAgICZhbXA7bHQ7SW9uSWNvbiBpY29uPXthZGR9IC8mYW1wO2d0OwogICAgICAgICAgJmFtcDtsdDsvSW9uRmFiQnV0dG9uJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25GYWImYW1wO2d0OwogICAgICAmYW1wO2x0Oy9Jb25Db250ZW50JmFtcDtndDsKICAgICZhbXA7bHQ7L0lvblBhZ2UmYW1wO2d0OwogICk7Cn07CgpleHBvcnQgZGVmYXVsdCBUYWIxOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyBsZXTigJlzIGdvIHRocm91Z2ggdGhlIGNvZGUgc25pcHBldCBhYm92ZS4gVGhpcyBpcyB0aGUgZW50aXJlIGNvZGUgZm9yIG91ciBUYXNrIE1hbmFnZXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnQgYnkgaW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzIGluY2x1ZGluZyB0aGUgY3NzIGZpbGUgZm9yIG91ciBwYWdlLiBXZSB0aGVuIGRlZmluZSBhbiBpbnRlcmZhY2UgdG8gZGVmaW5lIG91ciB0YXNrIG9iamVjdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtpbnRlcmZhY2UgVGFzayB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7Cn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7TmV4dCwgd2UgY3JlYXRlIG91ciBjb21wb25lbnQgYXMgYSBSZWFjdCBmdW5jdGlvbiBjb21wb25lbnQgdHlwZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtSZWFjdC5GQyZsdDsvY29kZSZndDsgYW5kIGJlZ2luIHRoZSBmdW5jdGlvbiBieSBkZWZpbmluZyB0aGUgZGF0YSB3ZSB3YW50IHRvIGhvbGQgaW4gb3VyIHN0YXRlIHVzaW5nIGhvb2tzOiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tzJmx0Oy9jb2RlJmd0OyBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYXNrJmx0Oy9jb2RlJmd0O3MsIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2hvd01vZGFsJmx0Oy9jb2RlJmd0OyBib29sZWFuIHRvIGNvbnRyb2wgdGhlIG9wZW5pbmcgYW5kIGNsb3Npbmcgb2Ygb3VyIHRhc2sgY3JlYXRpb24gZm9ybSwgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tOYW1lJmx0Oy9jb2RlJmd0OyB3aGljaCBob2xkcyB0aGUgdmFsdWUgb2YgYSBuZXcgdGFzayBpbiB0aGUgcHJvY2VzcyBvZiBjcmVhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IFt0YXNrcywgc2V0VGFza3NdID0gdXNlU3RhdGUmYW1wO2x0O1Rhc2tbXSZhbXA7Z3Q7KFtdKTsKY29uc3QgW3Nob3dNb2RhbCwgc2V0U2hvd01vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTsKY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Rm9sbG93aW5nIHRoZXNlIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdlIGNhbGwgdG8gYWRkIGEgbmV3IHRhc2suIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyB0YXNrIGJ5IHNldHRpbmcgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lkJmx0Oy9jb2RlJmd0OyBiYXNlZCBvbiB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBhbmQgY2xlYXJzIHRoZSBmb3JtIGFmdGVyIGFkZGluZyB0aGUgbmV3IHRhc2sgdG8gb3VyIGV4aXN0aW5nIGxpc3Qgb2YgdGFza3MuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtmdW5jdGlvbiBhZGROZXdUYXNrKCkgewogIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogIGNvbnN0IG5ld1Rhc2sgPSB7CiAgICBpZDogbmV3X2lkLAogICAgbmFtZTogdGFza05hbWUsCiAgfTsKCiAgdGFza3MucHVzaChuZXdUYXNrKTsKCiAgc2V0VGFza3ModGFza3MpOwoKICBzZXRUYXNrTmFtZSgmcXVvdDsmcXVvdDspOwoKICBzZXRTaG93TW9kYWwoZmFsc2UpOwp9CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05leHQsIHdlIHJlbmRlciBvdXIgdGVtcGxhdGUgdG8gZGlzcGxheSBvdXIgbGlzdCBvZiB0YXNrcyBhbmQgYWxzbyBkaXNwbGF5IGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgcmVhZHMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmbHQ7L2NvZGUmZ3Q7IHdoZW4gdGhlIHRhc2sgbGlzdCBpcyBlbXB0eS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtGb2xsb3dpbmcgdGhlIGxpc3QgaXMgYSBtb2RhbCBjb21wb25lbnQgdGhhdCBjb250YWlucyBvdXIgdGFzayBmb3JtIGZvciBhZGRpbmcgbmV3IHRhc2tzLiBCZWxvdyB0aGUgY29tcG9uZW50IGlzIGEgZmxvYXRpbmcgYWN0aW9uIGJ1dHRvbiB0aGF0IHRoZSB1c2VyIGNsaWNrcyB0byBvcGVuIHRoZSBtb2RhbC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWZvcmUgd2UgcHJldmlldyB0aGlzLCBvcGVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEuY3NzJmx0Oy9jb2RlJmd0OyBsb2NhdGVkIGluIHRoZSBzYW1lIGZvbGRlciBhcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRzeCZsdDsvY29kZSZndDsgYW5kIHJlcGxhY2UgaXRzIGNvbnRlbnRzIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Lyogc3JjL3BhZ2VzL1RhYjEuY3NzICovCgoudG9kby1pdGVtIHsKICAtLW1pbi1oZWlnaHQ6IDcwcHg7CiAgZm9udC1zaXplOiAxLjJlbTsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHNpbXBseSBidW1wcyB1cCB0aGUgaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgdGhlIGxpc3QgaXRlbXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm93LCBnbyB0byB5b3VyIGJyb3dzZXIgYW5kIGxvYWQgdGhlIGhvbWVwYWdlIG9mIHlvdXIgYXBwbGljYXRpb24gKFRhYjEpLiBZb3Ugd2lsbCBzZWUgdGhlIHBhZ2UgZGlzcGxheWVkIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1ob21lLW5vLXRhc2tzLnBuZyZxdW90OyAvJmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QmVjYXVzZSB3ZSBoYXZlbuKAmXQgYWRkZWQgYW55IHRhc2tzIHlldCwgd2UgaGF2ZSB0aGUgbWVzc2FnZSAmbHQ7c3Ryb25nJmd0O1lvdSBoYXZlIHlldCB0byBhZGQgdGFza3MgZm9yIHRvZGF5Jmx0Oy9zdHJvbmcmZ3Q7IGRpc3BsYXllZC4gV2UgYWxzbyBoYXZlIG91ciAmbHQ7c3Ryb25nJmd0O0FkZCBUYXNrJmx0Oy9zdHJvbmcmZ3Q7IGJ1dHRvbiBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lciB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwbHVzJmx0Oy9jb2RlJmd0OyBzeW1ib2wuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0FkZGluZyB0YXNrcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBhZGQgYSBuZXcgdGFzaywgY2xpY2sgdGhlIGJvdHRvbS1yaWdodCBibHVlIGJ1dHRvbiB0byBwdWxsIHVwIHRoZSB0YXNrIGNyZWF0aW9uIGZvcm0gYW5kIHR5cGUgaW4gYSB0YXNrIGFzIHNob3duIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtdGFzay5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7QUREIFRBU0smbHQ7L3N0cm9uZyZndDsgdG8gYWRkIHRoZSB0YXNrIGFuZCBnbyBhaGVhZCB0byBhZGQgMiB0byAzIG1vcmUgdGFza3MuIFdlIHNob3VsZCBub3cgaGF2ZSBlbm91Z2ggdGFza3Mgb24gdGhlIHBhZ2UgZm9yIG91ciBhcHBsaWNhdGlvbiB0byBsb29rIGZ1bmN0aW9uYWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXRhc2stbGlzdC5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB3ZSBoYXZlIGEgZnVuY3Rpb25hbCBhcHBsaWNhdGlvbi4gTm90IHByb2R1Y3Rpb24tcmVhZHksIGJ1dCBnb29kIGVub3VnaCB0byBzdGFydCB0ZXN0aW5nLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBZGRpbmcgdGVzdHMgdG8gdGhlIFRhc2sgTWFuYWdlciBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtPbmUgYWR2YW50YWdlIHRoYXQgd2UgaGF2ZSB3aXRoIHRlc3Rpbmcgb3VyIElvbmljIGFwcGxpY2F0aW9ucyBpcyB0aGF0IHdoaWxlIHNjYWZmb2xkaW5nIHRoZSBhcHBsaWNhdGlvbiwgdGhlIElvbmljIENMSSBoYXMgc2V0IHVwIGFsbCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcywgaW4gdGVybXMgb2YgcGFja2FnZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCBmb3IgdGVzdGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUZXN0aW5nIElvbmljIFJlYWN0IGFwcGxpY2F0aW9ucyBpcyBkb25lIHVzaW5nIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vamVzdGpzLmlvLyZxdW90OyZndDtKZXN0Jmx0Oy9hJmd0OyB0ZXN0aW5nIGZyYW1ld29yayB0b2dldGhlciB3aXRoIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdGVzdGluZy1saWJyYXJ5LmNvbS9kb2NzL3JlYWN0LXRlc3RpbmctbGlicmFyeS9pbnRybyZxdW90OyZndDtSZWFjdCBUZXN0aW5nIExpYnJhcnkmbHQ7L2EmZ3Q7IGFuZCB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1yZWFjdC10ZXN0LXV0aWxzJnF1b3Q7Jmd0O0lvbmljIFJlYWN0IFRlc3QgVXRpbHMmbHQ7L2EmZ3Q7IGxpYnJhcnkgd2hpY2ggaXMgYSBzbWFsbCBzdWl0ZSBvZiB1dGlsaXRpZXMgdG8gc2ltdWxhdGUgY29tbW9uIGZlYXR1cmVzIGluIElvbmljIGxpa2UgZmlyaW5nIGN1c3RvbSBJb25pYyBldmVudHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIHByb2plY3QgYWxyZWFkeSBjb21lcyB3aXRoIGEgdGVzdCBmaWxlIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7QXBwLnRzeCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLiBBcyB5b3UgbWF5IGhhdmUgZ3Vlc3NlZCwgdGhlIHRlc3QgZmlsZSBpcyBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtBcHAudGVzdC50c3gmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGZvbGxvd3MgdGhlIGNvbnZlbnRpb24gZm9yIEplc3QgdGVzdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsvLyBzcmMvQXBwLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgQXBwIGZyb20gJnF1b3Q7Li9BcHAmcXVvdDs7Cgp0ZXN0KCZxdW90O3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZyZxdW90OywgKCkgPSZhbXA7Z3Q7IHsKICBjb25zdCB7IGJhc2VFbGVtZW50IH0gPSByZW5kZXIoJmFtcDtsdDtBcHAgLyZhbXA7Z3Q7KTsKICBleHBlY3QoYmFzZUVsZW1lbnQpLnRvQmVEZWZpbmVkKCk7Cn0pOwombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHRlc3Qgc2ltcGx5IGNoZWNrcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiByZW5kZXJzIHByb3Blcmx5IGFuZCBkb2VzIG5vdCBjcmFzaC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBydW4gdGhpcyB0ZXN0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBpbnZva2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2plc3QmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gcnVuIHRoZSB0ZXN0IGRlZmluZWQgaW4gdGhlIGZpbGUuIEFzIGRpcmVjdGVkLCBwcmVzcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDthJmx0Oy9jb2RlJmd0OyB0byBydW4gYWxsIHRlc3RzLiBUaGUgYWJvdmUgY29tbWFuZCBpcyB0aGUgY29tbWFuZCB3ZSB3aWxsIGJlIHVzaW5nIHRvIHJ1biBhbGwgdGVzdHMgaW4gb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgbGV04oCZcyBhZGQgc29tZSB0ZXN0cyBvZiBvdXIgb3duLiBXZSB3aWxsIGJlIGNyZWF0aW5nIGEgdGVzdCBmaWxlIHRvIHRlc3QgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIHdlIGhhdmUgaW4gb3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlIHdoaWNoIGhvdXNlcyBvdXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRlc3QudHN4Jmx0Oy9jb2RlJmd0OyBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyLiBJdOKAmXMgdGhlIHNhbWUgcGxhY2UgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VGFiMS50c3gmbHQ7L2NvZGUmZ3Q7IGZpbGUgaXMgbG9jYXRlZC4gSW5zaWRlIHRoZSBuZXdseSBjcmVhdGVkIGZpbGUsIHBsYWNlIGluIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgVGFiMSBmcm9tICZxdW90Oy4vVGFiMSZxdW90OzsKCnRlc3QoJnF1b3Q7UGFnZSB0aXRsZSBpcyBUYXNrIE1hbmFnZXImcXVvdDssIGFzeW5jICgpID0mYW1wO2d0OyB7CiAgY29uc3QgeyBmaW5kQnlUZXh0IH0gPSByZW5kZXIoJmFtcDtsdDtUYWIxIC8mYW1wO2d0Oyk7CiAgYXdhaXQgZmluZEJ5VGV4dCgmcXVvdDtUYXNrIE1hbmFnZXImcXVvdDspOwp9KTsKCnRlc3QoJnF1b3Q7V2hlbiB0aGVyZSBhcmUgbm8gVGFza3MsIGluZm9ybSB0aGUgdXNlciB0aGF0IG5vIHRhc2tzIGhhdmUgYmVlbiBjcmVhdGVkJnF1b3Q7LCBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IHsgZmluZEJ5VGV4dCB9ID0gcmVuZGVyKCZhbXA7bHQ7VGFiMSAvJmFtcDtndDspOwogIGF3YWl0IGZpbmRCeVRleHQoJnF1b3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmcXVvdDspOwp9KTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBmaWxlLCB3ZSBoYXZlIGFkZGVkIHR3byB0ZXN0cy4gVGhlIGZpcnN0IHRlc3QgY2hlY2tzIGlmIG91ciBwYWdlIGRpc3BsYXlzIHdpdGggdGhlIGNvcnJlY3QgdGl0bGUgd2hpY2ggaXMgJmx0O3N0cm9uZyZndDtUYXNrIE1hbmFnZXImbHQ7L3N0cm9uZyZndDsuIFRoZSBzZWNvbmQgdGVzdCBjaGVja3MgaWYgb3VyIGFwcGxpY2F0aW9uIGluaXRpYWxseSBsb2FkcyB3aXRob3V0IHRhc2tzLCBhbmQgaWYgaXQgZG9lcywgaXQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgJmx0O3N0cm9uZyZndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3csIGxldOKAmXMgcnVuIHRoZXNlIHRlc3RzIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGF0IHRoZSByb290IG9mIG91ciBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSBhIHNjcmVlbiBzaW1pbGFyIHRvIHRoZSBvbmUgYmVsb3cgb24geW91ciBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi10ZXN0cy1sb2NhbC1ydW4ucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIG91ciB0ZXN0cyBydW5uaW5nIGFzIGV4cGVjdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBdXRvbWF0aW5nIG91ciB0ZXN0aW5nJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBmaW5hbCB0YXNrIGlzIHRvIGF1dG9tYXRlIG91ciBjb250aW51b3VzIGludGVncmF0aW9uIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhhdCwgd2Ugd2lsbCBiZSBkb2luZyB0aGUgZm9sbG93aW5nOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QWRkIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgdG8gb3VyIHByb2plY3QgdG8gc2V0IHVwIGEgQ0kgcGlwZWxpbmUgb24gQ2lyY2xlQ0kmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIG91ciBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG9zaXRvcnkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDcmVhdGUgYSBDaXJjbGVDSSBwcm9qZWN0IGZvciBvdXIgYXBwbGljYXRpb24mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtSdW4gdGhlIENJIHBpcGVsaW5lIG9uIENpcmNsZUNJJmx0Oy9saSZndDsKJmx0Oy9vbCZndDsKCiZsdDtwJmd0O0xldOKAmXMgZ2V0IHRvIGl0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZpcnN0LCBsZXTigJlzIGFkZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3Igb3VyIENJIHBpcGVsaW5lIHRvIG91ciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLiBJbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbmZpZy55bWwmbHQ7L2NvZGUmZ3Q7IGZpbGUsIGVudGVyIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpqb2JzOgogIGJ1aWxkOgogICAgd29ya2luZ19kaXJlY3Rvcnk6IH4vcmVwbwogICAgZG9ja2VyOgogICAgICAtIGltYWdlOiBjaW1nL25vZGU6MTIuMTYKICAgIHN0ZXBzOgogICAgICAtIGNoZWNrb3V0CiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdXBkYXRlLW5wbQogICAgICAgICAgY29tbWFuZDogJnF1b3Q7c3VkbyBucG0gaW5zdGFsbCAtZyBucG1ANSZxdW90OwogICAgICAtIHJlc3RvcmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgLSBydW46CiAgICAgICAgICBuYW1lOiBpbnN0YWxsLXBhY2thZ2VzCiAgICAgICAgICBjb21tYW5kOiBucG0gaW5zdGFsbAogICAgICAtIHNhdmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgICAgIHBhdGhzOgogICAgICAgICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdGVzdAogICAgICAgICAgY29tbWFuZDogbnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgY29uZmlndXJhdGlvbiBwdWxscyBpbiBhIE5vZGUuanMgaW1hZ2UgYW5kIGluc3RhbGxzIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGRlZmluZWQgaW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0Oy4gT25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCB0aGUgdGVzdCBzY3JpcHQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bnBtIHJ1biB0ZXN0Jmx0Oy9jb2RlJmd0OyBpcyB0aGVuIGV4ZWN1dGVkIHRvIHJ1biBhbGwgdGhlIHRlc3RzIGluIG91ciBhcHBsaWNhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGdvb2QgdG8gZ28uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY29tbWl0IGFsbCB5b3VyIGNoYW5nZXMgYW5kIHB1c2ggdGhlIHByb2plY3QgdG8gYSBHaXRIdWIgcmVwb3NpdG9yeSBvbiB0aGUgR2l0SHViIGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgQ2lyY2xlQ0kgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIGlzIHRvIHNldCB1cCB0aGUgcmVwb3NpdG9yeSBmb3Igb3VyIHByb2plY3QgYXMgYSBDaXJjbGVDSSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBDaXJjbGVDSSBjb25zb2xlLCBnbyB0byB0aGUgJmx0O3N0cm9uZyZndDtBZGQgUHJvamVjdHMmbHQ7L3N0cm9uZyZndDsgcGFnZSB0byBhZGQgdGhlIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtcHJvamVjdC5wbmcmcXVvdDsgYWx0PSZxdW90O0FkZCBQcm9qZWN0JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0Oy4gVGhpcyB3aWxsIGxvYWQgdGhlIG5leHQgc2NyZWVuLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3N0YXJ0LWJ1aWxkaW5nMS5wbmcmcXVvdDsgYWx0PSZxdW90O1N0YXJ0IEJ1aWxkaW5nIC0gQ29uZmlnIHNhbXBsZSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBzZXR1cCBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7LiBCZWZvcmUgdGhlIGJ1aWxkIHN0YXJ0cywgeW91IGdldCBhIHByb21wdCB0byBlaXRoZXIgZG93bmxvYWQgYW5kIHVzZSB0aGUgcHJvdmlkZWQgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBoYXZlIGl0IG9uIGEgc2VwYXJhdGUgYnJhbmNoIG9yIHNldCB1cCBvbmUgbWFudWFsbHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzIucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIEFkZCBtYW51YWxseSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1NlbGVjdCAmbHQ7c3Ryb25nJmd0O0FkZCBNYW51YWxseSZsdDsvc3Ryb25nJmd0OyB0byBwcm9jZWVkLiBUaGlzIHdpbGwgcHJvbXB0IGFub3RoZXIgZGlhbG9nIHRoYXQgY2hlY2tzIHRvIGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXQgdXAgdG8gYmVnaW4gYnVpbGRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzMucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIENvbmZpcm0gY29uZmlndXJhdGlvbiZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsgdG8gY29tcGxldGUgdGhlIHNldHVwLiBUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgcGlwZWxpbmUgdXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBvdXIgcHJvamVjdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGUgYnVpbGQgaXMgZG9uZSBydW5uaW5nLCB5b3Ugd2lsbCBnZXQgYSBzdWNjZXNzZnVsIGJ1aWxkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtc3VjY2Vzc2Z1bC5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHN1Y2Nlc3NmdWwmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O2J1aWxkJmx0Oy9zdHJvbmcmZ3Q7IHRvIHNlZSB0aGUgYmVoaW5kLXRoZS1zY2VuZXMgcHJvY2VzcyhJIGhhdmUgY29sbGFwc2VkIHRoZSAmbHQ7ZW0mZ3Q7dGVzdCZsdDsvZW0mZ3Q7IHN0ZXApLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtcHJvY2Vzcy5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHByb2Nlc3MmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBzY3JlZW4sIG91ciBwcm9qZWN0IGlzIHByb3Blcmx5IHNldCB1cCBhbmQgYWxsIG91ciB0ZXN0cyBhcmUgcnVubmluZyBmaW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgYXMgeW91IGRldmVsb3AsIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgbW9yZSBmZWF0dXJlcywgYWRkIHRlc3RzIHRvIHRoZW0gYW5kIHB1c2ggdG8gR2l0SHViLiBPbmNlIHlvdSBwdXNoLCB0aGUgQ0kgcGlwZWxpbmUgd2lsbCBydW4gYW5kIGFsbCB5b3VyIHRlc3RzIHdpbGwgYmUgZXhlY3V0ZWQuIElmIGFueSB0ZXN0IGZhaWxzLCB5b3VyIGJ1aWxkIHdpbGwgZmFpbCB3aGljaCB3aWxsIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbiB0byBiZSBmaXhlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW914oCZcmUgbm90IHB1c2hpbmcgYW55IGJ1Z3MgaW50byB5b3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIHRoaXMgYXJ0aWNsZSwgd2UgaGF2ZSBzZXQgdXAgYW4gYXV0b21hdGVkIENJIHBpcGVsaW5lIGZvciBvdXIgSW9uaWMgYXBwbGljYXRpb25zIHRvIGltcHJvdmUgb3VyIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGF1dG9tYXRpbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4gSGF2aW5nIGEgQ0kgcGlwZWxpbmUgdGhhdCBwcm9wZXJseSBydW5zIG91ciB0ZXN0cyBwcm90ZWN0cyB1cyBhZ2FpbnN0IG91cnNlbHZlcyBieSBlbnN1cmluZyB0aGF0IHdlIGRvbuKAmXQgZW5kIHVwIHdpdGggYnJva2VuIGFwcGxpY2F0aW9ucyBvciB0aGF0IHdlIGRvbuKAmXQgcHVzaCBidWdneSBjb2RlIHRvIG91ciB0ZWFt4oCZcyByZXBvc2l0b3J5IHdoaWxlIHdvcmtpbmcgdG9nZXRoZXIgb24gYSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyA6KSZsdDsvcCZndDsKCiZsdDtociAvJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3R3aXR0ZXIuY29tL2NvZGVyb25mbGVlaz9sYW5nPWVuJnF1b3Q7Jmd0O0Zpa2F5byZsdDsvYSZndDsgaXMgYSBmdWxsc3RhY2sgZGV2ZWxvcGVyIGFuZCBhdXRob3Igd2l0aCBvdmVyIGEgZGVjYWRlIG9mIGV4cGVyaWVuY2UgZGV2ZWxvcGluZyB3ZWIgYW5kIG1vYmlsZSBzb2x1dGlvbnMuIEhlIGlzIGN1cnJlbnRseSB0aGUgU29mdHdhcmUgTGVhZCBhdCBUZWNoIFNwZWNpYWxpc3QgQ29uc3VsdGluZyBhbmQgZGV2ZWxvcHMgY291cnNlcyBmb3IgUGFja3QgYW5kIFVkZW15LiBIZSBoYXMgYSBzdHJvbmcgcGFzc2lvbiBmb3IgdGVhY2hpbmcgYW5kIGhvcGVzIHRvIGJlY29tZSBhIGZ1bGwtdGltZSBhdXRob3IuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5EcmF3biBPdXQgQ29udmVyc2F0aW9ucywgZmVhdHVyaW5nIENpcmNsZUNJIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlciwgUGF0IFNoaWVsZHM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZHJhd24tb3V0LWNvbnZlcnNhdGlvbi1mZWF0dXJpbmctY2lyY2xlY2ktcHJpbmNpcGFsLXNvZnR3YXJlLWVuZ2luZWVyLXBhdC1zaGllbGRzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5GcmksIDE1IE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RyYXduLW91dC1jb252ZXJzYXRpb24tZmVhdHVyaW5nLWNpcmNsZWNpLXByaW5jaXBhbC1zb2Z0d2FyZS1lbmdpbmVlci1wYXQtc2hpZWxkcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Db3JleSBMZXdpczwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtPbiB0aGlzIGVwaXNvZGUgb2YgRHJhd24gT3V0IENvbnZlcnNhdGlvbnMsIHdlIHRhbGsgYWJvdXQgc29tZXRoaW5nIG5lYXIgYW5kIGRlYXIgdG8gb3VyIGhlYXJ0cyDigJMgQ2lyY2xlQ0kuIFdlLCBhbG9uZyB3aXRoIGh1bmRyZWQgb2YgdGhvdXNhbmRzIG9mIG90aGVyIGRldmVsb3BlcnMgYXQgY29tcGFuaWVzIGxpa2UgU3BvdGlmeSwgRmFjZWJvb2ssIEZvcmQgYW5kIEFldG5hLCB1c2UgQ2lyY2xlQ0kgZXZlcnkgZGF5IHRvIG1ha2Ugc3VyZSB0aGF0IHdl4oCZcmUgZGVwbG95aW5nIHF1YWxpdHkgY29kZSwgYW5kIGJ1aWxkaW5nIGVmZmljaWVuY2llcyBpbnRvIG91ciBlbmdpbmVlcmluZyBwcm9jZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0LCB3aGF0IGV4YWN0bHkgaXMgdW5kZXJuZWF0aCBvdXIgcGxhdGZvcm3igJlzIGhvb2Q/Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Sm9pbiBvdXIgQ1RPIFJvYiBadWJlciBhcyBoZSBob3N0cyBDaXJjbGVDSeKAmXMgUHJpbmNpcGFsIFNvZnR3YXJlIEVuZ2luZWVyIFBhdCBTaGllbGRzIHRvIGRpc2N1c3MgdGhlIGlubmVyLXdvcmtpbmdzIG9mIG91ciB0ZWNobm9sb2d5IGFuZCBwbGF0Zm9ybS4gVGhleSBkaXNjdXNzIGV2ZXJ5dGhpbmcgZnJvbSBwcm9kdWN0IGZlYXR1cmVzIHRvIGFyY2hpdGVjdHVyZSBhbmQgdGFsayBhYm91dCBob3cgYW5kIHdoeSB0aGUgY29yZSBlbGVtZW50cyBvZiBvdXIgcGxhdGZvcm0gZ290IGJ1aWx0LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3JvYi1wYXQucG5nJnF1b3Q7IGFsdD0mcXVvdDtyb2ItcGF0LnBuZyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1JvYiBldmVuIHRha2VzIGEgdHVybiB3aXRoIHRoZSBtYXJrZXJzIHRvIGRpc2N1c3MgZG9tYWluLWRyaXZlbiBkZXNpZ24sIGF1dGhlbnRpY2F0aW9uIGFuZCBtb3JlLiBMZWFybiBldmVyeXRoaW5nIHlvdSBldmVyIHdhbnRlZCB0byBrbm93IGFib3V0IENpcmNsZUNJIGFuZCBtb3JlIGluIHRvZGF54oCZcyBjb252ZXJzYXRpb24uJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXImcXVvdDsmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3lvdXR1LmJlL1dMOVJRNmZNbGUwJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvY2lyY2xlY2kuZ2lmJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsKICAmbHQ7L2EmZ3Q7CgombHQ7YnIgLyZndDsKCiAgJmx0O3AmZ3Q7CiAgICAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8veW91dHUuYmUvV0w5UlE2Zk1sZTAmcXVvdDsgc3R5bGU9JnF1b3Q7Y29sb3I6IzAwMDBFRTsmcXVvdDsmZ3Q7CiAgICAgIFdhdGNoIHRoZSBmdWxsIHZpZGVvIGhlcmUKICAgICZsdDsvYSZndDsKICAmbHQ7L3AmZ3Q7CiZsdDsvZGl2Jmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZG8gSSB1c2UgSW5mcmFzdHJ1Y3R1cmUgYXMgQ29kZT88L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWRvLWktaWFjLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE1heSAyMDIwIDEyOjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2hvdy1kby1pLWlhYy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5BbmdlbCBSaXZlcmE8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7SW5mcmFzdHJ1Y3R1cmUgYXMgY29kZSAoSWFDKSBpcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBhbmQgcHJvdmlzaW9uaW5nIGNsb3VkIGFuZCBJVCByZXNvdXJjZXMgdmlhIG1hY2hpbmUgcmVhZGFibGUgZGVmaW5pdGlvbiBmaWxlcyBhbmQgaXMgYSBwYXJ0IG9mIG1vZGVybiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lcy4gSWFDIGVuYWJsZXMgb3JnYW5pemF0aW9ucyB0byBwcm92aXNpb24sIG1hbmFnZSwgYW5kIGRlc3Ryb3kgY29tcHV0ZSByZXNvdXJjZXMgdXNpbmcgbW9kZXJuIERldk9wcyB0b29scy4gSWFDIGVuYWJsZXMgdGhpcyBieSBzdGF0aWNhbGx5IGRlZmluaW5nIGFuZCBkZWNsYXJpbmcgdGhlc2UgcmVzb3VyY2VzIGluIGNvZGUsIHRoZW4gZGVwbG95aW5nIGFuZCBkeW5hbWljYWxseSBtYWludGFpbmluZyB0aGVzZSByZXNvdXJjZXMgdmlhIGNvZGUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gcmVjZW50IGludGVyYWN0aW9ucyB3aXRoIGRldmVsb3BlcnMsIEnigJl2ZSByZWFsaXplZCB0aGF0IG1hbnkgYXJlIGVpdGhlciBub3QgYXdhcmUgb2YgSWFDLCBvciBhcmUgYXdhcmUgYnV0IGhhdmUgYWJhbmRvbmVkIHRoZWlyIGluaXRpYWwgZWZmb3J0cyBiZWNhdXNlIHJhbXBpbmcgdXAgd2FzIHRvbyBjdW1iZXJzb21lLiBJbiB0aGlzIHBvc3QsIEkgd2lsbCBkaXNjdXNzIHRoZSBiZW5lZml0cyBvZiBJYUMgYW5kIHNvbWUgb2YgdGhlIHRvb2xpbmcgb3B0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgYWxvbmcgd2l0aCBhIGJyaWVmIGRlbW9uc3RyYXRpb24gb24gaG93IHRvIHVzZSB0aGVtIGluIGhvcGVzIG9mIGVhc2luZyB0aGUgdHJhbnNpdGlvbiB0byB1c2luZyBJYUMuIEkgd2lsbCBmb2N1cyBvbiB0aGUgdHdvIG1vc3QgcG9wdWxhciBJYUMgdG9vbHMgdXNlZCBpbiB0aGUgaW5kdXN0cnkgdG9kYXk6ICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cudGVycmFmb3JtLmlvLyZxdW90OyZndDtIYXNoaUNvcnDigJlzIFRlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtCZWZvcmUgeW91IGdldCBzdGFydGVkLCB5b3XigJlsbCBuZWVkIHRvIGhhdmUgdGhlc2UgdGhpbmdzOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9mcmVlJnF1b3Q7Jmd0O0dvb2dsZSBDbG91ZCZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NyZWF0ZSBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3Jlc291cmNlLW1hbmFnZXIvZG9jcy9jcmVhdGluZy1tYW5hZ2luZy1wcm9qZWN0cyNjcmVhdGluZ19hX3Byb2plY3QmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIHByb2plY3QmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FwcC5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkgQVBJIHRva2VuJmx0Oy9hJmd0OyBhbmQgc2F2ZSBpdCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgbG9jYWwgaW5zdGFsbCBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vc2RrL2RvY3MvcXVpY2tzdGFydHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIFNESyBDTEkmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSBsb2NhbCBpbnN0YWxsIG9mIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaHViLmRvY2tlci5jb20vc2VhcmNoLz90eXBlPWVkaXRpb24mYW1wO2FtcDtvZmZlcmluZz1jb21tdW5pdHkmcXVvdDsmZ3Q7RG9ja2VyIGNsaWVudCZsdDsvYSZndDsmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBHb29nbGUgQ2xvdWQgcHJvamVjdCBjcmVkZW50aWFscyZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDbG91ZFBsYXRmb3JtL2NvbW11bml0eS9ibG9iL21hc3Rlci90dXRvcmlhbHMvZ2V0dGluZy1zdGFydGVkLW9uLWdjcC13aXRoLXRlcnJhZm9ybS9pbmRleC5tZCNnZXR0aW5nLXByb2plY3QtY3JlZGVudGlhbHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIGNyZWRlbnRpYWxzJmx0Oy9hJmd0OyBpbiBvcmRlciB0byBwZXJmb3JtIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgdXNpbmcgSWFDIHRvb2xpbmcuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9hcGlzL2NyZWRlbnRpYWxzL3NlcnZpY2VhY2NvdW50a2V5JnF1b3Q7Jmd0O0NyZWF0ZSBTZXJ2aWNlIEFjY291bnQgS2V5IHBhZ2UmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7U2VsZWN0IHRoZSBkZWZhdWx0IHNlcnZpY2UgYWNjb3VudCBvciBjcmVhdGUgYSBuZXcgb25lLCBzZWxlY3QgSlNPTiBhcyB0aGUga2V5IHR5cGUsIGFuZCBjbGljayAmbHQ7c3Ryb25nJmd0O0NyZWF0ZSZsdDsvc3Ryb25nJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O1NhdmUgdGhpcyBKU09OIGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgYW5kIHJlbmFtZSB0aGUgZmlsZSB0byAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaWNkX2RlbW9fZ2NwX2NyZWRzLmpzb24mbHQ7L2NvZGUmZ3Q7LiBUaGlzIGlzICZsdDtzdHJvbmcmZ3Q7dmVyeSBpbXBvcnRhbnQmbHQ7L3N0cm9uZyZndDsgZm9yIGVuYWJsaW5nIHRoZSBHb29nbGUgQ2xvdWQgQ0xJIGluIHRoZSBjb250YWluZXIgbGF0ZXIgb24mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBhIFB1bHVtaSBBUEkgdG9rZW4mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7WW91IHdpbGwgbmVlZCB0byBnZXQgYSBQdWx1bWkgQVBJIHRva2VuIHRvIHN0b3JlIHlvdXIgcHJvamVjdCBzdGF0ZSBvbiBQdWx1bWnigJlzIGJhY2tlbmQgY2xvdWQuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vYXBwLnB1bHVtaS5jb20vJnF1b3Q7Jmd0O2FwcC5wdWx1bWkuY29tLyZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1NlbGVjdCBhbiBPcmdhbml6YXRpb24mbHQ7L3N0cm9uZyZndDsgb24gdGhlIHVwcGVyIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSBhbmQgc2VsZWN0IHlvdXIgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O0FjY2VzcyBUb2tlbnMmbHQ7L3N0cm9uZyZndDsgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7TmV3IEFjY2VzcyBUb2tlbiZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7Q3JlYXRlJmx0Oy9zdHJvbmcmZ3Q7IGFuZCBzYXZlIHRoZSBuZXcgQVBJIHRva2VuIHRoYXQgd2FzIGNyZWF0ZWQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemUgeW91ciBQdWx1bWkgcHJvamVjdCBsYXRlciZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7aDImZ3Q7RG9ja2VyIHB1bGwgSWFDMTAxIERvY2tlciBpbWFnZSZsdDsvaDImZ3Q7CgombHQ7cCZndDtBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlZCBhbmQgeW914oCZcmUgcmVhZHkgdG8gcHVsbCB0aGUgZG9ja2VyIGltYWdlIGZvciB0aGlzIHdvcmtzaG9wLiBJbiB0ZXJtaW5hbCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBwdWxsIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm93IGhhdmUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2FyaXYzcmEvaWFjMTAxJmx0Oy9jb2RlJmd0OyBkb2NrZXIgaW1hZ2UgbG9jYWxseS4gWW91IGNhbiB2ZXJpZnkgYnV5IHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgYW5kIHlvdSBzaG91bGQgc2VlIHRoZSBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0RvY2tlciBydW4gSWFDMTAxIGNvbnRhaW5lciZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgd2XigJlsbCBjcmVhdGUgYSBuZXcgRG9ja2VyIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YXJpdjNyYS9pYWMxMDEmbHQ7L2NvZGUmZ3Q7IGltYWdlIHdoaWNoIGhhcyBhbGwgdGhlIElhQyB0b29scyBhbmQgY29kZSBwcmUtYmFrZWQuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O01vdW50aW5nIHRoZSAvLmNvbmZpZy9nY2xvdWQvIGRpcmVjdG9yeSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtCZWZvcmUgcnVubmluZyB0aGUgbmV3IGNvbnRhaW5lciB5b3UgbmVlZCB0aGUgYWJzb2x1dGUgcGF0aCB0byB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkuIE9uIG15IE1hY09TIG1hY2hpbmUsIG15IGFic29sdXRlIHBhdGggaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7L1VzZXJzL2FuZ2VsLy5jb25maWcvZ2Nsb3VkLyZsdDsvY29kZSZndDsuIEJlIHN1cmUgdG8gZ2V0IHlvdXIgYWJzb2x1dGUgZmlsZSBwYXRoIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2Nsb3VkJmx0Oy9jb2RlJmd0OyBkaXJlY3Rvcnkgb24geW91ciBsb2NhbCBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtSdW4gSWFDMTAxIGNvbnRhaW5lciB3aXRoIG1vdW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtSdW4gdGhpcyBjb21tYW5kIGluIGEgdGVybWluYWwgcnVuIGJ1dCBiZSBzdXJlIHRvIHJlcGxhY2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0OyZsdDsvY29kZSZndDsgYml0IHdpdGggeW91ciBhY3R1YWwgYWJzb2x1dGUgcGF0aCB0byB5b3VyIGxvY2FsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dsb2N1ZC8mbHQ7L2NvZGUmZ3Q7ZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtaXQgLS1uYW1lIGlhY3Rlc3QgLS1tb3VudCB0eXBlPWJpbmQsc291cmNlPSZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0Oy5jb25maWcvZ2Nsb3VkLyx0YXJnZXQ9L3Jvb3QvLmNvbmZpZy9nY2xvdWQvIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJYUMxMDEgY29udGFpbmVyIGlzIHJ1bm5pbmcmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGUgcHJldmlvdXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgeW91ciBJYUMxMDEgY29udGFpbmVyIHdpbGwgYmUgdXAgYW5kIHJ1bm5pbmcgYW5kIHlvdXIgdGVybWluYWwgc2hlbGwgaGFzIGRyb3BwZWQgeW91IGludG8gdGhlIHJ1bm5pbmcgY29udGFpbmVyLiBFdmVyeSBjb21tYW5kIHlvdSBydW4gaW4geW91ciB0ZXJtaW5hbCBzaGVsbCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBEb2NrZXIgY29udGFpbmVyIGZyb20gbm93IG9uIHVudGlsIHlvdSBtYW51YWxseSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtleGl0Jmx0Oy9jb2RlJmd0OyB0aGUgY29udGFpbmVyLiBUaGUgY29udGFpbmVyIGhhcyB0aGUgVGVycmFmb3JtIGFuZCBQdWx1bWkgQ0xJIHRvb2xzIGluc3RhbGxlZCwgYXMgd2VsbCBhcyBleGFtcGxlIGNvZGUgZm9yIGVhY2ggdGhhdCBjcmVhdGVzIGluZnJhc3RydWN0dXJlIGluIHRoZWlyIHJlc3BlY3RpdmUgdG9vbHMuIFRoZSBjb250YWluZXIgcHJvamVjdHMgZmlsZXMgYXJlIG1hcHBlZCBhcyBmb2xsb3dzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHJvamVjdHMvCnxfIHRlcnJhZm9ybS9nY3AvY29tcHV0ZS8gICAjIENvbnRhaW5zIHRoZSBUZXJyYWZvcm0gY29kZSBmaWxlcwp8XyBwdWx1bWkvZ2NwL2NvbXB1dGUvICAgICAgIyBDb250YWlucyB0aGUgUHVsdW1pIGNvZGUgZmlsZXMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gyJmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2EmZ3Q7IGlzIGEgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgYnVpbGRpbmcsIGNoYW5naW5nLCBhbmQgdmVyc2lvbmluZyBpbmZyYXN0cnVjdHVyZSBzYWZlbHkgYW5kIGVmZmljaWVudGx5LiBUZXJyYWZvcm0gY2FuIG1hbmFnZSBleGlzdGluZyBzZXJ2aWNlIHByb3ZpZGVycyBhcyB3ZWxsIGFzIGN1c3RvbSBpbi1ob3VzZSBzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q29uZmlndXJhdGlvbiBmaWxlcyBkZXNjcmliZSB0aGUgY29tcG9uZW50cyBuZWVkZWQgdG8gcnVuIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yIHlvdXIgZW50aXJlIGRhdGFjZW50ZXIgb24gVGVycmFmb3JtLiBUZXJyYWZvcm0gZ2VuZXJhdGVzIGFuIGV4ZWN1dGlvbiBwbGFuIGRlc2NyaWJpbmcgd2hhdCBpdCB3aWxsIGRvIHRvIHJlYWNoIHRoZSBkZXNpcmVkIHN0YXRlLCBhbmQgdGhlbiBleGVjdXRlcyBpdCB0byBidWlsZCB0aGUgZGVzY3JpYmVkIGluZnJhc3RydWN0dXJlLiBBcyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBUZXJyYWZvcm0gaXMgYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBjaGFuZ2VkIGFuZCBjcmVhdGUgaW5jcmVtZW50YWwgZXhlY3V0aW9uIHBsYW5zIHdoaWNoIGNhbiBiZSBhcHBsaWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZSBpbmZyYXN0cnVjdHVyZSBUZXJyYWZvcm0gY2FuIG1hbmFnZSBpbmNsdWRlcyBsb3ctbGV2ZWwgY29tcG9uZW50cyBzdWNoIGFzIGNvbXB1dGUgaW5zdGFuY2VzLCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZywgYXMgd2VsbCBhcyBoaWdoLWxldmVsIGNvbXBvbmVudHMgc3VjaCBhcyBETlMgZW50cmllcywgU2FhUyBmZWF0dXJlcywgZXRjLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBUZXJyYWZvcm0mbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCB3aXRoIHByb3Zpc2lvbmluZyBzb21lIHJlc291cmNlcyBpbiBHQ1AgdXNpbmcgVGVycmFmb3JtIGNvZGUuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDttYWluLnRmICZsdDsvY29kZSZndDsgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBjb2RlIHRoYXQgaGFzIG91ciBpbmZyYXN0cnVjdHVyZSBkZWZpbmVkLiBJbiB0aGlzIGZpbGUgd2XigJlyZSBjcmVhdGluZyBhIG5ldyBjb21wdXRlIGluc3RhbmNlIHRoYXQgd2lsbCBpbnN0YWxsIGFuZCBydW4gYSBQeXRob24gRmxhc2sgYXBwIHBhY2thZ2VkIGluIGEgRG9ja2VyIGNvbnRhaW5lci4gVGhlIFRlcnJhZm9ybSBjb2RlIHdpbGwgYWxzbyBjcmVhdGUgc29tZSBmaXJld2FsbCBydWxlcyB0aGF0IHdpbGwgYWxsb3cgcHVibGljIGFjY2VzcyB0byB0aGUgYXBwIG92ZXIgcG9ydCA1MDAwLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHByb3Zpc2lvbiB0aGlzLCBydW4gdGhpcyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NkIH4vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJbml0aWFsaXppbmcgVGVycmFmb3JtJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1doaWxlIGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBydW4gdGhpcyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7dGVycmZvcm0gaW5pdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSByZXN1bHRzIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cm9vdEBkOWNlNzIxMjkzZTI6fi9wcm9qZWN0L3RlcnJhZm9ybS9nY3AvY29tcHV0ZSMgdGVycmFmb3JtIGluaXQKCkluaXRpYWxpemluZyB0aGUgYmFja2VuZC4uLgoKSW5pdGlhbGl6aW5nIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBDaGVja2luZyBmb3IgYXZhaWxhYmxlIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBEb3dubG9hZGluZyBwbHVnaW4gZm9yIHByb3ZpZGVyICZxdW90O2dvb2dsZSZxdW90OyAoaGFzaGljb3JwL2dvb2dsZSkgMy4xMC4wLi4uCgoqIHByb3ZpZGVyLmdvb2dsZTogdmVyc2lvbiA9ICZxdW90O34mYW1wO2d0OyAzLjEwJnF1b3Q7CgpUZXJyYWZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7aDMmZ3Q7UHJldmlld2luZyB3aXRoIFRlcnJhZm9ybSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUZXJyYWZvcm0gaGFzIGEgY29tbWFuZCB0aGF0IGFsbG93cyB5b3UgdG8gZHJ5IHJ1biBhbmQgdmFsaWRhdGUgeW91ciBUZXJyYWZvcm0gY29kZSB3aXRob3V0IGFjdHVhbGx5IGV4ZWN1dGluZyBhbnl0aGluZy4gVGhlIGNvbW1hbmQgaXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybSBwbGFuJmx0Oy9jb2RlJmd0OyB3aGljaCBhbHNvIGdyYXBocyBhbGwgdGhlIGFjdGlvbnMgYW5kIGNoYW5nZXMgdGhhdCBUZXJyYWZvcm0gd2lsbCBleGVjdXRlIGFnYWluc3QgeW91ciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS4gSW4gdGhlIHRlcm1pbmFsIHJ1bjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3RlcnJhZm9ybSBwbGFuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSByZXN1bHRzIHNpbWlsYXIgdG8gdGhpcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0FuIGV4ZWN1dGlvbiBwbGFuIGhhcyBiZWVuIGdlbmVyYXRlZCBhbmQgaXMgc2hvd24gYmVsb3cuClJlc291cmNlIGFjdGlvbnMgYXJlIGluZGljYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKICArIGNyZWF0ZQoKVGVycmFmb3JtIHdpbGwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGFjdGlvbnM6CgogICMgZ29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwuaHR0cC01MDAwIHdpbGwgYmUgY3JlYXRlZAogICsgcmVzb3VyY2UgJnF1b3Q7Z29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwmcXVvdDsgJnF1b3Q7aHR0cC01MDAwJnF1b3Q7IHsKICAgICAgKyBjcmVhdGlvbl90aW1lc3RhbXAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVzdGluYXRpb25fcmFuZ2VzID0gKGtub3duIGFmdGVyIGFwcGx5KQogIH0KCiAgICAjIGdvb2dsZV9jb21wdXRlX2luc3RhbmNlLmRlZmF1bHQgd2lsbCBiZSBjcmVhdGVkCiAgKyByZXNvdXJjZSAmcXVvdDtnb29nbGVfY29tcHV0ZV9pbnN0YW5jZSZxdW90OyAmcXVvdDtkZWZhdWx0JnF1b3Q7IHsKICAgICAgKyBjYW5faXBfZm9yd2FyZCAgICAgICA9IGZhbHNlCiAgICAgICsgY3B1X3BsYXRmb3JtICAgICAgICAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVsZXRpb25fcHJvdGVjdGlvbiAgPSBmYWxzZQogICAgICArIGd1ZXN0X2FjY2VsZXJhdG9yICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGlkICAgICAgICAgICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGluc3RhbmNlX2lkICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVsX2ZpbmdlcnByaW50ICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVscyAgICAgICAgICAgICAgID0gewogICAgICAgICAgKyAmcXVvdDtjb250YWluZXItdm0mcXVvdDsgPSAmcXVvdDtjb3Mtc3RhYmxlLTY5LTEwODk1LTYyLTAmcXVvdDsKICAgICAgICB9CiAgICAgICsgbWFjaGluZV90eXBlICAgICAgICAgPSAmcXVvdDtnMS1zbWFsbCZxdW90OwogIH0KICBQbGFuOiAyIHRvIGFkZCwgMCB0byBjaGFuZ2UsIDAgdG8gZGVzdHJveS4KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgeW91IGNhbiBzZWUsIFRlcnJhZm9ybSBpcyBnb2luZyB0byBjcmVhdGUgbmV3IEdDUCByZXNvdXJjZXMgZm9yIHlvdSBiYXNlZCBvbiB0aGUgY29kZSBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bWFpbi50ZiZsdDsvY29kZSZndDsgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGFwcGx5Jmx0Oy9oMyZndDsKCiZsdDtwJmd0O05vdyB5b3XigJlyZSByZWFkeSB0byBjcmVhdGUgdGhlIG5ldyBpbmZyYXN0cnVjdHVyZSBhbmQgZGVwbG95IHRoZSBhcHBsaWNhdGlvbi4gUnVuIHRoaXMgY29tbWFuZCBpbiB0aGUgdGVybWluYWw6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt0ZXJyYWZvcm0gYXBwbHkKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGVycmFmb3JtIHdpbGwgcHJvbXB0IHlvdSB0byBjb25maXJtIHlvdXIgY29tbWFuZC4gVHlwZSB5ZXMgYW5kIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0RvIHlvdSB3YW50IHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucz8KICBUZXJyYWZvcm0gd2lsbCBwZXJmb3JtIHRoZSBhY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KICBPbmx5ICd5ZXMnIHdpbGwgYmUgYWNjZXB0ZWQgdG8gYXBwcm92ZS4KCiAgRW50ZXIgYSB2YWx1ZTogeWVzCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RlcnJhZm9ybSB3aWxsIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgYW5kIHlvdSB3aWxsIGhhdmUgYW4gYXBwbGljYXRpb24gdXAgYW5kIHJ1bm5pbmcgb24gR0NQIHNob3J0bHkgYWZ0ZXIgaXQgY29tcGxldGVzLiBQbGVhc2Ugbm90ZSB0aGF0IGl0IHdpbGwgdGFrZSAzLTUgbWludXRlcyBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbWUgb25saW5lIGFmdGVyIFRlcnJhZm9ybSBjb21wbGV0ZXMuIEl04oCZcyBub3QgYW4gaW5zdGFudCBwcm9jZXNzIGJlY2F1c2UgdGhlIGJhY2tlbmQgc3lzdGVtcyBhcmUgcHJvdmlzaW9uaW5nIGFuZCBicmluZ2luZyB0aGluZ3Mgb25saW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgZG9uZSwgeW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7bGFuZ3VhZ2Utc2hlbGwgaGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7T3V0cHV0czoKClB1YmxpY19JUF9BZGRyZXNzICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgMzQuNzQuNzUuMTcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1B1YmxpY19JUF9BZGRyZXNzJmx0Oy9jb2RlJmd0OyB2YWx1ZSBpcyB0aGUgSVAgQWRkcmVzcyB0aGF0IHlvdXIgYXBwIGlzIHJ1bm5pbmcgb24sIHNvIGlmIHlvdSBnbyB0byBhIGJyb3dzZXIgYW5kIHBsdWcgdGhhdCBudW1iZXIgaW4gcGx1cyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7OjUwMDAmbHQ7L2NvZGUmZ3Q7IHBvcnQgYWRkcmVzcyAoaXQgd291bGQgbG9vayBsaWtlIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7MzQuNzQuNzUuMTc6NTAwMCZsdDsvY29kZSZndDspIHlvdSB3aWxsIHNlZSB5b3VyIGFwcCBydW5uaW5nIGluIEdDUC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Tm93IHRoYXQgeW91IGhhdmUgcHJvb2YgdGhhdCB5b3VyIEdvb2dsZSBDb21wdXRlIGluc3RhbmNlIGFuZCB5b3VyIGFwcGxpY2F0aW9uIHdvcmssIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gZGVzdHJveSB0aGUgYXNzZXRzIHRoYXQgeW91IGNyZWF0ZWQgaW4gdGhpcyB0dXRvcmlhbC4gWW91IGNhbiBsZWF2ZSBpdCB1cCBhbmQgcnVubmluZywgYnV0IGJlIGF3YXJlIHRoYXQgdGhlcmUgaXMgYSBjb3N0IGFzc29jaWF0ZWQgd2l0aCBhbnkgYXNzZXRzIHJ1bm5pbmcgb24gdGhlIEdvb2dsZSBDbG91ZCBQbGF0Zm9ybSBhbmQgeW91IHdpbGwgYmUgbGlhYmxlIGZvciB0aG9zZSBjb3N0cy4gR29vZ2xlIGdpdmVzIGEgZ2VuZXJvdXMgJDMwMCBjcmVkaXQgZm9yIGl0cyBmcmVlIHRyaWFsIHNpZ24tdXAsIGJ1dCB5b3UgY291bGQgZWFzaWx5IGVhdCB0aHJvdWdoIHRoYXQgaWYgeW91IGxlYXZlIGFzc2V0cyBydW5uaW5nLiBJdOKAmXMgdXAgdG8geW91LCBidXQgcnVubmluZyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0ZXJyYWZvcm0gZGVzdHJveSZsdDsvY29kZSZndDsgd2lsbCB0ZXJtaW5hdGUgYW55IHJ1bm5pbmcgYXNzZXRzLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIEnigJlsbCBkZW1vbnN0cmF0ZSBob3cgdG8gcGVyZm9ybSBpbmZyYXN0cnVjdHVyZSBwcm92aXNpb25pbmcgdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtQdWx1bWkgU0RLJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9wcm9kdWN0LyNzZGsmcXVvdDsmZ3Q7UHVsdW1pIFNESyZsdDsvYSZndDsgaXMgYW4gb3BlbiBzb3VyY2UgZnJhbWV3b3JrIGZvciBkZWZpbmluZyBhbmQgZGVwbG95aW5nIGNsb3VkIGFwcHMgYW5kIElhQy4gUHVsdW1pIGVuYWJsZXMgZGV2ZWxvcGVycyB0byB3cml0ZSBjb2RlIGluIHRoZWlyIGZhdm9yaXRlIGxhbmd1YWdlIHN1Y2ggYXMgVHlwZVNjcmlwdCwgSmF2YVNjcmlwdCwgUHl0aG9uLCBhbmQgR28uIFRoaXMgZW5hYmxlcyBtb2Rlcm4gYXBwcm9hY2hlcyB0byBjbG91ZCBhcHBsaWNhdGlvbnMgYW5kIGluZnJhc3RydWN0dXJlIHdpdGhvdXQgbmVlZGluZyB0byBsZWFybiBhbm90aGVyIFlBTUwgb3IgRFNMIGRpYWxlY3QuIFRoaXMgdW5sb2NrcyBhYnN0cmFjdGlvbnMgYW5kIHJldXNlLCBhcyB3ZWxsIGFzIGFjY2VzcyB0byB5b3VyIGZhdm9yaXRlIElERXMsIHJlZmFjdG9yaW5nLCBhbmQgdGVzdGluZyB0b29scy4gTWFzdGVyIG9uZSB0b29sY2hhaW4gYW5kIHNldCBvZiBmcmFtZXdvcmtzIGFuZCBnbyB0byBhbnkgY2xvdWQgKEFXUywgQXp1cmUsIEdDUCwgb3IgS3ViZXJuZXRlcykgd2l0aCBlYXNlLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBQdWx1bWkmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUgZXhwZXJpZW5jZWQgYnVpbGRpbmcgaW5mcmFzdHJ1Y3R1cmUgdXNpbmcgVGVycmFmb3JtLCBub3cgeW914oCZbGwgbGVhcm4gaG93IHRvIHByb3Zpc2lvbiBhbmQgZGVwbG95IG5ldyBpbmZyYXN0cnVjdHVyZSB1c2luZyBQdWx1bWkuIFRoZSBQdWx1bWkgZXhhbXBsZSB3aWxsIGNyZWF0ZSB0aGUgc2FtZSBHQ1AgcmVzb3VyY2VzIHByZXZpb3VzbHkgdXNpbmcgUHVsdW1pIGNvZGUgYW5kIHRvb2xzLiBQdWx1bWkgZW5hYmxlcyB5b3UgdG8gZGVmaW5lIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgaW4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHdoaWNoIHByb3ZpZGVzIGxvdHMgb2YgZmxleGliaWxpdHkuIEluIHRoaXMgZXhhbXBsZSwgd2XigJlyZSB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vd3d3LnB5dGhvbi5vcmcvJnF1b3Q7Jmd0O1B5dGhvbiZsdDsvYSZndDsgYXMgb3VyIGxhbmd1YWdlLiBUaGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7X19tYWluLnB5X18mbHQ7L2NvZGUmZ3Q7IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC9wdWx1bWkvZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgaXMgd2hlcmUgd2VyZSBnb2luZyB0byBkZWZpbmUgb3VyIGluZnJhc3RydWN0dXJlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlIHN1cmUgdG8gaGF2ZSB5b3VyIFB1bHVtaSBBUEkgdG9rZW4gYXZhaWxhYmxlLiBZb3XigJlsbCBuZWVkIGl0IGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIFB1bHVtaSBleGFtcGxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7fi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGRpcmVjdG9yeS4gUnVuIHRoaXMgY29tbWFuZCB0byBjaGFuZ2UgaW50byB0aGUgUHVsdW1pIGV4YW1wbGUgZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2Qgfi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gzJmd0O0luc3RhbGxpbmcgZGVwZW5kaWVuY2llcyBmb3IgUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1NpbmNlIHdl4oCZcmUgZGVmaW5pbmcgb3VyIElhQyBzcGVjcyB1c2luZyBQeXRob24gd2XigJlsbCBuZWVkIHRvIGZpcnN0IGluc3RhbGwgdGhlIFB1bHVtaSBQeXRob24gU0RLIGRlcGVuZGVuY2llcy4gSW4gdGhlIHRlcm1pbmFsIHJ1biB0aGlzIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtwaXAgaW5zdGFsbCAtciAuLi9yZXF1aXJlbWVudHMudHh0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtQcmV2aWV3aW5nIHdpdGggUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1B1bHVtaSBoYXMgYSBkcnktcnVuIGNvbW1hbmQgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBwcmV2aWV3Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRpc3BsYXlzIGEgcHJldmlldyBvZiB0aGUgdXBkYXRlcyB0byBhbiBleGlzdGluZyBzdGFjayB3aG9zZSBzdGF0ZSBpcyByZXByZXNlbnRlZCBieSBhbiBleGlzdGluZyBzdGF0ZSBmaWxlLiBUaGUgbmV3IGRlc2lyZWQgc3RhdGUgaXMgY29tcHV0ZWQgYnkgcnVubmluZyBhIFB1bHVtaSBwcm9ncmFtLCBhbmQgZXh0cmFjdGluZyBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbnMgZnJvbSBpdHMgcmVzdWx0aW5nIG9iamVjdCBncmFwaC4gVGhlc2UgYWxsb2NhdGlvbnMgYXJlIHRoZW4gY29tcGFyZWQgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc3RhdGUgdG8gZGV0ZXJtaW5lIHdoYXQgb3BlcmF0aW9ucyBtdXN0IHRha2UgcGxhY2UgdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZCBzdGF0ZS4gTm8gY2hhbmdlcyB0byB0aGUgc3RhY2sgd2lsbCBhY3R1YWxseSB0YWtlIHBsYWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGlzIGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHByZXZpZXcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHJlc3VsdHMgcHJvbXB0aW5nIHlvdSBmb3IgdGhlIFB1bHVtaSBBUEkgdG9rZW4geW91IGNyZWF0ZWQgZWFybGllci4gUGFzdGUgdGhlIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLiBBZnRlciB5b3UgcGFzdGUgdGhlIHRva2VuIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O01hbmFnZSB5b3VyIFB1bHVtaSBzdGFja3MgYnkgbG9nZ2luZyBpbi4KUnVuIGBwdWx1bWkgbG9naW4gLS1oZWxwYCBmb3IgYWx0ZXJuYXRpdmUgbG9naW4gb3B0aW9ucy4KRW50ZXIgeW91ciBhY2Nlc3MgdG9rZW4gZnJvbSBodHRwczovL2FwcC5wdWx1bWkuY29tL2FjY291bnQvdG9rZW5zCiAgICBvciBoaXQgJmFtcDtsdDtFTlRFUiZhbXA7Z3Q7IHRvIGxvZyBpbiB1c2luZyB5b3VyIGJyb3dzZXIgICAgICAgICAgICAgICAgICAgOgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1doZW4gcGFzdGluZyB0aGUgQVBJIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLCBubyB2YWx1ZXMgd2lsbCBiZSBkaXNwbGF5ZWQuIEl0IHdpbGwgcmVtYWluIGludmlzaWJsZSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuJmx0Oy9pJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBtYXkgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGEgc3RhY2sgaW4gdGhlIHRlcm1pbmFsLiBJZiBzbywgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkZXYmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB0aGVuIGhpdCBlbnRlci4gWW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UHJldmlld2luZyB1cGRhdGUgKGRldik6CiAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICAgICBQbGFuCiArICAgcHVsdW1pOnB1bHVtaTpTdGFjayAgICAgIGNvbXB1dGUtZGV2ICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6TmV0d29yayAgIG5ldHdvcmsgICAgICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6SW5zdGFuY2UgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJTilIAgZ2NwOmNvbXB1dGU6RmlyZXdhbGwgIGZpcmV3YWxsICAgICAgICAgICAgICAgICAgICBjcmVhdGUKClJlc291cmNlczoKICAgICsgNSB0byBjcmVhdGUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUganVzdCBlbmFibGVkIGFjY2VzcyB0byB0aGUgUHVsdW1pIGJhY2tlbmQgY2xvdWQgd2hpY2gga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXRlIG9mIHlvdXIgaW5mcmFzdHJ1Y3R1cmVzLiBOb3cgeW914oCZcmUgcmVhZHkgdG8gcnVuIHNvbWUgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7UHVsdW1pIHVwJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1RvIGV4ZWN1dGUgdGhlIFB1bHVtaSBjb2RlLCB1c2UgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIHVwJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGNyZWF0ZXMgb3IgdXBkYXRlcyByZXNvdXJjZXMgaW4gYSBzdGFjay4gVGhlIG5ldyBkZXNpcmVkIGdvYWwgc3RhdGUgZm9yIHRoZSB0YXJnZXQgc3RhY2sgaXMgY29tcHV0ZWQgYnkgcnVubmluZyB0aGUgY3VycmVudCBQdWx1bWkgcHJvZ3JhbSBhbmQgb2JzZXJ2aW5nIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9ucyB0byBwcm9kdWNlIGEgcmVzb3VyY2UgZ3JhcGguIFRoaXMgZ29hbCBzdGF0ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIGV4aXN0aW5nIHN0YXRlIHRvIGRldGVybWluZSB3aGF0IGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQvb3IgZGVsZXRlIG9wZXJhdGlvbnMgbXVzdCB0YWtlIHBsYWNlIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgZ29hbCBzdGF0ZSBpbiB0aGUgbW9zdCBtaW5pbWFsbHkgZGlzcnVwdGl2ZSB3YXkuIEFmdGVyd2FyZCwgdGhpcyBjb21tYW5kIHJlY29yZHMgYSBmdWxsIHRyYW5zYWN0aW9uYWwgc25hcHNob3Qgb2YgdGhlIHN0YWNr4oCZcyBuZXcgc3RhdGUgc28gdGhhdCB0aGUgc3RhY2sgbWF5IGJlIHVwZGF0ZWQgaW5jcmVtZW50YWxseSBhZ2FpbiBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgdGVybWluYWwgcnVuOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHVwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1NlbGVjdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7eWVzJmx0Oy9jb2RlJmd0OyBvcHRpb24gYW5kIGhpdCBlbnRlci4gVGhlIFB1bHVtaSBhcHAgd2lsbCBleGVjdXRlLCBhbmQgc2hvcnRseSBhZnRlciB5b3XigJlsbCBoYXZlIGEgY29tcGxldGUgc2VydmVyIHJ1bm5pbmcgYW4gYXBwbGljYXRpb24gb24gR0NQLiBZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtVcGRhdGluZyAoZGV2KToKICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cwogKyAgIHB1bHVtaTpwdWx1bWk6U3RhY2sgICAgICBjb21wdXRlLWRldiAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUnOKUgCBnY3A6Y29tcHV0ZTpOZXR3b3JrICAgbmV0d29yayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGVkCiArICAg4pSc4pSAIGdjcDpjb21wdXRlOkZpcmV3YWxsICBmaXJld2FsbCAgICAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUlOKUgCBnY3A6Y29tcHV0ZTpJbnN0YW5jZSAgd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDEgIGNyZWF0ZWQKCk91dHB1dHM6CiAgICBleHRlcm5hbF9pcCAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICBpbnN0YW5jZV9tZXRhX2RhdGE6IHsKICAgICAgICBnY2UtY29udGFpbmVyLWRlY2xhcmF0aW9uOiAmcXVvdDtzcGVjOlxuICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDFcbiAgICAgIGltYWdlOiBhcml2M3JhL3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxOmxhdGVzdFxuICAgICAgc3RkaW46IGZhbHNlXG4gICAgICB0dHk6IGZhbHNlXG4gIHJlc3RhcnRQb2xpY3k6IEFsd2F5c1xuJnF1b3Q7CiAgICB9CiAgICBpbnN0YW5jZV9uYW1lICAgICA6ICZxdW90O3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxJnF1b3Q7CiAgICBpbnN0YW5jZV9uZXR3b3JrICA6IFsKICAgICAgICBbMF06IHsKICAgICAgICAgICAgYWNjZXNzQ29uZmlncyAgICA6IFsKICAgICAgICAgICAgICAgIFswXTogewogICAgICAgICAgICAgICAgICAgIG5hdElwICAgICAgICAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICAgICAgICAgICAgICAgICAgbmV0d29ya190aWVyICAgICAgIDogJnF1b3Q7UFJFTUlVTSZxdW90OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgOiAmcXVvdDtuaWMwJnF1b3Q7CiAgICAgICAgfQogICAgXQoKUmVzb3VyY2VzOgogICAgKyA1IGNyZWF0ZWQKCkR1cmF0aW9uOiA1OHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlc2UgcmVzdWx0cywgeW914oCZbGwgc2VlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXh0ZXJuYWxfaXAmbHQ7L2NvZGUmZ3Q7IGtleS4gSXTigJlzIHZhbHVlIGlzIHRoZSBJUCBBZGRyZXNzIHRvIHRoZSBwdWJsaWMgZmFjaW5nIGFwcGxpY2F0aW9uIGV4cG9zZWQgb24gcG9ydCA1MDAwLiBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIFRlcnJhZm9ybSBleGFtcGxlLCB5b3UgY2FuIGFjY2VzcyB0aGUgYXBwbGljYXRpb24gaW4gYSBicm93c2VyLiBSZW1lbWJlciB0byBhbGxvdyBmb3IgYSBmZXcgbWludXRlcyBzbyB0aGUgYmFja2VuZCBzeXN0ZW0gY2FuIGJyaW5nIGV2ZXJ5dGhpbmcgb25saW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQdWx1bWkgZGVzdHJveSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtQdWx1bWkgaGFzIGEgY29tbWFuZCB0byB0ZXJtaW5hdGUgYWxsIG9mIHRoZSBjbG91ZCByZXNvdXJjZXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBkZXN0cm95Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRlbGV0ZXMgYW4gZW50aXJlIGV4aXN0aW5nIHN0YWNrIGJ5IG5hbWUuIFRoZSBjdXJyZW50IHN0YXRlIGlzIGxvYWRlZCBmcm9tIHRoZSBhc3NvY2lhdGVkIHN0YXRlIGZpbGUgaW4gdGhlIHdvcmtzcGFjZS4gQWZ0ZXIgcnVubmluZyB0byBjb21wbGV0aW9uLCBhbGwgb2YgdGhpcyBzdGFja+KAmXMgcmVzb3VyY2VzIGFuZCBhc3NvY2lhdGVkIHN0YXRlIHdpbGwgYmUgZ29uZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtSdW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGluIHRoZSB0ZXJtaW5hbCBhbmQgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5ZXMmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB3aGVuIHByb21wdGVkIHRvICZsdDtzdHJvbmcmZ3Q7cGVybWFuZW50bHkmbHQ7L3N0cm9uZyZndDsgZGVzdHJveSB0aGUgR0NQIHJlc291cmNlcyBjcmVhdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O0NvbmdyYXR1bGF0aW9ucyEgWW914oCZdmUganVzdCBsZXZlbGVkIHVwIGFuZCBub3cgaGF2ZSBleHBlcmllbmNlIHByb3Zpc2lvbmluZyBhbmQgZGVwbG95aW5nIGFwcGxpY2F0aW9ucyB0byBHQ1AgdXNpbmcgdGhlIG1vZGVybiBJYUMgdG9vbHMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O1RlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4gVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2lsbCBoZWxwIHlvdSBleHBhbmQgeW91ciBrbm93bGVkZ2UgZnJvbSBoZXJlOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9jbGktaW5kZXguaHRtbCZxdW90OyZndDtUZXJyYWZvcm0gR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9kb2NzL2dldC1zdGFydGVkLyZxdW90OyZndDtQdWx1bWkgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS9vcmIvcHVsdW1pL3B1bHVtaSZxdW90OyZndDtQdWx1bWkgb3JiIGZvciBDaXJjbGVDSSZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyZxdW90OyZndDtEb2NrZXIgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm0vY29tbXVuaXR5L2Jsb2IvbWFzdGVyL3R1dG9yaWFscy9nZXR0aW5nLXN0YXJ0ZWQtb24tZ2NwLXdpdGgtdGVycmFmb3JtL2luZGV4Lm1kI2dldHRpbmctcHJvamVjdC1jcmVkZW50aWFscyZxdW90OyZndDtHb29nbGUgQ2xvdWQgUGxhdGZvcm0mbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogICAgICAKICAgICAgPGl0ZW0+CiAgICAgICAgPHRpdGxlPkEgbG9vayBhdCBDaXJjbGVDSeKAmXMgaW5kdXN0cnktbGVhZGluZyBzdXBwb3J0IGZvciB0cmFuc2l0aW9uLXJlbGF0ZWQgbWVkaWNhbCBsZWF2ZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hLWxvb2stYXQtY2lyY2xlY2ktcy1pbmR1c3RyeS1sZWFkaW5nLXN1cHBvcnQtZm9yLXRyYW5zaXRpb24tcmVsYXRlZC1tZWRpY2FsLWxlYXZlLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5XZWQsIDEzIE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2EtbG9vay1hdC1jaXJjbGVjaS1zLWluZHVzdHJ5LWxlYWRpbmctc3VwcG9ydC1mb3ItdHJhbnNpdGlvbi1yZWxhdGVkLW1lZGljYWwtbGVhdmUvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RWxpemFiZXRoIEJlbGw8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7T25lIG9mIHRoZSBncmVhdCB0aGluZ3MgYWJvdXQgd29ya2luZyBhdCBDaXJjbGVDSSBpcyB0aGF0IHRoZSBjb21wYW55IGJlbGlldmVzIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGJlIGFibGUgdG8gYmUgdGhlaXIgd2hvbGUgc2VsZiBhdCB3b3JrLiBJbmNsdXNpdml0eSwgZGVtb25zdHJhdGluZyB0cnVzdCBhbmQgcmVzcGVjdCwgYW5kIG1ha2luZyBzdXJlIGV2ZXJ5b25lIGhhcyB0aGUgdG9vbHMgYW5kIHN1cHBvcnQgdGhleSBuZWVkIGFyZSBhbGwgYnVyaWVkIGRlZXAgaW4gdGhlIGN1bHR1cmUgaGVyZSDigJMgaXQgaXMgYSBiaWcgcGFydCBvZiBob3cgd2UgZGVsaXZlciB0aGUgYmVzdCB2YWx1ZSBmb3Igb3VyIGN1c3RvbWVycy4gV2l0aCB0aGF0IGluIG1pbmQsIHRoZSBjb21wYW55IHJlY2VudGx5IHJvbGxlZCBvdXQgYSBuZXcgaGVhbHRoY2FyZSBwb2xpY3kgZm9yIG91ciB0cmFuc2dlbmRlciBjby13b3JrZXJzLiBJbiBhIGZpcnN0IGZvciBjb21wYW5pZXMgaW4gdGhlIENJL0NEIHNwYWNlLCBDaXJjbGVDSSBub3cgb2ZmZXJzIGZ1bGx5LWNvbXBlbnNhdGVkIHBhaWQgbGVhdmUgZm9yIGVtcGxveWVlcyByZWNvdmVyaW5nIGZyb20gdHJhbnNpdGlvbi1yZWxhdGVkIG1lZGljYWwgcHJvY2VkdXJlcy4gVGhpcyBwb2xpY3kgaXMgYW4gZXh0cmVtZWx5IGltcG9ydGFudCBhZGRpdGlvbiB0byBDaXJjbGVDSeKAmXMgYmVuZWZpdHMgcGFja2FnZSBhbmQgYW5vdGhlciBleGFtcGxlIG9mIHRoZSBjb21wYW554oCZcyBkZWRpY2F0aW9uIHRvIHRoZSB3ZWxsLWJlaW5nIG9mIGFsbCBlbXBsb3llZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VHJhbnNpdGlvbiBpcyBhbiBpbW1lbnNlbHkgc3RyZXNzZnVsIHByb2Nlc3MsIGFuZCB0aGUgbWVkaWNhbCBwcm9jZWR1cmVzIHJlcXVpcmVkIHRvIHRyZWF0IHRoZSBkeXNwaG9yaWEgZXhwZXJpZW5jZWQgYnkgc29tZSB0cmFuc2dlbmRlciBwZW9wbGUgb2Z0ZW4gbmVlZCBhIHZlcnkgY2FyZWZ1bCBhcHByb2FjaCB0byByZWNvdmVyeS4mbHQ7L3AmZ3Q7CgombHQ7YmxvY2txdW90ZSZndDsKICAmbHQ7cCZndDtUaGUgZ29hbCBvZiB0aGUgcG9saWN5IGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRyYW5zZ2VuZGVyIGVtcGxveWVlcyBmZWVsIHN1cHBvcnRlZCBkdXJpbmcgdGhpcyBkaWZmaWN1bHQgdGltZSwgYW5kIGJ5IGVuc3VyaW5nIHRoYXQgdHJhbnNnZW5kZXIgZW1wbG95ZWVzIGhhdmUgYWNjZXNzIHRvIGFwcHJvcHJpYXRlbHkgY29tcGVuc2F0ZWQgbWVkaWNhbCBsZWF2ZSwgdGhlIGNvbXBhbnkgY2FuIHJlbW92ZSBtYWpvciBzb3VyY2VzIG9mIHVubmVjZXNzYXJ5IHN0cmVzcy4gVGhpcyB3YXksIHdlIGNhbiByZXR1cm4gdG8gd29yayBoYXBwaWVyLCBoZWFsdGhpZXIsIGFuZCBiZXR0ZXIgYWJsZSB0byBkbyBvdXIgYmVzdCBmb3Igb3VyIGN1c3RvbWVycyBhbmQgb3VyIGNvbGxlYWd1ZXMuJmx0Oy9wJmd0OwombHQ7L2Jsb2NrcXVvdGUmZ3Q7CgombHQ7aDImZ3Q7SG93IHRoaXMgcG9saWN5IGNhbWUgdG9nZXRoZXImbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgcHVzaCBmb3IgdGhlIGZvcm1hbGl6YXRpb24gb2YgdGhlc2UgYmVuZWZpdHMgZ3JldyBvdXQgb2YgdGhlIGVmZm9ydHMgb2YgbWFueSBpbmRpdmlkdWFscy4gVG9nZXRoZXIsIHRoZSB0cmFucyBlbXBsb3llZXMgYXQgQ2lyY2xlQ0kgZGlzY3Vzc2VkIHRoZSBpc3N1ZSBhbW9uZ3N0IG91cnNlbHZlcywgb3VyIG1hbmFnZXJzLCBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIHdobyBzdXBwb3J0ZWQgdXMgaW4gYnJpbmdpbmcgdGhlIHRvcGljIHRvIG91ciBleGVjdXRpdmUgdGVhbS4gQnkgYnVpbGRpbmcgY29uc2Vuc3VzLCBib3RoIHdpdGhpbiB0aGUgdHJhbnMgcG9wdWxhdGlvbiBhdCB0aGUgY29tcGFueSBhbmQgb3VyIGNpc2dlbmRlciBjb2xsZWFndWVzLCB3ZSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IGFkdm9jYXRlIGZvciBhIGZvcm1hbGl6YXRpb24gb2YsIGFuZCBhIGNvbW1pdG1lbnQgdG8sIHRoaXMgaW5kdXN0cnktbGVhZGluZyB0cmFucyBoZWFsdGhjYXJlIGJlbmVmaXQuIFF1ZWVyU3BoZXJlLCB0aGUgRW1wbG95ZWUgUmVzb3VyY2UgR3JvdXAgaGVyZSBhdCBDaXJjbGVDSSBmb3IgTEdCVFFJQSsgZW1wbG95ZWVzLCBoZWxwZWQgY29vcmRpbmF0ZSB0aGUgZWZmb3J0IHRvIGFkdm9jYXRlLCBhbmQgdGhlIHJlc3VsdCB3YXMgYSBwb2xpY3kgdGhhdCBoZWxwcyBlbnN1cmUgdHJhbnMgZW1wbG95ZWVzIGdldCB0aGUgc3VwcG9ydCB3ZSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uZSBvZiB0aGUgYmVzdCB0aGluZ3MgZm9yIG1lIGFib3V0IHdvcmtpbmcgYXQgQ2lyY2xlQ0kgaXMgaG93IGVtcG93ZXJlZCBJIGZlZWwgdG8gY2FsbCBhdHRlbnRpb24gdG8gaXNzdWVzIG9yIHByYWN0aWNlcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCBhbmQgYnJpbmcgcGVvcGxlIHRvZ2V0aGVyIHRvIHdvcmsgb24gdGhlbSwgdG8gdGhlIGJlbmVmaXQgb2YgYm90aCB0aGUgY29tcGFueSBhcyBhIHdob2xlIGFuZCB1bmRlcnJlcHJlc2VudGVkIG9yIG1hcmdpbmFsaXplZCBlbXBsb3llZXMuIFRyYW5zIHBlb3BsZSBmYWNlIHN5c3RlbWljIGJpYXM6IHRoZXJlIGFyZSBubyBmZWRlcmFsLWxldmVsIHByb3RlY3Rpb25zIGZyb20gZGlzY3JpbWluYXRpb24gb24gdGhlIGJhc2lzIG9mIGdlbmRlciBpZGVudGl0eSBpbiB0aGUgVW5pdGVkIFN0YXRlcywgYW5kIG9mIHRoZSB0cmFucyBwb3B1bGF0aW9uIHN1cnZleWVkIGJ5IHRoZSBOYXRpb25hbCBDZW50ZXIgZm9yIFRyYW5zZ2VuZGVyIEVxdWFsaXR5IGluIDIwMTUsIDgwJSBvZiB0aG9zZSB3aG8gd2VyZSBlbXBsb3llZCByZXBvcnRlZCBleHBlcmllbmNpbmcgaGFyYXNzbWVudCwgbWlzdHJlYXRtZW50LCBvciBoYWQgdG8gdGFrZSBzdGVwcyB0byBhdm9pZCB0aG9zZSBob3N0aWxlIHdvcmtwbGFjZSBiZWhhdmlvcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SSBrbm93IGZpcnN0aGFuZCBob3cgZGlmZmljdWx0IGJlaW5nIG91dCBhdCB3b3JrIGNhbiBiZS4gQXQgYSBwcmV2aW91cyBlbXBsb3llciBlYXJseSBpbiBteSB0cmFuc2l0aW9uLCBJIGZlbHQgYWxpZW5hdGVkIGFuZCBkaXNsaWtlZCBieSBjb2xsZWFndWVzIHdobyBoYWQgcHJldmlvdXNseSBiZWVuIGZyaWVuZGx5IGJlZm9yZSB0aGV5IGtuZXcgSSB3YXMgdHJhbnNnZW5kZXIuIEkgaGF2ZSBoYWQgdG8gbWluaW1pemUgdGhlIGZhY3QgdGhhdCBJ4oCZbSB0cmFucywgdG9sZXJhdGUgYWN0aXZlIGhvc3RpbGl0eSBmcm9tIGNvd29ya2Vycywgb3IgcHJldGVuZCB0aGF0IEkgd2FzIGNpc2dlbmRlciwgaW4gb3JkZXIgdG8gcHJvdGVjdCBteSBqb2IuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgQ2lyY2xlQ0ksIEkgaGF2ZSBmZWx0IHN1cHBvcnRlZCwgcmVzcGVjdGVkLCBhbmQgYWJsZSB0byBjb25maWRlbnRseSBiZSBteXNlbGYuIEkgZmVlbCBleGNlcHRpb25hbGx5IGZvcnR1bmF0ZSB0byBoYXZlIGEgd29uZGVyZnVsIGdyb3VwIG9mIHRyYW5zZ2VuZGVyIGNvbGxlYWd1ZXMgYW5kIGZyaWVuZHMgKHdlIG1ha2UgdXAgNyUgb2YgdGhlIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0ksIGFuZCAzJSBvZiB0aGUgb3JnIGluIHRvdGFsLCBjb21wYXJlZCB0byAwLjYlIG9mIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24pLCBhbmQgdG8gd29yayBzb21ld2hlcmUgd2hlcmUgb3VyIHZpZXdzIGFuZCBleHBlcmllbmNlcyBhcmUgdmFsdWVkIGF0IHRoZSBoaWdoZXN0IGxldmVscyBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0lmIHlvdSBsaWtlIHRoZSBzb3VuZCBvZiB3b3JraW5nIHNvbWV3aGVyZSB3aXRoIGEgcmVtb3RlLWZpcnN0IGN1bHR1cmUgYW5kIGNvbGxhYm9yYXRpbmcgb24gaW50ZXJlc3RpbmcgcHJvYmxlbXMgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIHRyYW5zIGZvbHggYW5kIGFsbGllcywgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9jYXJlZXJzLyZxdW90OyZndDtjaGVjayBvdXQgb3VyIG9wZW5pbmdzIGhlcmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIEdhdHNieSBhcHBzIHRvIEhlcm9rdTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtZ2F0c2J5LWFwcHMtdG8taGVyb2t1LzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDExIE1heSAyMDIwIDA5OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1nYXRzYnktYXBwcy10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9qYW1zdGFjay5vcmcvJnF1b3Q7Jmd0O0pBTVN0YWNrJmx0Oy9hJmd0OyBpcyBxdWlja2x5IGJlY29taW5nIGEgYmlnIGRlYWwgaW4gdGhlIHdvcmxkIG9mIHdlYiBkZXZlbG9wbWVudC4gSkFNU3RhY2ssIHdoaWNoIHN0YW5kcyBmb3IgSmF2YXNjcmlwdCwgQVBJcywgYW5kIEhUTUwgbWFya3VwLCBpcyBhIG1vZGVybiBhcmNoaXRlY3R1cmUgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMgYW5kIG9uZSBvZiBpdHMgbWFqb3IgZmVhdHVyZXMgaXMgdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBhIGRhdGFiYXNlIGFuZCBhIHdlYiBzZXJ2ZXIgaXMgb3B0aW9uYWwuIFRoZSBKQU1TdGFjayBhcmNoaXRlY3R1cmUgaXMgYWltZWQgYXQgZGVjb3VwbGluZyB0aGUgZnJvbnRlbmQgYW5kIHRoZSBiYWNrZW5kIGJ5IGdlbmVyYXRpbmcgYSBmcm9udGVuZCBtYWRlIG9mIEhUTUwsIENTUywgYW5kIEphdmFzY3JpcHQgYW5kIGEgYmFja2VuZCB0aGF0IGlzIHNpbXBseSBhIGNvbnRlbnQgQVBJIHJldHVybmluZyBKU09OIG9yIFhNTC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmUgb2YgdGhlIGxlYWRpbmcgSkFNU3RhY2sgcGxhdGZvcm1zIHRvZGF5IGlzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnLyZxdW90OyZndDtHYXRzYnkuanMmbHQ7L2EmZ3Q7LiBHYXRzYnkuanMgaXMgYSBmcmVlIGFuZCBvcGVuLXNvdXJjZSBmcmFtZXdvcmsgYmFzZWQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3JlYWN0anMub3JnLyZxdW90OyZndDtSZWFjdC5qcyZsdDsvYSZndDsgdGhhdCBoZWxwcyBkZXZlbG9wZXJzIGJ1aWxkIGhpZ2gtc3BlZWQgd2ViIGFwcGxpY2F0aW9ucy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHR1dG9yaWFsLCB3ZSB3aWxsIGJlIGRlbW9uc3RyYXRpbmcgaG93IHRvIGRlcGxveSBhIEdhdHNieS5qcyBzaXRlIHRvIHRoZSBwb3B1bGFyIEhlcm9rdSBwbGF0Zm9ybSBieSBidWlsZGluZyBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmUgZm9yIGl0cyBkZXBsb3ltZW50IHVzaW5nIENpcmNsZUNJLiZsdDsvcCZndDsKCiZsdDtoMiZndDtQcmVyZXF1aXNpdGVzJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIG9yZGVyIHRvIGZvbGxvdyBhbG9uZyB3aXRoIHRoaXMgcG9zdCwgeW91IHdpbGwgbmVlZCBhIGZldyB0aGluZ3MgaW4gcGxhY2U6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7ICZhbXA7Z3Q7PSAxMC4xNiBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZSAtdiZsdDsvY29kZSZndDsgb24geW91ciB0ZXJtaW5hbCB0byBwcmludCBvdXQgeW91ciB2ZXJzaW9uIG9mIE5vZGVKUyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7R2l0Jmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2l0Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsLiBUaGlzIHNob3VsZCBwcmludCBvdXQgYXZhaWxhYmxlIGdpdCBjb21tYW5kcykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuaGVyb2t1LmNvbS8mcXVvdDsmZ3Q7SGVyb2t1Jmx0Oy9hJmd0OyBhY2NvdW50Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O0dpdEh1YiZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7V2l0aCB0aGVzZSwgeW91IGFyZSByZWFkeSB0byBmb2xsb3cgYWxvbmcuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NyZWF0aW5nIGEgR2F0c2J5LmpzIHByb2plY3QmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7VG8gYmVnaW4sIHdlIG5lZWQgdG8gY3JlYXRlIG91ciBHYXRzYnkuanMgcHJvamVjdC4gSW4gYW4gYXBwcm9wcmlhdGUgbG9jYXRpb24gd2l0aGluIHlvdXIgc3lzdGVtLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGdhdHNieSBuZXcgZ2F0c2J5LWhlcm9rdS1kZXBsb3kKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBwYXJ0IG9mIHRoaXMgY29tbWFuZCBpcyB0aGUgZm9sZGVyIG5hbWUgZm9yIG15IHByb2plY3QgdG8gYmUgc2NhZmZvbGRlZCBpbi4gWW91IGNhbiB1c2UgYW55IHByZWZlcnJlZCBuYW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCB3aWxsIGltbWVkaWF0ZWx5IGJlZ2luIHNjYWZmb2xkaW5nIGEgbmV3IEdhdHNieS5qcyBwcm9qZWN0LiBZb3UgbWlnaHQgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGVpdGhlciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5YXJuJmx0Oy9jb2RlJmd0OyBvciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7IGFzIHlvdXIgcGFja2FnZSBtYW5hZ2VyLCBmb3IgdGhpcyB0dXRvcmlhbCwgZ28gd2l0aCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNjYWZmb2xkaW5nIHByb2Nlc3MgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIGdhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OykgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gYm9vdCB1cCBhIHNlcnZlciB0byBzZXJ2ZSB0aGUgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBydW4gZGV2ZWxvcAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgc2VydmUgdGhlIGFwcGxpY2F0aW9uIGF0IHRoZSBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8mbHQ7L2NvZGUmZ3Q7IGFuZCBkaXNwbGF5IHRoZSBwYWdlIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MS5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIGEgZnVuY3Rpb25hbCBHYXRzYnkuanMgc2l0ZSB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7U2V0dGluZyB1cCBhIEhlcm9rdSBBcHAgZm9yIEdhdHNieSZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBzZXQgdXAgYSBIZXJva3UgYXBwIGZvciBvdXIgR2F0c2J5IGFwcGxpY2F0aW9uLCB3ZSBuZWVkIHRvIGxvZyBpbnRvIEhlcm9rdSBhbmQgY3JlYXRlIGEgbmV3IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5Mi5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdlIG5lZWQgdG8gZ2V0IHRoZSBuYW1lIG9mIG91ciBhcHBsaWNhdGlvbiAodGhpcyB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBmb3IgdGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgYWJvdmUpIGFuZCB0aGUgQVBJIGtleSBmb3Igb3VyIEhlcm9rdSBhY2NvdW50LiBUaGUgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIEhlcm9rdSAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXZSB3aWxsIG5lZWQgdGhlc2UgdHdvIHZhbHVlcyAodGhlIGFwcCBuYW1lIGFuZCBBUEkga2V5KSBsYXRlciBvbiB0byBjcmVhdGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9uIG91ciBDaXJjbGVDSSBwcm9qZWN0IGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiBvdXIgSGVyb2t1IGFjY291bnQgaXMgdG8gaW5zdGFsbCBzb21lIG5lY2Vzc2FyeSBidWlsZHBhY2tzLiBCdWlsZHBhY2tzIGFyZSBzY3JpcHRzIHRoYXQgcnVuIHdoZW4geW91ciBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZC4gV2Ugd2lsbCBuZWVkIHR3byBidWlsZCBwYWNrcyBmb3IgdGhpcyBleGVyY2lzZTombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0O2hlcm9rdS9ub2RlanM6IFJlcXVpcmVkIGZvciBhbGwgTm9kZS5qcyBhcHBsaWNhdGlvbnMmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtoZXJva3UvaGVyb2t1LWJ1aWxkcGFjay1zdGF0aWM6IFRoZSBIZXJva3UgQnVpbGRwYWNrIFN0YXRpYyBwYWNrYWdlIChiZWNhdXNlIEdhdHNieS5qc+KAmXMgYnVpbGQgaXMgbWFkZSB1cCBvZiBzdGF0aWMgZmlsZXMsIHRoaXMgd2lsbCBoZWxwIHVzIHNlcnZlIHRoZSBzdGF0aWMgZmlsZXMgb24gdGhlIEhlcm9rdSBwbGF0Zm9ybSkmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7R28gdG8geW91ciBIZXJva3UgYXBwbGljYXRpb27igJlzICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgcGFnZSBhbmQgc2Nyb2xsIGRvd24gdG8gJmx0O3N0cm9uZyZndDtCdWlsZHBhY2tzJmx0Oy9zdHJvbmcmZ3Q7ICh5b3UgbWlnaHQgYWxyZWFkeSBzZWUgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgYnVpbGRwYWNrIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQpLiBDbGljayAmbHQ7c3Ryb25nJmd0O0FkZCBidWlsZHBhY2smbHQ7L3N0cm9uZyZndDsgYW5kIHlvdSB3aWxsIHNlZSBhIGRpYWxvZyBwb3AgdXAgc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnkzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rm9yIGVhY2ggYnVpbGRwYWNrICgmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3Uvbm9kZWpzJmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L2hlcm9rdS1idWlsZHBhY2stc3RhdGljJmx0Oy9jb2RlJmd0OykgZW50ZXIgdGhlIGlkZW50aWZpZXIgaW50byB0aGUgdGV4dCBmaWVsZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTYXZlIENoYW5nZXMmbHQ7L3N0cm9uZyZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtOb3RlOiZsdDsvc3Ryb25nJmd0OyAmbHQ7aSZndDtJZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCwgb25seSBhZGQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2hlcm9rdS9oZXJva3UtYnVpbGRwYWNrLXN0YXRpYyZsdDsvY29kZSZndDsgYnVpbGQgcGFjay4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgZG9pbmcgdGhpcyBmb3IgYm90aCBidWlsZHBhY2tzLCB5b3Ugd2lsbCBzZWUgdGhlIHR3byBidWlsZCBwYWNrcyBub3cgbGlzdGVkIGluICZsdDtzdHJvbmcmZ3Q7QnVpbGRwYWNrcyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGF0IGNvbXBsZXRlcyB0aGUgc2V0IHVwIHJlcXVpcmVkIGZvciBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1NldHRpbmcgdXAgdGhlIEdhdHNieS5qcyBwcm9qZWN0IG9uIENpcmNsZUNJJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBuZXh0IHRhc2sgaXMgdG8gZ2V0IG91ciBHYXRzYnkuanMgcHJvamVjdCBzZXQgdXAgb24gQ2lyY2xlQ0kuIFdlIG5lZWQgdG8gcHVzaCBvdXIgY29kZSB0byBhIEdpdEh1YiByZXBvc2l0b3J5IG9uIHRoZSBhY2NvdW50IHlvdSBoYXZlIGxpbmtlZCB0byB5b3VyIENpcmNsZUNJIGFjY291bnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgZ28gdG8gdGhlICZsdDtzdHJvbmcmZ3Q7QWRkIFByb2plY3RzJmx0Oy9zdHJvbmcmZ3Q7IHBhZ2UgdG8gYWRkIHRoZSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk0LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0OyB0byBiZWdpbiBzZXR0aW5nIHVwIHRoZSBwcm9qZWN0LiBUaGlzIHdpbGwgbG9hZCB0aGUgbmV4dCBzY3JlZW4uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk1LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhlIHNldHVwIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsuIEJlZm9yZSB0aGUgYnVpbGQgc3RhcnRzLCB5b3Ugd2lsbCBnZXQgYSBwcm9tcHQgdG8gZWl0aGVyIGRvd25sb2FkIGFuZCB1c2UgdGhlIHByb3ZpZGVkIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgaGF2ZSBpdCBhZGRlZCBvbiBhIHNlcGFyYXRlIGJyYW5jaCBvciBzZXQgb25lIHVwIG1hbnVhbGx5LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk2LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U2VsZWN0ICZsdDtzdHJvbmcmZ3Q7QWRkIE1hbnVhbGx5Jmx0Oy9zdHJvbmcmZ3Q7IHRvIHByb2NlZWQuIFRoaXMgd2lsbCBwcm9tcHQgYW5vdGhlciBkaWFsb2cgdGhhdCBjaGVja3MgdG8gY29uZmlybSB0aGF0IHlvdSBoYXZlIGEgY29uZmlndXJhdGlvbiBmaWxlIHNldCB1cCB0byBiZWdpbiBidWlsZGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTcucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGNvbXBsZXRlIHRoZSBzZXR1cC4gVGhlIGJ1aWxkIHdpbGwgc3VyZWx5IGZhaWwgYmVjYXVzZSB3ZSBoYXZlIG5vdCBzZXQgdXAgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB5ZXQsIHRoaXMgd2Ugd2lsbCBkbyBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiB0aGUgQ2lyY2xlQ0kgY29uc29sZSBpcyB0byBzZXQgdXAgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZW52LXZhcnMvJnF1b3Q7Jmd0O2Vudmlyb25tZW50IHZhcmlhYmxlcyZsdDsvYSZndDsgZm9yIHRoZSBwcm9qZWN0IHdlIGp1c3QgYWRkZWQuIFRoaXMgd2lsbCBlbmFibGUgaXQgdG8gaGF2ZSBhdXRoZW50aWNhdGVkIGFjY2VzcyB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIGZvciBkZXBsb3ltZW50cy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHbyB0byB5b3VyIHByb2plY3TigJlzIHNldHRpbmdzIGJ5IGNsaWNraW5nICZsdDtzdHJvbmcmZ3Q7UHJvamVjdCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgJmx0O3N0cm9uZyZndDtQaXBlbGluZXMmbHQ7L3N0cm9uZyZndDsgcGFnZSAobWFrZSBzdXJlIHlvdXIgcHJvamVjdCBpcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2plY3QpLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5OC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBuYXZpZ2F0ZSB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBwYWdlLiBPbiB0aGlzIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7RW52aXJvbm1lbnQgVmFyaWFibGVzJmx0Oy9zdHJvbmcmZ3Q7IG9uIHRoZSBzaWRlIG1lbnUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk5LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFnZSwgY2xpY2sgJmx0O3N0cm9uZyZndDtBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUgYnV0dG9uJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTAucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZGQgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Jmx0Oy9wJmd0OwombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDs6IFRoaXMgaXMgdGhlIG5hbWUgb2YgeW91ciBIZXJva3UgYXBwbGljYXRpb24gKGluIHRoaXMgY2FzZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnYXRzYnktaGVyb2t1LWRlcGxveSZsdDsvY29kZSZndDspJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7SEVST0tVX0FQSV9LRVkmbHQ7L2NvZGUmZ3Q7OiBZb3VyIEhlcm9rdSBhY2NvdW50IEFQSSBrZXkgZm91bmQgdW5kZXIgdGhlICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCZsdDsvc3Ryb25nJmd0OyB0YWIgb2YgeW91ciBIZXJva3UgYWNjb3VudCBpbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50IFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O09uY2UgYWRkZWQsIHlvdSB3aWxsIGhhdmUgZXZlcnl0aGluZyBzZXQgdXAgb24geW91ciBDaXJjbGVDSSBjb25zb2xlIGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRoZSBHYXRic3kuanMgc2l0ZSB1c2luZyBvcmJzJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy8mcXVvdDsmZ3Q7T3JicyZsdDsvYSZndDsgYXJlIHJldXNhYmxlIHBhY2thZ2VzIG9mIFlBTUwgY29uZmlndXJhdGlvbiB0aGF0IGNvbmRlbnNlIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoZXkgZW5hYmxlIGRldmVsb3BlcnMgdG8gZWFzaWx5IHVzZSBwb3dlcmZ1bCBwaXBlbGluZSBmdW5jdGlvbmFsaXRpZXMgd2l0aCBhbGwgdGhlIGJvaWxlcnBsYXRlIGFic3RyYWN0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBleGVyY2lzZSwgd2Ugd2lsbCBiZSB1c2luZyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7b3JiIGZvciBIZXJva3UmbHQ7L2EmZ3Q7IHRvIGNvbmZpZ3VyZSBvdXIgcGlwZWxpbmUgdG8gZGVwbG95IG91ciBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0IGJlZm9yZSB0aGF0LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGZpbGUgdG8gaW5zdHJ1Y3Qgb3VyIEhlcm9rdSBCdWlsZHBhY2sgU3RhdGljIHBhY2thZ2Ugb24gaG93IHRvIGRlcGxveSBhbmQgc2VydmUgb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgbmV3IGZpbGUgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3RhdGljLmpzb24mbHQ7L2NvZGUmZ3Q7IGFuZCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGUgaW50byBpdDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3sKICAmcXVvdDtyb290JnF1b3Q7OiAmcXVvdDtwdWJsaWMvJnF1b3Q7LAogICZxdW90O2hlYWRlcnMmcXVvdDs6IHsKICAgICZxdW90Oy8qKiZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJnF1b3Q7CiAgICB9LAogICAgJnF1b3Q7LyoqLmNzcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy8qKi5qcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy9zdGF0aWMvKiomcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0sCiAgICAmcXVvdDsvaWNvbnMvKi5wbmcmcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0KICB9LAogICZxdW90O2h0dHBzX29ubHkmcXVvdDs6IHRydWUsCiAgJnF1b3Q7ZXJyb3JfcGFnZSZxdW90OzogJnF1b3Q7NDA0Lmh0bWwmcXVvdDsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgbW9zdCBpbXBvcnRhbnQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaGVyZSBpcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkuIFdoZW4gR2F0c2J5LmpzIHJ1bnMgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2J1aWxkJmx0Oy9jb2RlJmd0OyBzY3JpcHQgKHRoaXMgaXMgYWxzbyB0aGUgc2NyaXB0IHVzZWQgYnkgSGVyb2t1IHRvIHJ1biB0aGUgYnVpbGQgYmVmb3JlIGRlcGxveW1lbnQpLCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1YmxpYyZsdDsvY29kZSZndDsgZm9sZGVyIGlzIGdlbmVyYXRlZCBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBjb250YWluaW5nIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb2R1Y3Rpb24gdmVyc2lvbiBpcyB3aGF0IHRoZSBob3N0IHNlcnZlcyB0byB1c2Vycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaHVzLCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkgaXMgdXNlZCB0byBwb2ludCB0byB0aGlzIGZvbGRlciBzbyB0aGF0IHRoZSBob3N0IHNlcnZlcyB0aGUgYXBwcm9wcmlhdGUgY29kZS4gT3RoZXIgcGFyYW1ldGVycyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gYXJlIHNpbXBseSBiZXN0LXByYWN0aWNlIGNvbmZpZ3VyYXRpb25zIGZvciBHYXRzYnkuanMgc2l0ZXMuIEZvciBleGFtcGxlLCBjYWNoaW5nIGd1aWRlbGluZXMgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvY2FjaGluZy8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7R29vZCEgTm93IHdlIGNhbiB3cml0ZSBvdXIgZGVwbG95bWVudCBzY3JpcHQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgdGhlIHJvb3Qgb2YgeW91ciBHYXRzYnkuanMgcHJvamVjdCwgY3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgYW5kIGEgZmlsZSB3aXRoaW4gaXQgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0Oy4gSW5zaWRlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGU6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt2ZXJzaW9uOiAyLjEKb3JiczoKICBoZXJva3U6IGNpcmNsZWNpL2hlcm9rdUAwLjAuMTAKd29ya2Zsb3dzOgogIGhlcm9rdV9kZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGhlcm9rdS9kZXBsb3ktdmlhLWdpdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGF04oCZcyBpdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgY29uZmlndXJhdGlvbiBhYm92ZSwgd2UgcHVsbCBpbiB0aGUgSGVyb2t1IG9yYiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaXJjbGVjaS9oZXJva3VAMC4wLjEwJmx0Oy9jb2RlJmd0OyB3aGljaCBhdXRvbWF0aWNhbGx5IGdpdmVzIHVzIGFjY2VzcyB0byBhIHBvd2VyZnVsIHNldCBvZiBIZXJva3Ugam9icyBhbmQgY29tbWFuZHMuIE9uZSBvZiB0aG9zZSBqb2JzIGlzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3UvZGVwbG95LXZpYS1naXQmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGRlcGxveXMgeW91ciBhcHBsaWNhdGlvbiBzdHJhaWdodCBmcm9tIHlvdXIgR2l0SHViIHJlcG8gdG8geW91ciBIZXJva3UgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIGpvYiBhbHJlYWR5IHRha2VzIGNhcmUgb2YgaW5zdGFsbGluZyB0aGUgSGVyb2t1IENMSSwgaW5zdGFsbGluZyBwcm9qZWN0IGRlcGVuZGVuY2llcywgcnVubmluZyB0aGUgYnVpbGQgc2NyaXB0LCBhbmQgZGVwbG95aW5nIHRoZSBhcHBsaWNhdGlvbi4gSXQgYWxzbyBwaWNrcyB1cCBvdXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGggZGVwbG95bWVudCB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgdGhlIG1vbWVudCBvZiB0cnV0aCAoZHJ1bSByb2xsKS4gTGV04oCZcyBjb21taXQgYWxsIHRoZSBjaGFuZ2VzIHdlIGhhdmUgbWFkZSB0byBvdXIgR2F0c2J5LmpzIHByb2plY3QgYW5kIHB1c2ggdG8gb3VyIHJlcG8gdG8gdHJpZ2dlciB0aGUgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTEucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBzZWUgdGhlIGJlaGluZC10aGUtc2NlbmVzIHpjdGlvbiBvZiB0aGUgZGVwbG95bWVudCwgeW91IGNhbiBjbGljayBpbnRvIHRoZSBidWlsZC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTIucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgZm9yIHRoZSBmaW5hbCBjb25maXJtYXRpb24gdGhhdCB0aGUgZGVwbG95bWVudCBvZiBvdXIgR2F0c2J5LmpzIHNpdGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bCwgdmlzaXQgdGhlIGRlZmF1bHQgSGVyb2t1IGFkZHJlc3MgZm9yIHRoZSBzaXRlIGF0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vW0FQUF9OQU1FXS5oZXJva3VhcHAuY29tJmx0Oy9jb2RlJmd0Oy4gSWYgeW91IHVzZWQgdGhlIHNhbWUgbmFtZSBhcyBJIGRpZCBmb3IgdGhpcyBleGVyY2lzZSwgdGhhdCB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vZ2F0c2J5LWhlcm9rdS1kZXBsb3kuaGVyb2t1YXBwLmNvbS8mbHQ7L2NvZGUmZ3Q7LiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93ICh0aGlzIG1pZ2h0IGJlIGRpZmZlcmVudCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IEdhdHNieS5qcyBzdGFydGVyIHRlbXBsYXRlLCBsZWFybiBtb3JlIGFib3V0IHN0YXJ0ZXJzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvcGx1Z2lucy10aGVtZXMtYW5kLXN0YXJ0ZXJzLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OykuJmx0Oy9wJmd0OwoKJmx0O3AgYWxpZ249JnF1b3Q7Y2VudGVyJnF1b3Q7Jmd0OwogICAmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTEzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NvbmNsdXNpb24mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2UgZGVwbG95ZWQgYSBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UgdXNpbmcgQ2lyY2xlQ0kgb3Jicy4gTm93IHdoZW4gd2UgcHVzaCBvdXIgY29kZSwgYWxsIGNoYW5nZXMgd2lsbCBiZSBkZXBsb3llZCBhdXRvbWF0aWNhbGx5LiBUaGlzIHR1dG9yaWFsIGhhcyBhbHNvIGRlbW9uc3RyYXRlZCBob3cgQ2lyY2xlQ0kgb3JicyBtYWtlcyBkZXBsb3ltZW50IGVhc3kuIEluc3RlYWQgb2Ygd3JpdGluZyBtYW55IGxpbmVzIG9mIGNvbmZpZyBuZWVkIHRvIGRlcGxveSB0byBIZXJva3UsIG9yYnMgYWJzdHJhY3QgYWxsIG9mIHRoYXQgaW50byBjb252ZW5pZW50IGNvbW1hbmRzIGZvciB1cyB0byB1c2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2hlY2sgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kgb3JicyByZWdpc3RyeSZsdDsvYSZndDsgZm9yIG9yYnMgdGhhdCBzdWl0IHlvdXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGRlcGxveW1lbnQgZGVzdGluYXRpb24gb2YgY2hvaWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyEmbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5MZXR0aW5nIGNoYW5nZSBhbmQgdW5jZXJ0YWludHkgYWR2YW5jZSB5b3VyIHNvZnR3YXJlIGFyY2hpdGVjdHVyZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VGh1LCAwNyBNYXkgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Sb2IgWnViZXI8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIGZpcnN0IGxpbmVzIG9mIENpcmNsZUNJ4oCZcyBjb2RlYmFzZSB3ZXJlIHdyaXR0ZW4gbmVhcmx5IG5pbmUgeWVhcnMgYWdvLiBMb29raW5nIGJhY2sgb24gd2hhdCB3ZSBoYXZlIGJ1aWx0IHNvIGZhciB3aXRoIHRoZSBjbGFyaXR5IG9mIGhpbmRzaWdodCBleHBvc2VzIHNvbWUgaW50ZXJlc3RpbmcgdGhlbWVzIHRoYXQgY2FuIGJlIGluc3RydWN0aXZlIGluIGlkZW50aWZ5aW5nIGFwcHJvYWNoZXMgdG8gZGVhbGluZyB3aXRoIGNoYW5nZS4gV2hpbGUgdGhleSB3ZXJlbuKAmXQgYWxsIGludGVudGlvbmFsLCBpdCBkb2VzbuKAmXQgbWFrZSB0aGVtIGFueSBsZXNzIHZhbHVhYmxlLiBUaHJlZSBzdWNoIHRoZW1lcyBhcmU6IGRlZmVycmluZyB0aGUgbmVlZCB0byBoYW5kbGUgY2hhbmdlLCB0aGlua2luZyBsaWtlIGEgcHJvZHVjdCBtYW5hZ2VyLCBhbmQga2VlcGluZyB5b3VyIGhlYWQgdXAuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NoYW5nZSBpcyBhIGNvbnN0YW50IGluIHRlY2hub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Q2hhbmdlIG1pZ2h0IGJlIG9uZSBvZiB0aGUgb25seSBjb25zdGFudHMgZW5naW5lZXJzIHdpbGwgZGVhbCB3aXRoIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGVpciBjYXJlZXJzLiBJdCBjZXJ0YWlubHkgZHJpdmVzIG1hbnkgb2Ygb3VyIG1vc3QgaW50ZXJlc3RpbmcgY2hhbGxlbmdlcy4gVGhlIG1hcmtldCBpcyBjaGFuZ2luZywgb3VyIGJ1c2luZXNzIGlzIGV2b2x2aW5nLCBvdXIgY3VzdG9tZXIgYmFzZSBpcyBncm93aW5nLCBhbmQgb3VyIHRlYW0gaXMgc2NhbGluZy4gV2UgbmVlZCB0byBidWlsZCBhIHNvbHV0aW9uIHRoYXQgbWVldHMgdG9kYXnigJlzIG5lZWRzIGJ1dCBzZXRzIHVzIHVwIGZvciB0aGUgZGVtYW5kcyBvZiB0b21vcnJvdy4gSG93IGRvIHdlIGRlc2lnbiBvdXIgc3lzdGVtcyBpbiBhIG1hbm5lciB0aGF0IGNhbiBhZGFwdCBhbmQgY2hhbmdlIHRvIHRoaW5ncyB0aGF0IGRvbuKAmXQgZXZlbiBleGlzdCB3aGVuIHdlIHN0YXJ0IGJ1aWxkaW5nIGl0PyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZXJlIGhhcyBiZWVuIGEgbG90IG9mIHRhbGsgaW4gcmVjZW50IHllYXJzIGFib3V0IGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGV2b2x2ZSBvciBtb3JlIGVhc2lseSBhZGFwdCB0byBjaGFuZ2UuIFRoZW4gd2Ugc3RhcnQgdG8gZGViYXRlIHRoZSBtZXJpdHMgb2YgdGhlc2UgYXJjaGl0ZWN0dXJlcyB1c2luZyBhIGxpbmUgb2YgdGhpbmtpbmcgdGhhdCBzdWdnZXN0cyB5b3UgYXJlIGNob29zaW5nIHRvIGhhdmUgYSDigJxNaWNyb3NlcnZpY2VzIEFyY2hpdGVjdHVyZeKAnSBvciBhbiDigJxFdmVudC1Ecml2ZW4gQXJjaGl0ZWN0dXJl4oCdIG9yIGEg4oCcU2VydmVybGVzcyBBcmNoaXRlY3R1cmUu4oCdIEkgd291bGQgcG9zaXQgdGhhdCB0aGlzIHR5cGUgb2YgZGVzY3JpcHRpb24gY3JlYXRlcyBhIGZhbHNlIHNlbnNlIG9mIGZpbmFsaXR5IHRoYXQgZG9lc27igJl0IGFjdHVhbGx5IGV4aXN0IGluIG1vc3QgcmVhbC13b3JsZCBzeXN0ZW1zLiZsdDsvcCZndDsKCiZsdDtwJmd0O091dHNpZGUgb2YgdGhlIHlvdW5nZXN0IG9mIHByb2plY3RzLCBpdOKAmXMgdW5saWtlbHkgdGhhdCB5b3UgY2FuIGRlc2NyaWJlIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCB5b3UgaGF2ZSB3aXRoIGFueSBzaW1wbGUgb25lLWxpbmVyLiBJdOKAmXMgbW9yZSBsaWtlbHkganVzdCDigJx5b3VyIGFyY2hpdGVjdHVyZSzigJ0gYW5kIGlmIHlvdeKAmXZlIGJlZW4gd29ya2luZyBvbiBpdCBmb3IgYW55IHNpZ25pZmljYW50IGFtb3VudCBvZiB0aW1lLCB5b3UgbWF5IGhhdmUgYXBwbGllZCBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0dGVybnMgYWxvbmcgdGhlIHdheSB0byBzb2x2ZSBzcGVjaWZpYyBwcm9ibGVtcy4gVGhlcmXigJlzIHByb2JhYmx5IGEgbW9ub2xpdGggc29tZXdoZXJlLCBzb21lIG51bWJlciBvZiBtaWNyb3NlcnZpY2VzLCBhIGZldyBldmVudHMsIGFuZCBhIHNlcnZlcmxlc3MgZWxlbWVudCBvciB0d28uIE9uIHRvcCBvZiBhbGwgdGhhdCwgeW91IG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YgdHJhbnNpdGlvbmluZyBzb21lIG9mIHRob3NlIHBpZWNlcyBmcm9tIG9uZSBwYXR0ZXJuIHRvIGFub3RoZXIuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0Rlc2lnbiBhcmNoaXRlY3R1cmUgdG8gc29sdmUgcHJvYmxlbXMmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gb2Z0ZW4gYXNrZWQgYnkgZm9sa3Mgd2hpY2ggYXJjaGl0ZWN0dXJlIHRoZXkgc2hvdWxkIGNob29zZSwgb3Igd2hlbiB0aGV5IHNob3VsZCBzd2l0Y2ggZnJvbSBvbmUgdG8gYW5vdGhlci4gSSBoYXZlIGEgZ3JlYXQgdGVuZGVuY3kgdG8gZGlzYXBwb2ludCB3aXRoIGFuc3dlcnMgbGlrZSDigJx3aGF0IHByb2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gc29sdmU/4oCdJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28sIHdoYXQgJmx0O3N0cm9uZyZndDtzaG91bGQmbHQ7L3N0cm9uZyZndDsgeW91IGJlIHRoaW5raW5nIGFib3V0IGFzIHlvdXIgcHJvZHVjdCBldm9sdmVzIGFuZCB5b3VyIG5lZWRzIGFyZSBjaGFuZ2luZz8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGVyZSBhcmUgYSBsb3Qgb2YgYXBwcm9hY2hlcyB0aGF0IHdlIGNhbiB1c2UgdG8gZGVzaWduIHNvZnR3YXJlIGFuZCBzeXN0ZW1zIHRvIGJlIG1vcmUgcmVzaWxpZW50IHRvIGNoYW5nZS4gVGhlIGFsbHVyZSBvZiBub3QgaGF2aW5nIHRvIGRvIGNvbXBsZXggcmVmYWN0b3Jpbmcgb3IgcmVidWlsZGluZyBkb3duIHRoZSByb2FkIGxlYWRzIHVzIHRvIHdhbnQgdG8gZGVzaWduIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG93IGNvc3Qgb2YgY2hhbmdlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2hpbGUgZ2VuZXJhbGl6ZWQgYWJzdHJhY3Rpb25zIGFuZCByZXVzYWJsZSBjb21wb25lbnRzIGFyZSBhdCB0aGUgY29yZSBvZiByZWR1Y2luZyB0aGUgaW1wYWN0IG9mIGNoYW5nZSwgdGhleSBhcmUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Jsb2cuY29kaW5naG9ycm9yLmNvbS90aGUtZGVsdXNpb24tb2YtcmV1c2UvJnF1b3Q7Jmd0O2hhcmQgdG8gZ2V0IHJpZ2h0IGluIHRoZSBmaXJzdCBwbGFjZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0l04oCZcyBoYXJkIHRvIHByZWRpY3QgdGhlIGZ1dHVyZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtBdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHRlY2huaWNhbCBsYW5kc2NhcGUgaXMgY2hhbmdpbmcsIHlvdXIgYnVzaW5lc3MgYW5kIHlvdXIgb3JnYW5pemF0aW9uIGFyZSBib3RoIGV2b2x2aW5nIGFzIHdlbGwuIFRoZXNlIGJvdGggaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiB5b3VyIGFyY2hpdGVjdHVyYWwgZGVjaXNpb25zLiBUaGUgc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlIHRoYXQgeW91IGFyZSB1bmRlcmdvaW5nIHdpbGwgaW5mbHVlbmNlIHRoZSBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUgYmVzdCBzdWl0ZWQgdG8gYWJzb3JiIHRob3NlIGNoYW5nZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGVhcmx5IGRheXMgb2YgYSBwcm9qZWN0IG9yIGNvbXBhbnksIGl04oCZcyBwb3NzaWJsZSB0byBtYWtlIHN3ZWVwaW5nIGZ1bmRhbWVudGFsIHNoaWZ0cyBpbiB0aGUgb2JqZWN0aXZlLiBFeHRyZW1lLCBidXQgbm90IHVuY29tbW9uLCBleGFtcGxlcyBpbmNsdWRlIFRpbnkgU3BlY2sgYmVjb21pbmcgU2xhY2sgYW5kIE9kZW8gYmVjb21pbmcgVHdpdHRlci4gV2hlbiB0aGUgZG9tYWluIG9mIHlvdXIgYnVzaW5lc3MgY2FuIG1vdmUgdGhhdCBkcmFzdGljYWxseSwgdGhlIGNsZWFuIGJvdW5kYXJpZXMgb2YgeW91ciBEREQgbW9kZWwgYXJlIG91dCB0aGUgd2luZG93LiBJbiBhIHNldCBvZiBtaWNyb3NlcnZpY2VzLCB0aGVzZSBib3VuZGFyaWVzIHdpbGwgYmUgY29kaWZpZWQsIHNvIGlmIHlvdSBoYXZlIHRvIGN1dCB0aHJvdWdoIHRoZW0sIHlvdeKAmWxsIGxpa2VseSBiZSB0aGFua2Z1bCBmb3IgYSBtb3JlIHBsaWFibGUgbW9ub2xpdGguJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB5b3UgZmluZCBwcm9kdWN0IC8gbWFya2V0IGZpdCwgeW91ciBwcmlvcml0aWVzIHdpbGwgc2hpZnQgdG93YXJkcyBzdXBwb3J0aW5nIHlvdXIgcmFwaWQgZ3Jvd3RoLiBXaXRoIHN5c3RlbSBzY2FsZSBhcyBhIGRyaXZlciBvZiBjaGFuZ2UsIHRoZSBhYmlsaXR5IHRvIHJlc3BvbmQgdG8gY2hhbmdlIGlzIG9mdGVuIHRpZWQgdG8gdGhlIGluZGVwZW5kZW5jZSBvZiBzeXN0ZW1zIGJhc2VkIG9uIHRoZWlyIG9wZXJhdGlvbmFsIGNoYXJhY3RlcmlzdGljcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGF0IHNjYWxpbmcgcGhhc2UsIHlvdeKAmWxsIGhhdmUgYSBsYXJnZXIgb3JnYW5pemF0aW9uIGFuZCBmYXIgbW9yZSB0ZWFtcy4gSWYgeW914oCZcmUgbHVja3kgeW914oCZbGwgYmUgYmFjayB0byBzdXN0YWluYWJsZSBwcm9kdWN0IGV2b2x1dGlvbi4gVGhlbiB0aGUgY29zdCBvZiBjaGFuZ2Ugd2lsbCBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIGFtb3VudCBvZiBjcm9zcy10ZWFtIGNvb3JkaW5hdGlvbiByZXF1aXJlZCB0byBtYWtlIGEgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtoMiZndDtEZWZlciByZXNwb25zZSB0byBjaGFuZ2UmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7V2hlbiBhbiBpbmRpdmlkdWFsIG9yIHRlYW0gaGFzIGEgcHJvYmxlbSB0aGV54oCZcmUgdHJ5aW5nIHRvIHNvbHZlLCB0aGV5IGdlbmVyYWxseSBzdGFydCBvZmYgd2l0aCBhIHByZXR0eSBzaW1wbGUgZGlyZWN0aXZlIOKAkyBsZXTigJlzIGJ1aWxkIHRvIHNvbHZlIHRoYXQgcHJvYmxlbS4gV2hhdOKAmXMgdGhlIG1vc3QgZWZmZWN0aXZlIGFyY2hpdGVjdHVyZSB3ZSBjYW4gdXNlIHRvIGJ1aWxkIGEgdmlhYmxlIHByb2R1Y3QgYXQgdGhlIGxvd2VzdCBjb3N0PyBUaGlzIGlzIGdlbmVyYWxseSB0cnVlIHdoZXRoZXIgaXTigJlzIGEgc3RhcnR1cCBvciBhIGh1Z2UgbXVsdGluYXRpb25hbCBjb3Jwb3JhdGlvbi4gQSBuZXcgcHJvamVjdCB3aWxsIGJlIGJ1aWx0IG9uIGEgc3lzdGVtIHRoYXTigJlzIHJlbGF0aXZlbHkgbmV3LCBhbmQgd2lsbCBiZSB1bmxpa2VseSB0byBoYXZlIHByb2R1Y3QtbWFya2V0IGZpdCBiZWNhdXNlIHRoZSBjb21wYW55IHdvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCBpdHMgYnVzaW5lc3MgZG9tYWluIHlldCwgYW5kIHdvbuKAmXQga25vdyB3aGVyZSB0aGUgcHJpbWFyeSBzb3VyY2VzIG9mIGNoYW5nZSB3aWxsIGNvbWUgZnJvbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHNpdHVhdGlvbiwgZGVzaWduaW5nIGZvciBjaGFuZ2UgYmVjb21lcyBhIGxvdCBoYXJkZXIuIElmIGl04oCZcyBhIGxvdCBtb3JlIGV4cGVuc2l2ZSB0byBtYWtlIHRoaW5ncyByZXNpbGllbnQgdG8gY2hhbmdlIGFuZCB5b3UgY2Fu4oCZdCB0ZWxsIHlldCB3aGljaCBwYXJ0cyBvZiB5b3VyIHN5c3RlbSB3aWxsIGNoYW5nZSwgaG93IGRvIHlvdSBtYWtlIHRoZSBkZWNpc2lvbiBhYm91dCB3aGVyZSB0byBtYWtlIHRoYXQgaW52ZXN0bWVudD8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBjb3VudGVyaW50dWl0aXZlIGFzIGl0IG1heSBzb3VuZCwgdGhlIGFuc3dlciBpcyBwcm9iYWJseSBub3doZXJlLiBBdCBsZWFzdCBub3QgeWV0LiBJbnN0ZWFkIHdhdGNoIGNoYW5nZSBjbG9zZWx5IGFuZCBidWlsZCBpbiBhIHdheSB0aGF0IG1pbmltaXplcyB0aGUgY29zdCBvZiBiZWluZyB3cm9uZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiDigJwmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9zaG9wLm9yZWlsbHkuY29tL3Byb2R1Y3QvOTc4MDU5NjUyMjcwNC5kbyZxdW90OyZndDs5NyBUaGluZ3MgRXZlcnkgU29mdHdhcmUgQXJjaGl0ZWN0IFNob3VsZCBLbm93Jmx0Oy9hJmd0O+KAnSBLZXZsaW4gSGVubmV5LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbWVkaXVtLmNvbS9Aa2V2bGluaGVubmV5L2h0dHBzLW1lZGl1bS1jb20ta2V2bGluaGVubmV5LXVzZS11bmNlcnRhaW50eS1hcy1hLWRyaXZlci00OTNlYmViZDU3NWQmcXVvdDsmZ3Q7ZGVzY3JpYmVzIGFuIGltcG9ydGFudCBhcHByb2FjaCB0byB0aGlua2luZyBhYm91dCB1bmNlcnRhaW50eSZsdDsvYSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2Jsb2NrcXVvdGUmZ3Q7CiAgJmx0O3AmZ3Q74oCcVGhlIHByZXNlbmNlIG9mIHR3byBvcHRpb25zIGlzIGFuIGluZGljYXRvciB0aGF0IHlvdSBuZWVkIHRvIGNvbnNpZGVyIHVuY2VydGFpbnR5IGluIHRoZSBkZXNpZ24uIFVzZSB0aGUgdW5jZXJ0YWludHkgYXMgYSBkcml2ZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHlvdSBjYW4gZGVmZXIgY29tbWl0bWVudCB0byBkZXRhaWxzIGFuZCB3aGVyZSB5b3UgY2FuIHBhcnRpdGlvbiBhbmQgYWJzdHJhY3QgdG8gcmVkdWNlIHRoZSBzaWduaWZpY2FuY2Ugb2YgZGVzaWduIGRlY2lzaW9ucy4gSWYgeW91IGhhcmR3aXJlIHRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQsIHlvdeKAmXJlIG1vcmUgbGlrZWx5IHRvIGJlIHN0dWNrIHdpdGggaXQg4oCTIGluY2lkZW50YWwgZGVjaXNpb25zIGJlY29tZSBzaWduaWZpY2FudCBhbmQgdGhlIHNvZnRuZXNzIG9mIHRoZSBzb2Z0d2FyZSBoYXJkZW5zLuKAnSZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7VGhpcyBmcmFtaW5nIGlzIGdyZWF0IGZvciBleHBsaWNpdCBkZWNpc2lvbnMsIGJ1dCB3aGF0IGlmIHlvdSBkb27igJl0IGtub3cgeW914oCZcmUgbWFraW5nIGEgY2hvaWNlPyZsdDsvcCZndDsKCiZsdDtwJmd0O01hbnkgdGltZXMsIHRoZSBjaG9pY2UgaXNu4oCZdCBldmVuIHZpc2libGUgeWV0LCBidXQgd2lsbCByZXZlYWwgaXRzZWxmIGxhdGVyLiBJbiB0aGVzZSBzaXR1YXRpb25zLCB0aGUgYW5zd2VyIGlzIG5vdCB0byBvdmVyIGdlbmVyYWxpemUsIGJ1aWxkaW5nIGFic3RyYWN0aW9ucyBldmVyeXdoZXJlIGp1c3QgaW4gY2FzZS4gSW5zdGVhZCwga2VlcCB0aGluZ3MgYXMgc2ltcGxlIGFzIHBvc3NpYmxlIHNvIHlvdSBjYW4gdW5kZXJzdGFuZCB0aGVtIGxhdGVyIGlmIHlvdSBoYXZlIHRvIG1ha2UgYSBjaGFuZ2UuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O1NpbXBsaWNpdHkgbWFrZXMgaXQgZWFzaWVyIHRvIGFkYXB0IHRvIGNoYW5nZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZWFybHkgZGF5cywgdGhlIENpcmNsZUNJIGFwcGxpY2F0aW9uIHdhcyBhIG1vbm9saXRoIHRoYXQgdG9vayBhIGN1c3RvbWVy4oCZcyBidWlsZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRhdGEgYW5kIHB1c2hlZCBpdCBpbnRvIG9uZSBvZiBzZXZlcmFsIExYQyBjb250YWluZXJzLiBFdmVyeSBjb250YWluZXIgdGhhdCB3ZSBzcHVuIHVwIHdhcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgc2FtZSBpbWFnZSB0aGF0IGNvbnRhaW5lZCBldmVyeXRoaW5nIHRoYXQgd2UgdGhvdWdodCBhbnlvbmUgd291bGQgZXZlciB3YW50IGluIHRoZWlyIHRlc3QgZW52aXJvbm1lbnQuIEluIGhpbmRzaWdodCwgdGhpcyBzb3VuZHMgbGlrZSBhIHRlcnJpYmxlIGlkZWEsIGJ1dCBhdCB0aGUgdGltZSwgaXQgd2FzIGZhbnRhc3RpYy4gSXQgd2FzIHNpbXBsZSB0byBtYWludGFpbiBhbmQgc3VwcG9ydGVkIHRoZSBuZWVkcyBvZiBvdXIgZWFybHkgY3VzdG9tZXJzLCBtYW55IG9mIHdob20gd2VyZSBidWlsZGluZyBSYWlscyBtb25vbGl0aHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXMgdGltZSBwYXNzZWQgYW5kIG91ciBjdXN0b21lciBiYXNlIGdyZXcsIHNvIGRpZCB0aGUgZGl2ZXJzaXR5IG9mIHRoZWlyIG5lZWRzIGluIHRlcm1zIG9mIHRlc3QgZW52aXJvbm1lbnRzLiBVcGdyYWRlZCB2ZXJzaW9ucyBvZiB0aGVpciB1bmRlcmx5aW5nIGRhdGFiYXNlcywgbm92ZWwgbmV3IGRldmVsb3BtZW50IGZyYW1ld29ya3MsIGV2ZW4gbmV3IG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbnMgYmVjYW1lIG5lY2Vzc2FyeS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgb3JpZ2luYWwgY29udGFpbmVyIG1hbmFnZW1lbnQgaW4gQ2lyY2xlQ0kgd2FzbuKAmXQgZGVzaWduZWQgaW4gYSB3YXkgdGhhdCBhbGxvd2VkIHVzIHRvIGFkYXB0IGVhc2lseSB0byB0aGVzZSBjaGFuZ2luZyBuZWVkcy4gQnV0IGl0IHdhcyBmYWlybHkgc2ltcGxlLiBTbyB3aGVuIHdlIHNldCBvdXQgdG8gc29sdmUgdGhlc2UgcHJvYmxlbXMsIHdlIGtuZXcgd2hlcmUgdG8gc3BsaWNlIGluIGEgbmV3IGFwcHJvYWNoIGFuZCBpdCB3YXMgbWluaW1hbCB3b3JrIHRvIGVuYWJsZSB0aGF0IHNwbGljaW5nLiBXZSBhbHNvIGRpZG7igJl0IGhhdmUgdG8gdW5yYXZlbCBhIHBvb3IgZ2VuZXJhbGl6YXRpb24gdGhhdCBkaWRu4oCZdCBzdXBwb3J0IG91ciBuZXcgcHJvYmxlbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3aGlsZSBzZWVtaW5nbHkgc2ltcGxlLCB3ZSB3ZXJlIGZpdmUgeWVhcnMgaW50byBzdWNjZXNzZnVsIGdyb3d0aCBhcyBhIGNvbXBhbnkgbWVldGluZyB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycyBvbiB0aGF0IHNpbXBsZSBzeXN0ZW0gYmVmb3JlIG91ciBmaXJzdCBjdXN0b21lcnMgdGVzdGVkIGl0cyByZXBsYWNlbWVudC4gSW4gdGhvc2UgZml2ZSB5ZWFycywgRG9ja2VyIHdhcyBjcmVhdGVkLCBhcyB3YXMgSGFzaGlDb3Jw4oCZcyBOb21hZC4gQ29tYmluZWQsIHRob3NlIHRvb2xzIGVsaW1pbmF0ZWQgaHVnZSBwb3J0aW9ucyBvZiB0aGUgd29yayBuZWNlc3NhcnkgdG8gZ2V0IHRoZSBmbGV4aWJsZSBhbmQgc2NhbGFibGUgZW52aXJvbm1lbnRzIHRoYXQgd2Ugc3VwcG9ydCBmb3IgY3VzdG9tZXJzIHRvZGF5LiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28sIGFzIHdlIHJldG9vbGVkIHRoZSBzeXN0ZW0gdG8gYWRhcHQgdG8gdGhlIGNoYW5nZWQgbWFya2V0IHdlIHdlcmUgaW4gYSBwb3NpdGlvbiB0byBhc2sg4oCcSG93IGRvIHdlIGRvIHRoaXMgaW4gYSB3YXkgdGhhdCBiZXR0ZXIgcG9zaXRpb25zIHVzIGZvciBpbmNyZW1lbnRhbCBjaGFuZ2U/4oCdIEl0IHdvdWxkIGJlIGRpZmZpY3VsdCB0byBvdmVyc3RhdGUgaG93IG11Y2ggdmFsdWUgdGhhdCBmaXZlIHllYXJzIG9mIGV4cGVyaWVuY2UgcHJvdmlkZWQgd2hlbiBkZXNpZ25pbmcgYSBzb2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdCBzb3VuZHMgd2VpcmQgYW5kIGdyb3NzbHkgdW5mYWlyIHRvIHNheSB0aGlzLCBidXQgbW9zdCBvZiB0aGUgdGltZSB3ZSBkb27igJl0IGV2ZW4ga25vdyB0aGF0IHdl4oCZcmUgbWFraW5nIGEgbW9udW1lbnRhbCBkZXNpZ24gZGVjaXNpb24gYmVjYXVzZSB0aGUgYWx0ZXJuYXRlIHBhdGggaGFzbuKAmXQgc2hvd24gdXAgeWV0LiBIb3cgZG8geW91IGd1YXJkIGFnYWluc3QgdGhpcz8mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7RGVmZXIsIGRlZmVyLCBkZWZlciZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUaGUgY29ycmVjdCBzb2x1dGlvbnMgaGF2ZSBhIGhhYml0IG9mIHJldmVhbGluZyB0aGVtc2VsdmVzIGlmIHlvdSBjYW4gZmluZCBhIHdheSB0byB3YWl0IGxvbmcgZW5vdWdoLiBUZWNobm9sb2d5IGdhaW5zIHRyYWN0aW9uIG9yIGRpZXMuIElmIHlvdSBjaG9zZSBhIGNvbnRhaW5lciBvcmNoZXN0cmF0aW9uIGVuZ2luZSBpbiAyMDE2LCB0aGVyZeKAmXMgYSByb3VnaGx5IDIwJSBjaGFuY2UgdGhhdCB5b3Ugd291bGQgaGF2ZSBjaG9zZW4gS3ViZXJuZXRlcy4gVGhhdCBtZWFucyBieSB0aGUgYmVnaW5uaW5nIG9mIDIwMTgsIGFsbW9zdCA4MCUgb2YgY29tcGFuaWVzIHdlcmUgc3dpdGNoaW5nLiBUaG9zZSBhcmUgbm90IGdyZWF0IG9kZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28gZGVmZXJyaW5nIGNhbiBiZSBnb29kLiBEZWZlcnJpbmcgdG8gdGhlIHBvaW50IG9mIGNyZWF0aW5nIGEgY3Jpc2lzIGlzIG5vdC4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7VGhpbmsgbGlrZSBhIHByb2R1Y3QgbWFuYWdlciZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3VyIGFyY2hpdGVjdHVyZSBpcyBhIGxlYWt5IGFic3RyYWN0aW9uLiBXaGlsZSBDaXJjbGVDSSBpcyBwcm9iYWJseSBhbiBleHRyZW1lIGV4YW1wbGUgb2YgdGhpcyBjYXNlIGR1ZSB0byB0aGUgYWNjZXNzIG91ciBjdXN0b21lcnMgaGF2ZSB0byBzeXN0ZW1zIGluIG91ciBwbGF0Zm9ybSwgdGhlcmUgaXMgYWx3YXlzIHNvbWUgaW1wbGljYXRpb24gZm9yIGN1c3RvbWVycyBvZiB0aGUgZGVjaXNpb25zIHlvdSBtYWtlIGluIGRlZmluaW5nIHlvdXIgYXJjaGl0ZWN0dXJlLiBSZWNvZ25pemluZyB0aGlzIGltcGFjdCBhbmQgYmVpbmcgYWJsZSB0byBjb2hlcmVudGx5IGRpc2N1c3MgYXBwcm9hY2hlcyBhbmQgYWx0ZXJuYXRpdmVzIGlzIGEgaHVnZSBhc3NldCB0aGF0IGFuIGVuZ2luZWVyIGNhbiBicmluZyB0byB0aGVpciBQTSBhbmQgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaGlsZSB3ZSB3ZXJlIHdpdG5lc3NpbmcgYWxsIG9mIHRoaXMgY2hhbmdlIGluIGhvdyBvdXIgY3VzdG9tZXJzIHdlcmUgYnVpbGRpbmcgc29mdHdhcmUsIG9uZSB0aGluZyB3ZSBpZ25vcmVkIGZvciB0b28gbG9uZyB3YXMgdGhlIHJpc2Ugb2YgRG9ja2VyLiBEb2NrZXIgZGlkbuKAmXQgZXZlbiBleGlzdCB3aGVuIENpcmNsZUNJIHN0YXJ0ZWQgaW4gMjAxMSwgdGhlbiBieSAyMDE0IGl0IHdhcyBldmVyeXdoZXJlLiBNYW55IG9mIG91ciBjdXN0b21lcnMgaGFkIHN0YXJ0ZWQgYnVpbGRpbmcgRG9ja2VyIGltYWdlcyBhcyBwYXJ0IG9mIHRoZWlyIGJ1aWxkIHRvIHByZXBhcmUgZm9yIGRlcGxveS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtEb2NrZXIgd2FzIG9yaWdpbmFsbHkgYnVpbHQgb24gdG9wIG9mIExYQywgYW5kIHRoYXQgbWVhbnQgaW4gdGhvc2UgZWFybHkgZGF5cyB3ZSBjb3VsZCBzdXBwb3J0IHRoZSB1c2Ugb2YgRG9ja2VyIGNvbW1hbmRzIHRvIGJ1aWxkIGltYWdlcyBhbmQgcHVzaCB0aGVtIHRvIHJlcG9zaXRvcmllcyBhbGwgaW5zaWRlIG9mIG9uZSBvZiBvdXIgTFhDIGNvbnRhaW5lcnMuIEluIDIwMTQsIERvY2tlciBsYXVuY2hlZCBzb21ldGhpbmcgY2FsbGVkIGxpYmNvbnRhaW5lciBhbmQgdGhleSBwdWxsZWQgYXBhcnQgdGhlIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBzeXN0ZW0gYW5kIGNyZWF0ZWQgZXhlY3V0aW9uIGRyaXZlcnMsIHdoaWNoIHNvb24gbGVkIHRvIHRoZSBkZXByZWNhdGlvbiBvZiB0aGUgTFhDIGRyaXZlci4gRGlzYXBwb2ludGluZywgYnV0IGl0IHN0aWxsIHdvcmtlZC4gVGhlbiBEb2NrZXIgZGVsZXRlZCBhbGwgTFhDIHN1cHBvcnQuIFRoYXQgd2FzIGJhZC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QWx3YXlzIHRoaW5rIGFib3V0IHVzZXJzJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVycyBhbmQgYXJjaGl0ZWN0cywgd2Ugc2F3IHRoaXMgY29taW5nLCBhbmQgZnJhbmtseSwgaXQgd2FzIHVuZGVyIHRoZSByYWRhciBvZiBvdXIgcHJvZHVjdCB0ZWFtLiBPdXIgbm9uLXRlY2huaWNhbCBwcm9kdWN0IGZvbGtzIGRpZG7igJl0IG5lY2Vzc2FyaWx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBidXQgb3VyIGVuZ2luZWVycyB3ZXJlIHRhbGtpbmcgYWJvdXQgaXQgZXZlcnkgZGF5LiBTbyBhcyBhbiBlbmdpbmVlciwgYW4gYXJjaGl0ZWN0LCBvciBhIGxlYWRlciBpbiB0ZWNobm9sb2d5LCB5b3UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBwcm9kdWN0IGFuZCB3b3JraW5nIHdpdGggeW91ciBwcm9kdWN0IG1hbmFnZXJzIHRvIGVuc3VyZSBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGUgaW1wbGljYXRpb25zIG9mIHRlY2huaWNhbCBjaG9pY2VzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0l04oCZcyBpbXBvcnRhbnQgdG8gc2VwYXJhdGUgdGhpcyBkaXNjdXNzaW9uIGZyb20gdGVjaG5pY2FsIGludmVzdG1lbnRzLiBUaGVyZSBpcyBhYnNvbHV0ZWx5IGEgcGxhY2UgZm9yIHRoaXMgdHlwZSBvZiBpbnZlc3RtZW50LCBhbmQsIGFuIGFyZ3VtZW50IHRoYXQgZnJhbWluZyB0aGVzZSBpbnZlc3RtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB5b3UgZnJhbWUgcHJvZHVjdCBpbnZlc3RtZW50cyBtYWtlcyBpdCBtdWNoIGVhc2llciB0byBtYWtlIHRyYWRlb2ZmIGRlY2lzaW9ucy4gSG93ZXZlciwgaWRlbnRpZnlpbmcgdGhlIGRpcmVjdGx5IGN1c3RvbWVyLXZpc2libGUgZmVhdHVyZSBpbXBhY3Qgb2YgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBtb3JlIGNvbW1vbmx5IGRpc2N1c3NlZCBpbXBhY3RzIG9mIGNvc3QsIHBlcmZvcm1hbmNlLCBzZWN1cml0eSwgZXRjLiZsdDsvcCZndDsKCiZsdDtwJmd0O0J1aWxkaW5nIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHlvdXIgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgdmFsdWUgYWNoaWV2ZWQgYnkgeW91ciBjdXN0b21lcnMgd2lsbCBwdXQgeW91IGluIGEgcG9zaXRpb24gdG8gbWFrZSBtb3JlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB3aGF0IGFuZCBob3cgdG8gYnVpbGQgYXMgeW91ciBidXNpbmVzcyBldm9sdmVzLiBUaGVuIHlvdSBjYW4gZm9jdXMgb24gZ2V0dGluZyBhaGVhZCBvZiB0aGF0IGV2b2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7S2VlcCB5b3VyIGhlYWQgdXAmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gQ2FuYWRpYW4gYW5kLCB1bnN1cnByaXNpbmdseSwgSSBncmV3IHVwIHBsYXlpbmcgaWNlIGhvY2tleS4gVGhyb3VnaG91dCBteSBjaGlsZGhvb2QsIEkgc3BlbnQgYW4gZW5kbGVzcyBhbW91bnQgb2YgdGltZSBhdCBwcmFjdGljZSBqdXN0IHNrYXRpbmc6IGZvcndhcmRzLCBiYWNrd2FyZHMsIHR1cm5pbmcsIHN0b3BwaW5nLCBmaWd1cmUgZWlnaHRzIGFyb3VuZCBjb25lcy4gVGhlbiBjYW1lIHN0aWNrIGhhbmRsaW5nLiBUaGUgaWRlYSB3YXMgdG8gaGF2ZSB0aGUgbW92ZW1lbnQgb24gdGhlIGljZSBiZWNvbWUgc2Vjb25kIG5hdHVyZSBzbyBJIGNvdWxkIGZvY3VzIG9uIHdoYXQgcmVhbGx5IG1hdHRlcmVkOiBzZWVpbmcgdGhlIHBsYXkgZGV2ZWxvcCwgZ2V0dGluZyBpbnRvIHNwYWNlLCBhbmQgdHJ5aW5nIHRvIHNjb3JlLiBNYWtlIHRoZSBmdW5kYW1lbnRhbHMgYWxtb3N0IGVmZm9ydGxlc3Mgc28geW91IGNhbiBwdXQgeW91ciBlbmVyZ3kgaW50byB0aGUgbm92ZWwgc3R1ZmYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gc29mdHdhcmUsIHdlIGhhdmUgYSBiYWQgdGVuZGVuY3kgdG8gbWFrZSB0aGUgZnVuZGFtZW50YWxzIGEgbG90IGhhcmRlciB0aGFuIHRoZXkgc2hvdWxkIGJlIGJ5IGFkb3B0aW5nIG5ldyB0ZWNobm9sb2d5IHRoYXQgd2UgdGhpbmsgaXMgZ29pbmcgdG8gYmUgZ2FtZSBjaGFuZ2luZywgYnV0IGVuZHMgdXAgaGF2aW5nIG1vZGVzdCB1cHNpZGUgaWYgYW55LiBUbyBtYWtlIHRoaW5ncyB3b3JzZSwgdGhlIGRvd25zaWRlIGlzIG9mdGVuIHVuYm91bmRlZCBhcyB3ZSBnZXQgb3VyIHRlYW1zIHVwIHRoZSBsZWFybmluZyBjdXJ2ZSwgZmluZCB1bnRlc3RlZCBlZGdlIGNhc2VzIGR1cmluZyBwcm9kdWN0aW9uIGluY2lkZW50cywgYW5kIGludmVudCBvdXIgb3duIOKAnGJlc3QgcHJhY3RpY2VzLuKAnSBBIHdvcmxkIHdoZXJlIFN0YWNrIE92ZXJmbG93IGhhcyBubyBhbnN3ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1doaWxlIHdl4oCZcmUgcHV0dGluZyB0aGlzIGVmZm9ydCBpbnRvIG91ciBub3ZlbCB0ZWNoLCB3ZeKAmXJlIG5vdCBmb2N1c2luZyBvbiBob3cgb3VyIHN5c3RlbXMgbmVlZCB0byBldm9sdmUgdG8gbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QSB0aW1lIHNpbXBsaWNpdHkgd291bGQgaGF2ZSBoZWxwZWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Q2lyY2xlQ0kgaXMgYSBDbG9qdXJlIHNob3AgYW5kLCBpbiBvdXIgZWFybHkgZGF5cywgd2UgZGVjaWRlZCB3ZeKAmWQgYmUgYmV0dGVyIGF0IGZyb250IGVuZCBkZXZlbG9wbWVudCBpZiB3ZSB1c2VkIHRoZSBzYW1lIGxhbmd1YWdlIHRoYXQgd2UgdXNlZCBpbiB0aGUgYmFja2VuZC4gU28gd2UgYWRvcHRlZCBPbSwgYSBDbG9qdXJlU2NyaXB0IHdyYXBwZXIgYXJvdW5kIFJlYWN0LiBBIGZldyB5ZWFycyBsYXRlciwgRGF2aWQgTm9sZW4sIHRoZSBwZXJzb24gd2hvIHN0YXJ0ZWQgT20sIGRlY2lkZWQgaGUgZGlkbuKAmXQgbGlrZSB0aGUgbW9kZWwgc28gaGUgcmVwbGFjZWQgaXQgd2l0aCBzb21ldGhpbmcgaW5jb21wYXRpYmxlIGNhbGxlZCBPbSBOZXh0LiBXZSB0cmllZCB0byBtaWdyYXRlIGluY3JlbWVudGFsbHkgdG8gT20gTmV4dCBhbmQgZW5kZWQgdXAgd2l0aCBhbiBvdmVybHkgY29tcGxleCBmcm9udGVuZCB3aXRoIHR3byBzdGF0ZSBtb2RlbHMgYW5kIG1hc3NpdmUgb3ZlcmhlYWQgdG8gZXZlcnkgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGVuZGVkIHVwIHJld3JpdGluZyBpdCBpbiBSZWFjdC4gSW4gcmV0cm9zcGVjdCwgT20gaGFkIGJvdGggaGlnaCByaXNrIGFuZCBoaWdoIGNvc3QgdG8gY2hhbmdlIGFuZCB3ZSBwYWlkIHRoZSBwcmljZS4gQW5kIHdlIHNwZW50IHRoYXQgdGltZSBsb29raW5nIGF0IG91ciBmZWV0LCBub3QgYWhlYWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm8gY29tcGFueSBoYXMgZXZlciB3b24gYmVjYXVzZSBvZiBhbiBhbWF6aW5nbHkgbm92ZWwgb3IgZXNvdGVyaWMgdGVjaG5vbG9neSBjaG9pY2UuIFRoZXJlIGlzIGFuIGVuZGxlc3MgbGlzdCwgaG93ZXZlciwgb2YgY29tcGFuaWVzIHRoYXQgaGF2ZSB3b24gYmVjYXVzZSB0aGV5IGNhbiBtb3ZlIHF1aWNrbHkgYW5kIHdpdGggYWdpbGl0eSwgYWRhcHRpbmcgdG8gY2hhbmdlIGFzIGl0IGhhcHBlbnMuIFRlY2hub2xvZ3kgc2hvdWxkIGJlIGFuIGFjY2VsZXJhdG9yIGhlbHBpbmcgdXMgbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4gV2VsbC11bmRlcnN0b29kLCBwcm9kdWN0aW9uLXRlc3RlZCB0b29scyBhcmUgZmFyIG1vcmUgbGlrZWx5IHRvIGZpdCB0aGF0IGJpbGwuIEFzIG15IGNvbGxlYWd1ZSBCZWFyIHNheXMsIOKAnElmIGEgdG9vbCBpc27igJl0IGhlbHBpbmcsIGl04oCZcyBub3QgYSB0b29sLCBpdOKAmXMgYSBjaG9yZS4gRHJvcCBpdC7igJ0mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7Q29uY2x1c2lvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtVbmZvcmVzZWVuIGNoYW5nZSBpcyB0b3Atb2YtbWluZCBmb3Igc28gbWFueSBvZiB1cyByaWdodCBub3csIGFuZCBpdOKAmXMgbW9yZSBvYnZpb3VzIHRoYW4gZXZlciB0aGF0LCBpbiBidXNpbmVzcywgbm9ib2R5IGNhbiBwcmVkaWN0IHRoZSBmdXR1cmUuIEl04oCZcyBhIHNhZmUgYmV0IHRoYXQgZm9sa3MgYXQgR00gZGlkbuKAmXQgc3RhcnQgdGhlIHllYXIgdGhpbmtpbmcgYWJvdXQgaG93IHRvIHVzZSB0aGVpciBmYWN0b3JpZXMgdG8gbWFrZSB2ZW50aWxhdG9ycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWluZyBwcmVwYXJlZCB0byBhZGFwdCBpbiB0aGUgZmFjZSBvZiBjaGFuZ2UgcmVxdWlyZXMgdGhpbmtpbmcgYWJvdXQgY2hhbmdlIGFzIGEgZHJpdmVyIGluIGV2ZXJ5dGhpbmcgeW91IGRvLiBXYXRjaCBob3cgeW91ciBtYXJrZXQgaXMgY2hhbmdpbmcgYW5kIHJlZmxlY3Q9IG9uIGhvdyB0aGF0IGltcGFjdHMgeW91ciBhcmNoaXRlY3R1cmUgc28gdGhhdCB5b3UgY2FuIG1ha2UgdGFyZ2V0ZWQsIGluY3JlbWVudGFsIGltcHJvdmVtZW50cyBpbiBpdHMgYWRhcHRhYmlsaXR5LiBUaGlzIHdpbGwgaGVscCBrZWVwIHlvdSBmb2N1c2VkIG9uIGV2b2x1dGlvbiB3aXRob3V0IHdhc3RpbmcgdGltZSBvciBtb25leSBvbiBhcmVhcyB0aGF0IHdvbuKAmXQgbmVlZCBpdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCbGFjayBTd2FuIGV2ZW50cyBhcmUgc28gdW51c3VhbCB0aGF0IHN0dWR5aW5nIHRoZSBzcGVjaWZpY3MgY2FuIGJlIGxvdyB2YWx1ZSwgYnV0IHRoZXkgcmVtaW5kIHVzIGhvdyBmYXIgcmVhbGl0eSBjYW4gYmUgZnJvbSBvdXIgcGxhbnMuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZW5naW5lZXJpbmcgbWFuYWdlcnMgY2FuIGVmZmVjdGl2ZWx5IHN1cHBvcnQgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWVuZ2luZWVyaW5nLW1hbmFnZXJzLWNhbi1lZmZlY3RpdmVseS1zdXBwb3J0LWVuZ2luZWVycy10ZWFtcy1hbmQtb3JnYW5pemF0aW9ucy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+V2VkLCAyOSBBcHIgMjAyMCAxNTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9ob3ctZW5naW5lZXJpbmctbWFuYWdlcnMtY2FuLWVmZmVjdGl2ZWx5LXN1cHBvcnQtZW5naW5lZXJzLXRlYW1zLWFuZC1vcmdhbml6YXRpb25zLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkxlbmEgUmVpbmhhcmQ8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIHR5cGljYWwgam9iIGRlc2NyaXB0aW9uIGZvciBtYW55IGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMgaXMgYWN0aW9uLXBhY2tlZC4gSXQgaXMgYSBtaXggb2YgaGFuZHMtb24gY29kaW5nLCB0ZWNobmljYWwgbGVhZGVyc2hpcCBhbmQgZGVjaXNpb24gbWFraW5nLCBwcm9jZXNzIGFuZCBwcm9qZWN0IG1hbmFnZW1lbnQsIHByb2R1Y3Qgb3ZlcnNpZ2h0LCBwZW9wbGUgbWFuYWdlbWVudCwgZmluZGluZyBhbmQgaGlyaW5nIHRhbGVudCDigKYgdGhlIGxpc3QgZ29lcyBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiBvdXIgd29yaywgd2UgZGVhbCB3aXRoIGJvdGggdGVjaG5pY2FsIGFuZCBwZW9wbGUgc3lzdGVtczogd2Ugc3VwcG9ydCBpbmRpdmlkdWFsIGVuZ2luZWVyc+KAmSBncm93dGg7IGhlbHAgdGVhbXMgYmVjb21lIHN1Y2Nlc3NmdWw7IGFuZCBtYWtlIHRoZSBvcmdhbml6YXRpb24gbW9yZSBwcm9kdWN0aXZlLCBmdW5jdGlvbmFsLCBhbmQgaW5ub3ZhdGl2ZS4gQWJvdmUgYWxsLCBhbiBlbmdpbmVlcmluZyBtYW5hZ2VyIGlzIGEgc2VydmljZSBvciBzdXBwb3J0IHJvbGUgYWNyb3NzIHRoZXNlIHZhcmlvdXMgbGF5ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1BlcmhhcHMgbW9zdCBmYXNjaW5hdGluZyBhbmQgZGlmZmljdWx0IGlzIHRoZSBoaWdoLWxldmVsIG9mIGFtYmlndWl0eSB0aGF0IGNvbWVzIHdpdGggZW5naW5lZXJpbmcgbWFuYWdlbWVudC4gTWFueSBwcm9ibGVtcyBvciBxdWVzdGlvbnMgZG9u4oCZdCBoYXZlIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLiBUaGVyZSBhcmVu4oCZdCBhYnNvbHV0ZSBhbnN3ZXJzIHRvIHdoYXQgaXQgbWVhbnMgdG8gYmUgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgZWl0aGVyLCBidXQgdGhlcmUgYXJlIGNlcnRhaW4gdmFsdWVzIGFuZCBndWlkZXBvc3RzIHRvIGZvbGxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgbG9vayBhdCB3aGF0IGNhbiBzaGFwZSBvdXIgdGhpbmtpbmcgYWJvdXQgb3VyIHJvbGUgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgYW5kIGhvdyB0byBlZmZlY3RpdmVseSBzdXBwb3J0IGluZGl2aWR1YWwgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1doYXQgZG8gZW5naW5lZXJzIG5lZWQgdG8gdGhyaXZlIGF0IHdvcms/Jmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SXQgaGVscHMgdG8gc3RhcnQgc2hhcGluZyBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IHJvbGVzIGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCBlbmdpbmVlcnMgbmVlZCwgYW5kIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGV5IHRocml2ZS4gUmVzZWFyY2ggZnJvbSBwZXJmb3JtYW5jZSBjb2FjaCBhbmQgdHJhaW5lciBQYWxvbWEgTWVkaW5hIGV4cG9zZXMgc2l4IGNvcmUgbmVlZHMgaHVtYW5zIGhhdmUgKGluY2x1ZGluZyBhdCB3b3JrKS4gU2hlIGNhbGxzIHRoaXMgcmVzZWFyY2ggdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGFsb21hbWVkaW5hLmNvbS9iaWNlcHMmcXVvdDsmZ3Q7QklDRVBTIG1vZGVsJmx0Oy9hJmd0OzombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7QmVsb25naW5nLiZsdDsvc3Ryb25nJmd0OyBBcyBodW1hbnMsIHdlIHN0cml2ZSB0byBiZSBwYXJ0IG9mIGEgY29tbXVuaXR5IG9mIGxpa2UtbWluZGVkIHBlb3BsZSB3aGVyZSB3ZSB1bmRlcnN0YW5kIGFuZCBzdXBwb3J0IGVhY2ggb3RoZXIuIFdlIGFsc28gd2FudCB0byBmZWVsIGFzIGlmIHdlIGFyZSBub3QgYmVpbmcgZGlzY3JpbWluYXRlZCBhZ2FpbnN0IG9yIG1hcmdpbmFsaXplZC4gQmVsb25naW5nIGlzIHJlYWxseSBpbXBvcnRhbnQgdG8gbWUgcGVyc29uYWxseTogSSBsb3ZlIHdvcmtpbmcgYXMgcGFydCBvZiBhIGRpc3RyaWJ1dGVkIHRlYW0sIGJ1dCBJIGFsc28gcmVhbGx5IGVuam95IHNlZWluZyBwZW9wbGUgaW4gcGVyc29uIGV2ZXJ5IG9uY2UgaW4gYSB3aGlsZS4gSXQgbWFrZXMgbWUgZmVlbCBtb3JlIGNvbm5lY3RlZCB0byB0aGVtLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7SW1wcm92ZW1lbnQuJmx0Oy9zdHJvbmcmZ3Q7IFdlIGFsc28gc2VlayB0byBjb250aW51b3VzbHkgbGVhcm4sIGltcHJvdmUsIGFuZCBncm93IGluIGFyZWFzIHRoYXQgbWF0dGVyIHRvIHVzLCBhcyB3ZWxsIGFzIHRvIG91ciB0ZWFtIG9yIGNvbXBhbnkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtDaG9pY2UuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8gaGF2ZSBjaG9pY2UsIGNvbnRyb2wsIGFuZCBhdXRvbm9teSBvdmVyIGltcG9ydGFudCBwYXJ0cyBvZiBvdXIgbGl2ZXMuIEluIG9uZSBvZiBteSBwcmV2aW91cyByb2xlcywgSSB0b29rIG9uIGEgbG90IG9mIHdvcmsgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLiBCdXQgdWx0aW1hdGVseSwgdGhlIGNvbnRyb2wgSSBoYWQgb3ZlciBteSBkb21haW4gd2FzIGxpbWl0ZWQgZHVlIHRvIG9yZ2FuaXphdGlvbmFsIGlzc3VlcyDigJMgd2hpY2ggbGVkIG1lIHRvIGxlYXZlIHRoZSBjb21wYW55LiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7RXF1YWxpdHkuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8ga25vdyB0aGF0IG91ciBhY2Nlc3MgdG8gaW5mb3JtYXRpb24sIG1vbmV5LCB0aW1lLCBhbmQgb3RoZXIgcmVzb3VyY2VzIGlzIGZhaXIgYW5kIGVxdWFsIGZvciBldmVyeW9uZSDigJMgbm90IGp1c3QgZm9yIG91cnNlbHZlcywgYnV0IGFsc28gZm9yIHRoZSBwZW9wbGUgYXJvdW5kIHVzLiBFdmVyeW9uZeKAmXMgbmVlZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZXF1YWxseSBpbXBvcnRhbnQuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtQcmVkaWN0YWJpbGl0eS4mbHQ7L3N0cm9uZyZndDsgV2UgbG9vayBmb3IgY2VydGFpbnR5LCBzYWZldHksIGFuZCBzdGFiaWxpdHkgaW4gb3VyIGxpdmVzLiBXZSBhbHNvIHdhbnQgZ29hbHMsIHN0cmF0ZWd5LCBhbmQgZGlyZWN0aW9uIHRvIGJlIGNvbnNpc3RlbnQg4oCTIGFuZCB0byBub3QgY2hhbmdlIHRvbyBxdWlja2x5LiBJ4oCZdmUgYmVlbiBsZWFkaW5nIHRlYW1zIGluIGZhc3QtZ3Jvd2luZyBzdGFydHVwcyBmb3IgdGhlIGxhc3QgY291cGxlIG9mIHllYXJzLCBhbmQgd2hlbiB0aGVyZeKAmXMgYSBsb3Qgb2YgY2hhbmdlIGhhcHBlbmluZywgaXTigJlzIGEgY2hhbGxlbmdlIHRvIGluc3RpbGwgcHJlZGljdGFiaWxpdHkgaW4gdGVhbXMuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtTaWduaWZpY2FuY2UuJmx0Oy9zdHJvbmcmZ3Q7IERlZXAgZG93biwgYWxsIG9mIHVzIHNlZWsgbWVhbmluZywgaW1wb3J0YW5jZSwgYW5kIHN0YXR1cy4gV2UgYWxzbyB3YW50IHRvIGJlIGFwcHJlY2lhdGVkIGZvciBvdXIgd29yayBieSBwZW9wbGUgd2hvc2Ugb3BpbmlvbnMgbWVhbiBzb21ldGhpbmcgdG8gdXMuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0lmIG91ciBjb3JlIG5lZWRzIGFyZSB0aHJlYXRlbmVkLCBwZW9wbGUgcmVzb3J0IHRvIGZpZ2h0LW9yLWZsaWdodCBtb2RlcyBvZiByZWFjdGlvbiwgd2hpY2ggYXJlIHZlcnkgc3RyZXNzZnVsLiBUaGUgZmFpbHVyZSB0byBtZWV0IGNvcmUgbmVlZHMgaGFzIGhpZ2ggY29zdHMgZm9yIG9yZ2FuaXphdGlvbnMgYnkgaGFybWluZyBwZW9wbGUgb24gb3VyIHRlYW1zLiBTbyBob3cgY2FuIGVuZ2luZWVyaW5nIG1hbmFnZXJzIHB1dCB0aGUgQklDRVBTIG1vZGVsIGludG8gYWN0aW9uIHRvIGhlbHAgdGhlaXIgdGVhbXMgdGhyaXZlPyZsdDsvcCZndDsKCiZsdDtoMiZndDtVc2luZyB0cnVzdC1iYXNlZCByZWxhdGlvbnNoaXBzIHRvIGhlbHAgZW5naW5lZXJzIGdyb3cmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgZm91bmRhdGlvbiBvZiBiZWluZyBhIGdvb2QgZW5naW5lZXJpbmcgbWFuYWdlciBpcyBnZXR0aW5nIHRvIGtub3cgb3VyIHRlYW1tYXRlcyBhbmQgdW5kZXJzdGFuZGluZyB3aGF0IGlzIGltcG9ydGFudCB0byB0aGVtLiBIZXJlIGFyZSBhIGZldyBwbGFjZXMgdG8gc3RhcnQgYnVpbGRpbmcgdHJ1c3Qgd2l0aGluIHlvdXIgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0FzayBxdWVzdGlvbnMuJmx0Oy9zdHJvbmcmZ3Q7IE9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCB0b29scyBtYW5hZ2VycyBoYXZlIGlzIGFza2luZyBnb29kIHF1ZXN0aW9ucy4gVGhlIGJhc2lzIGZvciBkb2luZyBvdXIgam9icyB3ZWxsIGlzIGxpc3RlbmluZywgb2JzZXJ2aW5nLCB0YWtpbmcgbm90ZSBvZiB3aGF0IG1vdGl2YXRlcyBvdXIgdGVhbW1hdGVzLCBhbmQgcmVhbGx5IGRpZ2dpbmcgaW50byB0aGVpciByZXNwb25zZXMgdG8gb3VyIHF1ZXN0aW9ucy4gSSB1c3VhbGx5IGdhdGhlciBxdWVzdGlvbnMgYmVmb3JlIEkgbWVldCB3aXRoIG15IHRlYW1tYXRlcyBvbmUtb24tb25lLCBzbyBJIGFtIHByZXBhcmVkIGFuZCBJIGNhbiBndWlkZSB0aGUgY29udmVyc2F0aW9uIHRvd2FyZHMgdW5kZXJzdGFuZGluZyB0aGVtIGJldHRlci4gT3ZlciB0aW1lLCBJIGhhdmUgYnVpbHQgYSBraXQgb2Ygb25lLW9uLW9uZSBxdWVzdGlvbnMgdGhhdCBJIHB1bGwgb3V0IHdoZW4gSSBuZWVkIHNvbWUgaW5zcGlyYXRpb24gZm9yIHRoZXNlIGNvbnZlcnNhdGlvbnMuIEFza2luZyBxdWVzdGlvbnMgaGVscHMgdXMgYWRqdXN0IG91ciBsZWFkZXJzaGlwIHN0eWxlIHRvIHRoZSBwZW9wbGUgd2UgYXJlIGxlYWRpbmcuIEl0IGFsc28gZW5zdXJlcyB0aGF0IHRoZXkgZmVlbCB1bmRlcnN0b29kIGFuZCBoZWFyZCwgd2hpY2ggYXJlIHJlYWxseSBpbXBvcnRhbnQgcGlsbGFycyBvZiBpbmNsdXNpb24gYW5kIGJlbG9uZ2luZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0JlIGN1cmlvdXMuJmx0Oy9zdHJvbmcmZ3Q7IFBlb3BsZSBhcmUgZnVsbCBvZiBzdXJwcmlzZXMsIGFuZCBzb21ldGltZXMgb3VyIHRlYW1tYXRlc+KAmSByZWFjdGlvbnMgbWF5IGJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBleHBlY3RlZC4gSSBvbmNlIHJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIGVuZ2luZWVyIG9uIG15IHRlYW0gd2hvIHdhcyBkZWVwbHkgdXBzZXQgYWJvdXQgdGhlIHNwZWNpZmljIHdvcmRpbmcgdXNlZCBpbiBhIHByb2R1Y3QtcmVsZWFzZSBub3RlIHRvIGN1c3RvbWVycy4gQXQgZmlyc3QgSSBkaWQgbm90IHVuZGVyc3RhbmQgdGhlaXIgc3Ryb25nIHJlYWN0aW9uLiBCdXQgd2hlbiB3ZSB0YWxrZWQsIEkgbGVhcm5lZCB0aGUgZW5naW5lZXIgaGFkIGJlZW4gb3ZlcnJ1bGVkIGJ5IHNvbWVvbmUgd2l0aCBtb3JlIHBvd2VyLCBtYWtpbmcgdGhlbSBmZWVsIGhlbHBsZXNzLCBhbmQgdGhyZWF0ZW5pbmcgdGhlaXIgY29yZSBuZWVkIGZvciBjaG9pY2UgYW5kIGVxdWFsaXR5LiZsdDsvcCZndDsKCiZsdDtwJmd0O1doYXQgbWFuYWdlcnMgbWlnaHQgcGVyY2VpdmUgYXMgbm8gYmlnIGRlYWwgY2FuIGJlIGVub3Jtb3VzIHRocmVhdHMgdG8gb3RoZXIgcGVvcGxlLiBDYXNlcyB3aGVyZSB3ZeKAmXJlIHN1cnByaXNlZCBieSBvdXIgdGVhbW1hdGVz4oCZIHJlYWN0aW9ucyBhcmUgZ29vZCBvcHBvcnR1bml0aWVzIHRvIGZvY3VzIG9uIGh1bWFuLWNlbnRyaWMgcmVzcG9uc2VzLCBsaWtlIGdpdmluZyBwZW9wbGUgdGhlIG9wcG9ydHVuaXR5IHRvIHRhbGsgdGhyb3VnaCB0aGVpciBmZWVsaW5ncy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0Nvbm5lY3QgdG8gdGhlIGJpZ2dlciBwaWN0dXJlLiZsdDsvc3Ryb25nJmd0OyBDcmVhdGluZyBhbiBpbXBhY3QgaXMgYSB2ZXJ5IGdvb2QgbW90aXZhdG9yIGZvciBhbGwgb2YgdXMsIHNvIGhlbHBpbmcgZW5naW5lZXJzIHVuZGVyc3RhbmQgaG93IHRoZWlyIHdvcmsgY29ubmVjdHMgdG8gdGhlIGJpZ2dlciBwaWN0dXJlIChob3cgaXQgaGVscHMgdXNlcnMgb3Igc3VwcG9ydHMgb3RoZXIgdGVhbXMpIGlzIGFuIGV4dHJlbWVseSBpbXBvcnRhbnQgYW5kIHN0cmF0ZWdpYyBza2lsbCBmb3IgbWFuYWdlcnMuIFdoaWxlIGdvYWwtc2V0dGluZyBmcmFtZXdvcmtzIGxpa2UgT0tScyBjYW4gaGVscCwgaXQgaXMgYWxzbyBjcnVjaWFsIHRvIGFsaWduIGVuZ2luZWVyaW5nIGluaXRpYXRpdmVzIHdpdGggaGlnaGVyLWxldmVsIGdvYWxzLCBhbmQgY29ubmVjdCB0aGVtIGNsZWFybHkgd2l0aCB1c2VyIHZhbHVlLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7SW52b2x2ZSBlbmdpbmVlcnMgaW4gZGVjaXNpb24gbWFraW5nLiZsdDsvc3Ryb25nJmd0OyBGZWVsaW5nIHRoYXQgZGVjaXNpb25zIGFyZSBmYWlyIGFuZCBlcXVpdGFibGUgaXMgYW4gaW1wb3J0YW50IGNvbXBvbmVudCBvZiB0aGUgQklDRVBTIG1vZGVsLiBXaGVuIHdlIG1ha2UgZGVjaXNpb25zLCBpdCBpcyBoZWxwZnVsIHRvIGFzayBldmVyeW9uZSBmb3IgdGhlaXIgb3BpbmlvbnMgZmlyc3QsIGFuZCB0YWtlIHRoZWlyIG9waW5pb25zIGludG8gYWNjb3VudC4gSXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBnbyB3aXRoIHdoYXQgZXZlcnlvbmUgd2FudHMuIEJ1dCB3ZSBjYW4gc3RpbGwgZG8gYSBnb29kIGpvYiBhdCBjb250ZXh0dWFsaXppbmcgdGhlIGRlY2lzaW9ucyB3ZSBtYWtlLCBhbmQgaGVscGluZyBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IHRoZWlyIGZlZWRiYWNrIHdhcyBjb25zaWRlcmVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7R2l2ZSBmZWVkYmFjayBmb3IgZ3Jvd3RoLiZsdDsvc3Ryb25nJmd0OyBPbmUgb2YgdGhlIGJlc3QgdGhpbmdzIHdlIGdldCB0byBkbyBhcyBlbmdpbmVlcmluZyBtYW5hZ2VycyBpcyBzdXBwb3J0IGVuZ2luZWVyc+KAmSBncm93dGguIEdpdmUgZmVlZGJhY2sgcmVndWxhcmx5IHRvIGhlbHAgdGhlIHBlb3BsZSBvbiB5b3VyIHRlYW0gdW5kZXJzdGFuZCB3aGVyZSB0aGV5IGFyZSBhdCBhbmQgZ3JvdyDigJMgYnkgY291cnNlLWNvcnJlY3Rpbmcgd2hlcmUgbmVlZGVkLCBhcyB3ZWxsIGFzIGJ5IGRvaW5nIG1vcmUgaW4gdGhlIGFyZWFzIGluIHdoaWNoIHRoZXkgYXJlIGFscmVhZHkgZG9pbmcgZ3JlYXQuIE1hbmFnZXJzIG5lZWQgZmVlZGJhY2sgYXMgd2VsbDogaXTigJlzIGltcG9ydGFudCB0byByZWd1bGFybHkgYXNrIHlvdXIgdGVhbSBmb3IgZmVlZGJhY2sgc28geW91IGNhbiBtYWtlIGFkanVzdG1lbnRzLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Q29hY2ggZW5naW5lZXJzLiZsdDsvc3Ryb25nJmd0OyBDb2FjaGluZyBoZWxwcyBwZW9wbGUgZmluZCBhbnN3ZXJzIHRoZW1zZWx2ZXMsIGltcHJvdmVzIHRoZWlyIHByb2JsZW0tc29sdmluZyBhbmQgbGVhZGVyc2hpcCBza2lsbHMsIGFuZCBpbmNyZWFzZXMgbGVhcm5pbmcsIHJlc2lsaWVuY2UsIGFuZCBzZWxmLW1hbmFnZW1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTcG9uc29yIGVuZ2luZWVycy4mbHQ7L3N0cm9uZyZndDsgVGhpbmsgYmFjayBvbiB5b3VyIGNhcmVlciwgYW5kIHdoZXRoZXIgeW91IGhhdmUgaGFkIGEgbWVudG9yIHdobyBjb25uZWN0ZWQgeW91IHdpdGggc29tZW9uZSwgcHV0IHlvdXIgbmFtZSBmb3J3YXJkLCBhbmQgdXNlZCB0aGVpciBpbmZsdWVuY2UgdG8gbWFrZSBhIGRpZmZlcmVuY2UgaW4geW91ciBjYXJlZXIuIEJlIHRoYXQgcGVyc29uIGZvciBzb21lb25lIGVsc2U6IGludmVzdCBpbiB0aGVpciBncm93dGgsIGxpZnQgdGhlbSB1cCwgYW5kIHB1dCB5b3VyIHdlaWdodCBiZWhpbmQgdGhlaXIgc3VjY2Vzcy4gU3VwcG9ydGluZyB5b3VyIHRlYW3igJlzIHN1Y2Nlc3MgY2FuIG1ha2UgYSByZWFsIGRpZmZlcmVuY2UgZm9yIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhpcyBpcyB0aGUgZm91bmRhdGlvbiBvZiBvdXIgd29yayBhcyBlbmdpbmVlcmluZyBtYW5hZ2Vycy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RHJpdmluZyBhIGN1bHR1cmUgb2YgdHJ1c3QgYW5kIGNvbnRpbnVvdXMgaW1wcm92ZW1lbnQgb24gdGVhbXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgbmV4dCBpbXBvcnRhbnQgYnVpbGRpbmcgYmxvY2sgaW4gb3VyIHdvcmsgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgaXMgdGhlIHRlYW0uIEFjY29yZGluZyB0byByZXNlYXJjaCwgaGlnaC1wZXJmb3JtaW5nIHRlYW1zIG5lZWQgdGhlIGZvbGxvd2luZyBlbGVtZW50cy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7UHN5Y2hvbG9naWNhbCBzYWZldHkuJmx0Oy9zdHJvbmcmZ3Q7IFRoaXMgaXMgYWJvdXQgYmVsaWV2aW5nIHRoYXQgd2Ugd2lsbCBub3QgYmUgcmVqZWN0ZWQsIGFuZCBmZWVsaW5nIGZyZWUgdG8gZXhwcmVzcyBvdXIgd29yay1yZWxhdGVkIHRob3VnaHRzIGFuZCBmZWVsaW5ncyB0byB0aGUgcGVvcGxlIGFyb3VuZCB1cy4gSXQgYWxzbyBtZWFucyBiZWxpZXZpbmcgdGhhdCBvdGhlcnMgd29u4oCZdCB0aGluayBsZXNzIG9mIHVzIGlmIHdlIG1ha2UgYSB3ZWxsLWludGVudGlvbmVkIG1pc3Rha2Ugb3IgYXNrIGZvciBoZWxwLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7U3RydWN0dXJlIGFuZCBjbGFyaXR5LiZsdDsvc3Ryb25nJmd0OyBFdmVyeW9uZSBvbiB0aGUgdGVhbSBzaG91bGQgdW5kZXJzdGFuZCBleHBlY3RhdGlvbnMsIGdvYWxzLCBhbmQgYWNjb3VudGFiaWxpdHkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtNZWFuaW5nIGFuZCBpbXBhY3QuJmx0Oy9zdHJvbmcmZ3Q7IEhpZ2gtcGVyZm9ybWluZyB0ZWFtcyBmaW5kIGEgc2Vuc2Ugb2YgcHVycG9zZSBpbiB0aGVpciB3b3JrLCBhbmQga25vdyB0aGF0IHRoZWlyIHdvcmsgaGFzIGFuIGltcGFjdC4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7THVja2lseSBmb3IgbWFuYWdlcnMsIHRoaXMgcmVzZWFyY2ggbmVhdGx5IGFsaWducyB3aXRoIHRoZSBCSUNFUFMgbW9kZWwuIEFsbCBodW1hbiBjb3JlIG5lZWRzIGFyZSByZXByZXNlbnRlZCBhbmQgaGF2ZSBpbXBhY3QgYXQgdGhlIHRlYW0gbGV2ZWwgYXMgd2VsbC4gQnkgdW5kZXJzdGFuZGluZyBhbmQgcmVzcG9uZGluZyB0byBwZW9wbGXigJlzIG1vdGl2YXRpb25zLCBsZWFkZXJzIGNyZWF0ZSB0aGUgYmFzaXMgZm9yIHRlYW1zICB0byBleHByZXNzIHRoZW1zZWx2ZXMg4oCTIGFuZCBwcm92aWRlIHRoZSBzdHJ1Y3R1cmUsIG1lYW5pbmcsIGFuZCBpbXBhY3QgdGhleSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgdHJ1c3QuJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBmaXJzdCBzdGVwIGluIGNyZWF0aW5nIHN0cnVjdHVyZSBpcyBidWlsZGluZyByZWxhdGlvbnNoaXBzLiBGb3Igb3VyIGRpc3RyaWJ1dGVkIHRlYW1zIGF0IENpcmNsZUNJLCB3ZeKAmXZlIGJ1aWx0IGRpZmZlcmVudCBzdHJ1Y3R1cmVzIHRvIGhlbHAgdGVhbW1hdGVzIGRvIHRoYXQsIHN1Y2ggYXMgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucyBhbmQgZW5naW5lZXJpbmcgdGFsa3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTdHJ1Y3R1cmUgYXJvdW5kIGhvdyB3ZSBjb2xsYWJvcmF0ZS4mbHQ7L3N0cm9uZyZndDsgT3VyIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0kgaGFzIGRvdWJsZWQgaW4gc2l6ZSBmb3IgdGhyZWUgeWVhcnMgaW4gYSByb3cuIE92ZXIgdGhpcyB0aW1lLCB3ZeKAmXZlIG1vdmVkIHRvIGEgbW9yZSBzdHJlYW1saW5lZCBlbmdpbmVlcmluZyBkZWxpdmVyeSBwcm9jZXNzIGZvciBhbGwgdGVhbXMuIEJ1dCB3ZSBzdGlsbCBsZWF2ZSBpdCB0byB0aGUgdGVhbXMgdG8gZGVjaWRlIGhvdyB0byBpbXBsZW1lbnQgdCBkYXktdG8tZGF5IHByb2Nlc3NlcywgaW5jbHVkaW5nIGRhaWx5IHN0YW5kdXAgbWVldGluZ3MsIHBsYW5uaW5nIHNlc3Npb25zLCBvciBjb2xsYWJvcmF0aW9uLiBFdmVyeSB0ZWFtIGhhcyBzcGVjaWZpYyBuZWVkcywgYW5kIHRoZXkga25vdyBiZXN0IGhvdyB0byBhZGRyZXNzIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtSZW1vdmUgYmxvY2tlcnMuJmx0Oy9zdHJvbmcmZ3Q7IFN0cnVjdHVyZXMgY2FuIGFsc28gaGVscCBtaXRpZ2F0ZSB0aGUgaW1wYWN0IG9mIGdldHRpbmcgYmxvY2tlZCBhdCB3b3JrLiBXZSBhbGwga25vdyBob3cgZnJ1c3RyYXRpbmcgaXQgaXMgdG8gYmUgc3R1Y2suIFB1dHRpbmcgdXAgcGF0aHdheXMgdG8gaGVscCBwZW9wbGUgZ2V0IHVuYmxvY2tlZCBjYW4gYmUgcmVhbGx5IGltcG9ydGFudCDigJMgZm9yIGV4YW1wbGUsIHNldHRpbmcgdXAgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucywgaW52ZXN0aW5nIGluIHNlbGYtc2VydmUgaW5mb3JtYXRpb24gYWNjZXNzLCBzdXBwb3J0aW5nIGVhY2ggb3RoZXIgYWNyb3NzIHRlYW1zLCBwdXR0aW5nIHVwIGVzY2FsYXRpb24gcGF0aHMgZm9yIHBlb3BsZSB0byBnZXQgaGVscCB3aGVuIHRoZXkgbmVlZCBpdCwgb3IgaGVscGluZyBwZW9wbGUgc3VwcG9ydCBlYWNoIG90aGVyIHRocm91Z2gga25vd2xlZGdlLXNoYXJpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtDb250aW51b3VzbHkgaW1wcm92ZS4mbHQ7L3N0cm9uZyZndDsgV2UgY2FuIHVzZSByZXRyb3NwZWN0aXZlcyB0byBkaXNjdXNzIGFuZCBpbXByb3ZlIGhvdyB3ZSB3b3JrIHRvZ2V0aGVyLiBCbGFtZWxlc3MgcG9zdG1vcnRlbXMgYXJlIGFsc28gYSBncmVhdCB0b29sIHRvIGhlbHAgdW5kZXJzdGFuZCBwcm9ibGVtcyBhbmQgZHJpdmUgdG93YXJkcyBzb2x1dGlvbnMuIENvZGUgcmV2aWV3cywgbWVudG9yaW5nLCBvciBrbm93bGVkZ2Ugc2hhcmluZyBjYW4gaGVscCB0ZWFtIG1lbWJlcnMgbGVhcm4gZnJvbSBlYWNoIG90aGVyLiBUaGUgd2F5IHdlIHRhbGsgYWJvdXQgbGVhcm5pbmcgbWF0dGVycyDigJMgZXNwZWNpYWxseSB0aGUgd2F5IHdlIGRpc2N1c3MgbWlzdGFrZXMuIFRoZXNlIGRlY2lzaW9ucyB3aWxsIGZ1bmRhbWVudGFsbHkgc2hhcGUgdGhlIGN1bHR1cmUgb2Ygb3VyIHRlYW1zLCBhbmQgZGV0ZXJtaW5lIHdoZXRoZXIgcGVvcGxlIGZlZWwgc2FmZSBvciB0aHJlYXRlbmVkIGluIHRoZWlyIGNvcmUgbmVlZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtEcml2ZSB0b3dhcmQgYWxpZ25tZW50LiZsdDsvc3Ryb25nJmd0OyBDb21tdW5pY2F0ZSBzdHJhdGVneSwgZGlyZWN0aW9uLCBhbmQgcmVsZXZhbnQgdGFjdGljYWwgZGV0YWlscyB0byBvdXIgdGVhbXMg4oCTIGFuZCByZW1lbWJlciBpdOKAmXMgYWxtb3N0IGltcG9zc2libGUgdG8gb3Zlci1jb21tdW5pY2F0ZSB0aGVzZSBkZXRhaWxzLiBBbHdheXMgcmVwZWF0IHdoYXTigJlzIGltcG9ydGFudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBlbmdpbmVlcmluZyBtYW5hZ2Vycywgd2UgYXJlIGxpa2UgbW9ydGFyOiBXZSBjb25uZWN0IHN0cnVjdHVyZXMsIHRlYW1zLCBhbmQgcGVvcGxlLiBXZSBob2xkIHRoZW0gdG9nZXRoZXIsIGJ1dCBhbHNvIGlkZW50aWZ5IGFuZCBmaWxsIGdhcHMgYXMgbmVlZGVkLiBIYW5kbGluZyBhbWJpZ3VpdHkgaXMgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgZGlmZmljdWx0IGFzcGVjdHMgb2YgZW5naW5lZXJpbmcgbWFuYWdlbWVudC4uIEZvciBhIGxvdCBvZiB3b3JrIGluIG91ciBmaWVsZCwgdGhlcmUgYXJlIG5vIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLCBsZXQgYWxvbmUgcmVzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T3VyIHdvcmsgaXNu4oCZdCBzbyBtdWNoIGFib3V0IHVzOyBpdOKAmXMgYWJvdXQgdGhlIHBlb3BsZSwgdGVhbXMsIGFuZCBvcmdhbml6YXRpb25zIHdlIHN1cHBvcnQuIFdlIGJ1aWxkIHN0cnVjdHVyZXMgdG8gaGVscCBvdGhlcnMgc2hpbmUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1N1cHBvcnRpbmcgb3JnYW5pemF0aW9uYWwgY2hhbmdlJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7TGFzdGx5LCBjcmVhdGluZyBlbnZpcm9ubWVudHMgaW4gd2hpY2ggZW5naW5lZXJzIGNhbiB0aHJpdmUgaXMgYWJvdXQgc3VwcG9ydGluZyBvdXIgb3JnYW5pemF0aW9uLiBXZSBuZWVkIHRvIHVzZSBvdXIgcG93ZXIgYXMgbWFuYWdlcnMgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLCBubyBtYXR0ZXIgdGhlIHNpemUgb2Ygb3VyIGJ1c2luZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtBZHZvY2F0ZSBmb3IgY2hhbmdlLiZsdDsvc3Ryb25nJmd0OyBUbyBiZSBlZmZlY3RpdmUgYXMgbWFuYWdlcnMsIHdlIG5lZWQgdG8gcHVzaCBmb3Igb3JnYW5pemF0aW9uYWwgY2hhbmdlIHRvIGltcHJvdmUgdGhlIGxhcmdlciBzdHJ1Y3R1cmVzIGFyb3VuZCB1cy4gRm9yIGV4YW1wbGUsIHdlIG1heSBuZWVkIHRvIGFkdm9jYXRlIGZvciBtb3JlIGNsYXJpdHkgYXJvdW5kIGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMsIGhhdmUgY29udmVyc2F0aW9ucyBhYm91dCB3aGF0IGVuZ2luZWVyaW5nIG1hbmFnZW1lbnQgc2hvdWxkIGJlIGxpa2UgaW4gb3VyIGNvbXBhbnksIGFuZCBkZXRlcm1pbmUgcmVxdWlyZW1lbnRzIGZvciBoaXJpbmcgZW5naW5lZXJpbmcgbWFuYWdlcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtNYW5hZ2UgdXAuJmx0Oy9zdHJvbmcmZ3Q7IE1hbmFnaW5nIG91ciBvd24gbWFuYWdlcnMgaXMgYSB1c2VmdWwgYnV0IGRpZmZpY3VsdCBza2lsbC4gRHJpdmluZyBvcmdhbml6YXRpb25hbCBjaGFuZ2UgYWxzbyBtZWFucyBtYWtpbmcgc3VyZSB0aGF0IG91ciBlbmdpbmVlcnPigJkgY29uY2VybnMgYXJlIGhlYXJkIGF0IHRoZSBoaWdoZXN0IGxldmVscywgYW5kIHRoYXQgd2UgdXNlIG91ciBwb3dlciB0byBtYWtlIHN1cmUgZW5naW5lZXJzIGhhdmUgYSB2b2ljZSBpbiB0aGUgcmVzdCBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgZnJhbWV3b3JrcyBhbmQgc3RhbmRhcmRzLiZsdDsvc3Ryb25nJmd0OyBXaGlsZSBpdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIG1ha2Ugcm9vbSBmb3IgaW5kaXZpZHVhbCBuZWVkcywgc3RydWN0dXJlcyBhbmQgZnJhbWV3b3JrcyBmb3IgbWFuYWdlcnMgaGVscCB1cyBob2xkIGVhY2ggb3RoZXIgYWNjb3VudGFibGUuIFRoZXkgYWxzbyAgaGVscCBsZXZlbCB0aGUgcGxheWluZyBmaWVsZCBhbmQgYnVpbGQgaW4gZXF1YWxpdHkgZm9yIHRoZSBwZW9wbGUgb24gb3VyIHRlYW1zLiBPbiBteSBjdXJyZW50IHRlYW0sIGV2ZXJ5IHF1YXJ0ZXIgd2UgcGljayBzb21lIGhpZ2gtcHJpb3JpdHkgcHJvamVjdHMgIHRvIGltcHJvdmUgaG93IHdlIHdvcmsgYXMgYW4gb3JnYW5pemF0aW9uLiBNb3N0IHJlY2VudGx5LCB3ZeKAmXZlIHdvcmtlZCBvbiBvdXIgaGlyaW5nIHByb2Nlc3MgYW5kIGluY2lkZW50IHJlbWVkaWF0aW9uOyBsYXN0IHllYXIsIHdlIGRldmVsb3BlZCBhbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvd2h5LXdlLXJlLWRlc2lnbmVkLW91ci1lbmdpbmVlcmluZy1jYXJlZXItcGF0aHMtYXQtY2lyY2xlY2kvJnF1b3Q7Jmd0O2ludGVybmFsIGNhcmVlciBncm93dGggZnJhbWV3b3JrIGZvciBlbmdpbmVlcnMmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtHcm93aW5nIGFzIGEgbGVhZGVyJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7QmVpbmcgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgaXNu4oCZdCBhbHdheXMgYSBzdHJhaWdodGZvcndhcmQgcGF0aDsgYSBsb3QgZGVwZW5kcyBvbiB3aGVyZSB3ZSBhcmUgYXQgaW4gb3VyIGNhcmVlcnMgYW5kIHdoZXJlIHdlIGFyZSBsb29raW5nIHRvIGdvLCBhcyB3ZWxsIGFzIHRoZSBncm93dGggc3RhZ2UsIHNpemUsIGFuZCBuZWVkcyBvZiBvdXIgb3JnYW5pemF0aW9ucy4gSW4gb3VyIGRhaWx5IHdvcmssIHdlIGhvbGQgdmFzdCBhbW91bnRzIG9mIHVuY2VydGFpbnR5IHdoaWxlIGFsc28gdHJ5aW5nIHRvIG1ha2UgcHJvZ3Jlc3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QW4gb3ZlcmFyY2hpbmcgdGhlbWUgaW4gbXkgd29yayBpbiBlbmdpbmVlcmluZyBtYW5hZ2VtZW50ICBoYXMgYmVlbiBncm93dGggYW5kIGltcHJvdmVtZW50LiBXZSByYXJlbHkgZGVhbCB3aXRoIGdyZWVuZmllbGQgcHJvamVjdHMgb3IgYXJlIGFibGUgdG8gYnVpbGQgYSB0ZWFtIG9yIGRlcGFydG1lbnQgZnJvbSBzY3JhdGNoLiBFdmVuIHdoZW4gd2UgZG8sIHdlIGJ1aWxkIG9uIGV4aXN0aW5nIHN0cnVjdHVyZXMgaW4gb3VyIG9yZ2FuaXphdGlvbi4gSSBiZWxpZXZlIG91ciBzdXBwb3J0aW5nIHJvbGUgbGFyZ2VseSBtZWFucyBoZWxwaW5nIGVuZ2luZWVycyBncm93LCBzdXBwb3J0aW5nIHRlYW1zIGF0IGNvbnRpbnVvdXNseSBsZWFybmluZywgYW5kIGhlbHBpbmcgb3JnYW5pemF0aW9ucyBiZWNvbWUgYmV0dGVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVyaW5nIG1hbmFnZXJzLCB3ZSBmcmVxdWVudGx5IGZhY2UgcXVlc3Rpb25zIHRoYXQgZG9u4oCZdCBjbGVhciByaWdodCBvciB3cm9uZyBhbnN3ZXJzLiBNYW55IHllYXJzIGFnbywgbXkgbGVhZGVyc2hpcCBjb2FjaCBlbmNvdXJhZ2VkIG1lIHRvIHVzZSB0aG9zZSBraW5kcyBvZiB1bmNlcnRhaW4gc2l0dWF0aW9ucyB0byBhc2sgbXlzZWxmLCDigJxXaGF0IGtpbmQgb2YgbGVhZGVyIGRvIEkgd2FudCB0byBiZT/igJ0mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJIHdhbnQgdG8gbGVhdmUgdGhlIGxhc3QgY2FsbCB0byBncm93dGggYW5kIGltcHJvdmVtZW50IHdpdGggeW91IChhbmQgbWUpOiBObyBtYXR0ZXIgd2hhdCB5b3VyIHJvbGUgb3IgY29tcGFueSBpcyBsaWtlLCB3b3JrIG9uIHNoYXBpbmcgeW91ciBhcHByb2FjaCB0byBlbmdpbmVlcmluZyBtYW5hZ2VtZW50LiBHZXQgdG8ga25vdyB0aGUgcGVvcGxlIHRoYXQgeW91IHdvcmsgd2l0aCwgYW5kIHVzZSBmZWVkYmFjayB0byBoZWxwIHRoZW0gY291cnNlLWNvcnJlY3QuIEJ1aWxkIHRlYW1zIHRoYXQgYXJlIHBzeWNob2xvZ2ljYWxseSBzYWZlIHBsYWNlcywgd2hlcmUgcGVvcGxlIGZpbmQgbWVhbmluZyBpbiBhIHNoYXJlZCBwdXJwb3NlLiBBbmQgdXNlIHlvdXIgcG93ZXIgYW5kIHByaXZpbGVnZSB0byBkcml2ZSBjaGFuZ2UgaW4geW91ciBvcmdhbml6YXRpb24uIE1ha2UgcGVvcGxlIHRoZSBjZW50ZXIgYW5kIGZvY3VzIG9mIHlvdXIgd29yaywgYW5kIGJ1aWxkIG9uIHRoYXQgZm91bmRhdGlvbiB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhleSBjYW4gdGhyaXZlLiAgQWx3YXlzIHB1c2ggdG8gY29udGludW91c2x5IGltcHJvdmUuIExlYWQgd2l0aCBodW1ibGVuZXNzLCBlbXBhdGh5LCBhbmQgbG90cyBvZiBjdXJpb3NpdHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2hhdCBraW5kIG9mIGxlYWRlciBkbyB5b3Ugd2FudCB0byBiZT8mbHQ7L3AmZ3Q7CgombHQ7aHIgLyZndDsKJmx0O3AmZ3Q7SWYgeW914oCZcmUgY3VyaW91cyBhYm91dCBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IGF0IENpcmNsZUNJIGFuZCB3b3JraW5nIHdpdGggdXM6IGpvaW4gdXMhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9ib2FyZHMuZ3JlZW5ob3VzZS5pby9jaXJjbGVjaSZxdW90OyZndDtXZeKAmXJlIGhpcmluZyBlbmdpbmVlcmluZyBtYW5hZ2VycyZsdDsvYSZndDsuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5CdWlsZGluZyBhbmQgZGVwbG95aW5nIEZsdXR0ZXIgYXBwcyB3aXRoIEZhc3RsYW5lPC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RlcGxveS1mbHV0dGVyLWFuZHJvaWQvPC9saW5rPgogICAgICAgIDxwdWJEYXRlPldlZCwgMjkgQXByIDIwMjAgMTA6MDA6MDAgLTA3MDA8L3B1YkRhdGU+CiAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9InRydWUiPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZGVwbG95LWZsdXR0ZXItYW5kcm9pZC88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5HYWJyaWVsIFNpbW1lcjwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvJnF1b3Q7Jmd0O0ZsdXR0ZXImbHQ7L2EmZ3Q7IGlzIGEgdG9vbGtpdCBwcm92aWRlZCBieSBHb29nbGUgZm9yIGJ1aWxkaW5nIGNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9ucywgaW5jbHVkaW5nIEFuZHJvaWQsIGlPUywgYW5kIHdlYiBhcHBzLiBBcyBtb3JlIGFwcHMgYXJlIHdyaXR0ZW4gdXNpbmcgaXQgYW5kIERhcnQgKHRoZSB1bmRlcmx5aW5nIGxhbmd1YWdlKSwgaXTigJlzIGJlY29taW5nIG1vcmUgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyBkZXZlbG9wZXJzIGNhbiBwYWNrYWdlIGFuZCBkZWxpdmVyIHRoZWlyIGNvZGUgdG8gdGhlaXIgdXNlcnMuIExldmVyYWdpbmcgQ2lyY2xlQ0kgYW5kIEZhc3RsYW5lLCB0aGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcHJvY2VzcyB0aGF0IGNhbiBiZSBhdXRvbWF0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbGluZyBGbHV0dGVyIGFuZCBjcmVhdGluZyB5b3VyIGZpcnN0IGFwcCBjYW4gYmUgZG9uZSBieSBmb2xsb3dpbmcgdGhlc2UgZ3VpZGVzOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvZG9jcy9nZXQtc3RhcnRlZC9pbnN0YWxsJnF1b3Q7Jmd0O0luc3RhbGwmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2ZsdXR0ZXIuZGV2L2RvY3MvZ2V0LXN0YXJ0ZWQvY29kZWxhYiZxdW90OyZndDtXcml0ZSB5b3VyIGZpcnN0IGFwcCZsdDsvYSZndDsuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBkZWZhdWx0IOKAnGhlbGxvIHdvcmxk4oCdIGFwcCB3aWxsIHN1ZmZpY2UuIFdlIHdvbuKAmXQgYmUgZGVhbGluZyBtdWNoIHdpdGggdGhlIGFwcGxpY2F0aW9uIGl0c2VsZi4gUHVzaCBpdCB0byBhIHJlcG9zaXRvcnkgb24gR2l0SHViLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Vuc3VyZSB0aGF0IHlvdSBhcmUgc2V0IHVwIHRvIHB1Ymxpc2ggYXBwcyB1c2luZyBHb29nbGUgUGxheSBvciB0aGUgQXBwbGUgQXBwIFN0b3JlIC0gc3RlcHMgZm9yIGVhY2ggd2lsbCB2YXJ5LCBzbyBiZSBzdXJlIHRvIGZvbGxvdyB0aGUgc3RlcHMgb3V0bGluZWQgZm9yIHRoZSByZXNwZWN0aXZlIHByb3ZpZGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBbmRyb2lkJmx0Oy9oMiZndDsKCiZsdDtwJmd0O1doZW4gcHVibGlzaGluZyBBbmRyb2lkIGFwcHMsIHRoZXJlIGFyZSBhIGZldyByZXF1aXJlbWVudHMgdG8gc2F0aXNmeSBiZWZvcmUgaW1wbGVtZW50aW5nIEZhc3RsYW5lLiBBbiDigJx1cGxvYWQga2V54oCdIGlzIHJlcXVpcmVkIHNvIHRoYXQgR29vZ2xlIGNhbiB2ZXJpZnkgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUgYXBwIGJlZm9yZSBhY2NlcHRpbmcgaXQuIFN0ZXBzIGZvciBzZXR0aW5nIHRoaXMgdXAgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9mbHV0dGVyLmRldi9kb2NzL2RlcGxveW1lbnQvYW5kcm9pZCZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oy4gSXTigJlzIHJlY29tbWVuZGVkIHRvIHVzZSBBcHBCdW5kbGVzIHdoZW4gYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBhcyBpdCBhbGxvd3MgR29vZ2xlIHRvIGJ1aWxkIGluZGl2aWR1YWwgQVBLcyBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyB3aGlsZSBrZWVwaW5nIGZpbGVzaXplIGRvd24uIFRha2Ugbm90ZSBvZiB3aGVyZSB5b3Ugc2F2ZSB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5qa3MmbHQ7L2NvZGUmZ3Q7IGZpbGUuIFdoaWxlIGl0IGNhbiBsaXZlIGluIHlvdXIgaG9tZSBkaXJlY3RvcnksIGhhdmluZyBpdCBzYXZlZCB0byBhIGdpdC1pZ25vcmVkIGRpcmVjdG9yeSBpbiB5b3VyIHByb2plY3Qgd2lsbCBjb21lIGluIGhhbmR5IHdoZW4gY29uZmlndXJpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1R3byB0aGluZ3MgZnJvbSB0aGlzIGd1aWRlIHdpbGwgbmVlZCB0byBiZSBhZGRlZCB0byBDaXJjbGVDSSBhcyAmbHQ7YSBocmVmPSZxdW90Oy9kb2NzLzIuMC9lbnYtdmFycy8mcXVvdDsmZ3Q7ZW52aW9ybm1lbnQgdmFyaWFibGVzJmx0Oy9hJmd0OzogdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlIGFuZCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7a2V5LmprcyZsdDsvY29kZSZndDsgZmlsZS4gVGhpcyB3aWxsIGFsbG93IHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBzaWduIHRoZSBhcHBsaWNhdGlvbi4gU2luY2Ugb25lIGZpbGUgcmVxdWlyZXMgbmV3bGluZXMgdG8gYmUgcHJlc2VudCwgYW5kIGFub3RoZXIgaXMgYSBiaW5hcnkgZmlsZSwgaXTigJlzIHJlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgYmFzZTY0LWVuY29kZWQgcHJpb3IgdG8gYWRkaW5nIHRoZW0gYXMgZW52aW9ybm1lbnQgdmFyaWFibGVzIHRvIHByZXNlcnZlIHRoZSBkYXRhLiZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBjYW4gZW5jb2RlIHRoZW0gYnkgcnVpbm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2F0ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7IHwgYmFzZTY0IC13IDAgIyAtdyAwIHdpbGwgZW5zdXJlIG5vIG5ld2xpbmVzIGFyZSBwcmVzZW50LgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBmaWxlcyBjYW4gdGhlbiBiZSByZS1hZGRlZCBkdXJpbmcgdGhlIGpvYiB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2VjaG8gJnF1b3Q7JEVOVl9WQVJJQUJMRV9OQU1FJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIGFsc28gd2FudCB0byBzZXQgdXAgYSBGYXN0bGFuZSBzZXJ2aWNlIGFjY291bnQgd2hpbGUgY3JlYXRpbmcgeW91ciBBbmRyb2lkIHNldHVwLiBZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5mYXN0bGFuZS50b29scy9nZXR0aW5nLXN0YXJ0ZWQvYW5kcm9pZC9zZXR1cC8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuIEJlIHN1cmUgdG8ga2VlcCB5b3VyIFNlcnZpY2UgQWNjb3VudCBKU09OIGZpbGUgaGFuZHkuIFdl4oCZbGwgYmUgYWRkaW5nIHRoYXQgdG8gdGhlIHBpcGVsaW5lIHNob3J0bHkuIEFsc28gbm90ZSB0aGF0IGNvbW1hbmRzIHNob3VsZCBiZSBydW4gZnJvbSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZCZsdDsvY29kZSZndDsgZGlyZWN0b3J5IHVuZGVyIHlvdXIgRmx1dHRlciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IHJlcXVpcmVkIGJ5IEZhc3RsYW5lIGNhbiBiZSBkb25lIGJ5IGFkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IEpTT04gZmlsZSBjb250ZW50cyBhcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IGVudmlvcm5tZW50IHZhcmlhYmxlLiBUaGlzIGlzIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1NVUFBMWV9KU09OX0tFWSZsdDsvY29kZSZndDsgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgYSBmaWxlIHBhdGggdG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0Zhc3RsYW5lJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05vdyB0aGF0IG91ciBlbnZpb3JubWVudCB2YXJpYWJsZXMgYXJlIGluIHBsYWNlIGFuZCB3ZSBjYW4gYnVpbGQgYSBzaWduZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LmFhYiZsdDsvY29kZSZndDsgZmlsZSB1c2luZyBGbHV0dGVyLCBpdOKAmXMgdGltZSB0byB0ZWxsIEZhc3RsYW5lIGhvdyB0byBkbyB0aGlzIGZvciB1cy4gV2XigJlsbCBzdGFydCB3aXRoIEFuZHJvaWQuIE9wZW5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZC9mYXN0bGFuZS9GYXN0ZmlsZSZsdDsvY29kZSZndDsgd2lsbCByZXZlYWwgc29tZSBkZWZhdWx0cyBmb3IgYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBidXQgdGhleSB3b27igJl0IHdvcmsgZm9yIG91ciB1c2UgY2FzZS4gV2XigJlyZSBidWlsZGluZyB3aXRoIEZsdXR0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rmlyc3QsIGxldOKAmXMgZGVmaW5lIGEgbmV3IOKAnGxhbmXigJ0uIFRoaXMgaXMgYSBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgRmFzdGxhbmUgd2lsbCBleGVjdXRlIHdoZW4gY2FsbGVkLiBGb3Igbm93LCB3ZeKAmWxsIGJlIHB1c2hpbmcgb3VyIGFwcCB0byB0aGUg4oCcYmV0YeKAnSBjaGFubmVsLCBub3QgdG8gcHJvZHVjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwoKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgaXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIGxhbmUuIE5leHQsIHdl4oCZbGwgd2FudCB0byBncmFiIGEgYnVpbGQgbnVtYmVyIHdoaWNoIGlzIGFuIGluY3JlbWVudGluZyBudW1iZXIgdXNlZCBhcyBhIHJlZmVyZW5jZSBmb3IgdGhlIHZlcnNpb24gb2YgdGhlIGFwcCAod2hpY2ggZGlmZmVycyBmcm9tIHRoZSB1c2VyLWZhY2luZyBzZW12ZXIpLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHRvIHRoZSBsYW5lOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ICBidWlsZF9udW1iZXIgPSBudW1iZXJfb2ZfY29tbWl0cygpCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgZW5zdXJlcyB0aGF0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZF9udW1iZXImbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0aGF0IGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBHaXQgcmVwb3NpdG9yeS4gVGhpcyBjYW4gYWxzbyBiZSBtYW51YWxseSBpbmNyZW1lbnRlZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVic3BlYy55YW1sJmx0Oy9jb2RlJmd0OyBmaWxlIHRoYXQgRmx1dHRlciB1c2VzIHRvIGJ1aWxkIHRoZSBwYWNrYWdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdl4oCZbGwgZG8gdGhlIGJ1aWxkaW5nLiBXZSBuZWVkIHRvIGdvIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5LCBydW4gYSBmZXcgc2hlbGwgY29tbWFuZHMgdG8gZmV0Y2ggb3VyIHBhY2thZ2VzLCBjbGVhbiB0aGUgcHJldmlvdXMgYnVpbGQgKGlmIGF2YWlsYWJsZSksIHRoZW4gYnVpbGQgdGhlIGFwcGJ1bmRsZSB3aXRoIG91ciBidWlsZCBudW1iZXIuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIERpci5jaGRpciAmcXVvdDsuLi8uLiZxdW90OyBkbwogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7cGFja2FnZXMmcXVvdDssICZxdW90O2dldCZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2NsZWFuJnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7YnVpbGQmcXVvdDssICZxdW90O2FwcGJ1bmRsZSZxdW90OywgJnF1b3Q7LS1idWlsZC1udW1iZXI9I3tidWlsZF9udW1iZXJ9JnF1b3Q7KQogIGVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtGaW5hbGx5LCB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYXBwIHN0b3JlIG9uIHRoZSBiZXRhIGNoYW5uZWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIHVwbG9hZF90b19wbGF5X3N0b3JlKHRyYWNrOiAnYmV0YScsIGFhYjogJy4uL2J1aWxkL2FwcC9vdXRwdXRzL2J1bmRsZS9yZWxlYXNlL2FwcC5hYWInKQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGxhbmUgd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwogIGJ1aWxkX251bWJlciA9IG51bWJlcl9vZl9jb21taXRzKCkKICBEaXIuY2hkaXIgJnF1b3Q7Li4vLi4mcXVvdDsgZG8KICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O3BhY2thZ2VzJnF1b3Q7LCAmcXVvdDtnZXQmcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtjbGVhbiZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2J1aWxkJnF1b3Q7LCAmcXVvdDthcHBidW5kbGUmcXVvdDssICZxdW90Oy0tYnVpbGQtbnVtYmVyPSN7YnVpbGRfbnVtYmVyfSZxdW90OykKICBlbmQKICB1cGxvYWRfdG9fcGxheV9zdG9yZSh0cmFjazogJ2JldGEnLCBhYWI6ICcuLi9idWlsZC9hcHAvb3V0cHV0cy9idW5kbGUvcmVsZWFzZS9hcHAuYWFiJykKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dvIGFoZWFkIGFuZCBzYXZlIHRoZSBmaWxlLCBhbmQgdGhlbiBydW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZmFzdGxhbmUgYmV0YSZsdDsvY29kZSZndDsuIEl0IHdpbGwgcnVuIHRocm91Z2ggdGhlIHN0ZXBzLCBidWlsZGluZyB0aGUgYXBwIGFuZCBwdXNoaW5nIHRoZSBhcHBsaWNhdGlvbiBmb3IgeW91LiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgd2XigJlsbCBkbyB0aGUgc2FtZSBmb3IgaU9TLCBidXQgcmVwbGFjaW5nIHNvbWUgb2YgdGhlIGNvbW1hbmRzIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBpT1MgY29tbWFuZHMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lvcy9GYXN0bGFuZSZsdDsvY29kZSZndDsgZGlyZWN0b3J5LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZGVzYyAmcXVvdDtEZXBsb3kgYSBuZXcgYnVpbGQgdG8gVGVzdGZsaWdodCZxdW90OwpsYW5lIDpiZXRhIGRvCiAgRGlyLmNoZGlyICZxdW90Oy4uLy4uJnF1b3Q7IGRvCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtwYWNrYWdlcyZxdW90OywgJnF1b3Q7Z2V0JnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7Y2xlYW4mcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtidWlsZCZxdW90OywgJnF1b3Q7aW9zJnF1b3Q7LCAmcXVvdDstLXJlbGVhc2UmcXVvdDssICZxdW90Oy0tbm8tY29kZXNpZ24mcXVvdDspCiAgZW5kCiAgYnVpbGRfaW9zX2FwcChzY2hlbWU6ICZxdW90O015QXBwJnF1b3Q7KQogIHVwbG9hZF90b190ZXN0ZmxpZ2h0CmVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhcHAgaXMgYnVpbHQgdHdpY2UuIFRoZSBmaXJzdCBidWlsZCBidWlsZHMgYWdhaW5zdCB0aGUgbGF0ZXN0IEZsdXR0ZXIgdG9vbGNoYWluLCB3aGlsZSB0aGUgc2Vjb25kIGJ1aWxkIGJ1aWxkcyB0aGUgYWN0dWFsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5pcGEmbHQ7L2NvZGUmZ3Q7IGZpbGUgdGhhdCB3aWxsIGJlIHVwbG9hZGVkIHRvIFRlc3RmbGlnaHQuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O05vdywgd2l0aCBDaXJjbGVDSSZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gcGxhY2UsIGl04oCZcyB0aW1lIHRvIGdldCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB3cml0dGVuIHNvIHRoYXQgYSBwdXNoIHRvIGEgYnJhbmNoIGlzIHRyYW5zbGF0ZWQgdG8gYSBuZXcgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7aU9TJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0ZvciBkZXBsb3lpbmcgd2l0aCBpT1MsIENpcmNsZUNJIGFscmVhZHkgaGFzIGRvY3MgdG8gY292ZXIgdGhpcyEgU3RlcHMgZm9yIHNldHRpbmcgdXAgRmFzdGxhbmUgZGVwbG95bWVudCB3aXRoIEZsdXR0ZXIgaXMgc2ltaWxhciB0byB0aGUgc3RlcHMgb3V0bGluZWQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvaW9zLWNvZGVzaWduaW5nLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OyBhbmQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZGVwbG95aW5nLWlvcy8jYXBwLXN0b3JlLWNvbm5lY3QmcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0FuZHJvaWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7V2hlbiBpdCBjb21lcyB0byB0aGUgRG9ja2VyIGltYWdlIHRvIHBpY2ssIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gRWl0aGVyIHlvdSBjYW4gYnVpbGQgYW5kIHB1c2ggdGhlIERvY2tlciBpbWFnZSB1c2VkIGJ5IHRoZSBGbHV0dGVyIHByb2plY3QgZm91bmQgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2Jsb2IvbWFzdGVyL2Rldi9jaS9kb2NrZXJfbGludXgvRG9ja2VyZmlsZSZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oywgb3IgeW91IGNhbiBwdWxsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dtZW1zdHIvZmx1dHRlci1mYXN0bGFuZTpsYXRlc3QmbHQ7L2NvZGUmZ3Q7LCB3aGljaCBpcyBidWlsdCBvbiB0b3Agb2YgYW4gZXhpc3RpbmcgRmx1dHRlciBEb2NrZXIgaW1hZ2UgYW5kIGluc3RhbGxzIEZhc3RsYW5lIGFsb25nc2lkZSBpdCwgYXZvaWRpbmcgYWRkaXRpb25hbCBvdmVyaGVhZCBvZiBpbnN0YWxsaW5nIGl0IGR1cmluZyBydW50aW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28gZW5zdXJlIHRoYXQgdGhlIGVudmlvcm5tZW50IHZhcmlhYmxlcyBtZW50aW9uZWQgZWFybGllciBhcmUgYWRkZWQgdG8geW91ciBwcm9qZWN0LiBOYW1lbHk6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQTEFZX1NUT1JFX1VQTE9BRF9LRVkmbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtrZXkuamtzJmx0Oy9jb2RlJmd0OyBmaWxlJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7UExBWV9TVE9SRV9VUExPQURfS0VZX0lORk8mbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCBmaWxlIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIGFuZCBvdGhlciBpbmZvIHJlZ2FyZGluZyB0aGUgdXBsb2FkIHNpZ25pbmcga2V5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IC0gWW91ciBHb29nbGUgU2VydmljZSBBY2NvdW50IEpTT04gc3RyaW5nIGZvciBhdXRoZW50aWNhdGlvbiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtJbiB5b3VyIHByb2plY3RzIHJvb3QsIGFkZCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLCBhbmQgaW4gdGhhdCBmb2xkZXIgYWRkIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y2lyY2xlY2kueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLiBBZGQgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSBuZXdseSBjcmVhdGVkIGZpbGU6Jmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7JwogIAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgc25pcHBldCBhYm92ZSBkZWZpbmVzIGFuIGV4ZWN1dG9yIHdlIGNhbiByZXVzZSBsYXRlciBpbiBvdXIgY29uZmlndXJhdGlvbiB0aGFua3MgdG8gdGhlIHVzZSBvZiByZXVzYWJsZSBjb25maWd1cmF0aW9uIGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYnMmbHQ7L2EmZ3Q7IGluIENpcmNsZUNJIDIuMS4gSXQgYWxzbyBpbmNsdWRlcyBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBlbnN1cmUgSmF2YSBkb2VzbuKAmXQgY29uc3VtZSBhbGwgb2Ygb3VyIG1lbW9yeSB3aGlsZSBidWlsZGluZyB0aGUgYXBwLiBOZXh0LCB3ZeKAmWxsIGRlZmluZSB0aGUgam9iIHdlIHdhbnQgdG8gcnVuIHRoZSBjb21tYW5kcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2pvYnM6CiAgYmV0YV9kZXBsb3k6CiAgICBleGVjdXRvcjogYW5kcm9pZC1mbHV0dGVyCiAgICBzdGVwczoKICAgICAgLSBjaGVja291dAogICAgICAtIHJ1bjogZWNobyAmcXVvdDskUExBWV9TVE9SRV9VUExPQURfS0VZJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGtleS5qa3MKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWV9JTkZPJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGFuZHJvaWQva2V5LnByb3BlcnRpZXMKICAgICAgLSBydW46IGNkIGFuZHJvaWQgJmFtcDthbXA7JmFtcDthbXA7IGZhc3RsYW5lIGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgd2XigJlsbCBkZWZpbmUgb3VyIHdvcmtmbG93IHdoaWNoIHdpbGwgb25seSBydW4gdGhlIGpvYiB3aGVuIHRoZSBuZXcgY29kZSBpcyBwdXNoZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2JldGEmbHQ7L2NvZGUmZ3Q7IGJyYW5jaC4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3dvcmtmbG93czoKICBkZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGJldGFfZGVwbG95OgogICAgICAgICAgZmlsdGVyczoKICAgICAgICAgICAgYnJhbmNoZXM6CiAgICAgICAgICAgICAgb25seTogYmV0YQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7Jwpqb2JzOgogIGJldGFfZGVwbG95OgogICAgZXhlY3V0b3I6IGFuZHJvaWQtZmx1dHRlcgogICAgc3RlcHM6CiAgICAgIC0gY2hlY2tvdXQKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWSZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBrZXkuamtzCiAgICAgIC0gcnVuOiBlY2hvICZxdW90OyRQTEFZX1NUT1JFX1VQTE9BRF9LRVlfSU5GTyZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBhbmRyb2lkL2tleS5wcm9wZXJ0aWVzCiAgICAgIC0gcnVuOiBjZCBhbmRyb2lkICZhbXA7YW1wOyZhbXA7YW1wOyBmYXN0bGFuZSBiZXRhCgp3b3JrZmxvd3M6CiAgZGVwbG95OgogICAgam9iczoKICAgICAgLSBiZXRhX2RlcGxveToKICAgICAgICAgIGZpbHRlcnM6CiAgICAgICAgICAgIGJyYW5jaGVzOgogICAgICAgICAgICAgIG9ubHk6IGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvcHJvamVjdHMvJnF1b3Q7Jmd0O1NldCB1cCB5b3VyIHByb2plY3Qgb24gQ2lyY2xlQ0kmbHQ7L2EmZ3Q7LiBPbmNlIHlvdSBjbGljayAmbHQ7c3Ryb25nJmd0O1NldCBVcCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7LCB5b3Ugd2lsbCBiZSBicm91Z2h0IHRvIGEgdGV4dCBlZGl0b3IgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBjb3B5IGluIHRoZSBjb25maWcgZnJvbSBhYm92ZS4gQ2xpY2sgJmx0O3N0cm9uZyZndDtTdGFydCBCdWlsZGluZyZsdDsvc3Ryb25nJmd0Oy4gTm93IGV2ZXJ5IG5ldyBjb21taXQgdG8gdGhlIGJldGEgYnJhbmNoIHdpbGwgcmVzdWx0IGluIGEgZGVwbG95LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIGFuIEV4cHJlc3MgR3JhcGhRTCBzZXJ2ZXIgdG8gSGVyb2t1PC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1hbi1leHByZXNzLWdyYXBocWwtc2VydmVyLXRvLWhlcm9rdS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VHVlLCAyOCBBcHIgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtYW4tZXhwcmVzcy1ncmFwaHFsLXNlcnZlci10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dyYXBocWwub3JnLyZxdW90OyZndDtHcmFwaFFMJmx0Oy9hJmd0OyBjb250aW51ZXMgdG8gZ3JvdyBpbiBwb3B1bGFyaXR5IHdpdGggZWFjaCBwYXNzaW5nIGRheSwgc2luY2UgaXRzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9lbmdpbmVlcmluZy5mYi5jb20vY29yZS1kYXRhL2dyYXBocWwtYS1kYXRhLXF1ZXJ5LWxhbmd1YWdlLyZxdW90OyZndDtwdWJsaWMgcmVsZWFzZSBieSBGYWNlYm9vayZsdDsvYSZndDsgaW4gMjAxNS4gVGhlIHRlY2hub2xvZ3kgZW5hYmxlcyBmcm9udCBlbmQgY2xpZW50cyB0byBxdWVyeSBleGFjdGx5IHdoYXQgdGhleSBuZWVkIGZyb20gdGhlIGJhY2tlbmQsIGFuZCBpcyBnYWluaW5nIHdpZGUgcmVjb2duaXRpb24gYW5kIGFkb3B0aW9uIGJ5IHJlcHV0YWJsZSBjb21wYW5pZXMgc3VjaCBhcyBQaW50ZXJlc3QsIENvdXJzZXJhLCBBaXJibmIsIGFuZCBGYWNlYm9vayBpdHNlbGYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBwb3N0LCB3ZSB3aWxsIGxlYXJuIGhvdyB0byBkZXBsb3kgYSBzaW1wbGUgR3JhcGhRTCBzZXJ2ZXIgd3JpdHRlbiBpbiBOb2RlLmpzIHRvIEhlcm9rdSB2aWEgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IChDSSkgcGlwZWxpbmUgdXNpbmcgQ2lyY2xlQ0kuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1ByZXJlcXVpc2l0ZXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUbyBmb2xsb3cgYWxvbmcgd2l0aCB0aGlzIHBvc3QsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhbHJlYWR5IHNldCB1cDombHQ7L3AmZ3Q7CiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL25vZGVqcy5vcmcvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlIC12Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsIHRvIHByaW50IG91dCB5b3VyIHZlcnNpb24gb2YgTm9kZS5qcyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdC1zY20uY29tLyZxdW90OyZndDtHaXQmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnaXQmbHQ7L2NvZGUmZ3Q7IG9uIHlvdXIgdGVybWluYWw7IHRoaXMgc2hvdWxkIHByaW50IG91dCBhdmFpbGFibGUgZ2l0IGNvbW1hbmRzKSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5oZXJva3UuY29tLyZxdW90OyZndDtIZXJva3UmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tLyZxdW90OyZndDtHaXRIdWImbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vc2lnbnVwLyZxdW90OyZndDtDaXJjbGVDSSZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDsjI1NjYWZmb2xkaW5nIHRoZSBHcmFwaFFMIHNlcnZlciBwcm9qZWN0ClRvIGJlZ2luIHNldHRpbmcgdXAgYSBHcmFwaFFMIHNlcnZlciwgY3JlYXRlIGEgbmV3IGZvbGRlciBmb3IgdGhlIHByb2plY3QgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtta2RpciBncmFwaHFsLXRlc3Qtc2VydmVyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7Tm93IGdvIGludG8gdGhlIHJvb3Qgb2YgdGhlIGZvbGRlciBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBzY2FmZm9sZCBhIG5ldyBOb2RlLmpzIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5pdCAteQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDtwJmd0O1RoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsteSZsdDsvY29kZSZndDsgb3B0aW9uYWwgZmxhZyBhbGxvd3MgeW91IHRvIHNraXAgY29uZmlybWluZyB0aGUgZGVmYXVsdCBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwYWNrYWdlLmpzb24mbHQ7L2NvZGUmZ3Q7IGZpbGUgYW5kIGp1c3QgYWNjZXB0cyB0aGVtLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGFyZSBnb2luZyB0byBjcmVhdGUgYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2V4cHJlc3Nqcy5jb20vJnF1b3Q7Jmd0O0V4cHJlc3NKUyZsdDsvYSZndDsgTm9kZS5qcyBhcHBsaWNhdGlvbiBhbmQgYnVpbGQgdGhlIEdyYXBoUUwgc2VydmVyLiBUbyBkbyB0aGlzLCB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIGZvbGxvd2luZyBwYWNrYWdlczombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2V4cHJlc3MmbHQ7L2NvZGUmZ3Q7OiB0byBjcmVhdGUgb3VyIEV4cHJlc3NKUyBOb2RlLmpzIGFwcGxpY2F0aW9uJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z3JhcGhxbCZsdDsvY29kZSZndDs6IHRoZSBHcmFwaFFMIG5wbSBwYWNrYWdlIGZvciBOb2RlLmpzJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OzogRXhwcmVzc0pTIG1pZGRsZXdhcmUgZm9yIEdyYXBoUUwmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbCB0aGVzZSBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBpbnN0YWxsIC0tc2F2ZSBleHByZXNzIGdyYXBocWwgZXhwcmVzcy1ncmFwaHFsCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIHRoZSByZXF1aXJlZCBwYWNrYWdlcyB0byBzdGFydCBwdXR0aW5nIHRvZ2V0aGVyIG91ciBHcmFwaFFMIHNlcnZlci4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgdGhlIEdyYXBoUUwgc2NoZW1hJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7Q3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bWtkaXIgc3JjCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1dpdGhpbiB0aGlzIGZvbGRlciwgY3JlYXRlIGEgbmV3IGZpbGUgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEuanMmbHQ7L2NvZGUmZ3Q7IGFuZCBwYXN0ZSBpbiB0aGUgY29kZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Owpjb25zdCB7IGJ1aWxkU2NoZW1hIH0gPSByZXF1aXJlKCZxdW90O2dyYXBocWwmcXVvdDspOwoKY29uc3Qgc2NoZW1hID0gYnVpbGRTY2hlbWEoYAogICAgdHlwZSBRdWVyeSB7CiAgICAgICAgdXNlcnM6IFtVc2VyIV0hLAogICAgICAgIHVzZXIoaWQ6IEludCEpOiBVc2VyIQogICAgfQoKICAgIHR5cGUgTXV0YXRpb24gewogICAgICAgIGVkaXRVc2VyKGlkOiBJbnQhLCBuYW1lOiBTdHJpbmchLCBlbWFpbDogU3RyaW5nISk6IFVzZXIhCiAgICB9CgogICAgdHlwZSBVc2VyIHsKICAgICAgICBpZDogSUQhCiAgICAgICAgbmFtZTogU3RyaW5nIQogICAgICAgIGVtYWlsOiBTdHJpbmcKICAgICAgICBwb3N0czogW1Bvc3QhXQogICAgfQoKICAgIHR5cGUgUG9zdCB7CiAgICAgICAgaWQ6IElEIQogICAgICAgIHRpdGxlOiBTdHJpbmchCiAgICAgICAgcHVibGlzaGVkOiBCb29sZWFuIQogICAgICAgIGxpbms6IFN0cmluZwogICAgfQpgKTsKCm1vZHVsZS5leHBvcnRzID0gc2NoZW1hOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBhYm92ZSBjb2RlLCB3ZSBoYXZlIGNyZWF0ZWQgZm91ciB0eXBlcywgY29uc2lzdGluZyBvZiB0d28gYnVpbHQtaW4gdHlwZXMgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7KSBhbmQgdHdvIGN1c3RvbSB0eXBlcyAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXNlciZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1Bvc3QmbHQ7L2NvZGUmZ3Q7KS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWdpbm5pbmcgd2l0aCB0aGUgY3VzdG9tIHR5cGVzLCB3ZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmc6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VyJmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHVzZXIgaW4gdGhlIGFwcGxpY2F0aW9uIHdpdGggaXRzIHJlc3BlY3RpdmUgZmllbGRzIGFuZCBhIHJlbGF0aW9uYWwgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cG9zdHMmbHQ7L2NvZGUmZ3Q7IGZpZWxkLCB3aGljaCByZXR1cm5zIGFuIGFycmF5IG9mIHBvc3RzIGNyZWF0ZWQgYnkgdGhlIHVzZXImbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQb3N0Jmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHB1YmxpY2F0aW9uIGNyZWF0ZWQgYnkgYSB1c2VyIGluIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGl0cyByZXNwZWN0aXZlIGZpZWxkcyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OzogaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyB0eXBlLCB3ZSBkZWZpbmVkIHR3byBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgcXVlcmllZCBmcm9tIG91ciBHcmFwaFFMIHNlcnZlciBhcyBmb2xsb3dzOgogICAgJmx0O3VsJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlcnMmbHQ7L2NvZGUmZ3Q7OiBhbiBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VycyZsdDsvY29kZSZndDsmbHQ7L2xpJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlciZsdDsvY29kZSZndDs6IGEgc2luZ2xlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1VzZXImbHQ7L2NvZGUmZ3Q7IHdpdGggdGhlIHNwZWNpZmllZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgaW4gdGhlIGFyZ3VtZW50cyBsaXN0Jmx0Oy9saSZndDsKICAgICZsdDsvdWwmZ3Q7CiAgJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7OiBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7IHR5cGUsIHdlIGRlZmluZWQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VkaXRVc2VyJmx0Oy9jb2RlJmd0OyBtdXRhdGlvbiwgd2hpY2gsIGdpdmVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgb2YgdGhlIHVzZXIsIGNhbiBiZSBjYWxsZWQgdG8gZWRpdCBhIHVzZXIgYW5kIHRoZW4gdXBkYXRlIHRoZSBpbmZvcm1hdGlvbiAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bmFtZSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VtYWlsJmx0Oy9jb2RlJmd0OykmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhlIHNjaGVtYSBpcyBjcmVhdGVkIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZFNjaGVtYSZsdDsvY29kZSZndDsgb2YgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dyYXBocWwmbHQ7L2NvZGUmZ3Q7IHBhY2thZ2UgYW5kIGV4cG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O01vY2tpbmcgZGF0YSZsdDsvaDImZ3Q7CiZsdDtwJmd0O0luIG9yZGVyIHRvIGhhdmUgcmVzdWx0cyBmb3Igb3VyIHF1ZXJpZXMsIHdlIG5lZWQgZGF0YS4gRm9yIHRoaXMgZXhlcmNpc2UsIHdlIHdpbGwgYmUgdXNpbmcgTW9uZ29EQi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIb3dldmVyLCBzaW5jZSB0aGUgZ29hbCBvZiB0aGlzIHBvc3QgaXMgdG8gZGVtb25zdHJhdGUgZGVwbG95aW5nIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyLCB3ZSB3b27igJl0IGJvdGhlciB3aXRoIHNldHRpbmcgdXAgYSBNb25nb0RCIHNlcnZlci4gSW5zdGVhZCwgd2Ugd2lsbCAgdXNlIGEgbW9ja2VkIHZlcnNpb24gdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O21vbmdvZGItbWVtb3J5LXNlcnZlciZsdDsvY29kZSZndDsuIFRoaXMgcGFja2FnZSBhbGxvd3MgdXMgdG8gY3JlYXRlIGFuZCB1c2UgYW4gaW4tbWVtb3J5IE1vbmdvREIgZGF0YWJhc2Ugc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHNldCB0aGlzIHVwLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhdCB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5zdGFsbCAtLXNhdmUgbW9uZ29kYiBtb25nb2RiLW1lbW9yeS1zZXJ2ZXIKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwombHQ7cCZndDtUaGlzIGluc3RhbGxhdGlvbiBtaWdodCB0YWtlIGEgd2hpbGUsIGRlcGVuZGluZyBvbiB5b3VyIGRvd25sb2FkIHNwZWVkLiBNb25nb0RCIHdhcyBhdCBsZWFzdCA2NiBtZWdhYnl0ZXMgaW4gc2l6ZSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhLmpzJmx0Oy9jb2RlJmd0OyBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3JjJmx0Oy9jb2RlJmd0OyBmb2xkZXIuIFRoaXMgZmlsZSB3aWxsIGV4cG9ydCBhbiBhcnJheSBvZiBoYXJkLWNvZGVkIHVzZXIgZGF0YS4gUGFzdGUgdGhlIGZvbGxvd2luZyBjb2RlIGJlbG93IGludG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBVc2VycyA9IFsKICB7CiAgICBpZDogMSwKICAgIG5hbWU6ICZxdW90O0Zpa2F5byBBZGVwb2p1JnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2ZpazRjaHJpc3RAeWFob28uY29tJnF1b3Q7LAogICAgcG9zdHM6IFsKICAgICAgewogICAgICAgIGlkOiAxLAogICAgICAgIHRpdGxlOiAmcXVvdDtDcmVhdGluZyBhbiBFbW9qaSBHYW1lIHdpdGggVnVlLCBBdXRoMCwgYW5kIEdvb2dsZSBWaXNpb24gQVBJJnF1b3Q7LAogICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSwKICAgICAgICBsaW5rOgogICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hdXRoMC5jb20vYmxvZy9jcmVhdGluZy1hbi1lbW9qaS1nYW1lLXdpdGgtdnVlLWF1dGgwLWFuZC1nb29nbGUtdmlzaW9uLWFwaS8mcXVvdDssCiAgICAgICAgYXV0aG9yOiAxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBpZDogMiwKICAgICAgICB0aXRsZTogJnF1b3Q7RWxlY3Ryb24gVHV0b3JpYWw6IEJ1aWxkaW5nIE1vZGVybiBEZXNrdG9wIEFwcHMgd2l0aCBWdWUuanMmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2F1dGgwLmNvbS9ibG9nL2VsZWN0cm9uLXR1dG9yaWFsLWJ1aWxkaW5nLW1vZGVybi1kZXNrdG9wLWFwcHMtd2l0aC12dWUtanMvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDMsCiAgICAgICAgdGl0bGU6ICZxdW90O1N0YXRlIE1hbmFnZW1lbnQgd2l0aCBWdWV4OiBhIFByYWN0aWNhbCBUdXRvcmlhbCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazoKICAgICAgICAgICZxdW90O2h0dHBzOi8vYXV0aDAuY29tL2Jsb2cvc3RhdGUtbWFuYWdlbWVudC13aXRoLXZ1ZXgtYS1wcmFjdGljYWwtdHV0b3JpYWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMiwKICAgIG5hbWU6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2pvaG5AY29tcGFueS5jb20mcXVvdDssCiAgICBwb3N0czogWwogICAgICB7CiAgICAgICAgaWQ6IDQsCiAgICAgICAgdGl0bGU6ICZxdW90O0J1aWxkIGEgQ0kgcG93ZXJlZCBSRVNUZnVsIEFQSSB3aXRoIExhcmF2ZWwmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2J1aWxkLWEtY2ktcG93ZXJlZC1yZXN0ZnVsLWFwaS13aXRoLWxhcmF2ZWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDUsCiAgICAgICAgdGl0bGU6ICZxdW90O0F1dG9tYXRlIHlvdXIgTnV4dC5qcyBhcHAgZGVwbG95bWVudCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazogJnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hdXRvbWF0ZS15b3VyLW51eHQtanMtYXBwLWRlcGxveW1lbnQvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMywKICAgIG5hbWU6ICZxdW90O0phbmUgUGF1bCZxdW90OywKICAgIGVtYWlsOiAmcXVvdDtqYW5lQGNvbXBhbnkuY29tJnF1b3Q7LAogICAgcG9zdHM6IFtdCiAgfQpdOwoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgVXNlcnMKfTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBjb2RlIGFib3ZlLCB3ZSBoYXZlIGFuIGFycmF5IG9mIHVzZXIgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgcG9zdHMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIHNlZWQgb3VyIGluLW1lbW9yeSBkYXRhYmFzZSBvbmNlIGl0IGlzIGluc3RhbnRpYXRlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCB0YXNrIGlzIHRvIHNldCB1cCBvdXIgbW9jayBNb25nb0RCIGRhdGFiYXNlIHNlcnZlci4gSW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhYmFzZS5qcyZsdDsvY29kZSZndDsgYW5kIGluc2VydCB0aGUgZm9sbG93aW5nIGNvZGUgaW50byB0aGUgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O01vbmdvTWVtb3J5U2VydmVyJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtyZXF1aXJlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtzMiZxdW90OyZndDsmcXVvdDttb25nb2RiLW1lbW9yeS1zZXJ2ZXImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O21vbmdvZGImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtjb25zdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bm8mcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90Oy4vZGF0YSZxdW90OyZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0Oyk7Jmx0Oy9zcGFuJmd0OwoKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7bGV0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDtudWxsJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXN5bmMmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7ZnVuY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25mJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoKSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDt7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7bmV3Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtNb25nb01lbW9yeVNlcnZlciZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygpOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtubyZxdW90OyZndDttb25nb0RCVVJMJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXdhaXQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7LiZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtnZXRDb25uZWN0aW9uU3RyaW5nJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3QmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvREJVUkwmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDssJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7CiAgICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDt1c2VOZXdVcmxQYXJzZXImbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs6Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDt0cnVlJmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSk7Jmx0Oy9zcGFuJmd0OwoKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtjMSZxdW90OyZndDsvL1NlZWQgRGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7CiAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtpZiZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7ISZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OykmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsKICAgICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RhdGFiYXNlJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RiJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbGxlY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O3VzZXJzJnF1b3Q7Jmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7aW5zZXJ0TWFueSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7VXNlcnMmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7CgogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7cmV0dXJuJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OzsmbHQ7L3NwYW4mZ3Q7CiZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vZHVsZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZXhwb3J0cyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtzdGFydERhdGFiYXNlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGNvZGUgYWJvdmUsIHdlIGV4cG9ydCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L2NvZGUmZ3Q7IGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBzdGFydHMgYSBuZXcgKG1vY2tlZCkgTW9uZ29EQiBzZXJ2ZXIgaW5zdGFuY2UgYW5kIGdldHMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuIEl0IHRoZW4gY3JlYXRlcyBhIG5ldyBNb25nb0RCIGNsaWVudCBjb25uZWN0aW9uIHVzaW5nIHRoZSBjb25uZWN0aW9uIHN0cmluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwgd2Ugc2VlZCBpdCB3aXRoIG91ciB1c2VyIGRhdGEgZXhwb3J0ZWQgZnJvbSBvdXIgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZGF0YS5qcyZsdDsvY29kZSZndDsgZmlsZS4gQSBjaGVjayBpcyBtYWRlIHRvIHNlZSBpZiB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIGlzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O251bGwmbHQ7L2NvZGUmZ3Q7IGJlZm9yZSBzZWVkaW5nIGl0IHdpdGggZGF0YSwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBmcm9tIGJlaW5nIGVudGVyZWQgaW50byB0aGUgZGF0YWJhc2UgZWFjaCB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdXAuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGRhdGFiYXNlIHJlZmVyZW5jZS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgb3VyIHJlc29sdmVycyZsdDsvaDImZ3Q7CiZsdDtwJmd0O05leHQgdXAsIHdlIG5lZWQgdG8gZGVmaW5lIHJlc29sdmVycyBmb3Igb3VyIEdyYXBoUUwgcXVlcmllcyBpbiBvcmRlciB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGRhdGEgZm9yIGVhY2ggcXVlcnkgb3BlcmF0aW9uLiBXZSB3aWxsIGRlZmluZSByZXNvbHZlcnMgZm9yIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt1c2VycyZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3VzZXImbHQ7L2NvZGUmZ3Q7IHF1ZXJpZXMgYW5kIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtlZGl0VXNlciZsdDsvY29kZSZndDsgbXV0YXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Jlc29sdmVycy5qcyZsdDsvY29kZSZndDsgYW5kIHBhc3RlIGluIHRoZSBmb2xsb3dpbmcgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IHJlc29sdmVycyA9IHsKICB1c2VyczogYXN5bmMgKF8sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIKICAgICAgLmNvbGxlY3Rpb24oJnF1b3Q7dXNlcnMmcXVvdDspCiAgICAgIC5maW5kKCkKICAgICAgLnRvQXJyYXkoKTsKICB9LAogIHVzZXI6IGFzeW5jICh7IGlkIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIuY29sbGVjdGlvbigmcXVvdDt1c2VycyZxdW90OykuZmluZE9uZSh7IGlkIH0pOwogIH0sCiAgLy9NdXRhdGlvbiByZXNvbHZlcnMKICBlZGl0VXNlcjogYXN5bmMgKHsgaWQsIG5hbWUsIGVtYWlsIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CgogICAgcmV0dXJuIGRiCiAgICAgIC5jb2xsZWN0aW9uKCZxdW90O3VzZXJzJnF1b3Q7KQogICAgICAuZmluZE9uZUFuZFVwZGF0ZSgKICAgICAgICB7IGlkIH0sCiAgICAgICAgeyAkc2V0OiB7IG5hbWUsIGVtYWlsIH0gfSwKICAgICAgICB7IHJldHVybk9yaWdpbmFsOiBmYWxzZSB9CiAgICAgICkKICAgICAgLnRoZW4ocmVzcCA9JmFtcDtndDsgcmVzcC52YWx1ZSk7CiAgfSAKfTsKCm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZXJzOwoKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgc2VlbiBhYm92ZSwgd2Ugbm93IGhhdmUgcmVzb2x2ZXJzIGZvciB0aGUgdGhyZWUgR3JhcGhRTCByZXF1ZXN0cyBhdmFpbGFibGUgb24gb3VyIHNlcnZlci4gVGhlc2UgcmVzb2x2ZXJzIGZldGNoIGFuZCB1cGRhdGUgZGF0YSB1c2luZyB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIHdlIGNyZWF0ZWQgZWFybGllciBieSByZWZlcmVuY2luZyBpdCBmcm9tIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb250ZXh0Jmx0Oy9jb2RlJmd0OyBvYmplY3Qgb2YgdGhlIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgcmVmZXJlbmNlIHdpbGwgYmUgYWRkZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbnRleHQmbHQ7L2NvZGUmZ3Q7IG9iamVjdCBvZiBvdXIgR3JhcGhRTCBzZXJ2ZXIgc2V0dXAgaW4gdGhlIG5leHQgc2VjdGlvbiB3aGVuIHdlIHB1dCBldmVyeXRoaW5nIHRvZ2V0aGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTZXR0aW5nIHVwIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O0l0IGlzIHRpbWUgdG8gcHV0IGV2ZXJ5IGNvbXBvbmVudCB3ZSBidWlsdCB0b2dldGhlciB0byBzZXQgdXAgb3VyIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlZm9yZSB3ZSBiZWdpbiwgd2UgbmVlZCB0byBpbnN0YWxsIG9uZSBtb3JlIHBhY2thZ2UuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIGNvbWVzIHdpdGggdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0dyYXBoaVFMJmx0Oy9jb2RlJmd0OyBhcHBsaWNhdGlvbiwgd2hpY2ggYWxsb3dzIHlvdSB0byBxdWVyeSB5b3VyIEdyYXBoUUwgZW5kcG9pbnQsIGJ1dCBsZXTigJlzIGFkZCBhIHRvb2wgdGhhdCBpcyBtb3JlIHJvYnVzdC4gV2Ugd2lsbCBpbnN0YWxsIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIHRvIGdpdmUgdXMgYSBmYW5jaWVyIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgb3VyIEdyYXBoUUwgZW5kcG9pbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSBmb2xsb3dpbmcgY29kZSB0byBpbnN0YWxsIHRoZSBwYWNrYWdlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGluc3RhbGwgLS1zYXZlIGdyYXBocWwtcGxheWdyb3VuZC1taWRkbGV3YXJlLWV4cHJlc3MKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7V2Ugd2lsbCB1c2UgdGhpcyBtaWRkbGV3YXJlIHRvIHNldCB1cCB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kIGZvciBxdWVyeWluZyBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0xldOKAmXMgc2V0IHVwIG91ciBzZXJ2ZXIgYnkgY3JlYXRpbmcgYSBmaWxlIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2luZGV4LmpzJmx0Oy9jb2RlJmd0OyBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBhbmQgcGxhY2luZyB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBleHByZXNzID0gcmVxdWlyZSgmcXVvdDtleHByZXNzJnF1b3Q7KTsKY29uc3QgZ3JhcGhxbEhUVFAgPSByZXF1aXJlKCZxdW90O2V4cHJlc3MtZ3JhcGhxbCZxdW90Oyk7CmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoJnF1b3Q7Li9zcmMvc2NoZW1hJnF1b3Q7KTsKY29uc3QgcmVzb2x2ZXJzID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9yZXNvbHZlcnMmcXVvdDspOwpjb25zdCBzdGFydERhdGFiYXNlID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9kYXRhYmFzZSZxdW90Oyk7CmNvbnN0IGV4cHJlc3NQbGF5Z3JvdW5kID0gcmVxdWlyZSgmcXVvdDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJnF1b3Q7KS5kZWZhdWx0OwoKLy8gQ3JlYXRlIGEgY29udGV4dCBmb3IgaG9sZGluZyBjb250ZXh0dWFsIGRhdGEgCmNvbnN0IGNvbnRleHQgPSBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IGRiID0gYXdhaXQgc3RhcnREYXRhYmFzZSgpOwoKICByZXR1cm4geyBkYiB9Owp9OwoKY29uc3QgYXBwID0gZXhwcmVzcygpOwoKYXBwLnVzZSgKICAmcXVvdDsvZ3JhcGhxbCZxdW90OywKICBncmFwaHFsSFRUUCh7CiAgICBzY2hlbWEsCiAgICByb290VmFsdWU6IHJlc29sdmVycywKICAgIGNvbnRleHQKICB9KQopOwoKLy9HcmFwaHFsIFBsYXlncm91bmQgcm91dGUKYXBwLmdldCgmcXVvdDsvcGxheWdyb3VuZCZxdW90OywgZXhwcmVzc1BsYXlncm91bmQoeyBlbmRwb2ludDogJnF1b3Q7L2dyYXBocWwmcXVvdDsgfSkpOwoKY29uc3QgcG9ydCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgJnF1b3Q7NDAwMCZxdW90OzsKCmFwcC5saXN0ZW4ocG9ydCk7Cgpjb25zb2xlLmxvZyhg8J+agCBTZXJ2ZXIgcmVhZHkgYXQgaHR0cDovL2xvY2FsaG9zdDo0MDAwL2dyYXBocWxgKTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBmaWxlIGFib3ZlLCB3ZSBzdGFydCBieSBpbXBvcnRpbmcgYWxsIG5lY2Vzc2FyeSBtb2R1bGVzLiBUaGVuLCB3ZSBjcmVhdGUgb3VyIEdyYXBoUUwgY29udGV4dCBhbmQgcmV0dXJuIGFuIG9iamVjdCBmcm9tIGl0IGNvbnRhaW5pbmcgdGhlIHJlZmVyZW5jZSB0byBvdXIgTW9uZ29EQiBpbnN0YW5jZS4gTmV4dCwgd2UgY3JlYXRlIG91ciBFeHByZXNzSlMgYXBwbGljYXRpb24gYW5kIHNldCB1cCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OyBtaWRkbGV3YXJlIHdpdGggR3JhcGhRTCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEmbHQ7L2NvZGUmZ3Q7LCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtyZXNvbHZlcnMmbHQ7L2NvZGUmZ3Q7LCBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29udGV4dCZsdDsvY29kZSZndDsuIFdlIHRoZW4gc2V0IHVwIHRoZSBHcmFwaFFMIFBsYXlncm91bmQgYXQgdGhlIHJvdXRlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBsb2FkIG91ciBHcmFwaFFMIGVuZHBvaW50LiBGaW5hbGx5LCB3ZSBzdGFydCBvdXIgRXhwcmVzc0pTIHNlcnZlciB0byBsaXN0ZW4gYXQgcG9ydCA0MDAwIGFuZCBwcmludCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1F1ZXJ5aW5nIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O05vdyB0aGF0IHdlIGhhdmUgb3VyIHNlcnZlciBzZXQgdXAsIGxldOKAmXMgdGFrZSBpdCBmb3IgYSBzcGluLiBGaXJzdCwgbGV04oCZcyBjcmVhdGUgYSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzdGFydCZsdDsvY29kZSZndDsgc2NyaXB0IGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3BhY2thZ2UuanNvbiZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHNjcmlwdCB0byB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2NyaXB0cyZsdDsvY29kZSZndDsgc2VjdGlvbiBvZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Li4uCgrigJxzY3JpcHRz4oCdIDogewoJLi4uLAoJ4oCcc3RhcnTigJ0gOiDigJxub2RlIGluZGV4Lmpz4oCdCn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25wbSBzdGFydCZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCB0aGUgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNlcnZlciBpcyB1cCBhbmQgcnVubmluZywgb3BlbiB1cCB5b3VyIGJyb3dzZXIgYW5kIHZpc2l0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMC9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBvcGVuIHVwIHRoZSBwbGF5Z3JvdW5kLiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDEucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgcGxheWdyb3VuZCBhdXRvbWF0aWNhbGx5IHBvaW50cyB0byBvdXIgR3JhcGhRTCBlbmRwb2ludC4gRnJvbSBoZXJlIHdlIGNhbiB3cml0ZSBxdWVyaWVzIGFnYWluc3Qgb3VyIGVuZHBvaW50IGFuZCBnZXQgdGhlIHJlc3VsdHMuIFBhc3RlIHRoZSBxdWVyeSBiZWxvdyBpbnRvIHRoZSBxdWVyeSBzZWN0aW9uIG9mIHRoZSBwbGF5Z3JvdW5kIGFuZCBoaXQgUGxheSB0byBydW4gaXQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt7CiAgdXNlcnMgewogICAgbmFtZQogICAgZW1haWwKICAgIHBvc3RzIHsKICAgICAgdGl0bGUKICAgICAgcHVibGlzaGVkCiAgICB9CiAgfQp9CgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtSdW5uaW5nIHRoZSBhYm92ZSBxdWVyeSB3aWxsIHByb2R1Y2UgdGhlIHJlc3VsdCBzaG93biBvbiB0aGUgc2NyZWVuIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsMi5wbmcmcXVvdDsgd2lkdGg9JnF1b3Q7ODc1JnF1b3Q7IC8mZ3Q7CiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIHNlZW4gYWJvdmUsIG91ciBHcmFwaFFMIHNlcnZlciBpcyB3b3JraW5nIGZpbmUgYW5kIHJldHVybmluZyB0aGUgZXhwZWN0ZWQgZGF0YS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRvIEhlcm9rdSB3aXRoIENpcmNsZUNJJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7T3VyIGZpbmFsIHRhc2sgaXMgdG8gZGVwbG95IG91ciBHcmFwaFFMIHNlcnZlciB0aHJvdWdoIGEgQ0kgcGlwZWxpbmUgd2l0aCBDaXJjbGVDSSBvbiB0aGUgSGVyb2t1IGhvc3RpbmcgcGxhdGZvcm0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2UgYXJlIGdvaW5nIHRvIHRha2UgdGhlIGZvbGxvd2luZyBzdGVwcyB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7UHVzaCB0aGUgcHJvamVjdCB0byBhIEdpdEh1YiByZXBvc2l0b3J5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgbmV3IEhlcm9rdSBhcHAgYW5kIGdldCB0aGUgSGVyb2t1IEFQSSBrZXkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgYSBuZXcgcHJvamVjdCB0byBvdXIgQ2lyY2xlQ0kgYWNjb3VudCBhbmQgY29ubmVjdCBpdCB0byB0aGUgR2l0SHViIHJlcG8mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgb3VyIEhlcm9rdSBhcHAgbmFtZSBhbmQgQVBJIGtleSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gb3VyIG5ldyBwcm9qZWN0Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7V3JpdGUgb3VyIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgZGVwbG95bWVudCB0byBIZXJva3UmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIHRoZSBjb25maWd1cmF0aW9uIHRvIG91ciBHaXRIdWIgcmVwbyB0byBkZXBsb3kgdG8gSGVyb2t1Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0xldOKAmXMgYmVnaW4uIEZpcnN0LCBwdXNoIHRoZSBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG8uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY3JlYXRlIGEgSGVyb2t1IGFwcGxpY2F0aW9uIGFzIHNob3duIGJlbG93LiBUaGUgbmFtZSB5b3UgZW50ZXIgaXMgdGhlIG5hbWUgeW91IHdpbGwgc2F2ZSBhcyB5b3VyIEhlcm9rdSBhcHAgbmFtZSBvbiBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWwzLnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7WW91IGNhbiBnZXQgeW91ciBIZXJva3UgQVBJIGtleSBieSBnb2luZyB0byAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgYW5kIHNjcm9sbGluZyBkb3duIHRvIHRoZSAmbHQ7c3Ryb25nJmd0O0FQSSBLZXkmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIHRvIGRlcGxveWluZyBvdXIgYXBwbGljYXRpb24gdG8gSGVyb2t1IGlzIHRvIGNvbm5lY3QgdGhlIGFwcGxpY2F0aW9uIG9uIG91ciBHaXRIdWIgcmVwb3NpdG9yeSB0byBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIZWFkIHRvIHlvdXIgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9kYXNoYm9hcmQmcXVvdDsmZ3Q7Q2lyY2xlQ0kgZGFzaGJvYXJkJmx0Oy9hJmd0OyBhbmQgYWRkIHRoZSBwcm9qZWN0IGluIHRoZSAmbHQ7c3Ryb25nJmd0O0FkZCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7IHNlY3Rpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsNC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCAoaW4gdGhpcyBjYXNlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NpbXBsZS1ncmFwaHFsLW5vZGUtc2VydmVyJmx0Oy9jb2RlJmd0OyksIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0IFVwIFByb2plY3QmbHQ7L3N0cm9uZyZndDsuIFRoaXMgd2lsbCBicmluZyB5b3UgdG8gYSBwYWdlIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDUucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IGJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIHByb2plY3QuIFRoaXMgd2lsbCBpbW1lZGlhdGVseSBnaXZlIHVzIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCBhIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIHByb2plY3QuIFRoaXMgaXMgdW5kZXJzdGFuZGFibGUsIGFzIHdlIGFyZSB5ZXQgdG8gaW5jbHVkZSBvdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlLiBXZSB3aWxsIGJlIGRvaW5nIHRoYXQgbGF0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIG5leHQgc3RlcCBpcyB0byBhZGQgb3VyIEhlcm9rdSBkZXRhaWxzIGFzICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wL2Vudi12YXJzLyZxdW90OyZndDtlbnZpcm9ubWVudCB2YXJpYWJsZXMmbHQ7L2EmZ3Q7IHRvIHRoZSBuZXdseSBzZXQgdXAgcHJvamVjdC4KSW4gb3JkZXIgdG8gcHVzaCBvdXIgcHJvamVjdCB0byBIZXJva3UgZnJvbSBDaXJjbGVDSSwgd2UgbmVlZCB0byBjb25maWd1cmUgYW4gYXV0aGVudGljYXRlZCBoYW5kc2hha2UgYmV0d2VlbiBDaXJjbGVDSSBhbmQgSGVyb2t1LiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcgdHdvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgc2V0dGluZ3MgZm9yIHlvdXIgQ2lyY2xlQ0kgcHJvamVjdC4gVGhlIHR3byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtIRVJPS1VfQVBQX05BTUUmbHQ7L2NvZGUmZ3Q7OiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIChpbiB0aGlzIGNhc2UgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2ltcGxlLWdyYXBocWwtbm9kZS1zZXJ2ZXImbHQ7L2NvZGUmZ3Q7KSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OzogWW91ciBIZXJva3UgYWNjb3VudCBBUEkga2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBvbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50Jmx0Oy9zdHJvbmcmZ3Q7IHRhYiBvZiB5b3VyIEhlcm9rdSBhY2NvdW50IHVuZGVyICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VG8gYWRkIHRoZXNlIGRldGFpbHMsIGhlYWQgb3ZlciB0byB5b3VyIENpcmNsZUNJIGRhc2hib2FyZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBmb3IgeW91ciBwcm9qZWN0LiBPbiB0aGUgc2lkZWJhciBtZW51IG9uIHRoZSBzZXR0aW5ncyBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O0Vudmlyb25tZW50IFZhcmlhYmxlcyZsdDsvc3Ryb25nJmd0OyB1bmRlciAmbHQ7c3Ryb25nJmd0O0J1aWxkIFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDYucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIHBhZ2UsIGNyZWF0ZSB0d28gdmFyaWFibGVzIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OyBhbmQgYWRkIHRoZSByZXNwZWN0aXZlIHZhbHVlcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZXNlIGluIHBsYWNlLCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBjYW4gdXNlIHRoZW0gdG8gbWFrZSBhdXRoZW50aWNhdGVkIGRlcGxveW1lbnRzIHRvIHRoZSBIZXJva3UgcGxhdGZvcm0uCk5vdywgbGV04oCZcyB3cml0ZSBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyIHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtDcmVhdGUgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsuY2lyY2xlY2kmbHQ7L2NvZGUmZ3Q7IGF0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCBhbmQgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgaXQuIEFkZCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uJmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpvcmJzOgogIGhlcm9rdTogY2lyY2xlY2kvaGVyb2t1QDAuMC4xMAp3b3JrZmxvd3M6CiAgaGVyb2t1X2RlcGxveToKICAgIGpvYnM6CiAgICAgIC0gaGVyb2t1L2RlcGxveS12aWEtZ2l0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7VGhlIGNvZGUgYWJvdmUgdXNlcyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7SGVyb2t1IG9yYiZsdDsvYSZndDsgdG8gcGVyZm9ybSBhIHNlYW1sZXNzIGRlcGxveW1lbnQgdG8gSGVyb2t1LiBBbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYiZsdDsvYSZndDsgaXMgYSByZXVzYWJsZSBwYWNrYWdlIG9mIGEgWUFNTCBjb25maWd1cmF0aW9uIHRoYXQgY29uZGVuc2VzIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoaXMgb25lIG1ha2VzIGl0IHZlcnkgZWFzeSB0byBkZXBsb3kgdG8gSGVyb2t1IHdpdGhvdXQgd3JpdGluZyBhIHNvcGhpc3RpY2F0ZWQgY29uZmlnIHlvdXJzZWxmLiZsdDsvcCZndDsKCiZsdDtwJmd0O1NhdmUgdGhpcyBmaWxlIGFuZCBwdXNoIHlvdXIgY2hhbmdlcyB0byB0aGUgR2l0SHViIHJlcG9zaXRvcnkuIFRoZW4gd2F0Y2ggeW91ciBDaXJjbGVDSSBkYXNoYm9hcmQgdHJpZ2dlciBhIGRlcGxveW1lbnQgYWZ0ZXIgdGhlIHN1Y2Nlc3NmdWwgcHVzaC4gWW91IHdpbGwgc2VlIGEgc3VjY2Vzc2Z1bCBkZXBsb3ltZW50IG9uIHlvdXIgZGFzaGJvYXJkIHNpbWlsYXIgdG8gdGhlIHNjcmVlbiBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWw3LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXdlc29tZSEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXTigJlzIG5vdyB2aXNpdCBvdXIgUGxheWdyb3VuZCBvbiB0aGUgbGl2ZSBhcHBsaWNhdGlvbiB0byBjb25maXJtIHRoYXQgb3VyIGRlcGxveW1lbnQgaXMgZmluZS4gVmlzaXQgdGhlIGxpbmsgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9ZT1VSX0hFUk9LVV9BUFBfTkFNRS5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7LiBGb3Igb3VyIGV4ZXJjaXNlLCB0aGlzIHdpbGwgYmUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9zaW1wbGUtZ3JhcGhxbC1ub2RlLXNlcnZlci5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7IGFzIHNlZW4gYmVsb3cuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsOC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SW4gdGhpcyBhcnRpY2xlLCB3ZSBoYXZlIGJlZW4gYWJsZSB0byBzdWNjZXNzZnVsbHkgcHV0IHRvZ2V0aGVyIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyIGFuZCBhdXRvbWF0ZSBpdHMgZGVwbG95bWVudCB1c2luZyBDaXJjbGVDSS4gR3JhcGhRTCBpcyBoZXJlIHRvIHN0YXkgYW5kIGlzIGV4cGVjdGVkIHRvIGdhaW4gbW9yZSBhZG9wdGlvbiwgc2luY2UgaXRzIG1hbnkgYmVuZWZpdHMgbWFrZSBpdCB3b3J0aHkgb2YgaW5jcmVhc2VkIHVzZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIYXBweSBjb2RpbmchJmx0Oy9wJmd0OwoKJmx0O2hyIC8mZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Eb2NrZXIgYW5kIENJL0NEIHR1dG9yaWFsOiBhIGRlZXAgZGl2ZSBpbnRvIGNvbnRhaW5lcnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZG9ja2VyLWFuZC1jaWNkLXR1dG9yaWFsLWEtZGVlcC1kaXZlLWludG8tY29udGFpbmVycy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+RnJpLCAyNCBBcHIgMjAyMCAxMjowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9kb2NrZXItYW5kLWNpY2QtdHV0b3JpYWwtYS1kZWVwLWRpdmUtaW50by1jb250YWluZXJzLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkFuZ2VsIFJpdmVyYTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtUaGlzIGlzIGEgZm9sbG93LXVwIHRvIGEgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7IHRoYXQgSSB3cm90ZSBhZnRlciBDaXJjbGVDSSAyLjAgd2FzIHJlbGVhc2VkLiBUaGlzIHJlbGVhc2UgaW1wbGVtZW50ZWQgYnVpbGQgc3VwcG9ydCB1c2luZyBEb2NrZXIgZXhlY3V0b3JzLiBBZnRlciB0aGUgcmVsZWFzZSwgd2UgcmVhbGl6ZWQgdGhhdCBvbmUgb2YgdGhlIGJpZ2dlc3QgYmFycmllcnMgdGhhdCBDaXJjbGVDSSB1c2VycyBlbmNvdW50ZXJlZCB3YXMgYSBsYWNrIG9mIGV4cGVyaWVuY2Ugd2l0aCBEb2NrZXIuIFRoaXMgd2FzIGNvbmZpcm1lZCB0aHJvdWdoIG15IGNvbnZlcnNhdGlvbnMgd2l0aCBudW1lcm91cyBkZXZlbG9wZXJzLCBpbiB0aGUgY29tbXVuaXR5IGFuZCBhdCBldmVudHMsIGFib3V0IHRoZWlyIHVzZSBvZiBjb250YWluZXIgdGVjaG5vbG9naWVzIGluIHRoZWlyICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmVzLiBUaGVzZSBjb252ZXJzYXRpb25zIGhhdmUgaGlnaGxpZ2h0ZWQgdGhhdCBtYW55IGRldmVsb3BlcnMgZG9u4oCZdCBoYXZlIGEgZnVsbCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byB1c2UgY29udGFpbmVyIHRlY2hub2xvZ2llcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgd2lsbCBleHBhbmQgb24gYW5kIGRlbW9uc3RyYXRlIHNvbWUgb2YgdGhlIG1vcmUgdXNlZnVsIERvY2tlciBjb21tYW5kcyBkaXNjdXNzZWQgaW4gbXkgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtXaGF0IGlzIERvY2tlcj8mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZSBpcyB0aGUgc2ltcGxpZmllZCBkZWZpbml0aW9uIG9mIERvY2tlciB0aGF0IEkgdXNlZCBpbiBteSBwcmV2aW91cyBwb3N0OiZsdDsvcCZndDsKCiZsdDtibG9ja3F1b3RlJmd0OwogICZsdDtwJmd0O0RvY2tlciBpcyBhIHBsYXRmb3JtIGZvciBkZXZlbG9wZXJzIGFuZCBzeXNhZG1pbnMgdG8gZGV2ZWxvcCwgZGVwbG95LCBhbmQgcnVuIGFwcGxpY2F0aW9ucyB1c2luZyBjb250YWluZXJzLiZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7RG9ja2VyIGlzIGFsc28gcmVmZXJyZWQgdG8gYXMgYW4gYXBwbGljYXRpb24gcGFja2FnaW5nIHRvb2wgdGhhdCBlbmFibGVzIGFwcGxpY2F0aW9ucyB0byBiZSBjb25maWd1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZC8jaW1hZ2VzLWFuZC1jb250YWluZXJzJnF1b3Q7Jmd0O0RvY2tlciBpbWFnZSZsdDsvYSZndDsgdGhhdCBjYW4gYmUgdXNlZCB0byBzcGF3biAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyNpbWFnZXMtYW5kLWNvbnRhaW5lcnMmcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IHRoYXQgcnVuIGluc3RhbmNlcyBvZiB0aGUgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIG1hbnkgYmVuZWZpdHMgaW5jbHVkaW5nIHJ1bnRpbWUgZW52aXJvbm1lbnQgaXNvbGF0aW9uLCBjb25zaXN0ZW5jeSB2aWEgY29kZSwgYW5kIHBvcnRhYmlsaXR5LiBEb2NrZXIgY29udGFpbmVycyBjYW4gcnVuIG9uIGFueSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgc3VwcG9ydHMgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZW5naW5lJnF1b3Q7Jmd0O0RvY2tlciBFbmdpbmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtCYXNpYyBEb2NrZXIgdGVybWlub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZeKAmXMgYSBsaXN0IG9mIGJhc2ljIERvY2tlciBjb21tYW5kcyBhbmQgdGVybXMgd2l0aCBsaW5rcyB0byBtb3JlIGluZm9ybWF0aW9uLiBUaGVzZSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgRG9ja2VyIGFuZCBjb250cm9sIHRoZSBleGVjdXRvci4gVGhlIGNvbW1hbmRzIGNhbiBiZSBydW4gbG9jYWxseSBvbiBhbnkgY29tcHV0ZXIgdGhhdCBoYXMgdGhlIERvY2tlciBlbmdpbmUgaW5zdGFsbGVkLiZsdDsvcCZndDsKCiZsdDtoMyZndDtCdWlsZGluZyBEb2NrZXIgaW1hZ2VzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBhIHRleHQgZG9jdW1lbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNvbW1hbmRzIGEgdXNlciBjb3VsZCBjYWxsIG9uIHRoZSBjb21tYW5kIGxpbmUgdG8gYXNzZW1ibGUgYW4gaW1hZ2UuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBEb2NrZXJmaWxlIGlzIGEgYmx1ZXByaW50IGZvciBidWlsZGluZyBEb2NrZXIgaW1hZ2VzLiBEb2NrZXJmaWxlIHRlbXBsYXRlcyBob2xkIGVsZW1lbnRzIHN1Y2ggYXMgdGhlIGJhc2Ugb3BlcmF0aW5nIHN5c3RlbSBpbWFnZSB1c2VkIGFzIGEgZm91bmRhdGlvbiwgZXhlY3V0aW9uIGNvbW1hbmRzIHRoYXQgaW5zdGFsbC9jb25maWd1cmUgZGVwZW5kZW5jaWVzLCBhbmQgY29weSBjb21tYW5kcyB0aGF0IHB1c2ggbG9jYWwgc291cmNlIGNvZGUgb3IgYXJ0aWZhY3RzIGludG8gdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBEb2NrZXJmaWxlIGZvciBhIHNpbXBsZSBOb2RlLmpzIGFwcGxpY2F0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7RlJPTSBub2RlOjEwCgojIENyZWF0ZSBhcHAgZGlyZWN0b3J5CldPUktESVIgL3Vzci9zcmMvYXBwCgojIEluc3RhbGwgYXBwIGRlcGVuZGVuY2llcwojIEEgd2lsZGNhcmQgaXMgdXNlZCB0byBlbnN1cmUgYm90aCBwYWNrYWdlLmpzb24gQU5EIHBhY2thZ2UtbG9jay5qc29uIGFyZSBjb3BpZWQKIyB3aGVyZSBhdmFpbGFibGUgKG5wbUA1KykKQ09QWSBwYWNrYWdlKi5qc29uIC4vCgpSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIyBJZiB5b3UgYXJlIGJ1aWxkaW5nIHlvdXIgY29kZSBmb3IgcHJvZHVjdGlvbgojIFJVTiBucG0gaW5zdGFsbCAtLW9ubHk9cHJvZHVjdGlvbgoKIyBCdW5kbGUgYXBwIHNvdXJjZQpDT1BZIC4gLgoKRVhQT1NFIDUwMDAKQ01EIFsgJnF1b3Q7bnBtJnF1b3Q7LCAmcXVvdDtzdGFydCZxdW90OyBdCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2ltYWdlcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7IGxpc3RzIERvY2tlciBpbWFnZXMgZm91bmQgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gbGlzdCBhbGwgb2YgdGhlIERvY2tlciBpbWFnZXMgYW5kIHJlbGF0ZWQgZGF0YSB0aGF0IGN1cnJlbnRseSBleGlzdCBvbiB0aGUgbG9jYWwgbWFjaGluZS4gSXTigJlzIGNvbXBhcmFibGUgdG8gYSBsaW51eCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtscyZsdDsvY29kZSZndDsgb3Igd2luZG93cyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkaXImbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdXNlZCB0byBzaG93IHRoZSBjb250ZW50cyBvZiBkaXJlY3RvcmllcyBpbiBhIHRlcm1pbmFsLiBUaGlzIGNvbW1hbmQgaXMgdmVyeSB1c2VmdWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRvIG1hbmFnZSwgbWFpbnRhaW4sIGFuZCBidWlsZCBEb2NrZXIgaW1hZ2VzIGxvY2FsbHkuIEJlbG93IGlzIGFuIGV4YW1wbGUgcmVzdWx0IG9mIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgZXhlY3V0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UkVQT1NJVE9SWSAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHICAgICAgICAgICAgICAgICBJTUFHRSBJRCAgICAgICAgICAgIENSRUFURUQgICAgICAgICAgICAgU0laRQphcml2M3JhL25vZGVqcy1jaXJjbGVjaSAgICAgICAgICAgICBsYXRlc3QgICAgICAgICAgICAgIGY0MTllNGE2YjFiOCAgICAgICAgMTEgZGF5cyBhZ28gICAgICAgICA5NDNNQgpub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAgICAgICAgICAgICAgICAgIDAxYjgxNjA1MWQzNCAgICAgICAgMiB3ZWVrcyBhZ28gICAgICAgICA5MTFNQgpjaXJjbGVjaS9weXRob24gICAgICAgICAgICAgICAgICAgICAzLjcuNiAgICAgICAgICAgICAgIDBkMjk3NTg5NmM3MyAgICAgICAgNSB3ZWVrcyBhZ28gICAgICAgICAxLjQzR0IKYXJpdjNyYS9pbmZyYXN0cnVjdHVyZS1hcy1jb2RlMTAxICAgbGF0ZXN0ICAgICAgICAgICAgICBjYjIxYTM2YTI5NzMgICAgICAgIDggd2Vla3MgYWdvICAgICAgICAgOTI5TUIKcHl0aG9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43LjYgICAgICAgICAgICAgICA4NzkxNjU1MzVhNTQgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgOTE5TUIKY2lyY2xlY2kvcnVzdCAgICAgICAgICAgICAgICAgICAgICAgMS1idXN0ZXIgICAgICAgICAgICAyMTgzMjliOTI5Y2YgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgMS42OEdCCnJ1c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtYnVzdGVyICAgICAgICAgICAgZjVmZGUwOTJhMWNkICAgICAgICAyIG1vbnRocyBhZ28gICAgICAgIDEuMTlHQgpweXRob24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcuNCAgICAgICAgICAgICAgIDlmYTU2ZDBhZGRhZSAgICAgICAgNiBtb250aHMgYWdvICAgICAgICA5MThNQgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGJ1aWxkIC10ICZhbXA7bHQ7aW1hZ2UgbmFtZSZhbXA7Z3Q7IC4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBjcmVhdGVzIGEgRG9ja2VyIGltYWdlIHdpdGggYSB0YWcgdXNpbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LXQmbHQ7L2NvZGUmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhYm92ZSBjb21tYW5kLCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgdmFsaWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDssIGJ1aWxkcyBhIERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgZXhlY3V0aW9uIGNvbW1hbmRzIGRlZmluZWQgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7LiBPbmUgY3JpdGljYWwgZWxlbWVudCB0byBidWlsZGluZyBpbWFnZXMgYW5kIHN0YXJ0aW5nIGNvbnRhaW5lcnMgaXMgdW5kZXJzdGFuZGluZyB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9hJmd0Oy4gQnVpbGRpbmcgRG9ja2VyIGltYWdlcyB1c2luZyB0aGlzIGNvbW1hbmQgc3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIERvY2tlciBpbWFnZXMgdXRpbGl6ZXMgYSBuYW1pbmcgY29udmVudGlvbiBtYWRlIHVwIG9mIHNsYXNoLXNlcGFyYXRlZCBuYW1lIGNvbXBvbmVudHMgdGhhdCBtYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgc2VwYXJhdG9ycy4gQSBzZXBhcmF0b3IgaXMgZGVmaW5lZCBhcyBhIHBlcmlvZCwgb25lIG9yIHR3byB1bmRlcnNjb3Jlcywgb3Igb25lIG9yIG1vcmUgZGFzaGVzLiBBIG5hbWUgY29tcG9uZW50IG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggYSBzZXBhcmF0b3IuIEEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7ZG9ja2VyIHRhZyZsdDsvYSZndDsgbmFtZSBtdXN0IGJlIHZhbGlkIEFTQ0lJIGFuZCBtYXkgY29udGFpbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHVuZGVyc2NvcmVzLCBwZXJpb2RzLCBhbmQgZGFzaGVzLiBBIHRhZyBuYW1lIG1heSBub3Qgc3RhcnQgd2l0aCBhIHBlcmlvZCBvciBhIGRhc2ggYW5kIG1heSBjb250YWluIGEgbWF4aW11bSBvZiAxMjggY2hhcmFjdGVycy4gWW91IGNhbiBncm91cCB5b3VyIGltYWdlcyB0b2dldGhlciB1c2luZyBuYW1lcyBhbmQgdGFncy4gSW4gdGhpcyBwb3N0LCB3ZSB3aWxsIHVzZSB0aGlzIG5hbWluZyBjb252ZW50aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB0aGF0IHdl4oCZdmUgZGlzY3Vzc2VkIG5hbWluZyBjb252ZW50aW9ucyBsZXTigJlzIGJ1aWxkIGEgRG9ja2VyIGltYWdlIGJhc2VkIG9uIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXJmaWxlJmx0Oy9jb2RlJmd0OyBpbiBvdXIgZXhhbXBsZSBhYm92ZS4gSW4gdGhpcyBwb3N0IHdlIGNhbiB1dGlsaXplIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9wdW5rZGF0YS9ub2RlanMtY2lyY2xlY2kmcXVvdDsmZ3Q7cHVua2RhdGEvbm9kZWpzLWNpcmNsZWNpJmx0Oy9hJmd0OyBnaXQgcmVwby4gQ2xvbmUgaXQgbG9jYWxseSBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7JCBjZCZsdDsvY29kZSZndDsgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlbiBydW4gdGhpcyBjb21tYW5kIHRvIGJ1aWxkIGEgbmV3IERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgcHJvamVjdCBzb3VyY2UgY29kZSBhbmQgdGhlIGV4YW1wbGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgYnVpbGQgLXQgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0FmdGVyIHJ1bm5pbmcgdGhpcyBidWlsZCBjb21tYW5kLCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtTZW5kaW5nIGJ1aWxkIGNvbnRleHQgdG8gRG9ja2VyIGRhZW1vbiAgOTguMDdNQgpTdGVwIDEvNyA6IEZST00gbm9kZToxMAogLS0tJmFtcDtndDsgMDFiODE2MDUxZDM0ClN0ZXAgMi83IDogV09SS0RJUiAvdXNyL3NyYy9hcHAKIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyAxMmIyZWRjMmI5N2MKU3RlcCAzLzcgOiBDT1BZIHBhY2thZ2UqLmpzb24gLi8KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyA1M2I1YjhlNGU2NTQKU3RlcCA0LzcgOiBSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyBlZWZkZjU2MGJjNGQKU3RlcCA1LzcgOiBDT1BZIC4gLgogLS0tJmFtcDtndDsgYWE3ZDU0ZTk1NWM2ClN0ZXAgNi83IDogRVhQT1NFIDUwMDAKIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gY2M0MjdkYmFmZGNjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgY2M0MjdkYmFmZGNjCiAtLS0mYW1wO2d0OyA0Y2U5MDg0ZTM5ZWIKU3RlcCA3LzcgOiBDTUQgWyAmcXVvdDtucG0mcXVvdDssICZxdW90O3N0YXJ0JnF1b3Q7IF0KIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gZjZlODU0NTk5ZGRjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgZjZlODU0NTk5ZGRjCiAtLS0mYW1wO2d0OyA3OWE4ZDk0Y2JmNDIKU3VjY2Vzc2Z1bGx5IGJ1aWx0IDc5YThkOTRjYmY0MgpTdWNjZXNzZnVsbHkgdGFnZ2VkIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2VzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgeW91ciBuZXdseSBjcmVhdGVkIERvY2tlciBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDskIGRvY2tlciBpbWFnZXMKClJFUE9TSVRPUlkgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRyAgICAgICAgICAgICAgICAgSU1BR0UgSUQgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNJWkUKdHV0b3JpYWwvY2lyY2xlY2ktbm9kZSAgICAgICAgICAgICAgMTAgICAgICAgICAgICAgICAgICA3OWE4ZDk0Y2JmNDIgICAgICAgIDQgbWludXRlcyBhZ28gICAgICAgMS4wM0dCCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyB5b3UgaGF2ZSBhbiBhd2Vzb21lIERvY2tlciBpbWFnZSBidWlsdCBhbmQgcmVhZHkgdG8gdXNlLiBJbiB0aGUgbmV4dCBzZWN0aW9uIEnigJlsbCBjcmVhdGUgbmV3IGluc3RhbmNlcyBvZiB0aGlzIERvY2tlciBpbWFnZSBpbiB0aGUgZm9ybSBvZiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvY29udGFpbmVyLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXIgY29udGFpbmVycyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBjb250YWluZXJzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IGFyZSBkZXNpZ25lZCB0byBydW4gYXBwbGljYXRpb25zIGluIGlzb2xhdGlvbiBhbmQgYXQgc2NhbGUuICBUaGV5IGFsbG93IGZvciBzdHJlYW1saW5pbmcgdGhlIG1hbmFnZW1lbnQgYW5kIGltcGxlbWVudGF0aW9uIG9mIGFwcGxpY2F0aW9ucy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7QmVmb3JlIHdlIHN0YXJ0IGNyZWF0aW5nIGFuZCBydW5uaW5nIERvY2tlciBjb250YWluZXJzLCBJ4oCZbGwgYWRkIHNvbWUgY29udGV4dC4gRG9ja2VyIGNvbnRhaW5lcnMgYXJlIG9iamVjdHMgdGhhdCBhcmUgYmFzZWQgb24gYW5kIHNwYXduZWQgZnJvbSBEb2NrZXIgaW1hZ2VzLiBEb2NrZXIgaW1hZ2VzIGFyZSB0ZW1wbGF0ZXMuIEkgbGlrZW4gdGhlbSB0byBjb29raWUgY3V0dGVyIG1vbGRzLiBDb29raWUgY3V0dGVyIG1vbGRzIGVuYWJsZSB5b3UgdG8gcXVpY2tseSBhbmQgY29uc2lzdGVudGx5IHByb2R1Y2UgaW5kaXZpZHVhbCBjb29raWVzIGZyb20gZG91Z2guIEkgbGlrZW4gdGhlc2UgY29va2llcyB0byBEb2NrZXIgY29udGFpbmVycyB3aGljaCBhcmUgZGlzdGluZ3Vpc2hlZCBpbiBzaGFwZSBieSB0aGUgdHlwZSBvZiBjb29raWUgbW9sZCwgb3IgRG9ja2VyIGNvbnRhaW5lciwgdXNlZCBpbiB0aGUgY3V0dGluZy9idWlsZGluZyBwcm9jZXNzLiBTbyB1c2luZyBteSBjb29raWUgY3V0dGVyIGFuYWxvZ3ksIERvY2tlciBpbWFnZXMgYXJlIHRoZSBjb29raWUgY3V0dGVyIGFuZCB0aGUgaW5kaXZpZHVhbCBjb29raWVzIGN1dCB1c2luZyB0aGF0IGN1dHRlciBhcmUgZXF1aXZhbGVudCB0byBEb2NrZXIgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCBJ4oCZdmUgcHJvYmFibHkgbWFkZSB5b3UgYSBiaXQgaHVuZ2FyeSBmb3IgY29va2llcywgbGV04oCZcyBzdGFydCBydW5uaW5nIHNvbWUgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBydW5zIGEgY29tbWFuZCBpbiBhIG5ldyBjb250YWluZXIuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY29tbWFuZCBvZiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgc3RhcnRpbmcgRG9ja2VyIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCBhIG5ldyBjb250YWluZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcnVuIC1kIC1wIDUwMDA6NTAwMCAtLW5hbWUgbm9kZXRlc3QwMSB0dXRvcmlhbC9jaXJjbGVjaS1ub2RlOjEwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NvbmdyYXRzISBZb3Ugc2hvdWxkIG5vdyBoYXZlIHRoZSBOb2RlLmpzIGltYWdlIHJ1bm5pbmcgaW4gdGhlIG5ldyBjb250YWluZXIgdGhhdCB5b3UganVzdCBjcmVhdGVkIGF2YWlsYWJsZSBvbiBwb3J0IDUwMDAuIE9wZW4gYSB3ZWIgYnJvd3NlciBhbmQgZ28gdG8gdGhpcyBhZGRyZXNzOiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtodHRwOi8vbG9jYWxob3N0OjUwMDAmbHQ7L2NvZGUmZ3Q7LiBJdCB3aWxsIHRha2UgeW91IHRoZSBzdGF0aWMg4oCcV2VsY29tZSB0byBDSS9DRCAxMDEgdXNpbmcgQ2lyY2xlQ0kh4oCdIHdlYiBwYWdlIHNlcnZlZCBieSB0aGlzIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsc28gdmVyaWZ5IHlvdXIgY29udGFpbmVyIGlzIHJ1bm5pbmcgYnkgZXhlY3V0aW5nIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbC4gV2XigJlsbCBkaXNjdXNzIHRoaXMgaW4gdGhlIG5leHQgc2VjdGlvbi4gQmVmb3JlIHRoYXQsIGxldOKAmXMgc3RhcnQgYW4gb3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGFwcGxpY2F0aW9uIGJ5IHJ1bm5pbmcgYW5vdGhlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnRlZCBvdXIgZmlyc3QgY29udGFpbmVyIHdpdGggdGhlIG5hbWUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDsgYW5kIHNpbmNlIGNvbnRhaW5lciBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgd2XigJlyZSBnb2luZyB0byBuYW1lIG91ciBuZXcgY29udGFpbmVyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7LiBBbm90aGVyIGNoYW5nZSB0aGF0IG11c3QgYmUgbWFkZSBpbiBvdXIgbmV3IGNvbnRhaW5lciBpcyB0aGUgcG9ydCBudW1iZXIuIFdl4oCZbGwgY2hhbmdlIGl0IGZyb20gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMCZsdDsvY29kZSZndDsgdG8gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMSZsdDsvY29kZSZndDsgc2luY2UgYXBwbGljYXRpb25zIGNhbm5vdCBvY2N1cHkgdGhlIHNhbWUgcG9ydCBudW1iZXIgb24gdGhlIHNhbWUgbmV0d29yayBpbnRlcmZhY2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RXhlY3V0ZSB0aGUgZm9sbG93aW5nICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtZCAtcCA1MDAxOjUwMDAgLS1uYW1lIG5vZGV0ZXN0MDIgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISBZb3Ugbm93IGhhdmUgdHdvIGNvbnRhaW5lcnMgcnVubmluZyBvbiB5b3VyIGxvY2FsIG1hY2hpbmUuIFlvdSBjYW4gZ28gdG8gdGhpcyBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMSZsdDsvY29kZSZndDsgaW4gYSBicm93c2VyIGFuZCBzZWUgdGhlIGFwcCBydW5uaW5nIGluIHlvdXIgc2Vjb25kIERvY2tlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaXMgdmVyeSByb2J1c3QgYW5kIGhhcyBtYW55IHByb3BlcnR5IGFuZCBjb25maWd1cmF0aW9uIGZsYWdzIHdoaWNoIEkgd29u4oCZdCBiZSBhYmxlIHRvIGFkZHJlc3Mgb3IgZGVtb25zdHJhdGUgaW4gdGhpcyBwb3N0LiBJIGhpZ2hseSByZWNvbW1lbmQgdGhhdCB5b3UgcmVhZCBhbmQgZmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgbWFueSB3YXlzIHRoYXQgeW91IGNhbiBleGVjdXRlIGFuZCBydW4gRG9ja2VyIGNvbnRhaW5lcnMuIFlvdSBjYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7cmVhZCB1cCBvbiBEb2NrZXIgY29udGFpbmVycyBjb21tYW5kcyBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9wcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbGlzdHMgYWxsIG9mIHRoZSBydW5uaW5nIERvY2tlciBjb250YWluZXJzLiBUaGlzIGNvbW1hbmQgc2VydmVzIGEgc2ltaWxhciBwdXJwb3NlIGFzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2UmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgYW5kIGxpc3RzIGFjdGl2ZWx5IHJ1bm5pbmcgY29udGFpbmVycy4gVXNlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDstYSZsdDsvY29kZSZndDsgZmxhZyB0byBzaG93IGFsbCBvZiB0aGUgcnVubmluZyBhbmQgbm90IHJ1bm5pbmcgY29udGFpbmVycy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoaXMgY29tbWFuZCBpbiBhIHRlcm1pbmFsIGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIGJvdGggb2YgdGhlIHByZXZpb3VzbHkgY3JlYXRlZCBjb250YWluZXJzIHJ1bm5pbmcgaW4gdGhlIHJlc3VsdHM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlIHJlc3VsdHMgd2lsbCBiZSBzaW1pbGFyIHRvIHRoaXMgc2hvd2luZyBib3RoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDEmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcnMgc3RpbGwgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0NPTlRBSU5FUiBJRCAgICAgICAgSU1BR0UgICAgICAgICAgICAgICAgICAgICAgIENPTU1BTkQgICAgICAgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNUQVRVUyAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICAgICAgIE5BTUVTCmRmZDMwMTgxZTE1YyAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAxMiBtaW51dGVzIGFnbyAgICAgIFVwIDEyIG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAxLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAyOCBtaW51dGVzIGFnbyAgICAgIFVwIDI4IG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAwLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7CiAgICAmbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvc3RhcnQvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdGFydHMgYW4gZXhpc3RpbmcgY29udGFpbmVyLiZsdDsvcCZndDsKICAmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsKICAgICZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9zdG9wLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdG9wcyBhbiBleGlzdGluZyBjb250YWluZXIuJmx0Oy9wJmd0OwogICZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgaXMgb25seSB1c2VkIHRvIHN0YXJ0ICZsdDtzdHJvbmcmZ3Q7ZXhpc3RpbmcmbHQ7L3N0cm9uZyZndDsgY29udGFpbmVycyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcnVuJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBVbmxlc3MgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy0tcm09dHJ1ZSZsdDsvY29kZSZndDsgZmxhZyBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgbmV3bHkgY3JlYXRlZCBjb250YWluZXJzIHdpbGwgcGVyc2lzdCBhbmQgY2FuIGJlIHJldXNlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RhcnQmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCZsdDsvY29kZSZndDsgY29tbWFuZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdG9wIHNvbWUgcnVubmluZyBjb250YWluZXJzIGJ5IGV4ZWN1dGluZyB0aGVzZSBjb21tYW5kczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBzdG9wIG5vZGV0ZXN0MDEgbm9kZXRlc3QwMgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBydW5uaW5nIGNvbnRhaW5lcnMgc2hvdWxkIG5vdyBiZSBpbmFjdGl2ZSBhbmQgc3RvcHBlZC4gU2luY2UgdGhleeKAmXJlIHN0b3BwZWQsIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgaW5kaWNhdGluZyBzdG9wcGVkIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtDT05UQUlORVIgSUQgICAgICAgIElNQUdFICAgICAgICAgICAgICAgICAgICAgICBDT01NQU5EICAgICAgICAgICAgICAgICAgQ1JFQVRFRCAgICAgICAgICAgICBTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICBOQU1FUwpkZmQzMDE4MWUxNWMgICAgICAgIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAgICAmcXVvdDtkb2NrZXItZW50cnlwb2ludC5z4oCmJnF1b3Q7ICAgMzEgbWludXRlcyBhZ28gICAgICBFeGl0ZWQgKDApIDM4IHNlY29uZHMgYWdvICAgICAgICAgICAgICAgICAgICAgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICBBYm91dCBhbiBob3VyIGFnbyAgIEV4aXRlZCAoMCkgMzggc2Vjb25kcyBhZ28gICAgICAgICAgICAgICAgICAgICAgIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhvdWdoIHRoZXNlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQgdGhleSB3aWxsIHBlcnNpc3QgYW5kIGNhbiBiZSByZXN0YXJ0ZWQgdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCZsdDsvY29kZSZndDsgY29tbWFuZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXRzIHN0YXJ0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAxJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgc28gd2UgY2FuIGxlYXJuIGhvdyB0byB1c2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBmZWF0dXJlcyBpbiB0aGUgbmV4dCBzZWN0aW9uLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHN0YXJ0IG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Tm93IHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBOb3RpY2UgdGhlIHN0YXR1cyBmb3IgdGhpcyBjb250YWluZXIgcmVhZHMgc2ltaWxhciB0byAgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXAgYWJvdXQgYSAzMCBzZWNvbmRzJmx0Oy9jb2RlJmd0OyBvciBzb21ldGhpbmcgdG8gdGhhdCBlZmZlY3QuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9ncy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ3MmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBmZXRjaGVzIGEgY29udGFpbmVy4oCZcyBsb2dzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIHNlZSBsb2dzIHRoYXQgYXJlIHByZXNlbnQgYXQgdGhlIHRpbWUgb2YgZXhlY3V0aW9uLiBTaW5jZSB5b3VyIGFwcHMgYXJlIHJ1bm5pbmcgaW5zaWRlIHRoZXNlIGNvbnRhaW5lcnMsIHRoZSBsb2dzIGNvbW1hbmQgaXMgdXNlZnVsIGZvciByZWFkaW5nIG91dCBjcml0aWNhbCBhcHAgb3V0cHV0cy4gVGhpcyBoZWxwcyBpbiB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgYXBwIGlzIHBlcmZvcm1pbmcgYW5kIGFueSBkZWJ1Z2dpbmcvdHJvdWJsZXNob290aW5nIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBydW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDEmbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBsb2dzIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIGNvbW1hbmQgeW91IHNob3VsZCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHdoYXTigJlzIHNob3duIGJlbG93LiBJdCBzaG93cyB0aGF0IHRoZSBhcHAgaW5zaWRlIGNvbnRhaW5lciBpcyB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O05vZGUgc2VydmVyIGlzIHJ1bm5pbmcuLgoKJmFtcDtndDsgbm9kZWpzLWNpcmNsZWNpQDAuMC4xIHN0YXJ0IC91c3Ivc3JjL2FwcAomYW1wO2d0OyBub2RlIGFwcC5qcwoKTm9kZSBzZXJ2ZXIgaXMgcnVubmluZy4uCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0gJmFtcDtsdDtjb250YWluZXIgbmFtZSZhbXA7Z3Q7Jmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgZGVsZXRlcyBhIGNvbnRhaW5lciBvciBtdWx0aXBsZSBjb250YWluZXJzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtQZXJzaXN0aW5nIERvY2tlciBjb250YWluZXJzIGNvbnN1bWVzIGRpc2sgc3BhY2UgYW5kIHJlc291cmNlcyBvbiBpdHMgaG9zdC4gT3BlcmF0aW9uYWxseSwgaXQgZG9lc27igJl0IG1ha2UgbXVjaCBzZW5zZSB0byBwZXJzaXN0IGV2ZXJ5IGNvbnRhaW5lciBvbiBkaXNrIHNpbmNlIGluIG1vc3QgY2FzZXMgY29udGFpbmVycyBhcmUgZGlzcG9zYWJsZSBhbmQgc2hvdWxkIGJlIHVzZWQgdGhhdCB3YXkuIFNvIHdoZW4gYSBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpdCBzaG91bGQgYmUgcGVybWFuZW50bHkgZGlzY2FyZGVkIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgcGVybWFuZW50bHkgZGVsZXRlcyBjb250YWluZXJzIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAyJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBzbyBsZXTigJlzIHNhdmUgc29tZSBkaXNrIHNwYWNlIGFuZCBkZWxldGUgaXQuIE5vdGUgdGhpcyBjb21tYW5kIHdpbGwgb25seSBkZWxldGUgaW5hY3RpdmUvc3RvcHBlZCBjb250YWluZXJzIGFuZCB3aWxsIGVycm9yIG91dCBpZiBpdOKAmXMgcnVuIGFnYWluc3QgYW4gYWN0aXZlL3J1bm5pbmcgY29udGFpbmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBybSBub2RldGVzdDAyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm8gbG9uZ2VyIHNlZSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMiZsdDsvY29kZSZndDsgY29udGFpbmVyIG9uIHRoZSBob3N0IGFmdGVyIHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGhhcyBvdGhlciBwcm9wZXJ0aWVzIGFuZCBmbGFncyBhbmQgeW91IHNob3VsZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcm0vJnF1b3Q7Jmd0O2ZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggdGhlbSBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ybWkvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBybWkmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBkZWxldGVzIERvY2tlciBpbWFnZXMgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGFwcGxpZXMgdG8gZGVsZXRpbmcgRG9ja2VyIGltYWdlcyBmcm9tIGEgaG9zdC4gSWYgdGhlcmUgYXJlIGV4aXN0aW5nIGNvbnRhaW5lcnMgb24gdGhlIGhvc3QgdGhhdCBhcmUgYmFzZWQgb24gYSBzcGVjaWZpYyBpbWFnZSwgdGhlbiB0aGlzIGNvbW1hbmQgd2lsbCBub3QgYWxsb3cgdGhlIGRlbGV0aW9uIG9mIHRoZSBjb250YWluZXIgYmFzZWQgb24gdGhlIGltYWdlLiBZb3UgbXVzdCBmaXJzdCBlbnN1cmUgdGhlIGNvbnRhaW5lciBpcyBzdG9wcGVkIGFuZCBkZWxldGVkIGJlZm9yZSB5b3UgY2FuIGRlbGV0ZSBEb2NrZXIgaW1hZ2VzIHVzaW5nIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtaSZsdDsvY29kZSZndDsgY29tbWFuZC4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtaS8mcXVvdDsmZ3Q7UmVhZCB1cCBvbiB0aGUgZG9ja2VyIHJtaSBjb21tYW5kIGhlcmUmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBpbWFnZSBkZXBsb3ltZW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtNYW55IERvY2tlciBpbWFnZXMgYXJlIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgaG9zdGVkIG9uIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2RvY2tlci1odWIvJnF1b3Q7Jmd0O0RvY2tlciBIdWIgUmVnaXN0cnkmbHQ7L2EmZ3Q7IHdoaWNoIGlzIGFuIG9ubGluZSBjZW50cmFsIGhvc3Rpbmcgc29sdXRpb24gZm9yIERvY2tlciBpbWFnZXMuIERvY2tlciBIdWIgZW5hYmxlcyBhbnlvbmUgd2l0aCBhbiBpbnRlcm5ldCBjb25uZWN0aW9uIHRvIHB1bGwgZG93biBwdWJsaWNseSBhdmFpbGFibGUgaW1hZ2VzIGZyb20gdGhlIHJlZ2lzdHJ5IHRvIHRoZWlyIGxvY2FsIG1hY2hpbmVzIG9yIHNlcnZlcnMuIEl0IGFsc28gZW5hYmxlcyByZWdpc3RlcmVkIHVzZXJzIHRvIHVwbG9hZCBhbmQgcHVibGljbHkgc2hhcmUgYW55IG9mIHRoZWlyIGNvbnRhaW5lcnMgc28gdGhhdCBhbnlvbmUgY2FuIHB1bGwgZG93biB0aGF0IGltYWdlIGZyb20gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2h1Yi5kb2NrZXIuY29tLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIEnigJlsbCBicmllZmx5IGRpc2N1c3Mgc29tZSBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItaHViLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0OyByZWxhdGVkIGNvbW1hbmRzLiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3B1bGwvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBwdWxsJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgcHVsbHMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IGZyb20gYSByZWdpc3RyeS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGVuYWJsZXMgeW91IHRvIGRvd25sb2FkIGEgdmFsaWQgRG9ja2VyIGltYWdlIGZyb20gRG9ja2VyIEh1Yi4gUHVibGljbHkgYXZhaWxhYmxlIERvY2tlciBpbWFnZXMgZG8gbm90IHJlcXVpcmUgYXV0aGVudGljYXRpb24uIElmIHRoZSByZWdpc3RyeSBpcyBwcml2YXRlIHlvdSB3aWxsIG5lZWQgdG8gYXV0aGVudGljYXRlIHVzaW5nIGFuIGFzc2lnbmVkIGNyZWRlbnRpYWwgdXN1YWxseSBpbiB0aGUgZm9ybSBvZiBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ2luJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbG9ncyBpbnRvIGEgRG9ja2VyIHJlZ2lzdHJ5LiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyB5b3UgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgYSBEb2NrZXIgUmVnaXN0cnkuIElmIHlvdeKAmXJlIHVzaW5nIHRoaXMgbG9naW4gY29tbWFuZCB5b3Ugc2hvdWxkICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8jcHJvdmlkZS1hLXBhc3N3b3JkLXVzaW5nLXN0ZGluJnF1b3Q7Jmd0O3BvcHVsYXRlIGEgLnR4dCBmaWxlJmx0Oy9hJmd0OyB3aXRoIHlvdXIgRG9ja2VyIEh1YiBhY2NvdW50IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBwcm90ZWN0IHRoZXNlIGNyZWRlbnRpYWxzIGZyb20gZXhwb3N1cmUuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcHVzaC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHB1c2gmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBwdXNoZXMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IHRvIGEgcmVnaXN0cnkuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBlbmFibGVzIHVzZXJzIHRvIHVwbG9hZCBpbWFnZXMgdG8gYSBEb2NrZXIgcmVnaXN0cnkgYW5kIHJlcXVpcmVzIHZhbGlkIGNyZWRlbnRpYWxzLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O1NvIHRoZXJlIHlvdSBoYXZlIGl0LiBJbiB0aGlzIHBvc3QgSSB3ZW50IGEgYml0IGRlZXBlciBpbiBleHBsYWluaW5nIERvY2tlciB0ZXJtaW5vbG9neSBhbmQgY29tbWFuZHMgYXMgd2VsbCBhcyBjb250YWluZXJzIGFuZCB0aGVpciB1c2FnZS4gVGhlIGNvbW1hbmRzIEkgZGlzY3Vzc2VkIGFuZCBkZW1vbnN0cmF0ZWQsIGFyZSB0aGUgbW9zdCB3aWRlbHkgdXNlZCBjb21tYW5kcyBpbiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGxlYXJuaW5nIGEgYml0IG1vcmUgYWJvdXQgdGhlbSBhbmQgdGhlaXIgcHJvcGVydGllcyBhbmQgZmxhZ3Mgd2lsbCBkZWZpbml0ZWx5IGhlbHAgeW91IGxldmVsIHVwIHlvdXIgRG9ja2VyIGFuZCBjb250YWluZXIgc2tpbGxzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZhbWlsaWFyaXppbmcgeW91cnNlbGYgd2l0aCB0aGVzZSBiYXNpYyBjb21tYW5kcyB3aWxsIHJlbW92ZSBvbmUgb2YgdGhlIGxhcmdlciBiYXJyaWVycyB0aGF0IG5ldyB1c2VycyBvZiBDaXJjbGVDSSBlbmNvdW50ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SWYgeW91IHdhbnQgdG8gbGVhcm4gbW9yZSBhYm91dCBDaXJjbGVDSSBjaGVjayBvdXQgdGhlICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wLyZxdW90OyZndDtkb2N1bWVudGF0aW9uIHNpdGUmbHQ7L2EmZ3Q7LCBhbmQgaWYgeW91IHJlYWxseSBnZXQgc3R1Y2sgeW91IGNhbiByZWFjaCBvdXQgdG8gdGhlIENpcmNsZUNJIGNvbW11bml0eSB2aWEgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mbHQ7L2EmZ3Q7IGNvbW11bml0eS9mb3J1bSBzaXRlLiZsdDsvcCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogIDwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:57:07 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:57:09 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"7d6485a41122f6d0","ot-tracer-traceid":"5892588131b890c6","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889429075:3dafee33498a
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:12:09 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da383498ce8f3-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce64860e0000e8f3222aa200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:57:09 GMT
+- request:
+ method: head
+ uri: https://medium.com/media/7da74bb30f8a2a82b0acb89b213a018b/href
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 302
+ message: Found
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:57:09 GMT
+ Content-Type:
+ - application/octet-stream
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"66761a6f78e6bac5","ot-tracer-traceid":"3442e11d399f31de","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889429296:28f823401f2f
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Expires:
+ - Thu, 09 Sep 1999 09:09:09 GMT
+ Pragma:
+ - no-cache
+ Location:
+ - https://www.youtube.com/watch?v=QOCaacO8wus
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da38468f9e8ef-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce6486c00000e8efe93f9200000001
+ body:
+ encoding: UTF-8
+ string: ''
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:57:09 GMT
+- request:
+ method: head
+ uri: https://www.youtube.com/watch?v=QOCaacO8wus
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Cookie:
+ - __cfduid=d099c11b640f5af0fd242366125821b901589889429; uid=lo_cXwBrYuYy5rn;
+ sid=1:Etg0I8nUlY5a2ML/97ujMaT68OqL+DbdrWOYstPT9/pdj/+Qb4bg3DVGWr1NwYWv; optimizelyEndUserId=lo_cXwBrYuYy5rn;
+ __cfruid=b356ef68c017ae91a37ff156c6b15ac663b6efff-1589889429
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ P3p:
+ - CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=it
+ for more info."
+ Content-Type:
+ - text/html; charset=utf-8
+ Cache-Control:
+ - no-cache
+ Expires:
+ - Tue, 27 Apr 1971 19:44:06 GMT
+ X-Content-Type-Options:
+ - nosniff
+ Strict-Transport-Security:
+ - max-age=31536000
+ X-Frame-Options:
+ - SAMEORIGIN
+ Date:
+ - Tue, 19 May 2020 11:57:09 GMT
+ Server:
+ - YouTube Frontend Proxy
+ X-Xss-Protection:
+ - '0'
+ Transfer-Encoding:
+ - chunked
+ Alt-Svc:
+ - h3-27=":443"; ma=2592000,h3-25=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443";
+ ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443";
+ ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
+ Accept-Ranges:
+ - none
+ Vary:
+ - Accept-Encoding
+ body:
+ encoding: UTF-8
+ string: ''
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:57:10 GMT
+- request:
+ method: post
+ uri: https://api.twitter.com/oauth2/token
+ body:
+ encoding: UTF-8
+ string: grant_type=client_credentials
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Accept:
+ - "*/*"
+ Connection:
+ - close
+ Content-Type:
+ - application/x-www-form-urlencoded
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '153'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Tue, 19 May 2020 11:57:10 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Tue, 19 May 2020 11:57:10 GMT
+ Ml:
+ - A
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Connection-Hash:
+ - 5ee45e6716400cd2c7935b460311ce2f
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - DENY
+ X-Response-Time:
+ - '113'
+ X-Transaction:
+ - '0068e9a000c96e4b'
+ X-Tsa-Request-Body-Time:
+ - '1'
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Ua-Compatible:
+ - IE=edge,chrome=1
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"token_type":"bearer","access_token":"ACCESS_TOKEN"}'
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:57:10 GMT
+- request:
+ method: get
+ uri: https://api.twitter.com/1.1/statuses/show/948256083352735744.json?tweet_mode=extended
+ body:
+ encoding: UTF-8
+ string: ''
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Connection:
+ - close
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '3878'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Tue, 19 May 2020 11:57:10 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Tue, 19 May 2020 11:57:10 GMT
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Access-Level:
+ - read
+ X-Connection-Hash:
+ - 6854a3759a16a57adf9db776f414bc8d
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-Rate-Limit-Limit:
+ - '900'
+ X-Rate-Limit-Remaining:
+ - '896'
+ X-Rate-Limit-Reset:
+ - '1589890100'
+ X-Response-Time:
+ - '131'
+ X-Transaction:
+ - 003a454d0096cf9d
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"created_at":"Tue Jan 02 18:14:02 +0000 2018","id":948256083352735744,"id_str":"948256083352735744","full_text":"I''m
+ a full-stack developer https:\/\/t.co\/wvFikfWJ7f","truncated":false,"display_text_range":[0,26],"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[],"media":[{"id":948256051085770752,"id_str":"948256051085770752","indices":[27,50],"media_url":"http:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","url":"https:\/\/t.co\/wvFikfWJ7f","display_url":"pic.twitter.com\/wvFikfWJ7f","expanded_url":"https:\/\/twitter.com\/bendhalpern\/status\/948256083352735744\/photo\/1","type":"photo","sizes":{"large":{"w":1536,"h":2048,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":900,"h":1200,"resize":"fit"},"small":{"w":510,"h":680,"resize":"fit"}}}]},"extended_entities":{"media":[{"id":948256051085770752,"id_str":"948256051085770752","indices":[27,50],"media_url":"http:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","url":"https:\/\/t.co\/wvFikfWJ7f","display_url":"pic.twitter.com\/wvFikfWJ7f","expanded_url":"https:\/\/twitter.com\/bendhalpern\/status\/948256083352735744\/photo\/1","type":"photo","sizes":{"large":{"w":1536,"h":2048,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":900,"h":1200,"resize":"fit"},"small":{"w":510,"h":680,"resize":"fit"}}}]},"source":"\u003ca
+ href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter
+ for iPhone\u003c\/a\u003e","in_reply_to_status_id":948243620846620673,"in_reply_to_status_id_str":"948243620846620673","in_reply_to_user_id":161419043,"in_reply_to_user_id_str":"161419043","in_reply_to_screen_name":"bendhalpern","user":{"id":161419043,"id_str":"161419043","name":"Ben
+ Halpern \ud83e\udd81","screen_name":"bendhalpern","location":"Brooklyn, NY\/Beacon,
+ NY","description":"Creator\/founder\/webmaster of https:\/\/t.co\/lhcCPP1ReQ
+ (@ThePracticalDev). Coder, buddhist, feminist, Batman. He\/Him.","url":"https:\/\/t.co\/qqIzCffhit","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/qqIzCffhit","expanded_url":"http:\/\/dev.to\/ben","display_url":"dev.to\/ben","indices":[0,23]}]},"description":{"urls":[{"url":"https:\/\/t.co\/lhcCPP1ReQ","expanded_url":"http:\/\/dev.to","display_url":"dev.to","indices":[29,52]}]}},"protected":false,"followers_count":39142,"friends_count":2168,"listed_count":689,"created_at":"Wed
+ Jun 30 20:15:57 +0000 2010","favourites_count":35151,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":true,"statuses_count":15326,"lang":null,"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"EDECE9","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme3\/bg.gif","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme3\/bg.gif","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/855590922486136832\/g8m8zpCp_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/855590922486136832\/g8m8zpCp_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/161419043\/1492834234","profile_link_color":"3A1E75","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"E3E2DE","profile_text_color":"634047","profile_use_background_image":true,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":65,"favorite_count":511,"favorited":false,"retweeted":false,"possibly_sensitive":false,"possibly_sensitive_appealable":false,"lang":"en"}'
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:57:10 GMT
+recorded_with: VCR 5.1.0
diff --git a/spec/support/fixtures/vcr_cassettes/RssReader/_valid_feed_url_/returns_true_on_valid_feed_url.yml b/spec/support/fixtures/vcr_cassettes/RssReader/_valid_feed_url_/returns_true_on_valid_feed_url.yml
new file mode 100644
index 000000000..9c345e9c5
--- /dev/null
+++ b/spec/support/fixtures/vcr_cassettes/RssReader/_valid_feed_url_/returns_true_on_valid_feed_url.yml
@@ -0,0 +1,90 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 12:06:17 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"408b17574027707f","ot-tracer-traceid":"2aa95f96443d2a62","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889977627:c328a69944ed
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:21:17 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595db0e7baf70f72-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce6ce4d600000f726e9aa200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDEyOjA1OjIxIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 12:06:17 GMT
+recorded_with: VCR 5.1.0
diff --git a/spec/support/fixtures/vcr_cassettes/RssReader/when_feed_referential_link_is_false/does_not_self-reference_links_for_user.yml b/spec/support/fixtures/vcr_cassettes/RssReader/when_feed_referential_link_is_false/does_not_self-reference_links_for_user.yml
new file mode 100644
index 000000000..4c9963e15
--- /dev/null
+++ b/spec/support/fixtures/vcr_cassettes/RssReader/when_feed_referential_link_is_false/does_not_self-reference_links_for_user.yml
@@ -0,0 +1,460 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 12:00:27 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"76fe7c9c6aa68ca7","ot-tracer-traceid":"5d7e0fc4239c84c0","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889627349:79c0e9728a37
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:15:27 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da85a7b8e0e06-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce678c8900000e0633332200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 12:00:27 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 12:00:27 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"5b79c8094c160066","ot-tracer-traceid":"65dac72b418c8d89","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889627644:12a95937b4b1
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:15:27 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da85c5f82d604-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce678db50000d604d0344200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 12:00:27 GMT
+- request:
+ method: head
+ uri: https://medium.com/media/7da74bb30f8a2a82b0acb89b213a018b/href
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 302
+ message: Found
+ headers:
+ Date:
+ - Tue, 19 May 2020 12:00:27 GMT
+ Content-Type:
+ - application/octet-stream
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"64ff7f2f07782e04","ot-tracer-traceid":"52c6ddbe64df2046","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889627809:e022d5f7fd3
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Expires:
+ - Thu, 09 Sep 1999 09:09:09 GMT
+ Pragma:
+ - no-cache
+ Location:
+ - https://www.youtube.com/watch?v=QOCaacO8wus
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da85d6e4e0e12-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce678e6400000e120e316200000001
+ body:
+ encoding: UTF-8
+ string: ''
+ http_version: null
+ recorded_at: Tue, 19 May 2020 12:00:27 GMT
+- request:
+ method: head
+ uri: https://www.youtube.com/watch?v=QOCaacO8wus
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Cookie:
+ - __cfduid=d2455308f90eadbbb35dc3819cd488ef71589889627; uid=lo_UYozN4jZpEBX;
+ sid=1:wCPsNHBDI2QKt4tW+GtS5H1tz3us4mA3wl6Te6q1rmcGIsSCax4aIlPFHhawMElq; optimizelyEndUserId=lo_UYozN4jZpEBX;
+ __cfruid=40a5c949fcf98c056d46132b757b79bf8e70df86-1589889627
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-Content-Type-Options:
+ - nosniff
+ Strict-Transport-Security:
+ - max-age=31536000
+ P3p:
+ - CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=it
+ for more info."
+ Expires:
+ - Tue, 27 Apr 1971 19:44:06 GMT
+ Content-Type:
+ - text/html; charset=utf-8
+ Date:
+ - Tue, 19 May 2020 12:00:28 GMT
+ Server:
+ - YouTube Frontend Proxy
+ X-Xss-Protection:
+ - '0'
+ Transfer-Encoding:
+ - chunked
+ Alt-Svc:
+ - h3-27=":443"; ma=2592000,h3-25=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443";
+ ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443";
+ ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
+ Accept-Ranges:
+ - none
+ Vary:
+ - Accept-Encoding
+ body:
+ encoding: UTF-8
+ string: ''
+ http_version: null
+ recorded_at: Tue, 19 May 2020 12:00:28 GMT
+- request:
+ method: post
+ uri: https://api.twitter.com/oauth2/token
+ body:
+ encoding: UTF-8
+ string: grant_type=client_credentials
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Accept:
+ - "*/*"
+ Connection:
+ - close
+ Content-Type:
+ - application/x-www-form-urlencoded
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '153'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Tue, 19 May 2020 12:00:28 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Tue, 19 May 2020 12:00:28 GMT
+ Ml:
+ - A
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Connection-Hash:
+ - d70632b8d317e8c8a5cddc69b917f639
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - DENY
+ X-Response-Time:
+ - '114'
+ X-Transaction:
+ - 00caa01700a2b87e
+ X-Tsa-Request-Body-Time:
+ - '0'
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Ua-Compatible:
+ - IE=edge,chrome=1
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"token_type":"bearer","access_token":"ACCESS_TOKEN"}'
+ http_version: null
+ recorded_at: Tue, 19 May 2020 12:00:28 GMT
+- request:
+ method: get
+ uri: https://api.twitter.com/1.1/statuses/show/948256083352735744.json?tweet_mode=extended
+ body:
+ encoding: UTF-8
+ string: ''
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Connection:
+ - close
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '3878'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Tue, 19 May 2020 12:00:28 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Tue, 19 May 2020 12:00:28 GMT
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Access-Level:
+ - read
+ X-Connection-Hash:
+ - b294b1d400f435a17f368ccefd1eb242
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-Rate-Limit-Limit:
+ - '900'
+ X-Rate-Limit-Remaining:
+ - '895'
+ X-Rate-Limit-Reset:
+ - '1589890100'
+ X-Response-Time:
+ - '134'
+ X-Transaction:
+ - '0031283e006dcc73'
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"created_at":"Tue Jan 02 18:14:02 +0000 2018","id":948256083352735744,"id_str":"948256083352735744","full_text":"I''m
+ a full-stack developer https:\/\/t.co\/wvFikfWJ7f","truncated":false,"display_text_range":[0,26],"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[],"media":[{"id":948256051085770752,"id_str":"948256051085770752","indices":[27,50],"media_url":"http:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","url":"https:\/\/t.co\/wvFikfWJ7f","display_url":"pic.twitter.com\/wvFikfWJ7f","expanded_url":"https:\/\/twitter.com\/bendhalpern\/status\/948256083352735744\/photo\/1","type":"photo","sizes":{"large":{"w":1536,"h":2048,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":900,"h":1200,"resize":"fit"},"small":{"w":510,"h":680,"resize":"fit"}}}]},"extended_entities":{"media":[{"id":948256051085770752,"id_str":"948256051085770752","indices":[27,50],"media_url":"http:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","url":"https:\/\/t.co\/wvFikfWJ7f","display_url":"pic.twitter.com\/wvFikfWJ7f","expanded_url":"https:\/\/twitter.com\/bendhalpern\/status\/948256083352735744\/photo\/1","type":"photo","sizes":{"large":{"w":1536,"h":2048,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":900,"h":1200,"resize":"fit"},"small":{"w":510,"h":680,"resize":"fit"}}}]},"source":"\u003ca
+ href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter
+ for iPhone\u003c\/a\u003e","in_reply_to_status_id":948243620846620673,"in_reply_to_status_id_str":"948243620846620673","in_reply_to_user_id":161419043,"in_reply_to_user_id_str":"161419043","in_reply_to_screen_name":"bendhalpern","user":{"id":161419043,"id_str":"161419043","name":"Ben
+ Halpern \ud83e\udd81","screen_name":"bendhalpern","location":"Brooklyn, NY\/Beacon,
+ NY","description":"Creator\/founder\/webmaster of https:\/\/t.co\/lhcCPP1ReQ
+ (@ThePracticalDev). Coder, buddhist, feminist, Batman. He\/Him.","url":"https:\/\/t.co\/qqIzCffhit","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/qqIzCffhit","expanded_url":"http:\/\/dev.to\/ben","display_url":"dev.to\/ben","indices":[0,23]}]},"description":{"urls":[{"url":"https:\/\/t.co\/lhcCPP1ReQ","expanded_url":"http:\/\/dev.to","display_url":"dev.to","indices":[29,52]}]}},"protected":false,"followers_count":39142,"friends_count":2168,"listed_count":689,"created_at":"Wed
+ Jun 30 20:15:57 +0000 2010","favourites_count":35151,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":true,"statuses_count":15326,"lang":null,"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"EDECE9","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme3\/bg.gif","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme3\/bg.gif","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/855590922486136832\/g8m8zpCp_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/855590922486136832\/g8m8zpCp_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/161419043\/1492834234","profile_link_color":"3A1E75","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"E3E2DE","profile_text_color":"634047","profile_use_background_image":true,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":65,"favorite_count":511,"favorited":false,"retweeted":false,"possibly_sensitive":false,"possibly_sensitive_appealable":false,"lang":"en"}'
+ http_version: null
+ recorded_at: Tue, 19 May 2020 12:00:29 GMT
+recorded_with: VCR 5.1.0
diff --git a/spec/support/fixtures/vcr_cassettes/rss_reader_fetch_articles.yml b/spec/support/fixtures/vcr_cassettes/rss_reader_fetch_articles.yml
new file mode 100644
index 000000000..31ad2fdfd
--- /dev/null
+++ b/spec/support/fixtures/vcr_cassettes/rss_reader_fetch_articles.yml
@@ -0,0 +1,726 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:53:11 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"76401ef82a1ee717","ot-tracer-traceid":"2165eee1317a3f09","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889191793:eda15bdc0060
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:08:11 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595d9db848070f6e-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce60e72f00000f6e11812200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDExOjQ4OjUyIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:53:12 GMT
+- request:
+ method: get
+ uri: https://circleci.com/blog/feed.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/xml
+ Date:
+ - Tue, 19 May 2020 11:53:12 GMT
+ Etag:
+ - '"d148e5f0c8f6530989f97099948abd37"'
+ Last-Modified:
+ - Tue, 19 May 2020 02:33:22 GMT
+ Server:
+ - nginx
+ Strict-Transport-Security:
+ - max-age=15724800
+ X-Amz-Id-2:
+ - Zlzh3xWI/m399oaRJBun75IMubgjqq/hEZkUJ1yqdDgZNCbA+ljqvE+xg4evMItrfjTn+Z6eIGg=
+ X-Amz-Request-Id:
+ - 33BF8413EB517365
+ X-Frame-Options:
+ - SAMEORIGIN
+ Content-Length:
+ - '183502'
+ Connection:
+ - keep-alive
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiCiAgeG1sOmJhc2U9Imh0dHBzOi8vY2lyY2xlY2kuY29tLyIKICB4bWxuczphdG9tPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8Y2hhbm5lbD4KICAgIDx0aXRsZT5UaGUgQ2lyY2xlQ0kgQmxvZyBGZWVkIC0gQ2lyY2xlQ0k8L3RpdGxlPgogICAgPGRlc2NyaXB0aW9uPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgbmV3cywgdXBkYXRlcywgYW5kIGhhY2tzIGZyb20gQ2lyY2xlQ0kuPC9kZXNjcmlwdGlvbj4KICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvPC9saW5rPgogICAgPGF0b206bGluayBocmVmPSJodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2ZlZWQueG1sIiByZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Db250aW51b3VzIGludGVncmF0aW9uIGZvciBJb25pYyBhcHBsaWNhdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvY29udGlub3VzLWludGVncmF0aW9uLWZvci1pb25pYy1hcHBzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDE4IE1heSAyMDIwIDE3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbm91cy1pbnRlZ3JhdGlvbi1mb3ItaW9uaWMtYXBwcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5GaWtheW8gQWRlcG9qdTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtJbiB0aGUgd29ybGQgb2YgaHlicmlkIG1vYmlsZSBkZXZlbG9wbWVudCwgbm8gb3RoZXIgZnJhbWV3b3JrIGhhcyBkb25lIG1vcmUgZm9yIHRoZSBpbmR1c3RyeSB0aGFuIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tLyZxdW90OyZndDtJb25pYyBmcmFtZXdvcmsmbHQ7L2EmZ3Q7LiBDcmVhdGVkIGluIDIwMTMgYW5kIG9yaWdpbmFsbHkgYnVpbHQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXJqcy5vcmcvJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7IGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY29yZG92YS5hcGFjaGUub3JnLyZxdW90OyZndDtBcGFjaGUgQ29yZG92YSZsdDsvYSZndDssIElvbmljIGhhcyBncm93biB0byBhIGZ1bGwtZmVhdHVyZWQgYXBwbGljYXRpb24gZnJhbWV3b3JrIGZvciBkZXZlbG9waW5nIG1vYmlsZSwgZGVza3RvcCwgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93ZWIuZGV2L3Byb2dyZXNzaXZlLXdlYi1hcHBzLyZxdW90OyZndDtwcm9ncmVzc2l2ZSB3ZWIgYXBwbGljYXRpb25zJmx0Oy9hJmd0Oy4gSW9uaWMgaGFzIGFsc28gYmVjb21lIGZyYW1ld29yay1hZ25vc3RpYywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byB1c2UgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXIuaW8vJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oywgb3IgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3Z1ZWpzLm9yZy8mcXVvdDsmZ3Q7VnVlLmpzJmx0Oy9hJmd0OyBmb3IgZGV2ZWxvcG1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2Ugd2lsbCBiZSBidWlsZGluZyBhIGhhbmR5IHRhc2sgbWFuYWdlci4gV2Ugd2lsbCB3cml0ZSB0ZXN0cyBmb3IgZmVhdHVyZXMgaW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBzZXQgdXAgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbm91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgKENJKSBwaXBlbGluZSB0byBhdXRvbWF0ZSBvdXIgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFdlIHdpbGwgYmUgZGV2ZWxvcGluZyBvdXIgYXBwbGljYXRpb24gdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9yZWFjdCZxdW90OyZndDtJb25pYyBSZWFjdCZsdDsvYSZndDssIHRoZSBJb25pYyB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgZGV2ZWxvcGluZyB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBmb2xsb3cgdGhpcyBwb3N0LCBhIGZldyB0aGluZ3MgYXJlIHJlcXVpcmVkOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QmFzaWMga25vd2xlZGdlIG9mIFJlYWN0LmpzIChOb3QgYSBkZWFsLWJyZWFrZXIsIHlvdSBvbmx5IGhhdmUgdG8gY29weS1wYXN0ZSB0aGUgY29kZSBzbmlwcGV0cykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbm9kZWpzLm9yZyZxdW90OyZndDtOb2RlLmpzJmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtUaGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2NsaSZxdW90OyZndDtJb25pYyBDTEkmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L29sJmd0OwoKJmx0O2gyJmd0O1NjYWZmb2xkaW5nIHRoZSBJb25pYyBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBiZWdpbiwgbGV04oCZcyBzY2FmZm9sZCBhIG5ldyBJb25pYyBhcHBsaWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2lvbmljIHN0YXJ0IHRhc2stbWFuYWdlciB0YWJzIC0tdHlwZT1yZWFjdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgSW9uaWMgQ0xJIHRvIHNjYWZmb2xkIGEgbmV3IHByb2plY3QgZm9yIHVzIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0YWJzJmx0Oy9jb2RlJmd0OyB0ZW1wbGF0ZSBpbnNpZGUgYSBmb2xkZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGFzay1tYW5hZ2VyJmx0Oy9jb2RlJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1lvdSBtaWdodCBiZSBwcm9tcHRlZCBhdCBzb21lIHBvaW50IHdpdGggJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Q3JlYXRlIGZyZWUgSW9uaWMgYWNjb3VudD8mbHQ7L2NvZGUmZ3Q7LiBIaXQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7biZsdDsvY29kZSZndDsgdG8gZGVjbGluZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYW4gSW9uaWMgYWNjb3VudCBzZWUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9hcHBmbG93JnF1b3Q7Jmd0O2hlcmUmbHQ7L2EmZ3Q7LiZsdDsvaSZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmNlIHRoaXMgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb24gKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIHRhc2stbWFuYWdlciZsdDsvY29kZSZndDspIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHNlcnZlIHRoZSBhcHBsaWNhdGlvbiBpbiB5b3VyIHdlYiBicm93c2VyOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7aW9uaWMgc2VydmUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGlzIGNvbW1hbmQgaGFzIGNvbXBsZXRlZCwgeW91IHdpbGwgc2VlIGFuIGFwcGxpY2F0aW9uIHZpZXcgaW4geW91ciBicm93c2VyIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O0kgYW0gdXNpbmcgYSBtb2JpbGUgcHJldmlldyBhY3RpdmF0ZWQgaW4gQ2hyb21l4oCZcyBkZXZlbG9wbWVudCB0b29scy4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXNjYWZmb2xkLXByZXZpZXcucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtEb27igJl0IGJlIHN1cnByaXNlZCBpZiB5b3VycyBoYXMgYSBibGFjayBiYWNrZ3JvdW5kIGFuZCB3aGl0ZSBmb250LiBJdCB1c2VzIHRoZSBkZWZhdWx0IG1vZGUgb2YgeW91ciBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMiZndDtCdWlsZGluZyB0aGUgVGFzayBNYW5hZ2VyIGFwcGxpY2F0aW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05leHQsIGxldOKAmXMgYmVnaW4gYnVpbGRpbmcgdGhlIG1haW4gYXBwbGljYXRpb24uIEdvIGludG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyIG9mIHlvdXIgYXBwbGljYXRpb24gYW5kIG9wZW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGhvbWUgcGFnZSBmb3IgdGhlIG5ld2x5IHNjYWZmb2xkZWQgYXBwbGljYXRpb24uIFJlbW92ZSBldmVyeXRoaW5nIGluIHRoaXMgZmlsZSBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRzeAoKaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsKICBJb25Db250ZW50LAogIElvbkhlYWRlciwKICBJb25QYWdlLAogIElvblRpdGxlLAogIElvblRvb2xiYXIsCiAgSW9uTGlzdCwKICBJb25JdGVtU2xpZGluZywKICBJb25JdGVtLAogIElvbkxhYmVsLAogIElvbkl0ZW1PcHRpb25zLAogIElvbkl0ZW1PcHRpb24sCiAgSW9uRmFiLAogIElvbkZhYkJ1dHRvbiwKICBJb25JY29uLAogIElvbk1vZGFsLAogIElvbkJ1dHRvbiwKICBJb25DYXJkLAogIElvbkNhcmRDb250ZW50LAogIElvbklucHV0LAp9IGZyb20gJnF1b3Q7QGlvbmljL3JlYWN0JnF1b3Q7OwoKaW1wb3J0IHsgYWRkIH0gZnJvbSAmcXVvdDtpb25pY29ucy9pY29ucyZxdW90OzsKCmltcG9ydCAmcXVvdDsuL1RhYjEuY3NzJnF1b3Q7OwoKaW50ZXJmYWNlIFRhc2sgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwp9Cgpjb25zdCBUYWIxOiBSZWFjdC5GQyA9ICgpID0mYW1wO2d0OyB7CiAgY29uc3QgW3Rhc2tzLCBzZXRUYXNrc10gPSB1c2VTdGF0ZSZhbXA7bHQ7VGFza1tdJmFtcDtndDsoW10pOwogIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7CiAgY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKCiAgZnVuY3Rpb24gYWRkTmV3VGFzaygpIHsKICAgIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogICAgY29uc3QgbmV3VGFzayA9IHsKICAgICAgaWQ6IG5ld19pZCwKICAgICAgbmFtZTogdGFza05hbWUsCiAgICB9OwoKICAgIHRhc2tzLnB1c2gobmV3VGFzayk7CgogICAgc2V0VGFza3ModGFza3MpOwoKICAgIHNldFRhc2tOYW1lKCZxdW90OyZxdW90Oyk7CgogICAgc2V0U2hvd01vZGFsKGZhbHNlKTsKICB9CgogIHJldHVybiAoCiAgICAmYW1wO2x0O0lvblBhZ2UmYW1wO2d0OwogICAgICAmYW1wO2x0O0lvbkhlYWRlciZhbXA7Z3Q7CiAgICAgICAgJmFtcDtsdDtJb25Ub29sYmFyJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uVGl0bGUmYW1wO2d0O1Rhc2sgTWFuYWdlciZhbXA7bHQ7L0lvblRpdGxlJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25Ub29sYmFyJmFtcDtndDsKICAgICAgJmFtcDtsdDsvSW9uSGVhZGVyJmFtcDtndDsKICAgICAgJmFtcDtsdDtJb25Db250ZW50JmFtcDtndDsKICAgICAgICAmYW1wO2x0O0lvbkxpc3QmYW1wO2d0OwogICAgICAgICAge3Rhc2tzLmxlbmd0aCAmYW1wO2d0OyAwID8gKAogICAgICAgICAgICB0YXNrcy5tYXAoKGl0ZW06IFRhc2spID0mYW1wO2d0OyB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbVNsaWRpbmcga2V5PXtpdGVtLmlkfSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbSBjbGFzc05hbWU9JnF1b3Q7dG9kby1pdGVtJnF1b3Q7JmFtcDtndDsKICAgICAgICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDt7aXRlbS5uYW1lfSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbnMgc2lkZT0mcXVvdDtlbmQmcXVvdDsmYW1wO2d0OwogICAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsge319JmFtcDtndDtEb25lJmFtcDtsdDsvSW9uSXRlbU9wdGlvbiZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1PcHRpb25zJmFtcDtndDsKICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1TbGlkaW5nJmFtcDtndDsKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KQogICAgICAgICAgKSA6ICgKICAgICAgICAgICAgJmFtcDtsdDtJb25JdGVtJmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICApfQogICAgICAgICZhbXA7bHQ7L0lvbkxpc3QmYW1wO2d0OwoKICAgICAgICB7LyogTW9kYWwqL30KICAgICAgICAmYW1wO2x0O0lvbk1vZGFsIGlzT3Blbj17c2hvd01vZGFsfSZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkNhcmQmYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICZhbXA7bHQ7SW9uTGFiZWwmYW1wO2d0O0FkZCBOZXcgVGFzayZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAmYW1wO2x0O0lvbkNhcmRDb250ZW50JmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICAgJmFtcDtsdDtJb25JbnB1dAogICAgICAgICAgICAgICAgICB2YWx1ZT17dGFza05hbWV9CiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSZxdW90O0VudGVyIFRhc2sgTmFtZS4uLiZxdW90OwogICAgICAgICAgICAgICAgICBvbklvbkNoYW5nZT17KGUpID0mYW1wO2d0OyBzZXRUYXNrTmFtZShlLmRldGFpbC52YWx1ZSEpfQogICAgICAgICAgICAgICAgJmFtcDtndDsmYW1wO2x0Oy9Jb25JbnB1dCZhbXA7Z3Q7CiAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uCiAgICAgICAgICAgICAgICBleHBhbmQ9JnF1b3Q7ZnVsbCZxdW90OwogICAgICAgICAgICAgICAgY29sb3I9JnF1b3Q7cHJpbWFyeSZxdW90OwogICAgICAgICAgICAgICAgb25DbGljaz17KCkgPSZhbXA7Z3Q7IGFkZE5ld1Rhc2soKX0KICAgICAgICAgICAgICAmYW1wO2d0OwogICAgICAgICAgICAgICAgQWRkIFRhc2sKICAgICAgICAgICAgICAmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkQ29udGVudCZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uIG9uQ2xpY2s9eygpID0mYW1wO2d0OyBzZXRTaG93TW9kYWwoZmFsc2UpfSZhbXA7Z3Q7Q2xvc2UgTW9kYWwmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICZhbXA7bHQ7L0lvbk1vZGFsJmFtcDtndDsKCiAgICAgICAgey8qIEFkZCBUYXNrIEJ1dHRvbiAqL30KICAgICAgICAmYW1wO2x0O0lvbkZhYiB2ZXJ0aWNhbD0mcXVvdDtib3R0b20mcXVvdDsgaG9yaXpvbnRhbD0mcXVvdDtlbmQmcXVvdDsgc2xvdD0mcXVvdDtmaXhlZCZxdW90OyZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkZhYkJ1dHRvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsgc2V0U2hvd01vZGFsKHRydWUpfSZhbXA7Z3Q7CiAgICAgICAgICAgICZhbXA7bHQ7SW9uSWNvbiBpY29uPXthZGR9IC8mYW1wO2d0OwogICAgICAgICAgJmFtcDtsdDsvSW9uRmFiQnV0dG9uJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25GYWImYW1wO2d0OwogICAgICAmYW1wO2x0Oy9Jb25Db250ZW50JmFtcDtndDsKICAgICZhbXA7bHQ7L0lvblBhZ2UmYW1wO2d0OwogICk7Cn07CgpleHBvcnQgZGVmYXVsdCBUYWIxOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyBsZXTigJlzIGdvIHRocm91Z2ggdGhlIGNvZGUgc25pcHBldCBhYm92ZS4gVGhpcyBpcyB0aGUgZW50aXJlIGNvZGUgZm9yIG91ciBUYXNrIE1hbmFnZXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnQgYnkgaW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzIGluY2x1ZGluZyB0aGUgY3NzIGZpbGUgZm9yIG91ciBwYWdlLiBXZSB0aGVuIGRlZmluZSBhbiBpbnRlcmZhY2UgdG8gZGVmaW5lIG91ciB0YXNrIG9iamVjdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtpbnRlcmZhY2UgVGFzayB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7Cn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7TmV4dCwgd2UgY3JlYXRlIG91ciBjb21wb25lbnQgYXMgYSBSZWFjdCBmdW5jdGlvbiBjb21wb25lbnQgdHlwZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtSZWFjdC5GQyZsdDsvY29kZSZndDsgYW5kIGJlZ2luIHRoZSBmdW5jdGlvbiBieSBkZWZpbmluZyB0aGUgZGF0YSB3ZSB3YW50IHRvIGhvbGQgaW4gb3VyIHN0YXRlIHVzaW5nIGhvb2tzOiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tzJmx0Oy9jb2RlJmd0OyBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYXNrJmx0Oy9jb2RlJmd0O3MsIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2hvd01vZGFsJmx0Oy9jb2RlJmd0OyBib29sZWFuIHRvIGNvbnRyb2wgdGhlIG9wZW5pbmcgYW5kIGNsb3Npbmcgb2Ygb3VyIHRhc2sgY3JlYXRpb24gZm9ybSwgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tOYW1lJmx0Oy9jb2RlJmd0OyB3aGljaCBob2xkcyB0aGUgdmFsdWUgb2YgYSBuZXcgdGFzayBpbiB0aGUgcHJvY2VzcyBvZiBjcmVhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IFt0YXNrcywgc2V0VGFza3NdID0gdXNlU3RhdGUmYW1wO2x0O1Rhc2tbXSZhbXA7Z3Q7KFtdKTsKY29uc3QgW3Nob3dNb2RhbCwgc2V0U2hvd01vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTsKY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Rm9sbG93aW5nIHRoZXNlIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdlIGNhbGwgdG8gYWRkIGEgbmV3IHRhc2suIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyB0YXNrIGJ5IHNldHRpbmcgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lkJmx0Oy9jb2RlJmd0OyBiYXNlZCBvbiB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBhbmQgY2xlYXJzIHRoZSBmb3JtIGFmdGVyIGFkZGluZyB0aGUgbmV3IHRhc2sgdG8gb3VyIGV4aXN0aW5nIGxpc3Qgb2YgdGFza3MuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtmdW5jdGlvbiBhZGROZXdUYXNrKCkgewogIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogIGNvbnN0IG5ld1Rhc2sgPSB7CiAgICBpZDogbmV3X2lkLAogICAgbmFtZTogdGFza05hbWUsCiAgfTsKCiAgdGFza3MucHVzaChuZXdUYXNrKTsKCiAgc2V0VGFza3ModGFza3MpOwoKICBzZXRUYXNrTmFtZSgmcXVvdDsmcXVvdDspOwoKICBzZXRTaG93TW9kYWwoZmFsc2UpOwp9CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05leHQsIHdlIHJlbmRlciBvdXIgdGVtcGxhdGUgdG8gZGlzcGxheSBvdXIgbGlzdCBvZiB0YXNrcyBhbmQgYWxzbyBkaXNwbGF5IGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgcmVhZHMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmbHQ7L2NvZGUmZ3Q7IHdoZW4gdGhlIHRhc2sgbGlzdCBpcyBlbXB0eS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtGb2xsb3dpbmcgdGhlIGxpc3QgaXMgYSBtb2RhbCBjb21wb25lbnQgdGhhdCBjb250YWlucyBvdXIgdGFzayBmb3JtIGZvciBhZGRpbmcgbmV3IHRhc2tzLiBCZWxvdyB0aGUgY29tcG9uZW50IGlzIGEgZmxvYXRpbmcgYWN0aW9uIGJ1dHRvbiB0aGF0IHRoZSB1c2VyIGNsaWNrcyB0byBvcGVuIHRoZSBtb2RhbC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWZvcmUgd2UgcHJldmlldyB0aGlzLCBvcGVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEuY3NzJmx0Oy9jb2RlJmd0OyBsb2NhdGVkIGluIHRoZSBzYW1lIGZvbGRlciBhcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRzeCZsdDsvY29kZSZndDsgYW5kIHJlcGxhY2UgaXRzIGNvbnRlbnRzIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Lyogc3JjL3BhZ2VzL1RhYjEuY3NzICovCgoudG9kby1pdGVtIHsKICAtLW1pbi1oZWlnaHQ6IDcwcHg7CiAgZm9udC1zaXplOiAxLjJlbTsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHNpbXBseSBidW1wcyB1cCB0aGUgaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgdGhlIGxpc3QgaXRlbXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm93LCBnbyB0byB5b3VyIGJyb3dzZXIgYW5kIGxvYWQgdGhlIGhvbWVwYWdlIG9mIHlvdXIgYXBwbGljYXRpb24gKFRhYjEpLiBZb3Ugd2lsbCBzZWUgdGhlIHBhZ2UgZGlzcGxheWVkIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1ob21lLW5vLXRhc2tzLnBuZyZxdW90OyAvJmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QmVjYXVzZSB3ZSBoYXZlbuKAmXQgYWRkZWQgYW55IHRhc2tzIHlldCwgd2UgaGF2ZSB0aGUgbWVzc2FnZSAmbHQ7c3Ryb25nJmd0O1lvdSBoYXZlIHlldCB0byBhZGQgdGFza3MgZm9yIHRvZGF5Jmx0Oy9zdHJvbmcmZ3Q7IGRpc3BsYXllZC4gV2UgYWxzbyBoYXZlIG91ciAmbHQ7c3Ryb25nJmd0O0FkZCBUYXNrJmx0Oy9zdHJvbmcmZ3Q7IGJ1dHRvbiBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lciB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwbHVzJmx0Oy9jb2RlJmd0OyBzeW1ib2wuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0FkZGluZyB0YXNrcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBhZGQgYSBuZXcgdGFzaywgY2xpY2sgdGhlIGJvdHRvbS1yaWdodCBibHVlIGJ1dHRvbiB0byBwdWxsIHVwIHRoZSB0YXNrIGNyZWF0aW9uIGZvcm0gYW5kIHR5cGUgaW4gYSB0YXNrIGFzIHNob3duIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtdGFzay5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7QUREIFRBU0smbHQ7L3N0cm9uZyZndDsgdG8gYWRkIHRoZSB0YXNrIGFuZCBnbyBhaGVhZCB0byBhZGQgMiB0byAzIG1vcmUgdGFza3MuIFdlIHNob3VsZCBub3cgaGF2ZSBlbm91Z2ggdGFza3Mgb24gdGhlIHBhZ2UgZm9yIG91ciBhcHBsaWNhdGlvbiB0byBsb29rIGZ1bmN0aW9uYWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXRhc2stbGlzdC5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB3ZSBoYXZlIGEgZnVuY3Rpb25hbCBhcHBsaWNhdGlvbi4gTm90IHByb2R1Y3Rpb24tcmVhZHksIGJ1dCBnb29kIGVub3VnaCB0byBzdGFydCB0ZXN0aW5nLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBZGRpbmcgdGVzdHMgdG8gdGhlIFRhc2sgTWFuYWdlciBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtPbmUgYWR2YW50YWdlIHRoYXQgd2UgaGF2ZSB3aXRoIHRlc3Rpbmcgb3VyIElvbmljIGFwcGxpY2F0aW9ucyBpcyB0aGF0IHdoaWxlIHNjYWZmb2xkaW5nIHRoZSBhcHBsaWNhdGlvbiwgdGhlIElvbmljIENMSSBoYXMgc2V0IHVwIGFsbCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcywgaW4gdGVybXMgb2YgcGFja2FnZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCBmb3IgdGVzdGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUZXN0aW5nIElvbmljIFJlYWN0IGFwcGxpY2F0aW9ucyBpcyBkb25lIHVzaW5nIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vamVzdGpzLmlvLyZxdW90OyZndDtKZXN0Jmx0Oy9hJmd0OyB0ZXN0aW5nIGZyYW1ld29yayB0b2dldGhlciB3aXRoIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdGVzdGluZy1saWJyYXJ5LmNvbS9kb2NzL3JlYWN0LXRlc3RpbmctbGlicmFyeS9pbnRybyZxdW90OyZndDtSZWFjdCBUZXN0aW5nIExpYnJhcnkmbHQ7L2EmZ3Q7IGFuZCB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1yZWFjdC10ZXN0LXV0aWxzJnF1b3Q7Jmd0O0lvbmljIFJlYWN0IFRlc3QgVXRpbHMmbHQ7L2EmZ3Q7IGxpYnJhcnkgd2hpY2ggaXMgYSBzbWFsbCBzdWl0ZSBvZiB1dGlsaXRpZXMgdG8gc2ltdWxhdGUgY29tbW9uIGZlYXR1cmVzIGluIElvbmljIGxpa2UgZmlyaW5nIGN1c3RvbSBJb25pYyBldmVudHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIHByb2plY3QgYWxyZWFkeSBjb21lcyB3aXRoIGEgdGVzdCBmaWxlIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7QXBwLnRzeCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLiBBcyB5b3UgbWF5IGhhdmUgZ3Vlc3NlZCwgdGhlIHRlc3QgZmlsZSBpcyBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtBcHAudGVzdC50c3gmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGZvbGxvd3MgdGhlIGNvbnZlbnRpb24gZm9yIEplc3QgdGVzdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsvLyBzcmMvQXBwLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgQXBwIGZyb20gJnF1b3Q7Li9BcHAmcXVvdDs7Cgp0ZXN0KCZxdW90O3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZyZxdW90OywgKCkgPSZhbXA7Z3Q7IHsKICBjb25zdCB7IGJhc2VFbGVtZW50IH0gPSByZW5kZXIoJmFtcDtsdDtBcHAgLyZhbXA7Z3Q7KTsKICBleHBlY3QoYmFzZUVsZW1lbnQpLnRvQmVEZWZpbmVkKCk7Cn0pOwombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHRlc3Qgc2ltcGx5IGNoZWNrcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiByZW5kZXJzIHByb3Blcmx5IGFuZCBkb2VzIG5vdCBjcmFzaC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBydW4gdGhpcyB0ZXN0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBpbnZva2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2plc3QmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gcnVuIHRoZSB0ZXN0IGRlZmluZWQgaW4gdGhlIGZpbGUuIEFzIGRpcmVjdGVkLCBwcmVzcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDthJmx0Oy9jb2RlJmd0OyB0byBydW4gYWxsIHRlc3RzLiBUaGUgYWJvdmUgY29tbWFuZCBpcyB0aGUgY29tbWFuZCB3ZSB3aWxsIGJlIHVzaW5nIHRvIHJ1biBhbGwgdGVzdHMgaW4gb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgbGV04oCZcyBhZGQgc29tZSB0ZXN0cyBvZiBvdXIgb3duLiBXZSB3aWxsIGJlIGNyZWF0aW5nIGEgdGVzdCBmaWxlIHRvIHRlc3QgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIHdlIGhhdmUgaW4gb3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlIHdoaWNoIGhvdXNlcyBvdXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRlc3QudHN4Jmx0Oy9jb2RlJmd0OyBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyLiBJdOKAmXMgdGhlIHNhbWUgcGxhY2UgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VGFiMS50c3gmbHQ7L2NvZGUmZ3Q7IGZpbGUgaXMgbG9jYXRlZC4gSW5zaWRlIHRoZSBuZXdseSBjcmVhdGVkIGZpbGUsIHBsYWNlIGluIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgVGFiMSBmcm9tICZxdW90Oy4vVGFiMSZxdW90OzsKCnRlc3QoJnF1b3Q7UGFnZSB0aXRsZSBpcyBUYXNrIE1hbmFnZXImcXVvdDssIGFzeW5jICgpID0mYW1wO2d0OyB7CiAgY29uc3QgeyBmaW5kQnlUZXh0IH0gPSByZW5kZXIoJmFtcDtsdDtUYWIxIC8mYW1wO2d0Oyk7CiAgYXdhaXQgZmluZEJ5VGV4dCgmcXVvdDtUYXNrIE1hbmFnZXImcXVvdDspOwp9KTsKCnRlc3QoJnF1b3Q7V2hlbiB0aGVyZSBhcmUgbm8gVGFza3MsIGluZm9ybSB0aGUgdXNlciB0aGF0IG5vIHRhc2tzIGhhdmUgYmVlbiBjcmVhdGVkJnF1b3Q7LCBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IHsgZmluZEJ5VGV4dCB9ID0gcmVuZGVyKCZhbXA7bHQ7VGFiMSAvJmFtcDtndDspOwogIGF3YWl0IGZpbmRCeVRleHQoJnF1b3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmcXVvdDspOwp9KTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBmaWxlLCB3ZSBoYXZlIGFkZGVkIHR3byB0ZXN0cy4gVGhlIGZpcnN0IHRlc3QgY2hlY2tzIGlmIG91ciBwYWdlIGRpc3BsYXlzIHdpdGggdGhlIGNvcnJlY3QgdGl0bGUgd2hpY2ggaXMgJmx0O3N0cm9uZyZndDtUYXNrIE1hbmFnZXImbHQ7L3N0cm9uZyZndDsuIFRoZSBzZWNvbmQgdGVzdCBjaGVja3MgaWYgb3VyIGFwcGxpY2F0aW9uIGluaXRpYWxseSBsb2FkcyB3aXRob3V0IHRhc2tzLCBhbmQgaWYgaXQgZG9lcywgaXQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgJmx0O3N0cm9uZyZndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3csIGxldOKAmXMgcnVuIHRoZXNlIHRlc3RzIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGF0IHRoZSByb290IG9mIG91ciBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSBhIHNjcmVlbiBzaW1pbGFyIHRvIHRoZSBvbmUgYmVsb3cgb24geW91ciBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi10ZXN0cy1sb2NhbC1ydW4ucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIG91ciB0ZXN0cyBydW5uaW5nIGFzIGV4cGVjdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBdXRvbWF0aW5nIG91ciB0ZXN0aW5nJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBmaW5hbCB0YXNrIGlzIHRvIGF1dG9tYXRlIG91ciBjb250aW51b3VzIGludGVncmF0aW9uIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhhdCwgd2Ugd2lsbCBiZSBkb2luZyB0aGUgZm9sbG93aW5nOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QWRkIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgdG8gb3VyIHByb2plY3QgdG8gc2V0IHVwIGEgQ0kgcGlwZWxpbmUgb24gQ2lyY2xlQ0kmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIG91ciBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG9zaXRvcnkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDcmVhdGUgYSBDaXJjbGVDSSBwcm9qZWN0IGZvciBvdXIgYXBwbGljYXRpb24mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtSdW4gdGhlIENJIHBpcGVsaW5lIG9uIENpcmNsZUNJJmx0Oy9saSZndDsKJmx0Oy9vbCZndDsKCiZsdDtwJmd0O0xldOKAmXMgZ2V0IHRvIGl0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZpcnN0LCBsZXTigJlzIGFkZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3Igb3VyIENJIHBpcGVsaW5lIHRvIG91ciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLiBJbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbmZpZy55bWwmbHQ7L2NvZGUmZ3Q7IGZpbGUsIGVudGVyIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpqb2JzOgogIGJ1aWxkOgogICAgd29ya2luZ19kaXJlY3Rvcnk6IH4vcmVwbwogICAgZG9ja2VyOgogICAgICAtIGltYWdlOiBjaW1nL25vZGU6MTIuMTYKICAgIHN0ZXBzOgogICAgICAtIGNoZWNrb3V0CiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdXBkYXRlLW5wbQogICAgICAgICAgY29tbWFuZDogJnF1b3Q7c3VkbyBucG0gaW5zdGFsbCAtZyBucG1ANSZxdW90OwogICAgICAtIHJlc3RvcmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgLSBydW46CiAgICAgICAgICBuYW1lOiBpbnN0YWxsLXBhY2thZ2VzCiAgICAgICAgICBjb21tYW5kOiBucG0gaW5zdGFsbAogICAgICAtIHNhdmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgICAgIHBhdGhzOgogICAgICAgICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdGVzdAogICAgICAgICAgY29tbWFuZDogbnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgY29uZmlndXJhdGlvbiBwdWxscyBpbiBhIE5vZGUuanMgaW1hZ2UgYW5kIGluc3RhbGxzIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGRlZmluZWQgaW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0Oy4gT25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCB0aGUgdGVzdCBzY3JpcHQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bnBtIHJ1biB0ZXN0Jmx0Oy9jb2RlJmd0OyBpcyB0aGVuIGV4ZWN1dGVkIHRvIHJ1biBhbGwgdGhlIHRlc3RzIGluIG91ciBhcHBsaWNhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGdvb2QgdG8gZ28uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY29tbWl0IGFsbCB5b3VyIGNoYW5nZXMgYW5kIHB1c2ggdGhlIHByb2plY3QgdG8gYSBHaXRIdWIgcmVwb3NpdG9yeSBvbiB0aGUgR2l0SHViIGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgQ2lyY2xlQ0kgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIGlzIHRvIHNldCB1cCB0aGUgcmVwb3NpdG9yeSBmb3Igb3VyIHByb2plY3QgYXMgYSBDaXJjbGVDSSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBDaXJjbGVDSSBjb25zb2xlLCBnbyB0byB0aGUgJmx0O3N0cm9uZyZndDtBZGQgUHJvamVjdHMmbHQ7L3N0cm9uZyZndDsgcGFnZSB0byBhZGQgdGhlIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtcHJvamVjdC5wbmcmcXVvdDsgYWx0PSZxdW90O0FkZCBQcm9qZWN0JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0Oy4gVGhpcyB3aWxsIGxvYWQgdGhlIG5leHQgc2NyZWVuLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3N0YXJ0LWJ1aWxkaW5nMS5wbmcmcXVvdDsgYWx0PSZxdW90O1N0YXJ0IEJ1aWxkaW5nIC0gQ29uZmlnIHNhbXBsZSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBzZXR1cCBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7LiBCZWZvcmUgdGhlIGJ1aWxkIHN0YXJ0cywgeW91IGdldCBhIHByb21wdCB0byBlaXRoZXIgZG93bmxvYWQgYW5kIHVzZSB0aGUgcHJvdmlkZWQgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBoYXZlIGl0IG9uIGEgc2VwYXJhdGUgYnJhbmNoIG9yIHNldCB1cCBvbmUgbWFudWFsbHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzIucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIEFkZCBtYW51YWxseSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1NlbGVjdCAmbHQ7c3Ryb25nJmd0O0FkZCBNYW51YWxseSZsdDsvc3Ryb25nJmd0OyB0byBwcm9jZWVkLiBUaGlzIHdpbGwgcHJvbXB0IGFub3RoZXIgZGlhbG9nIHRoYXQgY2hlY2tzIHRvIGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXQgdXAgdG8gYmVnaW4gYnVpbGRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzMucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIENvbmZpcm0gY29uZmlndXJhdGlvbiZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsgdG8gY29tcGxldGUgdGhlIHNldHVwLiBUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgcGlwZWxpbmUgdXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBvdXIgcHJvamVjdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGUgYnVpbGQgaXMgZG9uZSBydW5uaW5nLCB5b3Ugd2lsbCBnZXQgYSBzdWNjZXNzZnVsIGJ1aWxkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtc3VjY2Vzc2Z1bC5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHN1Y2Nlc3NmdWwmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O2J1aWxkJmx0Oy9zdHJvbmcmZ3Q7IHRvIHNlZSB0aGUgYmVoaW5kLXRoZS1zY2VuZXMgcHJvY2VzcyhJIGhhdmUgY29sbGFwc2VkIHRoZSAmbHQ7ZW0mZ3Q7dGVzdCZsdDsvZW0mZ3Q7IHN0ZXApLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtcHJvY2Vzcy5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHByb2Nlc3MmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBzY3JlZW4sIG91ciBwcm9qZWN0IGlzIHByb3Blcmx5IHNldCB1cCBhbmQgYWxsIG91ciB0ZXN0cyBhcmUgcnVubmluZyBmaW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgYXMgeW91IGRldmVsb3AsIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgbW9yZSBmZWF0dXJlcywgYWRkIHRlc3RzIHRvIHRoZW0gYW5kIHB1c2ggdG8gR2l0SHViLiBPbmNlIHlvdSBwdXNoLCB0aGUgQ0kgcGlwZWxpbmUgd2lsbCBydW4gYW5kIGFsbCB5b3VyIHRlc3RzIHdpbGwgYmUgZXhlY3V0ZWQuIElmIGFueSB0ZXN0IGZhaWxzLCB5b3VyIGJ1aWxkIHdpbGwgZmFpbCB3aGljaCB3aWxsIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbiB0byBiZSBmaXhlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW914oCZcmUgbm90IHB1c2hpbmcgYW55IGJ1Z3MgaW50byB5b3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIHRoaXMgYXJ0aWNsZSwgd2UgaGF2ZSBzZXQgdXAgYW4gYXV0b21hdGVkIENJIHBpcGVsaW5lIGZvciBvdXIgSW9uaWMgYXBwbGljYXRpb25zIHRvIGltcHJvdmUgb3VyIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGF1dG9tYXRpbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4gSGF2aW5nIGEgQ0kgcGlwZWxpbmUgdGhhdCBwcm9wZXJseSBydW5zIG91ciB0ZXN0cyBwcm90ZWN0cyB1cyBhZ2FpbnN0IG91cnNlbHZlcyBieSBlbnN1cmluZyB0aGF0IHdlIGRvbuKAmXQgZW5kIHVwIHdpdGggYnJva2VuIGFwcGxpY2F0aW9ucyBvciB0aGF0IHdlIGRvbuKAmXQgcHVzaCBidWdneSBjb2RlIHRvIG91ciB0ZWFt4oCZcyByZXBvc2l0b3J5IHdoaWxlIHdvcmtpbmcgdG9nZXRoZXIgb24gYSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyA6KSZsdDsvcCZndDsKCiZsdDtociAvJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3R3aXR0ZXIuY29tL2NvZGVyb25mbGVlaz9sYW5nPWVuJnF1b3Q7Jmd0O0Zpa2F5byZsdDsvYSZndDsgaXMgYSBmdWxsc3RhY2sgZGV2ZWxvcGVyIGFuZCBhdXRob3Igd2l0aCBvdmVyIGEgZGVjYWRlIG9mIGV4cGVyaWVuY2UgZGV2ZWxvcGluZyB3ZWIgYW5kIG1vYmlsZSBzb2x1dGlvbnMuIEhlIGlzIGN1cnJlbnRseSB0aGUgU29mdHdhcmUgTGVhZCBhdCBUZWNoIFNwZWNpYWxpc3QgQ29uc3VsdGluZyBhbmQgZGV2ZWxvcHMgY291cnNlcyBmb3IgUGFja3QgYW5kIFVkZW15LiBIZSBoYXMgYSBzdHJvbmcgcGFzc2lvbiBmb3IgdGVhY2hpbmcgYW5kIGhvcGVzIHRvIGJlY29tZSBhIGZ1bGwtdGltZSBhdXRob3IuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5EcmF3biBPdXQgQ29udmVyc2F0aW9ucywgZmVhdHVyaW5nIENpcmNsZUNJIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlciwgUGF0IFNoaWVsZHM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZHJhd24tb3V0LWNvbnZlcnNhdGlvbi1mZWF0dXJpbmctY2lyY2xlY2ktcHJpbmNpcGFsLXNvZnR3YXJlLWVuZ2luZWVyLXBhdC1zaGllbGRzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5GcmksIDE1IE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RyYXduLW91dC1jb252ZXJzYXRpb24tZmVhdHVyaW5nLWNpcmNsZWNpLXByaW5jaXBhbC1zb2Z0d2FyZS1lbmdpbmVlci1wYXQtc2hpZWxkcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Db3JleSBMZXdpczwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtPbiB0aGlzIGVwaXNvZGUgb2YgRHJhd24gT3V0IENvbnZlcnNhdGlvbnMsIHdlIHRhbGsgYWJvdXQgc29tZXRoaW5nIG5lYXIgYW5kIGRlYXIgdG8gb3VyIGhlYXJ0cyDigJMgQ2lyY2xlQ0kuIFdlLCBhbG9uZyB3aXRoIGh1bmRyZWQgb2YgdGhvdXNhbmRzIG9mIG90aGVyIGRldmVsb3BlcnMgYXQgY29tcGFuaWVzIGxpa2UgU3BvdGlmeSwgRmFjZWJvb2ssIEZvcmQgYW5kIEFldG5hLCB1c2UgQ2lyY2xlQ0kgZXZlcnkgZGF5IHRvIG1ha2Ugc3VyZSB0aGF0IHdl4oCZcmUgZGVwbG95aW5nIHF1YWxpdHkgY29kZSwgYW5kIGJ1aWxkaW5nIGVmZmljaWVuY2llcyBpbnRvIG91ciBlbmdpbmVlcmluZyBwcm9jZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0LCB3aGF0IGV4YWN0bHkgaXMgdW5kZXJuZWF0aCBvdXIgcGxhdGZvcm3igJlzIGhvb2Q/Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Sm9pbiBvdXIgQ1RPIFJvYiBadWJlciBhcyBoZSBob3N0cyBDaXJjbGVDSeKAmXMgUHJpbmNpcGFsIFNvZnR3YXJlIEVuZ2luZWVyIFBhdCBTaGllbGRzIHRvIGRpc2N1c3MgdGhlIGlubmVyLXdvcmtpbmdzIG9mIG91ciB0ZWNobm9sb2d5IGFuZCBwbGF0Zm9ybS4gVGhleSBkaXNjdXNzIGV2ZXJ5dGhpbmcgZnJvbSBwcm9kdWN0IGZlYXR1cmVzIHRvIGFyY2hpdGVjdHVyZSBhbmQgdGFsayBhYm91dCBob3cgYW5kIHdoeSB0aGUgY29yZSBlbGVtZW50cyBvZiBvdXIgcGxhdGZvcm0gZ290IGJ1aWx0LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3JvYi1wYXQucG5nJnF1b3Q7IGFsdD0mcXVvdDtyb2ItcGF0LnBuZyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1JvYiBldmVuIHRha2VzIGEgdHVybiB3aXRoIHRoZSBtYXJrZXJzIHRvIGRpc2N1c3MgZG9tYWluLWRyaXZlbiBkZXNpZ24sIGF1dGhlbnRpY2F0aW9uIGFuZCBtb3JlLiBMZWFybiBldmVyeXRoaW5nIHlvdSBldmVyIHdhbnRlZCB0byBrbm93IGFib3V0IENpcmNsZUNJIGFuZCBtb3JlIGluIHRvZGF54oCZcyBjb252ZXJzYXRpb24uJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXImcXVvdDsmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3lvdXR1LmJlL1dMOVJRNmZNbGUwJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvY2lyY2xlY2kuZ2lmJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsKICAmbHQ7L2EmZ3Q7CgombHQ7YnIgLyZndDsKCiAgJmx0O3AmZ3Q7CiAgICAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8veW91dHUuYmUvV0w5UlE2Zk1sZTAmcXVvdDsgc3R5bGU9JnF1b3Q7Y29sb3I6IzAwMDBFRTsmcXVvdDsmZ3Q7CiAgICAgIFdhdGNoIHRoZSBmdWxsIHZpZGVvIGhlcmUKICAgICZsdDsvYSZndDsKICAmbHQ7L3AmZ3Q7CiZsdDsvZGl2Jmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZG8gSSB1c2UgSW5mcmFzdHJ1Y3R1cmUgYXMgQ29kZT88L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWRvLWktaWFjLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE1heSAyMDIwIDEyOjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2hvdy1kby1pLWlhYy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5BbmdlbCBSaXZlcmE8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7SW5mcmFzdHJ1Y3R1cmUgYXMgY29kZSAoSWFDKSBpcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBhbmQgcHJvdmlzaW9uaW5nIGNsb3VkIGFuZCBJVCByZXNvdXJjZXMgdmlhIG1hY2hpbmUgcmVhZGFibGUgZGVmaW5pdGlvbiBmaWxlcyBhbmQgaXMgYSBwYXJ0IG9mIG1vZGVybiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lcy4gSWFDIGVuYWJsZXMgb3JnYW5pemF0aW9ucyB0byBwcm92aXNpb24sIG1hbmFnZSwgYW5kIGRlc3Ryb3kgY29tcHV0ZSByZXNvdXJjZXMgdXNpbmcgbW9kZXJuIERldk9wcyB0b29scy4gSWFDIGVuYWJsZXMgdGhpcyBieSBzdGF0aWNhbGx5IGRlZmluaW5nIGFuZCBkZWNsYXJpbmcgdGhlc2UgcmVzb3VyY2VzIGluIGNvZGUsIHRoZW4gZGVwbG95aW5nIGFuZCBkeW5hbWljYWxseSBtYWludGFpbmluZyB0aGVzZSByZXNvdXJjZXMgdmlhIGNvZGUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gcmVjZW50IGludGVyYWN0aW9ucyB3aXRoIGRldmVsb3BlcnMsIEnigJl2ZSByZWFsaXplZCB0aGF0IG1hbnkgYXJlIGVpdGhlciBub3QgYXdhcmUgb2YgSWFDLCBvciBhcmUgYXdhcmUgYnV0IGhhdmUgYWJhbmRvbmVkIHRoZWlyIGluaXRpYWwgZWZmb3J0cyBiZWNhdXNlIHJhbXBpbmcgdXAgd2FzIHRvbyBjdW1iZXJzb21lLiBJbiB0aGlzIHBvc3QsIEkgd2lsbCBkaXNjdXNzIHRoZSBiZW5lZml0cyBvZiBJYUMgYW5kIHNvbWUgb2YgdGhlIHRvb2xpbmcgb3B0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgYWxvbmcgd2l0aCBhIGJyaWVmIGRlbW9uc3RyYXRpb24gb24gaG93IHRvIHVzZSB0aGVtIGluIGhvcGVzIG9mIGVhc2luZyB0aGUgdHJhbnNpdGlvbiB0byB1c2luZyBJYUMuIEkgd2lsbCBmb2N1cyBvbiB0aGUgdHdvIG1vc3QgcG9wdWxhciBJYUMgdG9vbHMgdXNlZCBpbiB0aGUgaW5kdXN0cnkgdG9kYXk6ICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cudGVycmFmb3JtLmlvLyZxdW90OyZndDtIYXNoaUNvcnDigJlzIFRlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtCZWZvcmUgeW91IGdldCBzdGFydGVkLCB5b3XigJlsbCBuZWVkIHRvIGhhdmUgdGhlc2UgdGhpbmdzOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9mcmVlJnF1b3Q7Jmd0O0dvb2dsZSBDbG91ZCZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NyZWF0ZSBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3Jlc291cmNlLW1hbmFnZXIvZG9jcy9jcmVhdGluZy1tYW5hZ2luZy1wcm9qZWN0cyNjcmVhdGluZ19hX3Byb2plY3QmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIHByb2plY3QmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FwcC5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkgQVBJIHRva2VuJmx0Oy9hJmd0OyBhbmQgc2F2ZSBpdCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgbG9jYWwgaW5zdGFsbCBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vc2RrL2RvY3MvcXVpY2tzdGFydHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIFNESyBDTEkmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSBsb2NhbCBpbnN0YWxsIG9mIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaHViLmRvY2tlci5jb20vc2VhcmNoLz90eXBlPWVkaXRpb24mYW1wO2FtcDtvZmZlcmluZz1jb21tdW5pdHkmcXVvdDsmZ3Q7RG9ja2VyIGNsaWVudCZsdDsvYSZndDsmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBHb29nbGUgQ2xvdWQgcHJvamVjdCBjcmVkZW50aWFscyZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDbG91ZFBsYXRmb3JtL2NvbW11bml0eS9ibG9iL21hc3Rlci90dXRvcmlhbHMvZ2V0dGluZy1zdGFydGVkLW9uLWdjcC13aXRoLXRlcnJhZm9ybS9pbmRleC5tZCNnZXR0aW5nLXByb2plY3QtY3JlZGVudGlhbHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIGNyZWRlbnRpYWxzJmx0Oy9hJmd0OyBpbiBvcmRlciB0byBwZXJmb3JtIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgdXNpbmcgSWFDIHRvb2xpbmcuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9hcGlzL2NyZWRlbnRpYWxzL3NlcnZpY2VhY2NvdW50a2V5JnF1b3Q7Jmd0O0NyZWF0ZSBTZXJ2aWNlIEFjY291bnQgS2V5IHBhZ2UmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7U2VsZWN0IHRoZSBkZWZhdWx0IHNlcnZpY2UgYWNjb3VudCBvciBjcmVhdGUgYSBuZXcgb25lLCBzZWxlY3QgSlNPTiBhcyB0aGUga2V5IHR5cGUsIGFuZCBjbGljayAmbHQ7c3Ryb25nJmd0O0NyZWF0ZSZsdDsvc3Ryb25nJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O1NhdmUgdGhpcyBKU09OIGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgYW5kIHJlbmFtZSB0aGUgZmlsZSB0byAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaWNkX2RlbW9fZ2NwX2NyZWRzLmpzb24mbHQ7L2NvZGUmZ3Q7LiBUaGlzIGlzICZsdDtzdHJvbmcmZ3Q7dmVyeSBpbXBvcnRhbnQmbHQ7L3N0cm9uZyZndDsgZm9yIGVuYWJsaW5nIHRoZSBHb29nbGUgQ2xvdWQgQ0xJIGluIHRoZSBjb250YWluZXIgbGF0ZXIgb24mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBhIFB1bHVtaSBBUEkgdG9rZW4mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7WW91IHdpbGwgbmVlZCB0byBnZXQgYSBQdWx1bWkgQVBJIHRva2VuIHRvIHN0b3JlIHlvdXIgcHJvamVjdCBzdGF0ZSBvbiBQdWx1bWnigJlzIGJhY2tlbmQgY2xvdWQuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vYXBwLnB1bHVtaS5jb20vJnF1b3Q7Jmd0O2FwcC5wdWx1bWkuY29tLyZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1NlbGVjdCBhbiBPcmdhbml6YXRpb24mbHQ7L3N0cm9uZyZndDsgb24gdGhlIHVwcGVyIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSBhbmQgc2VsZWN0IHlvdXIgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O0FjY2VzcyBUb2tlbnMmbHQ7L3N0cm9uZyZndDsgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7TmV3IEFjY2VzcyBUb2tlbiZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7Q3JlYXRlJmx0Oy9zdHJvbmcmZ3Q7IGFuZCBzYXZlIHRoZSBuZXcgQVBJIHRva2VuIHRoYXQgd2FzIGNyZWF0ZWQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemUgeW91ciBQdWx1bWkgcHJvamVjdCBsYXRlciZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7aDImZ3Q7RG9ja2VyIHB1bGwgSWFDMTAxIERvY2tlciBpbWFnZSZsdDsvaDImZ3Q7CgombHQ7cCZndDtBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlZCBhbmQgeW914oCZcmUgcmVhZHkgdG8gcHVsbCB0aGUgZG9ja2VyIGltYWdlIGZvciB0aGlzIHdvcmtzaG9wLiBJbiB0ZXJtaW5hbCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBwdWxsIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm93IGhhdmUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2FyaXYzcmEvaWFjMTAxJmx0Oy9jb2RlJmd0OyBkb2NrZXIgaW1hZ2UgbG9jYWxseS4gWW91IGNhbiB2ZXJpZnkgYnV5IHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgYW5kIHlvdSBzaG91bGQgc2VlIHRoZSBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0RvY2tlciBydW4gSWFDMTAxIGNvbnRhaW5lciZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgd2XigJlsbCBjcmVhdGUgYSBuZXcgRG9ja2VyIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YXJpdjNyYS9pYWMxMDEmbHQ7L2NvZGUmZ3Q7IGltYWdlIHdoaWNoIGhhcyBhbGwgdGhlIElhQyB0b29scyBhbmQgY29kZSBwcmUtYmFrZWQuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O01vdW50aW5nIHRoZSAvLmNvbmZpZy9nY2xvdWQvIGRpcmVjdG9yeSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtCZWZvcmUgcnVubmluZyB0aGUgbmV3IGNvbnRhaW5lciB5b3UgbmVlZCB0aGUgYWJzb2x1dGUgcGF0aCB0byB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkuIE9uIG15IE1hY09TIG1hY2hpbmUsIG15IGFic29sdXRlIHBhdGggaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7L1VzZXJzL2FuZ2VsLy5jb25maWcvZ2Nsb3VkLyZsdDsvY29kZSZndDsuIEJlIHN1cmUgdG8gZ2V0IHlvdXIgYWJzb2x1dGUgZmlsZSBwYXRoIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2Nsb3VkJmx0Oy9jb2RlJmd0OyBkaXJlY3Rvcnkgb24geW91ciBsb2NhbCBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtSdW4gSWFDMTAxIGNvbnRhaW5lciB3aXRoIG1vdW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtSdW4gdGhpcyBjb21tYW5kIGluIGEgdGVybWluYWwgcnVuIGJ1dCBiZSBzdXJlIHRvIHJlcGxhY2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0OyZsdDsvY29kZSZndDsgYml0IHdpdGggeW91ciBhY3R1YWwgYWJzb2x1dGUgcGF0aCB0byB5b3VyIGxvY2FsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dsb2N1ZC8mbHQ7L2NvZGUmZ3Q7ZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtaXQgLS1uYW1lIGlhY3Rlc3QgLS1tb3VudCB0eXBlPWJpbmQsc291cmNlPSZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0Oy5jb25maWcvZ2Nsb3VkLyx0YXJnZXQ9L3Jvb3QvLmNvbmZpZy9nY2xvdWQvIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJYUMxMDEgY29udGFpbmVyIGlzIHJ1bm5pbmcmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGUgcHJldmlvdXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgeW91ciBJYUMxMDEgY29udGFpbmVyIHdpbGwgYmUgdXAgYW5kIHJ1bm5pbmcgYW5kIHlvdXIgdGVybWluYWwgc2hlbGwgaGFzIGRyb3BwZWQgeW91IGludG8gdGhlIHJ1bm5pbmcgY29udGFpbmVyLiBFdmVyeSBjb21tYW5kIHlvdSBydW4gaW4geW91ciB0ZXJtaW5hbCBzaGVsbCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBEb2NrZXIgY29udGFpbmVyIGZyb20gbm93IG9uIHVudGlsIHlvdSBtYW51YWxseSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtleGl0Jmx0Oy9jb2RlJmd0OyB0aGUgY29udGFpbmVyLiBUaGUgY29udGFpbmVyIGhhcyB0aGUgVGVycmFmb3JtIGFuZCBQdWx1bWkgQ0xJIHRvb2xzIGluc3RhbGxlZCwgYXMgd2VsbCBhcyBleGFtcGxlIGNvZGUgZm9yIGVhY2ggdGhhdCBjcmVhdGVzIGluZnJhc3RydWN0dXJlIGluIHRoZWlyIHJlc3BlY3RpdmUgdG9vbHMuIFRoZSBjb250YWluZXIgcHJvamVjdHMgZmlsZXMgYXJlIG1hcHBlZCBhcyBmb2xsb3dzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHJvamVjdHMvCnxfIHRlcnJhZm9ybS9nY3AvY29tcHV0ZS8gICAjIENvbnRhaW5zIHRoZSBUZXJyYWZvcm0gY29kZSBmaWxlcwp8XyBwdWx1bWkvZ2NwL2NvbXB1dGUvICAgICAgIyBDb250YWlucyB0aGUgUHVsdW1pIGNvZGUgZmlsZXMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gyJmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2EmZ3Q7IGlzIGEgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgYnVpbGRpbmcsIGNoYW5naW5nLCBhbmQgdmVyc2lvbmluZyBpbmZyYXN0cnVjdHVyZSBzYWZlbHkgYW5kIGVmZmljaWVudGx5LiBUZXJyYWZvcm0gY2FuIG1hbmFnZSBleGlzdGluZyBzZXJ2aWNlIHByb3ZpZGVycyBhcyB3ZWxsIGFzIGN1c3RvbSBpbi1ob3VzZSBzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q29uZmlndXJhdGlvbiBmaWxlcyBkZXNjcmliZSB0aGUgY29tcG9uZW50cyBuZWVkZWQgdG8gcnVuIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yIHlvdXIgZW50aXJlIGRhdGFjZW50ZXIgb24gVGVycmFmb3JtLiBUZXJyYWZvcm0gZ2VuZXJhdGVzIGFuIGV4ZWN1dGlvbiBwbGFuIGRlc2NyaWJpbmcgd2hhdCBpdCB3aWxsIGRvIHRvIHJlYWNoIHRoZSBkZXNpcmVkIHN0YXRlLCBhbmQgdGhlbiBleGVjdXRlcyBpdCB0byBidWlsZCB0aGUgZGVzY3JpYmVkIGluZnJhc3RydWN0dXJlLiBBcyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBUZXJyYWZvcm0gaXMgYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBjaGFuZ2VkIGFuZCBjcmVhdGUgaW5jcmVtZW50YWwgZXhlY3V0aW9uIHBsYW5zIHdoaWNoIGNhbiBiZSBhcHBsaWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZSBpbmZyYXN0cnVjdHVyZSBUZXJyYWZvcm0gY2FuIG1hbmFnZSBpbmNsdWRlcyBsb3ctbGV2ZWwgY29tcG9uZW50cyBzdWNoIGFzIGNvbXB1dGUgaW5zdGFuY2VzLCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZywgYXMgd2VsbCBhcyBoaWdoLWxldmVsIGNvbXBvbmVudHMgc3VjaCBhcyBETlMgZW50cmllcywgU2FhUyBmZWF0dXJlcywgZXRjLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBUZXJyYWZvcm0mbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCB3aXRoIHByb3Zpc2lvbmluZyBzb21lIHJlc291cmNlcyBpbiBHQ1AgdXNpbmcgVGVycmFmb3JtIGNvZGUuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDttYWluLnRmICZsdDsvY29kZSZndDsgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBjb2RlIHRoYXQgaGFzIG91ciBpbmZyYXN0cnVjdHVyZSBkZWZpbmVkLiBJbiB0aGlzIGZpbGUgd2XigJlyZSBjcmVhdGluZyBhIG5ldyBjb21wdXRlIGluc3RhbmNlIHRoYXQgd2lsbCBpbnN0YWxsIGFuZCBydW4gYSBQeXRob24gRmxhc2sgYXBwIHBhY2thZ2VkIGluIGEgRG9ja2VyIGNvbnRhaW5lci4gVGhlIFRlcnJhZm9ybSBjb2RlIHdpbGwgYWxzbyBjcmVhdGUgc29tZSBmaXJld2FsbCBydWxlcyB0aGF0IHdpbGwgYWxsb3cgcHVibGljIGFjY2VzcyB0byB0aGUgYXBwIG92ZXIgcG9ydCA1MDAwLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHByb3Zpc2lvbiB0aGlzLCBydW4gdGhpcyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NkIH4vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJbml0aWFsaXppbmcgVGVycmFmb3JtJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1doaWxlIGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBydW4gdGhpcyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7dGVycmZvcm0gaW5pdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSByZXN1bHRzIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cm9vdEBkOWNlNzIxMjkzZTI6fi9wcm9qZWN0L3RlcnJhZm9ybS9nY3AvY29tcHV0ZSMgdGVycmFmb3JtIGluaXQKCkluaXRpYWxpemluZyB0aGUgYmFja2VuZC4uLgoKSW5pdGlhbGl6aW5nIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBDaGVja2luZyBmb3IgYXZhaWxhYmxlIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBEb3dubG9hZGluZyBwbHVnaW4gZm9yIHByb3ZpZGVyICZxdW90O2dvb2dsZSZxdW90OyAoaGFzaGljb3JwL2dvb2dsZSkgMy4xMC4wLi4uCgoqIHByb3ZpZGVyLmdvb2dsZTogdmVyc2lvbiA9ICZxdW90O34mYW1wO2d0OyAzLjEwJnF1b3Q7CgpUZXJyYWZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7aDMmZ3Q7UHJldmlld2luZyB3aXRoIFRlcnJhZm9ybSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUZXJyYWZvcm0gaGFzIGEgY29tbWFuZCB0aGF0IGFsbG93cyB5b3UgdG8gZHJ5IHJ1biBhbmQgdmFsaWRhdGUgeW91ciBUZXJyYWZvcm0gY29kZSB3aXRob3V0IGFjdHVhbGx5IGV4ZWN1dGluZyBhbnl0aGluZy4gVGhlIGNvbW1hbmQgaXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybSBwbGFuJmx0Oy9jb2RlJmd0OyB3aGljaCBhbHNvIGdyYXBocyBhbGwgdGhlIGFjdGlvbnMgYW5kIGNoYW5nZXMgdGhhdCBUZXJyYWZvcm0gd2lsbCBleGVjdXRlIGFnYWluc3QgeW91ciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS4gSW4gdGhlIHRlcm1pbmFsIHJ1bjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3RlcnJhZm9ybSBwbGFuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSByZXN1bHRzIHNpbWlsYXIgdG8gdGhpcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0FuIGV4ZWN1dGlvbiBwbGFuIGhhcyBiZWVuIGdlbmVyYXRlZCBhbmQgaXMgc2hvd24gYmVsb3cuClJlc291cmNlIGFjdGlvbnMgYXJlIGluZGljYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKICArIGNyZWF0ZQoKVGVycmFmb3JtIHdpbGwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGFjdGlvbnM6CgogICMgZ29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwuaHR0cC01MDAwIHdpbGwgYmUgY3JlYXRlZAogICsgcmVzb3VyY2UgJnF1b3Q7Z29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwmcXVvdDsgJnF1b3Q7aHR0cC01MDAwJnF1b3Q7IHsKICAgICAgKyBjcmVhdGlvbl90aW1lc3RhbXAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVzdGluYXRpb25fcmFuZ2VzID0gKGtub3duIGFmdGVyIGFwcGx5KQogIH0KCiAgICAjIGdvb2dsZV9jb21wdXRlX2luc3RhbmNlLmRlZmF1bHQgd2lsbCBiZSBjcmVhdGVkCiAgKyByZXNvdXJjZSAmcXVvdDtnb29nbGVfY29tcHV0ZV9pbnN0YW5jZSZxdW90OyAmcXVvdDtkZWZhdWx0JnF1b3Q7IHsKICAgICAgKyBjYW5faXBfZm9yd2FyZCAgICAgICA9IGZhbHNlCiAgICAgICsgY3B1X3BsYXRmb3JtICAgICAgICAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVsZXRpb25fcHJvdGVjdGlvbiAgPSBmYWxzZQogICAgICArIGd1ZXN0X2FjY2VsZXJhdG9yICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGlkICAgICAgICAgICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGluc3RhbmNlX2lkICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVsX2ZpbmdlcnByaW50ICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVscyAgICAgICAgICAgICAgID0gewogICAgICAgICAgKyAmcXVvdDtjb250YWluZXItdm0mcXVvdDsgPSAmcXVvdDtjb3Mtc3RhYmxlLTY5LTEwODk1LTYyLTAmcXVvdDsKICAgICAgICB9CiAgICAgICsgbWFjaGluZV90eXBlICAgICAgICAgPSAmcXVvdDtnMS1zbWFsbCZxdW90OwogIH0KICBQbGFuOiAyIHRvIGFkZCwgMCB0byBjaGFuZ2UsIDAgdG8gZGVzdHJveS4KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgeW91IGNhbiBzZWUsIFRlcnJhZm9ybSBpcyBnb2luZyB0byBjcmVhdGUgbmV3IEdDUCByZXNvdXJjZXMgZm9yIHlvdSBiYXNlZCBvbiB0aGUgY29kZSBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bWFpbi50ZiZsdDsvY29kZSZndDsgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGFwcGx5Jmx0Oy9oMyZndDsKCiZsdDtwJmd0O05vdyB5b3XigJlyZSByZWFkeSB0byBjcmVhdGUgdGhlIG5ldyBpbmZyYXN0cnVjdHVyZSBhbmQgZGVwbG95IHRoZSBhcHBsaWNhdGlvbi4gUnVuIHRoaXMgY29tbWFuZCBpbiB0aGUgdGVybWluYWw6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt0ZXJyYWZvcm0gYXBwbHkKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGVycmFmb3JtIHdpbGwgcHJvbXB0IHlvdSB0byBjb25maXJtIHlvdXIgY29tbWFuZC4gVHlwZSB5ZXMgYW5kIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0RvIHlvdSB3YW50IHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucz8KICBUZXJyYWZvcm0gd2lsbCBwZXJmb3JtIHRoZSBhY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KICBPbmx5ICd5ZXMnIHdpbGwgYmUgYWNjZXB0ZWQgdG8gYXBwcm92ZS4KCiAgRW50ZXIgYSB2YWx1ZTogeWVzCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RlcnJhZm9ybSB3aWxsIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgYW5kIHlvdSB3aWxsIGhhdmUgYW4gYXBwbGljYXRpb24gdXAgYW5kIHJ1bm5pbmcgb24gR0NQIHNob3J0bHkgYWZ0ZXIgaXQgY29tcGxldGVzLiBQbGVhc2Ugbm90ZSB0aGF0IGl0IHdpbGwgdGFrZSAzLTUgbWludXRlcyBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbWUgb25saW5lIGFmdGVyIFRlcnJhZm9ybSBjb21wbGV0ZXMuIEl04oCZcyBub3QgYW4gaW5zdGFudCBwcm9jZXNzIGJlY2F1c2UgdGhlIGJhY2tlbmQgc3lzdGVtcyBhcmUgcHJvdmlzaW9uaW5nIGFuZCBicmluZ2luZyB0aGluZ3Mgb25saW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgZG9uZSwgeW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7bGFuZ3VhZ2Utc2hlbGwgaGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7T3V0cHV0czoKClB1YmxpY19JUF9BZGRyZXNzICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgMzQuNzQuNzUuMTcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1B1YmxpY19JUF9BZGRyZXNzJmx0Oy9jb2RlJmd0OyB2YWx1ZSBpcyB0aGUgSVAgQWRkcmVzcyB0aGF0IHlvdXIgYXBwIGlzIHJ1bm5pbmcgb24sIHNvIGlmIHlvdSBnbyB0byBhIGJyb3dzZXIgYW5kIHBsdWcgdGhhdCBudW1iZXIgaW4gcGx1cyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7OjUwMDAmbHQ7L2NvZGUmZ3Q7IHBvcnQgYWRkcmVzcyAoaXQgd291bGQgbG9vayBsaWtlIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7MzQuNzQuNzUuMTc6NTAwMCZsdDsvY29kZSZndDspIHlvdSB3aWxsIHNlZSB5b3VyIGFwcCBydW5uaW5nIGluIEdDUC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Tm93IHRoYXQgeW91IGhhdmUgcHJvb2YgdGhhdCB5b3VyIEdvb2dsZSBDb21wdXRlIGluc3RhbmNlIGFuZCB5b3VyIGFwcGxpY2F0aW9uIHdvcmssIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gZGVzdHJveSB0aGUgYXNzZXRzIHRoYXQgeW91IGNyZWF0ZWQgaW4gdGhpcyB0dXRvcmlhbC4gWW91IGNhbiBsZWF2ZSBpdCB1cCBhbmQgcnVubmluZywgYnV0IGJlIGF3YXJlIHRoYXQgdGhlcmUgaXMgYSBjb3N0IGFzc29jaWF0ZWQgd2l0aCBhbnkgYXNzZXRzIHJ1bm5pbmcgb24gdGhlIEdvb2dsZSBDbG91ZCBQbGF0Zm9ybSBhbmQgeW91IHdpbGwgYmUgbGlhYmxlIGZvciB0aG9zZSBjb3N0cy4gR29vZ2xlIGdpdmVzIGEgZ2VuZXJvdXMgJDMwMCBjcmVkaXQgZm9yIGl0cyBmcmVlIHRyaWFsIHNpZ24tdXAsIGJ1dCB5b3UgY291bGQgZWFzaWx5IGVhdCB0aHJvdWdoIHRoYXQgaWYgeW91IGxlYXZlIGFzc2V0cyBydW5uaW5nLiBJdOKAmXMgdXAgdG8geW91LCBidXQgcnVubmluZyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0ZXJyYWZvcm0gZGVzdHJveSZsdDsvY29kZSZndDsgd2lsbCB0ZXJtaW5hdGUgYW55IHJ1bm5pbmcgYXNzZXRzLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIEnigJlsbCBkZW1vbnN0cmF0ZSBob3cgdG8gcGVyZm9ybSBpbmZyYXN0cnVjdHVyZSBwcm92aXNpb25pbmcgdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtQdWx1bWkgU0RLJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9wcm9kdWN0LyNzZGsmcXVvdDsmZ3Q7UHVsdW1pIFNESyZsdDsvYSZndDsgaXMgYW4gb3BlbiBzb3VyY2UgZnJhbWV3b3JrIGZvciBkZWZpbmluZyBhbmQgZGVwbG95aW5nIGNsb3VkIGFwcHMgYW5kIElhQy4gUHVsdW1pIGVuYWJsZXMgZGV2ZWxvcGVycyB0byB3cml0ZSBjb2RlIGluIHRoZWlyIGZhdm9yaXRlIGxhbmd1YWdlIHN1Y2ggYXMgVHlwZVNjcmlwdCwgSmF2YVNjcmlwdCwgUHl0aG9uLCBhbmQgR28uIFRoaXMgZW5hYmxlcyBtb2Rlcm4gYXBwcm9hY2hlcyB0byBjbG91ZCBhcHBsaWNhdGlvbnMgYW5kIGluZnJhc3RydWN0dXJlIHdpdGhvdXQgbmVlZGluZyB0byBsZWFybiBhbm90aGVyIFlBTUwgb3IgRFNMIGRpYWxlY3QuIFRoaXMgdW5sb2NrcyBhYnN0cmFjdGlvbnMgYW5kIHJldXNlLCBhcyB3ZWxsIGFzIGFjY2VzcyB0byB5b3VyIGZhdm9yaXRlIElERXMsIHJlZmFjdG9yaW5nLCBhbmQgdGVzdGluZyB0b29scy4gTWFzdGVyIG9uZSB0b29sY2hhaW4gYW5kIHNldCBvZiBmcmFtZXdvcmtzIGFuZCBnbyB0byBhbnkgY2xvdWQgKEFXUywgQXp1cmUsIEdDUCwgb3IgS3ViZXJuZXRlcykgd2l0aCBlYXNlLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBQdWx1bWkmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUgZXhwZXJpZW5jZWQgYnVpbGRpbmcgaW5mcmFzdHJ1Y3R1cmUgdXNpbmcgVGVycmFmb3JtLCBub3cgeW914oCZbGwgbGVhcm4gaG93IHRvIHByb3Zpc2lvbiBhbmQgZGVwbG95IG5ldyBpbmZyYXN0cnVjdHVyZSB1c2luZyBQdWx1bWkuIFRoZSBQdWx1bWkgZXhhbXBsZSB3aWxsIGNyZWF0ZSB0aGUgc2FtZSBHQ1AgcmVzb3VyY2VzIHByZXZpb3VzbHkgdXNpbmcgUHVsdW1pIGNvZGUgYW5kIHRvb2xzLiBQdWx1bWkgZW5hYmxlcyB5b3UgdG8gZGVmaW5lIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgaW4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHdoaWNoIHByb3ZpZGVzIGxvdHMgb2YgZmxleGliaWxpdHkuIEluIHRoaXMgZXhhbXBsZSwgd2XigJlyZSB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vd3d3LnB5dGhvbi5vcmcvJnF1b3Q7Jmd0O1B5dGhvbiZsdDsvYSZndDsgYXMgb3VyIGxhbmd1YWdlLiBUaGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7X19tYWluLnB5X18mbHQ7L2NvZGUmZ3Q7IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC9wdWx1bWkvZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgaXMgd2hlcmUgd2VyZSBnb2luZyB0byBkZWZpbmUgb3VyIGluZnJhc3RydWN0dXJlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlIHN1cmUgdG8gaGF2ZSB5b3VyIFB1bHVtaSBBUEkgdG9rZW4gYXZhaWxhYmxlLiBZb3XigJlsbCBuZWVkIGl0IGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIFB1bHVtaSBleGFtcGxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7fi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGRpcmVjdG9yeS4gUnVuIHRoaXMgY29tbWFuZCB0byBjaGFuZ2UgaW50byB0aGUgUHVsdW1pIGV4YW1wbGUgZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2Qgfi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gzJmd0O0luc3RhbGxpbmcgZGVwZW5kaWVuY2llcyBmb3IgUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1NpbmNlIHdl4oCZcmUgZGVmaW5pbmcgb3VyIElhQyBzcGVjcyB1c2luZyBQeXRob24gd2XigJlsbCBuZWVkIHRvIGZpcnN0IGluc3RhbGwgdGhlIFB1bHVtaSBQeXRob24gU0RLIGRlcGVuZGVuY2llcy4gSW4gdGhlIHRlcm1pbmFsIHJ1biB0aGlzIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtwaXAgaW5zdGFsbCAtciAuLi9yZXF1aXJlbWVudHMudHh0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtQcmV2aWV3aW5nIHdpdGggUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1B1bHVtaSBoYXMgYSBkcnktcnVuIGNvbW1hbmQgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBwcmV2aWV3Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRpc3BsYXlzIGEgcHJldmlldyBvZiB0aGUgdXBkYXRlcyB0byBhbiBleGlzdGluZyBzdGFjayB3aG9zZSBzdGF0ZSBpcyByZXByZXNlbnRlZCBieSBhbiBleGlzdGluZyBzdGF0ZSBmaWxlLiBUaGUgbmV3IGRlc2lyZWQgc3RhdGUgaXMgY29tcHV0ZWQgYnkgcnVubmluZyBhIFB1bHVtaSBwcm9ncmFtLCBhbmQgZXh0cmFjdGluZyBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbnMgZnJvbSBpdHMgcmVzdWx0aW5nIG9iamVjdCBncmFwaC4gVGhlc2UgYWxsb2NhdGlvbnMgYXJlIHRoZW4gY29tcGFyZWQgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc3RhdGUgdG8gZGV0ZXJtaW5lIHdoYXQgb3BlcmF0aW9ucyBtdXN0IHRha2UgcGxhY2UgdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZCBzdGF0ZS4gTm8gY2hhbmdlcyB0byB0aGUgc3RhY2sgd2lsbCBhY3R1YWxseSB0YWtlIHBsYWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGlzIGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHByZXZpZXcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHJlc3VsdHMgcHJvbXB0aW5nIHlvdSBmb3IgdGhlIFB1bHVtaSBBUEkgdG9rZW4geW91IGNyZWF0ZWQgZWFybGllci4gUGFzdGUgdGhlIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLiBBZnRlciB5b3UgcGFzdGUgdGhlIHRva2VuIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O01hbmFnZSB5b3VyIFB1bHVtaSBzdGFja3MgYnkgbG9nZ2luZyBpbi4KUnVuIGBwdWx1bWkgbG9naW4gLS1oZWxwYCBmb3IgYWx0ZXJuYXRpdmUgbG9naW4gb3B0aW9ucy4KRW50ZXIgeW91ciBhY2Nlc3MgdG9rZW4gZnJvbSBodHRwczovL2FwcC5wdWx1bWkuY29tL2FjY291bnQvdG9rZW5zCiAgICBvciBoaXQgJmFtcDtsdDtFTlRFUiZhbXA7Z3Q7IHRvIGxvZyBpbiB1c2luZyB5b3VyIGJyb3dzZXIgICAgICAgICAgICAgICAgICAgOgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1doZW4gcGFzdGluZyB0aGUgQVBJIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLCBubyB2YWx1ZXMgd2lsbCBiZSBkaXNwbGF5ZWQuIEl0IHdpbGwgcmVtYWluIGludmlzaWJsZSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuJmx0Oy9pJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBtYXkgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGEgc3RhY2sgaW4gdGhlIHRlcm1pbmFsLiBJZiBzbywgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkZXYmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB0aGVuIGhpdCBlbnRlci4gWW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UHJldmlld2luZyB1cGRhdGUgKGRldik6CiAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICAgICBQbGFuCiArICAgcHVsdW1pOnB1bHVtaTpTdGFjayAgICAgIGNvbXB1dGUtZGV2ICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6TmV0d29yayAgIG5ldHdvcmsgICAgICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6SW5zdGFuY2UgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJTilIAgZ2NwOmNvbXB1dGU6RmlyZXdhbGwgIGZpcmV3YWxsICAgICAgICAgICAgICAgICAgICBjcmVhdGUKClJlc291cmNlczoKICAgICsgNSB0byBjcmVhdGUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUganVzdCBlbmFibGVkIGFjY2VzcyB0byB0aGUgUHVsdW1pIGJhY2tlbmQgY2xvdWQgd2hpY2gga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXRlIG9mIHlvdXIgaW5mcmFzdHJ1Y3R1cmVzLiBOb3cgeW914oCZcmUgcmVhZHkgdG8gcnVuIHNvbWUgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7UHVsdW1pIHVwJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1RvIGV4ZWN1dGUgdGhlIFB1bHVtaSBjb2RlLCB1c2UgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIHVwJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGNyZWF0ZXMgb3IgdXBkYXRlcyByZXNvdXJjZXMgaW4gYSBzdGFjay4gVGhlIG5ldyBkZXNpcmVkIGdvYWwgc3RhdGUgZm9yIHRoZSB0YXJnZXQgc3RhY2sgaXMgY29tcHV0ZWQgYnkgcnVubmluZyB0aGUgY3VycmVudCBQdWx1bWkgcHJvZ3JhbSBhbmQgb2JzZXJ2aW5nIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9ucyB0byBwcm9kdWNlIGEgcmVzb3VyY2UgZ3JhcGguIFRoaXMgZ29hbCBzdGF0ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIGV4aXN0aW5nIHN0YXRlIHRvIGRldGVybWluZSB3aGF0IGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQvb3IgZGVsZXRlIG9wZXJhdGlvbnMgbXVzdCB0YWtlIHBsYWNlIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgZ29hbCBzdGF0ZSBpbiB0aGUgbW9zdCBtaW5pbWFsbHkgZGlzcnVwdGl2ZSB3YXkuIEFmdGVyd2FyZCwgdGhpcyBjb21tYW5kIHJlY29yZHMgYSBmdWxsIHRyYW5zYWN0aW9uYWwgc25hcHNob3Qgb2YgdGhlIHN0YWNr4oCZcyBuZXcgc3RhdGUgc28gdGhhdCB0aGUgc3RhY2sgbWF5IGJlIHVwZGF0ZWQgaW5jcmVtZW50YWxseSBhZ2FpbiBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgdGVybWluYWwgcnVuOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHVwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1NlbGVjdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7eWVzJmx0Oy9jb2RlJmd0OyBvcHRpb24gYW5kIGhpdCBlbnRlci4gVGhlIFB1bHVtaSBhcHAgd2lsbCBleGVjdXRlLCBhbmQgc2hvcnRseSBhZnRlciB5b3XigJlsbCBoYXZlIGEgY29tcGxldGUgc2VydmVyIHJ1bm5pbmcgYW4gYXBwbGljYXRpb24gb24gR0NQLiBZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtVcGRhdGluZyAoZGV2KToKICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cwogKyAgIHB1bHVtaTpwdWx1bWk6U3RhY2sgICAgICBjb21wdXRlLWRldiAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUnOKUgCBnY3A6Y29tcHV0ZTpOZXR3b3JrICAgbmV0d29yayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGVkCiArICAg4pSc4pSAIGdjcDpjb21wdXRlOkZpcmV3YWxsICBmaXJld2FsbCAgICAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUlOKUgCBnY3A6Y29tcHV0ZTpJbnN0YW5jZSAgd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDEgIGNyZWF0ZWQKCk91dHB1dHM6CiAgICBleHRlcm5hbF9pcCAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICBpbnN0YW5jZV9tZXRhX2RhdGE6IHsKICAgICAgICBnY2UtY29udGFpbmVyLWRlY2xhcmF0aW9uOiAmcXVvdDtzcGVjOlxuICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDFcbiAgICAgIGltYWdlOiBhcml2M3JhL3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxOmxhdGVzdFxuICAgICAgc3RkaW46IGZhbHNlXG4gICAgICB0dHk6IGZhbHNlXG4gIHJlc3RhcnRQb2xpY3k6IEFsd2F5c1xuJnF1b3Q7CiAgICB9CiAgICBpbnN0YW5jZV9uYW1lICAgICA6ICZxdW90O3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxJnF1b3Q7CiAgICBpbnN0YW5jZV9uZXR3b3JrICA6IFsKICAgICAgICBbMF06IHsKICAgICAgICAgICAgYWNjZXNzQ29uZmlncyAgICA6IFsKICAgICAgICAgICAgICAgIFswXTogewogICAgICAgICAgICAgICAgICAgIG5hdElwICAgICAgICAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICAgICAgICAgICAgICAgICAgbmV0d29ya190aWVyICAgICAgIDogJnF1b3Q7UFJFTUlVTSZxdW90OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgOiAmcXVvdDtuaWMwJnF1b3Q7CiAgICAgICAgfQogICAgXQoKUmVzb3VyY2VzOgogICAgKyA1IGNyZWF0ZWQKCkR1cmF0aW9uOiA1OHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlc2UgcmVzdWx0cywgeW914oCZbGwgc2VlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXh0ZXJuYWxfaXAmbHQ7L2NvZGUmZ3Q7IGtleS4gSXTigJlzIHZhbHVlIGlzIHRoZSBJUCBBZGRyZXNzIHRvIHRoZSBwdWJsaWMgZmFjaW5nIGFwcGxpY2F0aW9uIGV4cG9zZWQgb24gcG9ydCA1MDAwLiBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIFRlcnJhZm9ybSBleGFtcGxlLCB5b3UgY2FuIGFjY2VzcyB0aGUgYXBwbGljYXRpb24gaW4gYSBicm93c2VyLiBSZW1lbWJlciB0byBhbGxvdyBmb3IgYSBmZXcgbWludXRlcyBzbyB0aGUgYmFja2VuZCBzeXN0ZW0gY2FuIGJyaW5nIGV2ZXJ5dGhpbmcgb25saW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQdWx1bWkgZGVzdHJveSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtQdWx1bWkgaGFzIGEgY29tbWFuZCB0byB0ZXJtaW5hdGUgYWxsIG9mIHRoZSBjbG91ZCByZXNvdXJjZXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBkZXN0cm95Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRlbGV0ZXMgYW4gZW50aXJlIGV4aXN0aW5nIHN0YWNrIGJ5IG5hbWUuIFRoZSBjdXJyZW50IHN0YXRlIGlzIGxvYWRlZCBmcm9tIHRoZSBhc3NvY2lhdGVkIHN0YXRlIGZpbGUgaW4gdGhlIHdvcmtzcGFjZS4gQWZ0ZXIgcnVubmluZyB0byBjb21wbGV0aW9uLCBhbGwgb2YgdGhpcyBzdGFja+KAmXMgcmVzb3VyY2VzIGFuZCBhc3NvY2lhdGVkIHN0YXRlIHdpbGwgYmUgZ29uZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtSdW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGluIHRoZSB0ZXJtaW5hbCBhbmQgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5ZXMmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB3aGVuIHByb21wdGVkIHRvICZsdDtzdHJvbmcmZ3Q7cGVybWFuZW50bHkmbHQ7L3N0cm9uZyZndDsgZGVzdHJveSB0aGUgR0NQIHJlc291cmNlcyBjcmVhdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O0NvbmdyYXR1bGF0aW9ucyEgWW914oCZdmUganVzdCBsZXZlbGVkIHVwIGFuZCBub3cgaGF2ZSBleHBlcmllbmNlIHByb3Zpc2lvbmluZyBhbmQgZGVwbG95aW5nIGFwcGxpY2F0aW9ucyB0byBHQ1AgdXNpbmcgdGhlIG1vZGVybiBJYUMgdG9vbHMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O1RlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4gVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2lsbCBoZWxwIHlvdSBleHBhbmQgeW91ciBrbm93bGVkZ2UgZnJvbSBoZXJlOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9jbGktaW5kZXguaHRtbCZxdW90OyZndDtUZXJyYWZvcm0gR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9kb2NzL2dldC1zdGFydGVkLyZxdW90OyZndDtQdWx1bWkgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS9vcmIvcHVsdW1pL3B1bHVtaSZxdW90OyZndDtQdWx1bWkgb3JiIGZvciBDaXJjbGVDSSZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyZxdW90OyZndDtEb2NrZXIgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm0vY29tbXVuaXR5L2Jsb2IvbWFzdGVyL3R1dG9yaWFscy9nZXR0aW5nLXN0YXJ0ZWQtb24tZ2NwLXdpdGgtdGVycmFmb3JtL2luZGV4Lm1kI2dldHRpbmctcHJvamVjdC1jcmVkZW50aWFscyZxdW90OyZndDtHb29nbGUgQ2xvdWQgUGxhdGZvcm0mbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogICAgICAKICAgICAgPGl0ZW0+CiAgICAgICAgPHRpdGxlPkEgbG9vayBhdCBDaXJjbGVDSeKAmXMgaW5kdXN0cnktbGVhZGluZyBzdXBwb3J0IGZvciB0cmFuc2l0aW9uLXJlbGF0ZWQgbWVkaWNhbCBsZWF2ZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hLWxvb2stYXQtY2lyY2xlY2ktcy1pbmR1c3RyeS1sZWFkaW5nLXN1cHBvcnQtZm9yLXRyYW5zaXRpb24tcmVsYXRlZC1tZWRpY2FsLWxlYXZlLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5XZWQsIDEzIE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2EtbG9vay1hdC1jaXJjbGVjaS1zLWluZHVzdHJ5LWxlYWRpbmctc3VwcG9ydC1mb3ItdHJhbnNpdGlvbi1yZWxhdGVkLW1lZGljYWwtbGVhdmUvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RWxpemFiZXRoIEJlbGw8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7T25lIG9mIHRoZSBncmVhdCB0aGluZ3MgYWJvdXQgd29ya2luZyBhdCBDaXJjbGVDSSBpcyB0aGF0IHRoZSBjb21wYW55IGJlbGlldmVzIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGJlIGFibGUgdG8gYmUgdGhlaXIgd2hvbGUgc2VsZiBhdCB3b3JrLiBJbmNsdXNpdml0eSwgZGVtb25zdHJhdGluZyB0cnVzdCBhbmQgcmVzcGVjdCwgYW5kIG1ha2luZyBzdXJlIGV2ZXJ5b25lIGhhcyB0aGUgdG9vbHMgYW5kIHN1cHBvcnQgdGhleSBuZWVkIGFyZSBhbGwgYnVyaWVkIGRlZXAgaW4gdGhlIGN1bHR1cmUgaGVyZSDigJMgaXQgaXMgYSBiaWcgcGFydCBvZiBob3cgd2UgZGVsaXZlciB0aGUgYmVzdCB2YWx1ZSBmb3Igb3VyIGN1c3RvbWVycy4gV2l0aCB0aGF0IGluIG1pbmQsIHRoZSBjb21wYW55IHJlY2VudGx5IHJvbGxlZCBvdXQgYSBuZXcgaGVhbHRoY2FyZSBwb2xpY3kgZm9yIG91ciB0cmFuc2dlbmRlciBjby13b3JrZXJzLiBJbiBhIGZpcnN0IGZvciBjb21wYW5pZXMgaW4gdGhlIENJL0NEIHNwYWNlLCBDaXJjbGVDSSBub3cgb2ZmZXJzIGZ1bGx5LWNvbXBlbnNhdGVkIHBhaWQgbGVhdmUgZm9yIGVtcGxveWVlcyByZWNvdmVyaW5nIGZyb20gdHJhbnNpdGlvbi1yZWxhdGVkIG1lZGljYWwgcHJvY2VkdXJlcy4gVGhpcyBwb2xpY3kgaXMgYW4gZXh0cmVtZWx5IGltcG9ydGFudCBhZGRpdGlvbiB0byBDaXJjbGVDSeKAmXMgYmVuZWZpdHMgcGFja2FnZSBhbmQgYW5vdGhlciBleGFtcGxlIG9mIHRoZSBjb21wYW554oCZcyBkZWRpY2F0aW9uIHRvIHRoZSB3ZWxsLWJlaW5nIG9mIGFsbCBlbXBsb3llZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VHJhbnNpdGlvbiBpcyBhbiBpbW1lbnNlbHkgc3RyZXNzZnVsIHByb2Nlc3MsIGFuZCB0aGUgbWVkaWNhbCBwcm9jZWR1cmVzIHJlcXVpcmVkIHRvIHRyZWF0IHRoZSBkeXNwaG9yaWEgZXhwZXJpZW5jZWQgYnkgc29tZSB0cmFuc2dlbmRlciBwZW9wbGUgb2Z0ZW4gbmVlZCBhIHZlcnkgY2FyZWZ1bCBhcHByb2FjaCB0byByZWNvdmVyeS4mbHQ7L3AmZ3Q7CgombHQ7YmxvY2txdW90ZSZndDsKICAmbHQ7cCZndDtUaGUgZ29hbCBvZiB0aGUgcG9saWN5IGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRyYW5zZ2VuZGVyIGVtcGxveWVlcyBmZWVsIHN1cHBvcnRlZCBkdXJpbmcgdGhpcyBkaWZmaWN1bHQgdGltZSwgYW5kIGJ5IGVuc3VyaW5nIHRoYXQgdHJhbnNnZW5kZXIgZW1wbG95ZWVzIGhhdmUgYWNjZXNzIHRvIGFwcHJvcHJpYXRlbHkgY29tcGVuc2F0ZWQgbWVkaWNhbCBsZWF2ZSwgdGhlIGNvbXBhbnkgY2FuIHJlbW92ZSBtYWpvciBzb3VyY2VzIG9mIHVubmVjZXNzYXJ5IHN0cmVzcy4gVGhpcyB3YXksIHdlIGNhbiByZXR1cm4gdG8gd29yayBoYXBwaWVyLCBoZWFsdGhpZXIsIGFuZCBiZXR0ZXIgYWJsZSB0byBkbyBvdXIgYmVzdCBmb3Igb3VyIGN1c3RvbWVycyBhbmQgb3VyIGNvbGxlYWd1ZXMuJmx0Oy9wJmd0OwombHQ7L2Jsb2NrcXVvdGUmZ3Q7CgombHQ7aDImZ3Q7SG93IHRoaXMgcG9saWN5IGNhbWUgdG9nZXRoZXImbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgcHVzaCBmb3IgdGhlIGZvcm1hbGl6YXRpb24gb2YgdGhlc2UgYmVuZWZpdHMgZ3JldyBvdXQgb2YgdGhlIGVmZm9ydHMgb2YgbWFueSBpbmRpdmlkdWFscy4gVG9nZXRoZXIsIHRoZSB0cmFucyBlbXBsb3llZXMgYXQgQ2lyY2xlQ0kgZGlzY3Vzc2VkIHRoZSBpc3N1ZSBhbW9uZ3N0IG91cnNlbHZlcywgb3VyIG1hbmFnZXJzLCBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIHdobyBzdXBwb3J0ZWQgdXMgaW4gYnJpbmdpbmcgdGhlIHRvcGljIHRvIG91ciBleGVjdXRpdmUgdGVhbS4gQnkgYnVpbGRpbmcgY29uc2Vuc3VzLCBib3RoIHdpdGhpbiB0aGUgdHJhbnMgcG9wdWxhdGlvbiBhdCB0aGUgY29tcGFueSBhbmQgb3VyIGNpc2dlbmRlciBjb2xsZWFndWVzLCB3ZSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IGFkdm9jYXRlIGZvciBhIGZvcm1hbGl6YXRpb24gb2YsIGFuZCBhIGNvbW1pdG1lbnQgdG8sIHRoaXMgaW5kdXN0cnktbGVhZGluZyB0cmFucyBoZWFsdGhjYXJlIGJlbmVmaXQuIFF1ZWVyU3BoZXJlLCB0aGUgRW1wbG95ZWUgUmVzb3VyY2UgR3JvdXAgaGVyZSBhdCBDaXJjbGVDSSBmb3IgTEdCVFFJQSsgZW1wbG95ZWVzLCBoZWxwZWQgY29vcmRpbmF0ZSB0aGUgZWZmb3J0IHRvIGFkdm9jYXRlLCBhbmQgdGhlIHJlc3VsdCB3YXMgYSBwb2xpY3kgdGhhdCBoZWxwcyBlbnN1cmUgdHJhbnMgZW1wbG95ZWVzIGdldCB0aGUgc3VwcG9ydCB3ZSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uZSBvZiB0aGUgYmVzdCB0aGluZ3MgZm9yIG1lIGFib3V0IHdvcmtpbmcgYXQgQ2lyY2xlQ0kgaXMgaG93IGVtcG93ZXJlZCBJIGZlZWwgdG8gY2FsbCBhdHRlbnRpb24gdG8gaXNzdWVzIG9yIHByYWN0aWNlcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCBhbmQgYnJpbmcgcGVvcGxlIHRvZ2V0aGVyIHRvIHdvcmsgb24gdGhlbSwgdG8gdGhlIGJlbmVmaXQgb2YgYm90aCB0aGUgY29tcGFueSBhcyBhIHdob2xlIGFuZCB1bmRlcnJlcHJlc2VudGVkIG9yIG1hcmdpbmFsaXplZCBlbXBsb3llZXMuIFRyYW5zIHBlb3BsZSBmYWNlIHN5c3RlbWljIGJpYXM6IHRoZXJlIGFyZSBubyBmZWRlcmFsLWxldmVsIHByb3RlY3Rpb25zIGZyb20gZGlzY3JpbWluYXRpb24gb24gdGhlIGJhc2lzIG9mIGdlbmRlciBpZGVudGl0eSBpbiB0aGUgVW5pdGVkIFN0YXRlcywgYW5kIG9mIHRoZSB0cmFucyBwb3B1bGF0aW9uIHN1cnZleWVkIGJ5IHRoZSBOYXRpb25hbCBDZW50ZXIgZm9yIFRyYW5zZ2VuZGVyIEVxdWFsaXR5IGluIDIwMTUsIDgwJSBvZiB0aG9zZSB3aG8gd2VyZSBlbXBsb3llZCByZXBvcnRlZCBleHBlcmllbmNpbmcgaGFyYXNzbWVudCwgbWlzdHJlYXRtZW50LCBvciBoYWQgdG8gdGFrZSBzdGVwcyB0byBhdm9pZCB0aG9zZSBob3N0aWxlIHdvcmtwbGFjZSBiZWhhdmlvcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SSBrbm93IGZpcnN0aGFuZCBob3cgZGlmZmljdWx0IGJlaW5nIG91dCBhdCB3b3JrIGNhbiBiZS4gQXQgYSBwcmV2aW91cyBlbXBsb3llciBlYXJseSBpbiBteSB0cmFuc2l0aW9uLCBJIGZlbHQgYWxpZW5hdGVkIGFuZCBkaXNsaWtlZCBieSBjb2xsZWFndWVzIHdobyBoYWQgcHJldmlvdXNseSBiZWVuIGZyaWVuZGx5IGJlZm9yZSB0aGV5IGtuZXcgSSB3YXMgdHJhbnNnZW5kZXIuIEkgaGF2ZSBoYWQgdG8gbWluaW1pemUgdGhlIGZhY3QgdGhhdCBJ4oCZbSB0cmFucywgdG9sZXJhdGUgYWN0aXZlIGhvc3RpbGl0eSBmcm9tIGNvd29ya2Vycywgb3IgcHJldGVuZCB0aGF0IEkgd2FzIGNpc2dlbmRlciwgaW4gb3JkZXIgdG8gcHJvdGVjdCBteSBqb2IuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgQ2lyY2xlQ0ksIEkgaGF2ZSBmZWx0IHN1cHBvcnRlZCwgcmVzcGVjdGVkLCBhbmQgYWJsZSB0byBjb25maWRlbnRseSBiZSBteXNlbGYuIEkgZmVlbCBleGNlcHRpb25hbGx5IGZvcnR1bmF0ZSB0byBoYXZlIGEgd29uZGVyZnVsIGdyb3VwIG9mIHRyYW5zZ2VuZGVyIGNvbGxlYWd1ZXMgYW5kIGZyaWVuZHMgKHdlIG1ha2UgdXAgNyUgb2YgdGhlIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0ksIGFuZCAzJSBvZiB0aGUgb3JnIGluIHRvdGFsLCBjb21wYXJlZCB0byAwLjYlIG9mIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24pLCBhbmQgdG8gd29yayBzb21ld2hlcmUgd2hlcmUgb3VyIHZpZXdzIGFuZCBleHBlcmllbmNlcyBhcmUgdmFsdWVkIGF0IHRoZSBoaWdoZXN0IGxldmVscyBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0lmIHlvdSBsaWtlIHRoZSBzb3VuZCBvZiB3b3JraW5nIHNvbWV3aGVyZSB3aXRoIGEgcmVtb3RlLWZpcnN0IGN1bHR1cmUgYW5kIGNvbGxhYm9yYXRpbmcgb24gaW50ZXJlc3RpbmcgcHJvYmxlbXMgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIHRyYW5zIGZvbHggYW5kIGFsbGllcywgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9jYXJlZXJzLyZxdW90OyZndDtjaGVjayBvdXQgb3VyIG9wZW5pbmdzIGhlcmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIEdhdHNieSBhcHBzIHRvIEhlcm9rdTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtZ2F0c2J5LWFwcHMtdG8taGVyb2t1LzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDExIE1heSAyMDIwIDA5OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1nYXRzYnktYXBwcy10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9qYW1zdGFjay5vcmcvJnF1b3Q7Jmd0O0pBTVN0YWNrJmx0Oy9hJmd0OyBpcyBxdWlja2x5IGJlY29taW5nIGEgYmlnIGRlYWwgaW4gdGhlIHdvcmxkIG9mIHdlYiBkZXZlbG9wbWVudC4gSkFNU3RhY2ssIHdoaWNoIHN0YW5kcyBmb3IgSmF2YXNjcmlwdCwgQVBJcywgYW5kIEhUTUwgbWFya3VwLCBpcyBhIG1vZGVybiBhcmNoaXRlY3R1cmUgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMgYW5kIG9uZSBvZiBpdHMgbWFqb3IgZmVhdHVyZXMgaXMgdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBhIGRhdGFiYXNlIGFuZCBhIHdlYiBzZXJ2ZXIgaXMgb3B0aW9uYWwuIFRoZSBKQU1TdGFjayBhcmNoaXRlY3R1cmUgaXMgYWltZWQgYXQgZGVjb3VwbGluZyB0aGUgZnJvbnRlbmQgYW5kIHRoZSBiYWNrZW5kIGJ5IGdlbmVyYXRpbmcgYSBmcm9udGVuZCBtYWRlIG9mIEhUTUwsIENTUywgYW5kIEphdmFzY3JpcHQgYW5kIGEgYmFja2VuZCB0aGF0IGlzIHNpbXBseSBhIGNvbnRlbnQgQVBJIHJldHVybmluZyBKU09OIG9yIFhNTC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmUgb2YgdGhlIGxlYWRpbmcgSkFNU3RhY2sgcGxhdGZvcm1zIHRvZGF5IGlzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnLyZxdW90OyZndDtHYXRzYnkuanMmbHQ7L2EmZ3Q7LiBHYXRzYnkuanMgaXMgYSBmcmVlIGFuZCBvcGVuLXNvdXJjZSBmcmFtZXdvcmsgYmFzZWQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3JlYWN0anMub3JnLyZxdW90OyZndDtSZWFjdC5qcyZsdDsvYSZndDsgdGhhdCBoZWxwcyBkZXZlbG9wZXJzIGJ1aWxkIGhpZ2gtc3BlZWQgd2ViIGFwcGxpY2F0aW9ucy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHR1dG9yaWFsLCB3ZSB3aWxsIGJlIGRlbW9uc3RyYXRpbmcgaG93IHRvIGRlcGxveSBhIEdhdHNieS5qcyBzaXRlIHRvIHRoZSBwb3B1bGFyIEhlcm9rdSBwbGF0Zm9ybSBieSBidWlsZGluZyBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmUgZm9yIGl0cyBkZXBsb3ltZW50IHVzaW5nIENpcmNsZUNJLiZsdDsvcCZndDsKCiZsdDtoMiZndDtQcmVyZXF1aXNpdGVzJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIG9yZGVyIHRvIGZvbGxvdyBhbG9uZyB3aXRoIHRoaXMgcG9zdCwgeW91IHdpbGwgbmVlZCBhIGZldyB0aGluZ3MgaW4gcGxhY2U6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7ICZhbXA7Z3Q7PSAxMC4xNiBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZSAtdiZsdDsvY29kZSZndDsgb24geW91ciB0ZXJtaW5hbCB0byBwcmludCBvdXQgeW91ciB2ZXJzaW9uIG9mIE5vZGVKUyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7R2l0Jmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2l0Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsLiBUaGlzIHNob3VsZCBwcmludCBvdXQgYXZhaWxhYmxlIGdpdCBjb21tYW5kcykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuaGVyb2t1LmNvbS8mcXVvdDsmZ3Q7SGVyb2t1Jmx0Oy9hJmd0OyBhY2NvdW50Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O0dpdEh1YiZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7V2l0aCB0aGVzZSwgeW91IGFyZSByZWFkeSB0byBmb2xsb3cgYWxvbmcuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NyZWF0aW5nIGEgR2F0c2J5LmpzIHByb2plY3QmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7VG8gYmVnaW4sIHdlIG5lZWQgdG8gY3JlYXRlIG91ciBHYXRzYnkuanMgcHJvamVjdC4gSW4gYW4gYXBwcm9wcmlhdGUgbG9jYXRpb24gd2l0aGluIHlvdXIgc3lzdGVtLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGdhdHNieSBuZXcgZ2F0c2J5LWhlcm9rdS1kZXBsb3kKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBwYXJ0IG9mIHRoaXMgY29tbWFuZCBpcyB0aGUgZm9sZGVyIG5hbWUgZm9yIG15IHByb2plY3QgdG8gYmUgc2NhZmZvbGRlZCBpbi4gWW91IGNhbiB1c2UgYW55IHByZWZlcnJlZCBuYW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCB3aWxsIGltbWVkaWF0ZWx5IGJlZ2luIHNjYWZmb2xkaW5nIGEgbmV3IEdhdHNieS5qcyBwcm9qZWN0LiBZb3UgbWlnaHQgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGVpdGhlciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5YXJuJmx0Oy9jb2RlJmd0OyBvciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7IGFzIHlvdXIgcGFja2FnZSBtYW5hZ2VyLCBmb3IgdGhpcyB0dXRvcmlhbCwgZ28gd2l0aCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNjYWZmb2xkaW5nIHByb2Nlc3MgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIGdhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OykgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gYm9vdCB1cCBhIHNlcnZlciB0byBzZXJ2ZSB0aGUgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBydW4gZGV2ZWxvcAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgc2VydmUgdGhlIGFwcGxpY2F0aW9uIGF0IHRoZSBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8mbHQ7L2NvZGUmZ3Q7IGFuZCBkaXNwbGF5IHRoZSBwYWdlIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MS5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIGEgZnVuY3Rpb25hbCBHYXRzYnkuanMgc2l0ZSB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7U2V0dGluZyB1cCBhIEhlcm9rdSBBcHAgZm9yIEdhdHNieSZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBzZXQgdXAgYSBIZXJva3UgYXBwIGZvciBvdXIgR2F0c2J5IGFwcGxpY2F0aW9uLCB3ZSBuZWVkIHRvIGxvZyBpbnRvIEhlcm9rdSBhbmQgY3JlYXRlIGEgbmV3IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5Mi5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdlIG5lZWQgdG8gZ2V0IHRoZSBuYW1lIG9mIG91ciBhcHBsaWNhdGlvbiAodGhpcyB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBmb3IgdGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgYWJvdmUpIGFuZCB0aGUgQVBJIGtleSBmb3Igb3VyIEhlcm9rdSBhY2NvdW50LiBUaGUgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIEhlcm9rdSAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXZSB3aWxsIG5lZWQgdGhlc2UgdHdvIHZhbHVlcyAodGhlIGFwcCBuYW1lIGFuZCBBUEkga2V5KSBsYXRlciBvbiB0byBjcmVhdGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9uIG91ciBDaXJjbGVDSSBwcm9qZWN0IGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiBvdXIgSGVyb2t1IGFjY291bnQgaXMgdG8gaW5zdGFsbCBzb21lIG5lY2Vzc2FyeSBidWlsZHBhY2tzLiBCdWlsZHBhY2tzIGFyZSBzY3JpcHRzIHRoYXQgcnVuIHdoZW4geW91ciBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZC4gV2Ugd2lsbCBuZWVkIHR3byBidWlsZCBwYWNrcyBmb3IgdGhpcyBleGVyY2lzZTombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0O2hlcm9rdS9ub2RlanM6IFJlcXVpcmVkIGZvciBhbGwgTm9kZS5qcyBhcHBsaWNhdGlvbnMmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtoZXJva3UvaGVyb2t1LWJ1aWxkcGFjay1zdGF0aWM6IFRoZSBIZXJva3UgQnVpbGRwYWNrIFN0YXRpYyBwYWNrYWdlIChiZWNhdXNlIEdhdHNieS5qc+KAmXMgYnVpbGQgaXMgbWFkZSB1cCBvZiBzdGF0aWMgZmlsZXMsIHRoaXMgd2lsbCBoZWxwIHVzIHNlcnZlIHRoZSBzdGF0aWMgZmlsZXMgb24gdGhlIEhlcm9rdSBwbGF0Zm9ybSkmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7R28gdG8geW91ciBIZXJva3UgYXBwbGljYXRpb27igJlzICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgcGFnZSBhbmQgc2Nyb2xsIGRvd24gdG8gJmx0O3N0cm9uZyZndDtCdWlsZHBhY2tzJmx0Oy9zdHJvbmcmZ3Q7ICh5b3UgbWlnaHQgYWxyZWFkeSBzZWUgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgYnVpbGRwYWNrIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQpLiBDbGljayAmbHQ7c3Ryb25nJmd0O0FkZCBidWlsZHBhY2smbHQ7L3N0cm9uZyZndDsgYW5kIHlvdSB3aWxsIHNlZSBhIGRpYWxvZyBwb3AgdXAgc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnkzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rm9yIGVhY2ggYnVpbGRwYWNrICgmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3Uvbm9kZWpzJmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L2hlcm9rdS1idWlsZHBhY2stc3RhdGljJmx0Oy9jb2RlJmd0OykgZW50ZXIgdGhlIGlkZW50aWZpZXIgaW50byB0aGUgdGV4dCBmaWVsZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTYXZlIENoYW5nZXMmbHQ7L3N0cm9uZyZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtOb3RlOiZsdDsvc3Ryb25nJmd0OyAmbHQ7aSZndDtJZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCwgb25seSBhZGQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2hlcm9rdS9oZXJva3UtYnVpbGRwYWNrLXN0YXRpYyZsdDsvY29kZSZndDsgYnVpbGQgcGFjay4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgZG9pbmcgdGhpcyBmb3IgYm90aCBidWlsZHBhY2tzLCB5b3Ugd2lsbCBzZWUgdGhlIHR3byBidWlsZCBwYWNrcyBub3cgbGlzdGVkIGluICZsdDtzdHJvbmcmZ3Q7QnVpbGRwYWNrcyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGF0IGNvbXBsZXRlcyB0aGUgc2V0IHVwIHJlcXVpcmVkIGZvciBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1NldHRpbmcgdXAgdGhlIEdhdHNieS5qcyBwcm9qZWN0IG9uIENpcmNsZUNJJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBuZXh0IHRhc2sgaXMgdG8gZ2V0IG91ciBHYXRzYnkuanMgcHJvamVjdCBzZXQgdXAgb24gQ2lyY2xlQ0kuIFdlIG5lZWQgdG8gcHVzaCBvdXIgY29kZSB0byBhIEdpdEh1YiByZXBvc2l0b3J5IG9uIHRoZSBhY2NvdW50IHlvdSBoYXZlIGxpbmtlZCB0byB5b3VyIENpcmNsZUNJIGFjY291bnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgZ28gdG8gdGhlICZsdDtzdHJvbmcmZ3Q7QWRkIFByb2plY3RzJmx0Oy9zdHJvbmcmZ3Q7IHBhZ2UgdG8gYWRkIHRoZSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk0LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0OyB0byBiZWdpbiBzZXR0aW5nIHVwIHRoZSBwcm9qZWN0LiBUaGlzIHdpbGwgbG9hZCB0aGUgbmV4dCBzY3JlZW4uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk1LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhlIHNldHVwIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsuIEJlZm9yZSB0aGUgYnVpbGQgc3RhcnRzLCB5b3Ugd2lsbCBnZXQgYSBwcm9tcHQgdG8gZWl0aGVyIGRvd25sb2FkIGFuZCB1c2UgdGhlIHByb3ZpZGVkIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgaGF2ZSBpdCBhZGRlZCBvbiBhIHNlcGFyYXRlIGJyYW5jaCBvciBzZXQgb25lIHVwIG1hbnVhbGx5LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk2LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U2VsZWN0ICZsdDtzdHJvbmcmZ3Q7QWRkIE1hbnVhbGx5Jmx0Oy9zdHJvbmcmZ3Q7IHRvIHByb2NlZWQuIFRoaXMgd2lsbCBwcm9tcHQgYW5vdGhlciBkaWFsb2cgdGhhdCBjaGVja3MgdG8gY29uZmlybSB0aGF0IHlvdSBoYXZlIGEgY29uZmlndXJhdGlvbiBmaWxlIHNldCB1cCB0byBiZWdpbiBidWlsZGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTcucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGNvbXBsZXRlIHRoZSBzZXR1cC4gVGhlIGJ1aWxkIHdpbGwgc3VyZWx5IGZhaWwgYmVjYXVzZSB3ZSBoYXZlIG5vdCBzZXQgdXAgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB5ZXQsIHRoaXMgd2Ugd2lsbCBkbyBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiB0aGUgQ2lyY2xlQ0kgY29uc29sZSBpcyB0byBzZXQgdXAgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZW52LXZhcnMvJnF1b3Q7Jmd0O2Vudmlyb25tZW50IHZhcmlhYmxlcyZsdDsvYSZndDsgZm9yIHRoZSBwcm9qZWN0IHdlIGp1c3QgYWRkZWQuIFRoaXMgd2lsbCBlbmFibGUgaXQgdG8gaGF2ZSBhdXRoZW50aWNhdGVkIGFjY2VzcyB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIGZvciBkZXBsb3ltZW50cy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHbyB0byB5b3VyIHByb2plY3TigJlzIHNldHRpbmdzIGJ5IGNsaWNraW5nICZsdDtzdHJvbmcmZ3Q7UHJvamVjdCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgJmx0O3N0cm9uZyZndDtQaXBlbGluZXMmbHQ7L3N0cm9uZyZndDsgcGFnZSAobWFrZSBzdXJlIHlvdXIgcHJvamVjdCBpcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2plY3QpLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5OC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBuYXZpZ2F0ZSB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBwYWdlLiBPbiB0aGlzIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7RW52aXJvbm1lbnQgVmFyaWFibGVzJmx0Oy9zdHJvbmcmZ3Q7IG9uIHRoZSBzaWRlIG1lbnUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk5LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFnZSwgY2xpY2sgJmx0O3N0cm9uZyZndDtBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUgYnV0dG9uJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTAucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZGQgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Jmx0Oy9wJmd0OwombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDs6IFRoaXMgaXMgdGhlIG5hbWUgb2YgeW91ciBIZXJva3UgYXBwbGljYXRpb24gKGluIHRoaXMgY2FzZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnYXRzYnktaGVyb2t1LWRlcGxveSZsdDsvY29kZSZndDspJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7SEVST0tVX0FQSV9LRVkmbHQ7L2NvZGUmZ3Q7OiBZb3VyIEhlcm9rdSBhY2NvdW50IEFQSSBrZXkgZm91bmQgdW5kZXIgdGhlICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCZsdDsvc3Ryb25nJmd0OyB0YWIgb2YgeW91ciBIZXJva3UgYWNjb3VudCBpbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50IFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O09uY2UgYWRkZWQsIHlvdSB3aWxsIGhhdmUgZXZlcnl0aGluZyBzZXQgdXAgb24geW91ciBDaXJjbGVDSSBjb25zb2xlIGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRoZSBHYXRic3kuanMgc2l0ZSB1c2luZyBvcmJzJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy8mcXVvdDsmZ3Q7T3JicyZsdDsvYSZndDsgYXJlIHJldXNhYmxlIHBhY2thZ2VzIG9mIFlBTUwgY29uZmlndXJhdGlvbiB0aGF0IGNvbmRlbnNlIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoZXkgZW5hYmxlIGRldmVsb3BlcnMgdG8gZWFzaWx5IHVzZSBwb3dlcmZ1bCBwaXBlbGluZSBmdW5jdGlvbmFsaXRpZXMgd2l0aCBhbGwgdGhlIGJvaWxlcnBsYXRlIGFic3RyYWN0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBleGVyY2lzZSwgd2Ugd2lsbCBiZSB1c2luZyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7b3JiIGZvciBIZXJva3UmbHQ7L2EmZ3Q7IHRvIGNvbmZpZ3VyZSBvdXIgcGlwZWxpbmUgdG8gZGVwbG95IG91ciBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0IGJlZm9yZSB0aGF0LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGZpbGUgdG8gaW5zdHJ1Y3Qgb3VyIEhlcm9rdSBCdWlsZHBhY2sgU3RhdGljIHBhY2thZ2Ugb24gaG93IHRvIGRlcGxveSBhbmQgc2VydmUgb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgbmV3IGZpbGUgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3RhdGljLmpzb24mbHQ7L2NvZGUmZ3Q7IGFuZCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGUgaW50byBpdDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3sKICAmcXVvdDtyb290JnF1b3Q7OiAmcXVvdDtwdWJsaWMvJnF1b3Q7LAogICZxdW90O2hlYWRlcnMmcXVvdDs6IHsKICAgICZxdW90Oy8qKiZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJnF1b3Q7CiAgICB9LAogICAgJnF1b3Q7LyoqLmNzcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy8qKi5qcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy9zdGF0aWMvKiomcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0sCiAgICAmcXVvdDsvaWNvbnMvKi5wbmcmcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0KICB9LAogICZxdW90O2h0dHBzX29ubHkmcXVvdDs6IHRydWUsCiAgJnF1b3Q7ZXJyb3JfcGFnZSZxdW90OzogJnF1b3Q7NDA0Lmh0bWwmcXVvdDsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgbW9zdCBpbXBvcnRhbnQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaGVyZSBpcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkuIFdoZW4gR2F0c2J5LmpzIHJ1bnMgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2J1aWxkJmx0Oy9jb2RlJmd0OyBzY3JpcHQgKHRoaXMgaXMgYWxzbyB0aGUgc2NyaXB0IHVzZWQgYnkgSGVyb2t1IHRvIHJ1biB0aGUgYnVpbGQgYmVmb3JlIGRlcGxveW1lbnQpLCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1YmxpYyZsdDsvY29kZSZndDsgZm9sZGVyIGlzIGdlbmVyYXRlZCBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBjb250YWluaW5nIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb2R1Y3Rpb24gdmVyc2lvbiBpcyB3aGF0IHRoZSBob3N0IHNlcnZlcyB0byB1c2Vycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaHVzLCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkgaXMgdXNlZCB0byBwb2ludCB0byB0aGlzIGZvbGRlciBzbyB0aGF0IHRoZSBob3N0IHNlcnZlcyB0aGUgYXBwcm9wcmlhdGUgY29kZS4gT3RoZXIgcGFyYW1ldGVycyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gYXJlIHNpbXBseSBiZXN0LXByYWN0aWNlIGNvbmZpZ3VyYXRpb25zIGZvciBHYXRzYnkuanMgc2l0ZXMuIEZvciBleGFtcGxlLCBjYWNoaW5nIGd1aWRlbGluZXMgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvY2FjaGluZy8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7R29vZCEgTm93IHdlIGNhbiB3cml0ZSBvdXIgZGVwbG95bWVudCBzY3JpcHQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgdGhlIHJvb3Qgb2YgeW91ciBHYXRzYnkuanMgcHJvamVjdCwgY3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgYW5kIGEgZmlsZSB3aXRoaW4gaXQgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0Oy4gSW5zaWRlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGU6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt2ZXJzaW9uOiAyLjEKb3JiczoKICBoZXJva3U6IGNpcmNsZWNpL2hlcm9rdUAwLjAuMTAKd29ya2Zsb3dzOgogIGhlcm9rdV9kZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGhlcm9rdS9kZXBsb3ktdmlhLWdpdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGF04oCZcyBpdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgY29uZmlndXJhdGlvbiBhYm92ZSwgd2UgcHVsbCBpbiB0aGUgSGVyb2t1IG9yYiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaXJjbGVjaS9oZXJva3VAMC4wLjEwJmx0Oy9jb2RlJmd0OyB3aGljaCBhdXRvbWF0aWNhbGx5IGdpdmVzIHVzIGFjY2VzcyB0byBhIHBvd2VyZnVsIHNldCBvZiBIZXJva3Ugam9icyBhbmQgY29tbWFuZHMuIE9uZSBvZiB0aG9zZSBqb2JzIGlzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3UvZGVwbG95LXZpYS1naXQmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGRlcGxveXMgeW91ciBhcHBsaWNhdGlvbiBzdHJhaWdodCBmcm9tIHlvdXIgR2l0SHViIHJlcG8gdG8geW91ciBIZXJva3UgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIGpvYiBhbHJlYWR5IHRha2VzIGNhcmUgb2YgaW5zdGFsbGluZyB0aGUgSGVyb2t1IENMSSwgaW5zdGFsbGluZyBwcm9qZWN0IGRlcGVuZGVuY2llcywgcnVubmluZyB0aGUgYnVpbGQgc2NyaXB0LCBhbmQgZGVwbG95aW5nIHRoZSBhcHBsaWNhdGlvbi4gSXQgYWxzbyBwaWNrcyB1cCBvdXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGggZGVwbG95bWVudCB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgdGhlIG1vbWVudCBvZiB0cnV0aCAoZHJ1bSByb2xsKS4gTGV04oCZcyBjb21taXQgYWxsIHRoZSBjaGFuZ2VzIHdlIGhhdmUgbWFkZSB0byBvdXIgR2F0c2J5LmpzIHByb2plY3QgYW5kIHB1c2ggdG8gb3VyIHJlcG8gdG8gdHJpZ2dlciB0aGUgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTEucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBzZWUgdGhlIGJlaGluZC10aGUtc2NlbmVzIHpjdGlvbiBvZiB0aGUgZGVwbG95bWVudCwgeW91IGNhbiBjbGljayBpbnRvIHRoZSBidWlsZC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTIucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgZm9yIHRoZSBmaW5hbCBjb25maXJtYXRpb24gdGhhdCB0aGUgZGVwbG95bWVudCBvZiBvdXIgR2F0c2J5LmpzIHNpdGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bCwgdmlzaXQgdGhlIGRlZmF1bHQgSGVyb2t1IGFkZHJlc3MgZm9yIHRoZSBzaXRlIGF0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vW0FQUF9OQU1FXS5oZXJva3VhcHAuY29tJmx0Oy9jb2RlJmd0Oy4gSWYgeW91IHVzZWQgdGhlIHNhbWUgbmFtZSBhcyBJIGRpZCBmb3IgdGhpcyBleGVyY2lzZSwgdGhhdCB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vZ2F0c2J5LWhlcm9rdS1kZXBsb3kuaGVyb2t1YXBwLmNvbS8mbHQ7L2NvZGUmZ3Q7LiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93ICh0aGlzIG1pZ2h0IGJlIGRpZmZlcmVudCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IEdhdHNieS5qcyBzdGFydGVyIHRlbXBsYXRlLCBsZWFybiBtb3JlIGFib3V0IHN0YXJ0ZXJzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvcGx1Z2lucy10aGVtZXMtYW5kLXN0YXJ0ZXJzLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OykuJmx0Oy9wJmd0OwoKJmx0O3AgYWxpZ249JnF1b3Q7Y2VudGVyJnF1b3Q7Jmd0OwogICAmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTEzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NvbmNsdXNpb24mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2UgZGVwbG95ZWQgYSBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UgdXNpbmcgQ2lyY2xlQ0kgb3Jicy4gTm93IHdoZW4gd2UgcHVzaCBvdXIgY29kZSwgYWxsIGNoYW5nZXMgd2lsbCBiZSBkZXBsb3llZCBhdXRvbWF0aWNhbGx5LiBUaGlzIHR1dG9yaWFsIGhhcyBhbHNvIGRlbW9uc3RyYXRlZCBob3cgQ2lyY2xlQ0kgb3JicyBtYWtlcyBkZXBsb3ltZW50IGVhc3kuIEluc3RlYWQgb2Ygd3JpdGluZyBtYW55IGxpbmVzIG9mIGNvbmZpZyBuZWVkIHRvIGRlcGxveSB0byBIZXJva3UsIG9yYnMgYWJzdHJhY3QgYWxsIG9mIHRoYXQgaW50byBjb252ZW5pZW50IGNvbW1hbmRzIGZvciB1cyB0byB1c2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2hlY2sgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kgb3JicyByZWdpc3RyeSZsdDsvYSZndDsgZm9yIG9yYnMgdGhhdCBzdWl0IHlvdXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGRlcGxveW1lbnQgZGVzdGluYXRpb24gb2YgY2hvaWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyEmbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5MZXR0aW5nIGNoYW5nZSBhbmQgdW5jZXJ0YWludHkgYWR2YW5jZSB5b3VyIHNvZnR3YXJlIGFyY2hpdGVjdHVyZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VGh1LCAwNyBNYXkgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Sb2IgWnViZXI8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIGZpcnN0IGxpbmVzIG9mIENpcmNsZUNJ4oCZcyBjb2RlYmFzZSB3ZXJlIHdyaXR0ZW4gbmVhcmx5IG5pbmUgeWVhcnMgYWdvLiBMb29raW5nIGJhY2sgb24gd2hhdCB3ZSBoYXZlIGJ1aWx0IHNvIGZhciB3aXRoIHRoZSBjbGFyaXR5IG9mIGhpbmRzaWdodCBleHBvc2VzIHNvbWUgaW50ZXJlc3RpbmcgdGhlbWVzIHRoYXQgY2FuIGJlIGluc3RydWN0aXZlIGluIGlkZW50aWZ5aW5nIGFwcHJvYWNoZXMgdG8gZGVhbGluZyB3aXRoIGNoYW5nZS4gV2hpbGUgdGhleSB3ZXJlbuKAmXQgYWxsIGludGVudGlvbmFsLCBpdCBkb2VzbuKAmXQgbWFrZSB0aGVtIGFueSBsZXNzIHZhbHVhYmxlLiBUaHJlZSBzdWNoIHRoZW1lcyBhcmU6IGRlZmVycmluZyB0aGUgbmVlZCB0byBoYW5kbGUgY2hhbmdlLCB0aGlua2luZyBsaWtlIGEgcHJvZHVjdCBtYW5hZ2VyLCBhbmQga2VlcGluZyB5b3VyIGhlYWQgdXAuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NoYW5nZSBpcyBhIGNvbnN0YW50IGluIHRlY2hub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Q2hhbmdlIG1pZ2h0IGJlIG9uZSBvZiB0aGUgb25seSBjb25zdGFudHMgZW5naW5lZXJzIHdpbGwgZGVhbCB3aXRoIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGVpciBjYXJlZXJzLiBJdCBjZXJ0YWlubHkgZHJpdmVzIG1hbnkgb2Ygb3VyIG1vc3QgaW50ZXJlc3RpbmcgY2hhbGxlbmdlcy4gVGhlIG1hcmtldCBpcyBjaGFuZ2luZywgb3VyIGJ1c2luZXNzIGlzIGV2b2x2aW5nLCBvdXIgY3VzdG9tZXIgYmFzZSBpcyBncm93aW5nLCBhbmQgb3VyIHRlYW0gaXMgc2NhbGluZy4gV2UgbmVlZCB0byBidWlsZCBhIHNvbHV0aW9uIHRoYXQgbWVldHMgdG9kYXnigJlzIG5lZWRzIGJ1dCBzZXRzIHVzIHVwIGZvciB0aGUgZGVtYW5kcyBvZiB0b21vcnJvdy4gSG93IGRvIHdlIGRlc2lnbiBvdXIgc3lzdGVtcyBpbiBhIG1hbm5lciB0aGF0IGNhbiBhZGFwdCBhbmQgY2hhbmdlIHRvIHRoaW5ncyB0aGF0IGRvbuKAmXQgZXZlbiBleGlzdCB3aGVuIHdlIHN0YXJ0IGJ1aWxkaW5nIGl0PyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZXJlIGhhcyBiZWVuIGEgbG90IG9mIHRhbGsgaW4gcmVjZW50IHllYXJzIGFib3V0IGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGV2b2x2ZSBvciBtb3JlIGVhc2lseSBhZGFwdCB0byBjaGFuZ2UuIFRoZW4gd2Ugc3RhcnQgdG8gZGViYXRlIHRoZSBtZXJpdHMgb2YgdGhlc2UgYXJjaGl0ZWN0dXJlcyB1c2luZyBhIGxpbmUgb2YgdGhpbmtpbmcgdGhhdCBzdWdnZXN0cyB5b3UgYXJlIGNob29zaW5nIHRvIGhhdmUgYSDigJxNaWNyb3NlcnZpY2VzIEFyY2hpdGVjdHVyZeKAnSBvciBhbiDigJxFdmVudC1Ecml2ZW4gQXJjaGl0ZWN0dXJl4oCdIG9yIGEg4oCcU2VydmVybGVzcyBBcmNoaXRlY3R1cmUu4oCdIEkgd291bGQgcG9zaXQgdGhhdCB0aGlzIHR5cGUgb2YgZGVzY3JpcHRpb24gY3JlYXRlcyBhIGZhbHNlIHNlbnNlIG9mIGZpbmFsaXR5IHRoYXQgZG9lc27igJl0IGFjdHVhbGx5IGV4aXN0IGluIG1vc3QgcmVhbC13b3JsZCBzeXN0ZW1zLiZsdDsvcCZndDsKCiZsdDtwJmd0O091dHNpZGUgb2YgdGhlIHlvdW5nZXN0IG9mIHByb2plY3RzLCBpdOKAmXMgdW5saWtlbHkgdGhhdCB5b3UgY2FuIGRlc2NyaWJlIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCB5b3UgaGF2ZSB3aXRoIGFueSBzaW1wbGUgb25lLWxpbmVyLiBJdOKAmXMgbW9yZSBsaWtlbHkganVzdCDigJx5b3VyIGFyY2hpdGVjdHVyZSzigJ0gYW5kIGlmIHlvdeKAmXZlIGJlZW4gd29ya2luZyBvbiBpdCBmb3IgYW55IHNpZ25pZmljYW50IGFtb3VudCBvZiB0aW1lLCB5b3UgbWF5IGhhdmUgYXBwbGllZCBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0dGVybnMgYWxvbmcgdGhlIHdheSB0byBzb2x2ZSBzcGVjaWZpYyBwcm9ibGVtcy4gVGhlcmXigJlzIHByb2JhYmx5IGEgbW9ub2xpdGggc29tZXdoZXJlLCBzb21lIG51bWJlciBvZiBtaWNyb3NlcnZpY2VzLCBhIGZldyBldmVudHMsIGFuZCBhIHNlcnZlcmxlc3MgZWxlbWVudCBvciB0d28uIE9uIHRvcCBvZiBhbGwgdGhhdCwgeW91IG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YgdHJhbnNpdGlvbmluZyBzb21lIG9mIHRob3NlIHBpZWNlcyBmcm9tIG9uZSBwYXR0ZXJuIHRvIGFub3RoZXIuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0Rlc2lnbiBhcmNoaXRlY3R1cmUgdG8gc29sdmUgcHJvYmxlbXMmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gb2Z0ZW4gYXNrZWQgYnkgZm9sa3Mgd2hpY2ggYXJjaGl0ZWN0dXJlIHRoZXkgc2hvdWxkIGNob29zZSwgb3Igd2hlbiB0aGV5IHNob3VsZCBzd2l0Y2ggZnJvbSBvbmUgdG8gYW5vdGhlci4gSSBoYXZlIGEgZ3JlYXQgdGVuZGVuY3kgdG8gZGlzYXBwb2ludCB3aXRoIGFuc3dlcnMgbGlrZSDigJx3aGF0IHByb2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gc29sdmU/4oCdJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28sIHdoYXQgJmx0O3N0cm9uZyZndDtzaG91bGQmbHQ7L3N0cm9uZyZndDsgeW91IGJlIHRoaW5raW5nIGFib3V0IGFzIHlvdXIgcHJvZHVjdCBldm9sdmVzIGFuZCB5b3VyIG5lZWRzIGFyZSBjaGFuZ2luZz8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGVyZSBhcmUgYSBsb3Qgb2YgYXBwcm9hY2hlcyB0aGF0IHdlIGNhbiB1c2UgdG8gZGVzaWduIHNvZnR3YXJlIGFuZCBzeXN0ZW1zIHRvIGJlIG1vcmUgcmVzaWxpZW50IHRvIGNoYW5nZS4gVGhlIGFsbHVyZSBvZiBub3QgaGF2aW5nIHRvIGRvIGNvbXBsZXggcmVmYWN0b3Jpbmcgb3IgcmVidWlsZGluZyBkb3duIHRoZSByb2FkIGxlYWRzIHVzIHRvIHdhbnQgdG8gZGVzaWduIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG93IGNvc3Qgb2YgY2hhbmdlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2hpbGUgZ2VuZXJhbGl6ZWQgYWJzdHJhY3Rpb25zIGFuZCByZXVzYWJsZSBjb21wb25lbnRzIGFyZSBhdCB0aGUgY29yZSBvZiByZWR1Y2luZyB0aGUgaW1wYWN0IG9mIGNoYW5nZSwgdGhleSBhcmUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Jsb2cuY29kaW5naG9ycm9yLmNvbS90aGUtZGVsdXNpb24tb2YtcmV1c2UvJnF1b3Q7Jmd0O2hhcmQgdG8gZ2V0IHJpZ2h0IGluIHRoZSBmaXJzdCBwbGFjZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0l04oCZcyBoYXJkIHRvIHByZWRpY3QgdGhlIGZ1dHVyZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtBdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHRlY2huaWNhbCBsYW5kc2NhcGUgaXMgY2hhbmdpbmcsIHlvdXIgYnVzaW5lc3MgYW5kIHlvdXIgb3JnYW5pemF0aW9uIGFyZSBib3RoIGV2b2x2aW5nIGFzIHdlbGwuIFRoZXNlIGJvdGggaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiB5b3VyIGFyY2hpdGVjdHVyYWwgZGVjaXNpb25zLiBUaGUgc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlIHRoYXQgeW91IGFyZSB1bmRlcmdvaW5nIHdpbGwgaW5mbHVlbmNlIHRoZSBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUgYmVzdCBzdWl0ZWQgdG8gYWJzb3JiIHRob3NlIGNoYW5nZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGVhcmx5IGRheXMgb2YgYSBwcm9qZWN0IG9yIGNvbXBhbnksIGl04oCZcyBwb3NzaWJsZSB0byBtYWtlIHN3ZWVwaW5nIGZ1bmRhbWVudGFsIHNoaWZ0cyBpbiB0aGUgb2JqZWN0aXZlLiBFeHRyZW1lLCBidXQgbm90IHVuY29tbW9uLCBleGFtcGxlcyBpbmNsdWRlIFRpbnkgU3BlY2sgYmVjb21pbmcgU2xhY2sgYW5kIE9kZW8gYmVjb21pbmcgVHdpdHRlci4gV2hlbiB0aGUgZG9tYWluIG9mIHlvdXIgYnVzaW5lc3MgY2FuIG1vdmUgdGhhdCBkcmFzdGljYWxseSwgdGhlIGNsZWFuIGJvdW5kYXJpZXMgb2YgeW91ciBEREQgbW9kZWwgYXJlIG91dCB0aGUgd2luZG93LiBJbiBhIHNldCBvZiBtaWNyb3NlcnZpY2VzLCB0aGVzZSBib3VuZGFyaWVzIHdpbGwgYmUgY29kaWZpZWQsIHNvIGlmIHlvdSBoYXZlIHRvIGN1dCB0aHJvdWdoIHRoZW0sIHlvdeKAmWxsIGxpa2VseSBiZSB0aGFua2Z1bCBmb3IgYSBtb3JlIHBsaWFibGUgbW9ub2xpdGguJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB5b3UgZmluZCBwcm9kdWN0IC8gbWFya2V0IGZpdCwgeW91ciBwcmlvcml0aWVzIHdpbGwgc2hpZnQgdG93YXJkcyBzdXBwb3J0aW5nIHlvdXIgcmFwaWQgZ3Jvd3RoLiBXaXRoIHN5c3RlbSBzY2FsZSBhcyBhIGRyaXZlciBvZiBjaGFuZ2UsIHRoZSBhYmlsaXR5IHRvIHJlc3BvbmQgdG8gY2hhbmdlIGlzIG9mdGVuIHRpZWQgdG8gdGhlIGluZGVwZW5kZW5jZSBvZiBzeXN0ZW1zIGJhc2VkIG9uIHRoZWlyIG9wZXJhdGlvbmFsIGNoYXJhY3RlcmlzdGljcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGF0IHNjYWxpbmcgcGhhc2UsIHlvdeKAmWxsIGhhdmUgYSBsYXJnZXIgb3JnYW5pemF0aW9uIGFuZCBmYXIgbW9yZSB0ZWFtcy4gSWYgeW914oCZcmUgbHVja3kgeW914oCZbGwgYmUgYmFjayB0byBzdXN0YWluYWJsZSBwcm9kdWN0IGV2b2x1dGlvbi4gVGhlbiB0aGUgY29zdCBvZiBjaGFuZ2Ugd2lsbCBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIGFtb3VudCBvZiBjcm9zcy10ZWFtIGNvb3JkaW5hdGlvbiByZXF1aXJlZCB0byBtYWtlIGEgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtoMiZndDtEZWZlciByZXNwb25zZSB0byBjaGFuZ2UmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7V2hlbiBhbiBpbmRpdmlkdWFsIG9yIHRlYW0gaGFzIGEgcHJvYmxlbSB0aGV54oCZcmUgdHJ5aW5nIHRvIHNvbHZlLCB0aGV5IGdlbmVyYWxseSBzdGFydCBvZmYgd2l0aCBhIHByZXR0eSBzaW1wbGUgZGlyZWN0aXZlIOKAkyBsZXTigJlzIGJ1aWxkIHRvIHNvbHZlIHRoYXQgcHJvYmxlbS4gV2hhdOKAmXMgdGhlIG1vc3QgZWZmZWN0aXZlIGFyY2hpdGVjdHVyZSB3ZSBjYW4gdXNlIHRvIGJ1aWxkIGEgdmlhYmxlIHByb2R1Y3QgYXQgdGhlIGxvd2VzdCBjb3N0PyBUaGlzIGlzIGdlbmVyYWxseSB0cnVlIHdoZXRoZXIgaXTigJlzIGEgc3RhcnR1cCBvciBhIGh1Z2UgbXVsdGluYXRpb25hbCBjb3Jwb3JhdGlvbi4gQSBuZXcgcHJvamVjdCB3aWxsIGJlIGJ1aWx0IG9uIGEgc3lzdGVtIHRoYXTigJlzIHJlbGF0aXZlbHkgbmV3LCBhbmQgd2lsbCBiZSB1bmxpa2VseSB0byBoYXZlIHByb2R1Y3QtbWFya2V0IGZpdCBiZWNhdXNlIHRoZSBjb21wYW55IHdvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCBpdHMgYnVzaW5lc3MgZG9tYWluIHlldCwgYW5kIHdvbuKAmXQga25vdyB3aGVyZSB0aGUgcHJpbWFyeSBzb3VyY2VzIG9mIGNoYW5nZSB3aWxsIGNvbWUgZnJvbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHNpdHVhdGlvbiwgZGVzaWduaW5nIGZvciBjaGFuZ2UgYmVjb21lcyBhIGxvdCBoYXJkZXIuIElmIGl04oCZcyBhIGxvdCBtb3JlIGV4cGVuc2l2ZSB0byBtYWtlIHRoaW5ncyByZXNpbGllbnQgdG8gY2hhbmdlIGFuZCB5b3UgY2Fu4oCZdCB0ZWxsIHlldCB3aGljaCBwYXJ0cyBvZiB5b3VyIHN5c3RlbSB3aWxsIGNoYW5nZSwgaG93IGRvIHlvdSBtYWtlIHRoZSBkZWNpc2lvbiBhYm91dCB3aGVyZSB0byBtYWtlIHRoYXQgaW52ZXN0bWVudD8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBjb3VudGVyaW50dWl0aXZlIGFzIGl0IG1heSBzb3VuZCwgdGhlIGFuc3dlciBpcyBwcm9iYWJseSBub3doZXJlLiBBdCBsZWFzdCBub3QgeWV0LiBJbnN0ZWFkIHdhdGNoIGNoYW5nZSBjbG9zZWx5IGFuZCBidWlsZCBpbiBhIHdheSB0aGF0IG1pbmltaXplcyB0aGUgY29zdCBvZiBiZWluZyB3cm9uZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiDigJwmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9zaG9wLm9yZWlsbHkuY29tL3Byb2R1Y3QvOTc4MDU5NjUyMjcwNC5kbyZxdW90OyZndDs5NyBUaGluZ3MgRXZlcnkgU29mdHdhcmUgQXJjaGl0ZWN0IFNob3VsZCBLbm93Jmx0Oy9hJmd0O+KAnSBLZXZsaW4gSGVubmV5LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbWVkaXVtLmNvbS9Aa2V2bGluaGVubmV5L2h0dHBzLW1lZGl1bS1jb20ta2V2bGluaGVubmV5LXVzZS11bmNlcnRhaW50eS1hcy1hLWRyaXZlci00OTNlYmViZDU3NWQmcXVvdDsmZ3Q7ZGVzY3JpYmVzIGFuIGltcG9ydGFudCBhcHByb2FjaCB0byB0aGlua2luZyBhYm91dCB1bmNlcnRhaW50eSZsdDsvYSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2Jsb2NrcXVvdGUmZ3Q7CiAgJmx0O3AmZ3Q74oCcVGhlIHByZXNlbmNlIG9mIHR3byBvcHRpb25zIGlzIGFuIGluZGljYXRvciB0aGF0IHlvdSBuZWVkIHRvIGNvbnNpZGVyIHVuY2VydGFpbnR5IGluIHRoZSBkZXNpZ24uIFVzZSB0aGUgdW5jZXJ0YWludHkgYXMgYSBkcml2ZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHlvdSBjYW4gZGVmZXIgY29tbWl0bWVudCB0byBkZXRhaWxzIGFuZCB3aGVyZSB5b3UgY2FuIHBhcnRpdGlvbiBhbmQgYWJzdHJhY3QgdG8gcmVkdWNlIHRoZSBzaWduaWZpY2FuY2Ugb2YgZGVzaWduIGRlY2lzaW9ucy4gSWYgeW91IGhhcmR3aXJlIHRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQsIHlvdeKAmXJlIG1vcmUgbGlrZWx5IHRvIGJlIHN0dWNrIHdpdGggaXQg4oCTIGluY2lkZW50YWwgZGVjaXNpb25zIGJlY29tZSBzaWduaWZpY2FudCBhbmQgdGhlIHNvZnRuZXNzIG9mIHRoZSBzb2Z0d2FyZSBoYXJkZW5zLuKAnSZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7VGhpcyBmcmFtaW5nIGlzIGdyZWF0IGZvciBleHBsaWNpdCBkZWNpc2lvbnMsIGJ1dCB3aGF0IGlmIHlvdSBkb27igJl0IGtub3cgeW914oCZcmUgbWFraW5nIGEgY2hvaWNlPyZsdDsvcCZndDsKCiZsdDtwJmd0O01hbnkgdGltZXMsIHRoZSBjaG9pY2UgaXNu4oCZdCBldmVuIHZpc2libGUgeWV0LCBidXQgd2lsbCByZXZlYWwgaXRzZWxmIGxhdGVyLiBJbiB0aGVzZSBzaXR1YXRpb25zLCB0aGUgYW5zd2VyIGlzIG5vdCB0byBvdmVyIGdlbmVyYWxpemUsIGJ1aWxkaW5nIGFic3RyYWN0aW9ucyBldmVyeXdoZXJlIGp1c3QgaW4gY2FzZS4gSW5zdGVhZCwga2VlcCB0aGluZ3MgYXMgc2ltcGxlIGFzIHBvc3NpYmxlIHNvIHlvdSBjYW4gdW5kZXJzdGFuZCB0aGVtIGxhdGVyIGlmIHlvdSBoYXZlIHRvIG1ha2UgYSBjaGFuZ2UuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O1NpbXBsaWNpdHkgbWFrZXMgaXQgZWFzaWVyIHRvIGFkYXB0IHRvIGNoYW5nZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZWFybHkgZGF5cywgdGhlIENpcmNsZUNJIGFwcGxpY2F0aW9uIHdhcyBhIG1vbm9saXRoIHRoYXQgdG9vayBhIGN1c3RvbWVy4oCZcyBidWlsZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRhdGEgYW5kIHB1c2hlZCBpdCBpbnRvIG9uZSBvZiBzZXZlcmFsIExYQyBjb250YWluZXJzLiBFdmVyeSBjb250YWluZXIgdGhhdCB3ZSBzcHVuIHVwIHdhcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgc2FtZSBpbWFnZSB0aGF0IGNvbnRhaW5lZCBldmVyeXRoaW5nIHRoYXQgd2UgdGhvdWdodCBhbnlvbmUgd291bGQgZXZlciB3YW50IGluIHRoZWlyIHRlc3QgZW52aXJvbm1lbnQuIEluIGhpbmRzaWdodCwgdGhpcyBzb3VuZHMgbGlrZSBhIHRlcnJpYmxlIGlkZWEsIGJ1dCBhdCB0aGUgdGltZSwgaXQgd2FzIGZhbnRhc3RpYy4gSXQgd2FzIHNpbXBsZSB0byBtYWludGFpbiBhbmQgc3VwcG9ydGVkIHRoZSBuZWVkcyBvZiBvdXIgZWFybHkgY3VzdG9tZXJzLCBtYW55IG9mIHdob20gd2VyZSBidWlsZGluZyBSYWlscyBtb25vbGl0aHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXMgdGltZSBwYXNzZWQgYW5kIG91ciBjdXN0b21lciBiYXNlIGdyZXcsIHNvIGRpZCB0aGUgZGl2ZXJzaXR5IG9mIHRoZWlyIG5lZWRzIGluIHRlcm1zIG9mIHRlc3QgZW52aXJvbm1lbnRzLiBVcGdyYWRlZCB2ZXJzaW9ucyBvZiB0aGVpciB1bmRlcmx5aW5nIGRhdGFiYXNlcywgbm92ZWwgbmV3IGRldmVsb3BtZW50IGZyYW1ld29ya3MsIGV2ZW4gbmV3IG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbnMgYmVjYW1lIG5lY2Vzc2FyeS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgb3JpZ2luYWwgY29udGFpbmVyIG1hbmFnZW1lbnQgaW4gQ2lyY2xlQ0kgd2FzbuKAmXQgZGVzaWduZWQgaW4gYSB3YXkgdGhhdCBhbGxvd2VkIHVzIHRvIGFkYXB0IGVhc2lseSB0byB0aGVzZSBjaGFuZ2luZyBuZWVkcy4gQnV0IGl0IHdhcyBmYWlybHkgc2ltcGxlLiBTbyB3aGVuIHdlIHNldCBvdXQgdG8gc29sdmUgdGhlc2UgcHJvYmxlbXMsIHdlIGtuZXcgd2hlcmUgdG8gc3BsaWNlIGluIGEgbmV3IGFwcHJvYWNoIGFuZCBpdCB3YXMgbWluaW1hbCB3b3JrIHRvIGVuYWJsZSB0aGF0IHNwbGljaW5nLiBXZSBhbHNvIGRpZG7igJl0IGhhdmUgdG8gdW5yYXZlbCBhIHBvb3IgZ2VuZXJhbGl6YXRpb24gdGhhdCBkaWRu4oCZdCBzdXBwb3J0IG91ciBuZXcgcHJvYmxlbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3aGlsZSBzZWVtaW5nbHkgc2ltcGxlLCB3ZSB3ZXJlIGZpdmUgeWVhcnMgaW50byBzdWNjZXNzZnVsIGdyb3d0aCBhcyBhIGNvbXBhbnkgbWVldGluZyB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycyBvbiB0aGF0IHNpbXBsZSBzeXN0ZW0gYmVmb3JlIG91ciBmaXJzdCBjdXN0b21lcnMgdGVzdGVkIGl0cyByZXBsYWNlbWVudC4gSW4gdGhvc2UgZml2ZSB5ZWFycywgRG9ja2VyIHdhcyBjcmVhdGVkLCBhcyB3YXMgSGFzaGlDb3Jw4oCZcyBOb21hZC4gQ29tYmluZWQsIHRob3NlIHRvb2xzIGVsaW1pbmF0ZWQgaHVnZSBwb3J0aW9ucyBvZiB0aGUgd29yayBuZWNlc3NhcnkgdG8gZ2V0IHRoZSBmbGV4aWJsZSBhbmQgc2NhbGFibGUgZW52aXJvbm1lbnRzIHRoYXQgd2Ugc3VwcG9ydCBmb3IgY3VzdG9tZXJzIHRvZGF5LiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28sIGFzIHdlIHJldG9vbGVkIHRoZSBzeXN0ZW0gdG8gYWRhcHQgdG8gdGhlIGNoYW5nZWQgbWFya2V0IHdlIHdlcmUgaW4gYSBwb3NpdGlvbiB0byBhc2sg4oCcSG93IGRvIHdlIGRvIHRoaXMgaW4gYSB3YXkgdGhhdCBiZXR0ZXIgcG9zaXRpb25zIHVzIGZvciBpbmNyZW1lbnRhbCBjaGFuZ2U/4oCdIEl0IHdvdWxkIGJlIGRpZmZpY3VsdCB0byBvdmVyc3RhdGUgaG93IG11Y2ggdmFsdWUgdGhhdCBmaXZlIHllYXJzIG9mIGV4cGVyaWVuY2UgcHJvdmlkZWQgd2hlbiBkZXNpZ25pbmcgYSBzb2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdCBzb3VuZHMgd2VpcmQgYW5kIGdyb3NzbHkgdW5mYWlyIHRvIHNheSB0aGlzLCBidXQgbW9zdCBvZiB0aGUgdGltZSB3ZSBkb27igJl0IGV2ZW4ga25vdyB0aGF0IHdl4oCZcmUgbWFraW5nIGEgbW9udW1lbnRhbCBkZXNpZ24gZGVjaXNpb24gYmVjYXVzZSB0aGUgYWx0ZXJuYXRlIHBhdGggaGFzbuKAmXQgc2hvd24gdXAgeWV0LiBIb3cgZG8geW91IGd1YXJkIGFnYWluc3QgdGhpcz8mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7RGVmZXIsIGRlZmVyLCBkZWZlciZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUaGUgY29ycmVjdCBzb2x1dGlvbnMgaGF2ZSBhIGhhYml0IG9mIHJldmVhbGluZyB0aGVtc2VsdmVzIGlmIHlvdSBjYW4gZmluZCBhIHdheSB0byB3YWl0IGxvbmcgZW5vdWdoLiBUZWNobm9sb2d5IGdhaW5zIHRyYWN0aW9uIG9yIGRpZXMuIElmIHlvdSBjaG9zZSBhIGNvbnRhaW5lciBvcmNoZXN0cmF0aW9uIGVuZ2luZSBpbiAyMDE2LCB0aGVyZeKAmXMgYSByb3VnaGx5IDIwJSBjaGFuY2UgdGhhdCB5b3Ugd291bGQgaGF2ZSBjaG9zZW4gS3ViZXJuZXRlcy4gVGhhdCBtZWFucyBieSB0aGUgYmVnaW5uaW5nIG9mIDIwMTgsIGFsbW9zdCA4MCUgb2YgY29tcGFuaWVzIHdlcmUgc3dpdGNoaW5nLiBUaG9zZSBhcmUgbm90IGdyZWF0IG9kZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28gZGVmZXJyaW5nIGNhbiBiZSBnb29kLiBEZWZlcnJpbmcgdG8gdGhlIHBvaW50IG9mIGNyZWF0aW5nIGEgY3Jpc2lzIGlzIG5vdC4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7VGhpbmsgbGlrZSBhIHByb2R1Y3QgbWFuYWdlciZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3VyIGFyY2hpdGVjdHVyZSBpcyBhIGxlYWt5IGFic3RyYWN0aW9uLiBXaGlsZSBDaXJjbGVDSSBpcyBwcm9iYWJseSBhbiBleHRyZW1lIGV4YW1wbGUgb2YgdGhpcyBjYXNlIGR1ZSB0byB0aGUgYWNjZXNzIG91ciBjdXN0b21lcnMgaGF2ZSB0byBzeXN0ZW1zIGluIG91ciBwbGF0Zm9ybSwgdGhlcmUgaXMgYWx3YXlzIHNvbWUgaW1wbGljYXRpb24gZm9yIGN1c3RvbWVycyBvZiB0aGUgZGVjaXNpb25zIHlvdSBtYWtlIGluIGRlZmluaW5nIHlvdXIgYXJjaGl0ZWN0dXJlLiBSZWNvZ25pemluZyB0aGlzIGltcGFjdCBhbmQgYmVpbmcgYWJsZSB0byBjb2hlcmVudGx5IGRpc2N1c3MgYXBwcm9hY2hlcyBhbmQgYWx0ZXJuYXRpdmVzIGlzIGEgaHVnZSBhc3NldCB0aGF0IGFuIGVuZ2luZWVyIGNhbiBicmluZyB0byB0aGVpciBQTSBhbmQgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaGlsZSB3ZSB3ZXJlIHdpdG5lc3NpbmcgYWxsIG9mIHRoaXMgY2hhbmdlIGluIGhvdyBvdXIgY3VzdG9tZXJzIHdlcmUgYnVpbGRpbmcgc29mdHdhcmUsIG9uZSB0aGluZyB3ZSBpZ25vcmVkIGZvciB0b28gbG9uZyB3YXMgdGhlIHJpc2Ugb2YgRG9ja2VyLiBEb2NrZXIgZGlkbuKAmXQgZXZlbiBleGlzdCB3aGVuIENpcmNsZUNJIHN0YXJ0ZWQgaW4gMjAxMSwgdGhlbiBieSAyMDE0IGl0IHdhcyBldmVyeXdoZXJlLiBNYW55IG9mIG91ciBjdXN0b21lcnMgaGFkIHN0YXJ0ZWQgYnVpbGRpbmcgRG9ja2VyIGltYWdlcyBhcyBwYXJ0IG9mIHRoZWlyIGJ1aWxkIHRvIHByZXBhcmUgZm9yIGRlcGxveS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtEb2NrZXIgd2FzIG9yaWdpbmFsbHkgYnVpbHQgb24gdG9wIG9mIExYQywgYW5kIHRoYXQgbWVhbnQgaW4gdGhvc2UgZWFybHkgZGF5cyB3ZSBjb3VsZCBzdXBwb3J0IHRoZSB1c2Ugb2YgRG9ja2VyIGNvbW1hbmRzIHRvIGJ1aWxkIGltYWdlcyBhbmQgcHVzaCB0aGVtIHRvIHJlcG9zaXRvcmllcyBhbGwgaW5zaWRlIG9mIG9uZSBvZiBvdXIgTFhDIGNvbnRhaW5lcnMuIEluIDIwMTQsIERvY2tlciBsYXVuY2hlZCBzb21ldGhpbmcgY2FsbGVkIGxpYmNvbnRhaW5lciBhbmQgdGhleSBwdWxsZWQgYXBhcnQgdGhlIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBzeXN0ZW0gYW5kIGNyZWF0ZWQgZXhlY3V0aW9uIGRyaXZlcnMsIHdoaWNoIHNvb24gbGVkIHRvIHRoZSBkZXByZWNhdGlvbiBvZiB0aGUgTFhDIGRyaXZlci4gRGlzYXBwb2ludGluZywgYnV0IGl0IHN0aWxsIHdvcmtlZC4gVGhlbiBEb2NrZXIgZGVsZXRlZCBhbGwgTFhDIHN1cHBvcnQuIFRoYXQgd2FzIGJhZC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QWx3YXlzIHRoaW5rIGFib3V0IHVzZXJzJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVycyBhbmQgYXJjaGl0ZWN0cywgd2Ugc2F3IHRoaXMgY29taW5nLCBhbmQgZnJhbmtseSwgaXQgd2FzIHVuZGVyIHRoZSByYWRhciBvZiBvdXIgcHJvZHVjdCB0ZWFtLiBPdXIgbm9uLXRlY2huaWNhbCBwcm9kdWN0IGZvbGtzIGRpZG7igJl0IG5lY2Vzc2FyaWx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBidXQgb3VyIGVuZ2luZWVycyB3ZXJlIHRhbGtpbmcgYWJvdXQgaXQgZXZlcnkgZGF5LiBTbyBhcyBhbiBlbmdpbmVlciwgYW4gYXJjaGl0ZWN0LCBvciBhIGxlYWRlciBpbiB0ZWNobm9sb2d5LCB5b3UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBwcm9kdWN0IGFuZCB3b3JraW5nIHdpdGggeW91ciBwcm9kdWN0IG1hbmFnZXJzIHRvIGVuc3VyZSBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGUgaW1wbGljYXRpb25zIG9mIHRlY2huaWNhbCBjaG9pY2VzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0l04oCZcyBpbXBvcnRhbnQgdG8gc2VwYXJhdGUgdGhpcyBkaXNjdXNzaW9uIGZyb20gdGVjaG5pY2FsIGludmVzdG1lbnRzLiBUaGVyZSBpcyBhYnNvbHV0ZWx5IGEgcGxhY2UgZm9yIHRoaXMgdHlwZSBvZiBpbnZlc3RtZW50LCBhbmQsIGFuIGFyZ3VtZW50IHRoYXQgZnJhbWluZyB0aGVzZSBpbnZlc3RtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB5b3UgZnJhbWUgcHJvZHVjdCBpbnZlc3RtZW50cyBtYWtlcyBpdCBtdWNoIGVhc2llciB0byBtYWtlIHRyYWRlb2ZmIGRlY2lzaW9ucy4gSG93ZXZlciwgaWRlbnRpZnlpbmcgdGhlIGRpcmVjdGx5IGN1c3RvbWVyLXZpc2libGUgZmVhdHVyZSBpbXBhY3Qgb2YgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBtb3JlIGNvbW1vbmx5IGRpc2N1c3NlZCBpbXBhY3RzIG9mIGNvc3QsIHBlcmZvcm1hbmNlLCBzZWN1cml0eSwgZXRjLiZsdDsvcCZndDsKCiZsdDtwJmd0O0J1aWxkaW5nIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHlvdXIgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgdmFsdWUgYWNoaWV2ZWQgYnkgeW91ciBjdXN0b21lcnMgd2lsbCBwdXQgeW91IGluIGEgcG9zaXRpb24gdG8gbWFrZSBtb3JlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB3aGF0IGFuZCBob3cgdG8gYnVpbGQgYXMgeW91ciBidXNpbmVzcyBldm9sdmVzLiBUaGVuIHlvdSBjYW4gZm9jdXMgb24gZ2V0dGluZyBhaGVhZCBvZiB0aGF0IGV2b2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7S2VlcCB5b3VyIGhlYWQgdXAmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gQ2FuYWRpYW4gYW5kLCB1bnN1cnByaXNpbmdseSwgSSBncmV3IHVwIHBsYXlpbmcgaWNlIGhvY2tleS4gVGhyb3VnaG91dCBteSBjaGlsZGhvb2QsIEkgc3BlbnQgYW4gZW5kbGVzcyBhbW91bnQgb2YgdGltZSBhdCBwcmFjdGljZSBqdXN0IHNrYXRpbmc6IGZvcndhcmRzLCBiYWNrd2FyZHMsIHR1cm5pbmcsIHN0b3BwaW5nLCBmaWd1cmUgZWlnaHRzIGFyb3VuZCBjb25lcy4gVGhlbiBjYW1lIHN0aWNrIGhhbmRsaW5nLiBUaGUgaWRlYSB3YXMgdG8gaGF2ZSB0aGUgbW92ZW1lbnQgb24gdGhlIGljZSBiZWNvbWUgc2Vjb25kIG5hdHVyZSBzbyBJIGNvdWxkIGZvY3VzIG9uIHdoYXQgcmVhbGx5IG1hdHRlcmVkOiBzZWVpbmcgdGhlIHBsYXkgZGV2ZWxvcCwgZ2V0dGluZyBpbnRvIHNwYWNlLCBhbmQgdHJ5aW5nIHRvIHNjb3JlLiBNYWtlIHRoZSBmdW5kYW1lbnRhbHMgYWxtb3N0IGVmZm9ydGxlc3Mgc28geW91IGNhbiBwdXQgeW91ciBlbmVyZ3kgaW50byB0aGUgbm92ZWwgc3R1ZmYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gc29mdHdhcmUsIHdlIGhhdmUgYSBiYWQgdGVuZGVuY3kgdG8gbWFrZSB0aGUgZnVuZGFtZW50YWxzIGEgbG90IGhhcmRlciB0aGFuIHRoZXkgc2hvdWxkIGJlIGJ5IGFkb3B0aW5nIG5ldyB0ZWNobm9sb2d5IHRoYXQgd2UgdGhpbmsgaXMgZ29pbmcgdG8gYmUgZ2FtZSBjaGFuZ2luZywgYnV0IGVuZHMgdXAgaGF2aW5nIG1vZGVzdCB1cHNpZGUgaWYgYW55LiBUbyBtYWtlIHRoaW5ncyB3b3JzZSwgdGhlIGRvd25zaWRlIGlzIG9mdGVuIHVuYm91bmRlZCBhcyB3ZSBnZXQgb3VyIHRlYW1zIHVwIHRoZSBsZWFybmluZyBjdXJ2ZSwgZmluZCB1bnRlc3RlZCBlZGdlIGNhc2VzIGR1cmluZyBwcm9kdWN0aW9uIGluY2lkZW50cywgYW5kIGludmVudCBvdXIgb3duIOKAnGJlc3QgcHJhY3RpY2VzLuKAnSBBIHdvcmxkIHdoZXJlIFN0YWNrIE92ZXJmbG93IGhhcyBubyBhbnN3ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1doaWxlIHdl4oCZcmUgcHV0dGluZyB0aGlzIGVmZm9ydCBpbnRvIG91ciBub3ZlbCB0ZWNoLCB3ZeKAmXJlIG5vdCBmb2N1c2luZyBvbiBob3cgb3VyIHN5c3RlbXMgbmVlZCB0byBldm9sdmUgdG8gbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QSB0aW1lIHNpbXBsaWNpdHkgd291bGQgaGF2ZSBoZWxwZWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Q2lyY2xlQ0kgaXMgYSBDbG9qdXJlIHNob3AgYW5kLCBpbiBvdXIgZWFybHkgZGF5cywgd2UgZGVjaWRlZCB3ZeKAmWQgYmUgYmV0dGVyIGF0IGZyb250IGVuZCBkZXZlbG9wbWVudCBpZiB3ZSB1c2VkIHRoZSBzYW1lIGxhbmd1YWdlIHRoYXQgd2UgdXNlZCBpbiB0aGUgYmFja2VuZC4gU28gd2UgYWRvcHRlZCBPbSwgYSBDbG9qdXJlU2NyaXB0IHdyYXBwZXIgYXJvdW5kIFJlYWN0LiBBIGZldyB5ZWFycyBsYXRlciwgRGF2aWQgTm9sZW4sIHRoZSBwZXJzb24gd2hvIHN0YXJ0ZWQgT20sIGRlY2lkZWQgaGUgZGlkbuKAmXQgbGlrZSB0aGUgbW9kZWwgc28gaGUgcmVwbGFjZWQgaXQgd2l0aCBzb21ldGhpbmcgaW5jb21wYXRpYmxlIGNhbGxlZCBPbSBOZXh0LiBXZSB0cmllZCB0byBtaWdyYXRlIGluY3JlbWVudGFsbHkgdG8gT20gTmV4dCBhbmQgZW5kZWQgdXAgd2l0aCBhbiBvdmVybHkgY29tcGxleCBmcm9udGVuZCB3aXRoIHR3byBzdGF0ZSBtb2RlbHMgYW5kIG1hc3NpdmUgb3ZlcmhlYWQgdG8gZXZlcnkgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGVuZGVkIHVwIHJld3JpdGluZyBpdCBpbiBSZWFjdC4gSW4gcmV0cm9zcGVjdCwgT20gaGFkIGJvdGggaGlnaCByaXNrIGFuZCBoaWdoIGNvc3QgdG8gY2hhbmdlIGFuZCB3ZSBwYWlkIHRoZSBwcmljZS4gQW5kIHdlIHNwZW50IHRoYXQgdGltZSBsb29raW5nIGF0IG91ciBmZWV0LCBub3QgYWhlYWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm8gY29tcGFueSBoYXMgZXZlciB3b24gYmVjYXVzZSBvZiBhbiBhbWF6aW5nbHkgbm92ZWwgb3IgZXNvdGVyaWMgdGVjaG5vbG9neSBjaG9pY2UuIFRoZXJlIGlzIGFuIGVuZGxlc3MgbGlzdCwgaG93ZXZlciwgb2YgY29tcGFuaWVzIHRoYXQgaGF2ZSB3b24gYmVjYXVzZSB0aGV5IGNhbiBtb3ZlIHF1aWNrbHkgYW5kIHdpdGggYWdpbGl0eSwgYWRhcHRpbmcgdG8gY2hhbmdlIGFzIGl0IGhhcHBlbnMuIFRlY2hub2xvZ3kgc2hvdWxkIGJlIGFuIGFjY2VsZXJhdG9yIGhlbHBpbmcgdXMgbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4gV2VsbC11bmRlcnN0b29kLCBwcm9kdWN0aW9uLXRlc3RlZCB0b29scyBhcmUgZmFyIG1vcmUgbGlrZWx5IHRvIGZpdCB0aGF0IGJpbGwuIEFzIG15IGNvbGxlYWd1ZSBCZWFyIHNheXMsIOKAnElmIGEgdG9vbCBpc27igJl0IGhlbHBpbmcsIGl04oCZcyBub3QgYSB0b29sLCBpdOKAmXMgYSBjaG9yZS4gRHJvcCBpdC7igJ0mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7Q29uY2x1c2lvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtVbmZvcmVzZWVuIGNoYW5nZSBpcyB0b3Atb2YtbWluZCBmb3Igc28gbWFueSBvZiB1cyByaWdodCBub3csIGFuZCBpdOKAmXMgbW9yZSBvYnZpb3VzIHRoYW4gZXZlciB0aGF0LCBpbiBidXNpbmVzcywgbm9ib2R5IGNhbiBwcmVkaWN0IHRoZSBmdXR1cmUuIEl04oCZcyBhIHNhZmUgYmV0IHRoYXQgZm9sa3MgYXQgR00gZGlkbuKAmXQgc3RhcnQgdGhlIHllYXIgdGhpbmtpbmcgYWJvdXQgaG93IHRvIHVzZSB0aGVpciBmYWN0b3JpZXMgdG8gbWFrZSB2ZW50aWxhdG9ycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWluZyBwcmVwYXJlZCB0byBhZGFwdCBpbiB0aGUgZmFjZSBvZiBjaGFuZ2UgcmVxdWlyZXMgdGhpbmtpbmcgYWJvdXQgY2hhbmdlIGFzIGEgZHJpdmVyIGluIGV2ZXJ5dGhpbmcgeW91IGRvLiBXYXRjaCBob3cgeW91ciBtYXJrZXQgaXMgY2hhbmdpbmcgYW5kIHJlZmxlY3Q9IG9uIGhvdyB0aGF0IGltcGFjdHMgeW91ciBhcmNoaXRlY3R1cmUgc28gdGhhdCB5b3UgY2FuIG1ha2UgdGFyZ2V0ZWQsIGluY3JlbWVudGFsIGltcHJvdmVtZW50cyBpbiBpdHMgYWRhcHRhYmlsaXR5LiBUaGlzIHdpbGwgaGVscCBrZWVwIHlvdSBmb2N1c2VkIG9uIGV2b2x1dGlvbiB3aXRob3V0IHdhc3RpbmcgdGltZSBvciBtb25leSBvbiBhcmVhcyB0aGF0IHdvbuKAmXQgbmVlZCBpdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCbGFjayBTd2FuIGV2ZW50cyBhcmUgc28gdW51c3VhbCB0aGF0IHN0dWR5aW5nIHRoZSBzcGVjaWZpY3MgY2FuIGJlIGxvdyB2YWx1ZSwgYnV0IHRoZXkgcmVtaW5kIHVzIGhvdyBmYXIgcmVhbGl0eSBjYW4gYmUgZnJvbSBvdXIgcGxhbnMuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZW5naW5lZXJpbmcgbWFuYWdlcnMgY2FuIGVmZmVjdGl2ZWx5IHN1cHBvcnQgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWVuZ2luZWVyaW5nLW1hbmFnZXJzLWNhbi1lZmZlY3RpdmVseS1zdXBwb3J0LWVuZ2luZWVycy10ZWFtcy1hbmQtb3JnYW5pemF0aW9ucy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+V2VkLCAyOSBBcHIgMjAyMCAxNTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9ob3ctZW5naW5lZXJpbmctbWFuYWdlcnMtY2FuLWVmZmVjdGl2ZWx5LXN1cHBvcnQtZW5naW5lZXJzLXRlYW1zLWFuZC1vcmdhbml6YXRpb25zLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkxlbmEgUmVpbmhhcmQ8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIHR5cGljYWwgam9iIGRlc2NyaXB0aW9uIGZvciBtYW55IGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMgaXMgYWN0aW9uLXBhY2tlZC4gSXQgaXMgYSBtaXggb2YgaGFuZHMtb24gY29kaW5nLCB0ZWNobmljYWwgbGVhZGVyc2hpcCBhbmQgZGVjaXNpb24gbWFraW5nLCBwcm9jZXNzIGFuZCBwcm9qZWN0IG1hbmFnZW1lbnQsIHByb2R1Y3Qgb3ZlcnNpZ2h0LCBwZW9wbGUgbWFuYWdlbWVudCwgZmluZGluZyBhbmQgaGlyaW5nIHRhbGVudCDigKYgdGhlIGxpc3QgZ29lcyBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiBvdXIgd29yaywgd2UgZGVhbCB3aXRoIGJvdGggdGVjaG5pY2FsIGFuZCBwZW9wbGUgc3lzdGVtczogd2Ugc3VwcG9ydCBpbmRpdmlkdWFsIGVuZ2luZWVyc+KAmSBncm93dGg7IGhlbHAgdGVhbXMgYmVjb21lIHN1Y2Nlc3NmdWw7IGFuZCBtYWtlIHRoZSBvcmdhbml6YXRpb24gbW9yZSBwcm9kdWN0aXZlLCBmdW5jdGlvbmFsLCBhbmQgaW5ub3ZhdGl2ZS4gQWJvdmUgYWxsLCBhbiBlbmdpbmVlcmluZyBtYW5hZ2VyIGlzIGEgc2VydmljZSBvciBzdXBwb3J0IHJvbGUgYWNyb3NzIHRoZXNlIHZhcmlvdXMgbGF5ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1BlcmhhcHMgbW9zdCBmYXNjaW5hdGluZyBhbmQgZGlmZmljdWx0IGlzIHRoZSBoaWdoLWxldmVsIG9mIGFtYmlndWl0eSB0aGF0IGNvbWVzIHdpdGggZW5naW5lZXJpbmcgbWFuYWdlbWVudC4gTWFueSBwcm9ibGVtcyBvciBxdWVzdGlvbnMgZG9u4oCZdCBoYXZlIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLiBUaGVyZSBhcmVu4oCZdCBhYnNvbHV0ZSBhbnN3ZXJzIHRvIHdoYXQgaXQgbWVhbnMgdG8gYmUgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgZWl0aGVyLCBidXQgdGhlcmUgYXJlIGNlcnRhaW4gdmFsdWVzIGFuZCBndWlkZXBvc3RzIHRvIGZvbGxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgbG9vayBhdCB3aGF0IGNhbiBzaGFwZSBvdXIgdGhpbmtpbmcgYWJvdXQgb3VyIHJvbGUgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgYW5kIGhvdyB0byBlZmZlY3RpdmVseSBzdXBwb3J0IGluZGl2aWR1YWwgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1doYXQgZG8gZW5naW5lZXJzIG5lZWQgdG8gdGhyaXZlIGF0IHdvcms/Jmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SXQgaGVscHMgdG8gc3RhcnQgc2hhcGluZyBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IHJvbGVzIGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCBlbmdpbmVlcnMgbmVlZCwgYW5kIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGV5IHRocml2ZS4gUmVzZWFyY2ggZnJvbSBwZXJmb3JtYW5jZSBjb2FjaCBhbmQgdHJhaW5lciBQYWxvbWEgTWVkaW5hIGV4cG9zZXMgc2l4IGNvcmUgbmVlZHMgaHVtYW5zIGhhdmUgKGluY2x1ZGluZyBhdCB3b3JrKS4gU2hlIGNhbGxzIHRoaXMgcmVzZWFyY2ggdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGFsb21hbWVkaW5hLmNvbS9iaWNlcHMmcXVvdDsmZ3Q7QklDRVBTIG1vZGVsJmx0Oy9hJmd0OzombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7QmVsb25naW5nLiZsdDsvc3Ryb25nJmd0OyBBcyBodW1hbnMsIHdlIHN0cml2ZSB0byBiZSBwYXJ0IG9mIGEgY29tbXVuaXR5IG9mIGxpa2UtbWluZGVkIHBlb3BsZSB3aGVyZSB3ZSB1bmRlcnN0YW5kIGFuZCBzdXBwb3J0IGVhY2ggb3RoZXIuIFdlIGFsc28gd2FudCB0byBmZWVsIGFzIGlmIHdlIGFyZSBub3QgYmVpbmcgZGlzY3JpbWluYXRlZCBhZ2FpbnN0IG9yIG1hcmdpbmFsaXplZC4gQmVsb25naW5nIGlzIHJlYWxseSBpbXBvcnRhbnQgdG8gbWUgcGVyc29uYWxseTogSSBsb3ZlIHdvcmtpbmcgYXMgcGFydCBvZiBhIGRpc3RyaWJ1dGVkIHRlYW0sIGJ1dCBJIGFsc28gcmVhbGx5IGVuam95IHNlZWluZyBwZW9wbGUgaW4gcGVyc29uIGV2ZXJ5IG9uY2UgaW4gYSB3aGlsZS4gSXQgbWFrZXMgbWUgZmVlbCBtb3JlIGNvbm5lY3RlZCB0byB0aGVtLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7SW1wcm92ZW1lbnQuJmx0Oy9zdHJvbmcmZ3Q7IFdlIGFsc28gc2VlayB0byBjb250aW51b3VzbHkgbGVhcm4sIGltcHJvdmUsIGFuZCBncm93IGluIGFyZWFzIHRoYXQgbWF0dGVyIHRvIHVzLCBhcyB3ZWxsIGFzIHRvIG91ciB0ZWFtIG9yIGNvbXBhbnkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtDaG9pY2UuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8gaGF2ZSBjaG9pY2UsIGNvbnRyb2wsIGFuZCBhdXRvbm9teSBvdmVyIGltcG9ydGFudCBwYXJ0cyBvZiBvdXIgbGl2ZXMuIEluIG9uZSBvZiBteSBwcmV2aW91cyByb2xlcywgSSB0b29rIG9uIGEgbG90IG9mIHdvcmsgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLiBCdXQgdWx0aW1hdGVseSwgdGhlIGNvbnRyb2wgSSBoYWQgb3ZlciBteSBkb21haW4gd2FzIGxpbWl0ZWQgZHVlIHRvIG9yZ2FuaXphdGlvbmFsIGlzc3VlcyDigJMgd2hpY2ggbGVkIG1lIHRvIGxlYXZlIHRoZSBjb21wYW55LiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7RXF1YWxpdHkuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8ga25vdyB0aGF0IG91ciBhY2Nlc3MgdG8gaW5mb3JtYXRpb24sIG1vbmV5LCB0aW1lLCBhbmQgb3RoZXIgcmVzb3VyY2VzIGlzIGZhaXIgYW5kIGVxdWFsIGZvciBldmVyeW9uZSDigJMgbm90IGp1c3QgZm9yIG91cnNlbHZlcywgYnV0IGFsc28gZm9yIHRoZSBwZW9wbGUgYXJvdW5kIHVzLiBFdmVyeW9uZeKAmXMgbmVlZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZXF1YWxseSBpbXBvcnRhbnQuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtQcmVkaWN0YWJpbGl0eS4mbHQ7L3N0cm9uZyZndDsgV2UgbG9vayBmb3IgY2VydGFpbnR5LCBzYWZldHksIGFuZCBzdGFiaWxpdHkgaW4gb3VyIGxpdmVzLiBXZSBhbHNvIHdhbnQgZ29hbHMsIHN0cmF0ZWd5LCBhbmQgZGlyZWN0aW9uIHRvIGJlIGNvbnNpc3RlbnQg4oCTIGFuZCB0byBub3QgY2hhbmdlIHRvbyBxdWlja2x5LiBJ4oCZdmUgYmVlbiBsZWFkaW5nIHRlYW1zIGluIGZhc3QtZ3Jvd2luZyBzdGFydHVwcyBmb3IgdGhlIGxhc3QgY291cGxlIG9mIHllYXJzLCBhbmQgd2hlbiB0aGVyZeKAmXMgYSBsb3Qgb2YgY2hhbmdlIGhhcHBlbmluZywgaXTigJlzIGEgY2hhbGxlbmdlIHRvIGluc3RpbGwgcHJlZGljdGFiaWxpdHkgaW4gdGVhbXMuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtTaWduaWZpY2FuY2UuJmx0Oy9zdHJvbmcmZ3Q7IERlZXAgZG93biwgYWxsIG9mIHVzIHNlZWsgbWVhbmluZywgaW1wb3J0YW5jZSwgYW5kIHN0YXR1cy4gV2UgYWxzbyB3YW50IHRvIGJlIGFwcHJlY2lhdGVkIGZvciBvdXIgd29yayBieSBwZW9wbGUgd2hvc2Ugb3BpbmlvbnMgbWVhbiBzb21ldGhpbmcgdG8gdXMuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0lmIG91ciBjb3JlIG5lZWRzIGFyZSB0aHJlYXRlbmVkLCBwZW9wbGUgcmVzb3J0IHRvIGZpZ2h0LW9yLWZsaWdodCBtb2RlcyBvZiByZWFjdGlvbiwgd2hpY2ggYXJlIHZlcnkgc3RyZXNzZnVsLiBUaGUgZmFpbHVyZSB0byBtZWV0IGNvcmUgbmVlZHMgaGFzIGhpZ2ggY29zdHMgZm9yIG9yZ2FuaXphdGlvbnMgYnkgaGFybWluZyBwZW9wbGUgb24gb3VyIHRlYW1zLiBTbyBob3cgY2FuIGVuZ2luZWVyaW5nIG1hbmFnZXJzIHB1dCB0aGUgQklDRVBTIG1vZGVsIGludG8gYWN0aW9uIHRvIGhlbHAgdGhlaXIgdGVhbXMgdGhyaXZlPyZsdDsvcCZndDsKCiZsdDtoMiZndDtVc2luZyB0cnVzdC1iYXNlZCByZWxhdGlvbnNoaXBzIHRvIGhlbHAgZW5naW5lZXJzIGdyb3cmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgZm91bmRhdGlvbiBvZiBiZWluZyBhIGdvb2QgZW5naW5lZXJpbmcgbWFuYWdlciBpcyBnZXR0aW5nIHRvIGtub3cgb3VyIHRlYW1tYXRlcyBhbmQgdW5kZXJzdGFuZGluZyB3aGF0IGlzIGltcG9ydGFudCB0byB0aGVtLiBIZXJlIGFyZSBhIGZldyBwbGFjZXMgdG8gc3RhcnQgYnVpbGRpbmcgdHJ1c3Qgd2l0aGluIHlvdXIgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0FzayBxdWVzdGlvbnMuJmx0Oy9zdHJvbmcmZ3Q7IE9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCB0b29scyBtYW5hZ2VycyBoYXZlIGlzIGFza2luZyBnb29kIHF1ZXN0aW9ucy4gVGhlIGJhc2lzIGZvciBkb2luZyBvdXIgam9icyB3ZWxsIGlzIGxpc3RlbmluZywgb2JzZXJ2aW5nLCB0YWtpbmcgbm90ZSBvZiB3aGF0IG1vdGl2YXRlcyBvdXIgdGVhbW1hdGVzLCBhbmQgcmVhbGx5IGRpZ2dpbmcgaW50byB0aGVpciByZXNwb25zZXMgdG8gb3VyIHF1ZXN0aW9ucy4gSSB1c3VhbGx5IGdhdGhlciBxdWVzdGlvbnMgYmVmb3JlIEkgbWVldCB3aXRoIG15IHRlYW1tYXRlcyBvbmUtb24tb25lLCBzbyBJIGFtIHByZXBhcmVkIGFuZCBJIGNhbiBndWlkZSB0aGUgY29udmVyc2F0aW9uIHRvd2FyZHMgdW5kZXJzdGFuZGluZyB0aGVtIGJldHRlci4gT3ZlciB0aW1lLCBJIGhhdmUgYnVpbHQgYSBraXQgb2Ygb25lLW9uLW9uZSBxdWVzdGlvbnMgdGhhdCBJIHB1bGwgb3V0IHdoZW4gSSBuZWVkIHNvbWUgaW5zcGlyYXRpb24gZm9yIHRoZXNlIGNvbnZlcnNhdGlvbnMuIEFza2luZyBxdWVzdGlvbnMgaGVscHMgdXMgYWRqdXN0IG91ciBsZWFkZXJzaGlwIHN0eWxlIHRvIHRoZSBwZW9wbGUgd2UgYXJlIGxlYWRpbmcuIEl0IGFsc28gZW5zdXJlcyB0aGF0IHRoZXkgZmVlbCB1bmRlcnN0b29kIGFuZCBoZWFyZCwgd2hpY2ggYXJlIHJlYWxseSBpbXBvcnRhbnQgcGlsbGFycyBvZiBpbmNsdXNpb24gYW5kIGJlbG9uZ2luZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0JlIGN1cmlvdXMuJmx0Oy9zdHJvbmcmZ3Q7IFBlb3BsZSBhcmUgZnVsbCBvZiBzdXJwcmlzZXMsIGFuZCBzb21ldGltZXMgb3VyIHRlYW1tYXRlc+KAmSByZWFjdGlvbnMgbWF5IGJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBleHBlY3RlZC4gSSBvbmNlIHJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIGVuZ2luZWVyIG9uIG15IHRlYW0gd2hvIHdhcyBkZWVwbHkgdXBzZXQgYWJvdXQgdGhlIHNwZWNpZmljIHdvcmRpbmcgdXNlZCBpbiBhIHByb2R1Y3QtcmVsZWFzZSBub3RlIHRvIGN1c3RvbWVycy4gQXQgZmlyc3QgSSBkaWQgbm90IHVuZGVyc3RhbmQgdGhlaXIgc3Ryb25nIHJlYWN0aW9uLiBCdXQgd2hlbiB3ZSB0YWxrZWQsIEkgbGVhcm5lZCB0aGUgZW5naW5lZXIgaGFkIGJlZW4gb3ZlcnJ1bGVkIGJ5IHNvbWVvbmUgd2l0aCBtb3JlIHBvd2VyLCBtYWtpbmcgdGhlbSBmZWVsIGhlbHBsZXNzLCBhbmQgdGhyZWF0ZW5pbmcgdGhlaXIgY29yZSBuZWVkIGZvciBjaG9pY2UgYW5kIGVxdWFsaXR5LiZsdDsvcCZndDsKCiZsdDtwJmd0O1doYXQgbWFuYWdlcnMgbWlnaHQgcGVyY2VpdmUgYXMgbm8gYmlnIGRlYWwgY2FuIGJlIGVub3Jtb3VzIHRocmVhdHMgdG8gb3RoZXIgcGVvcGxlLiBDYXNlcyB3aGVyZSB3ZeKAmXJlIHN1cnByaXNlZCBieSBvdXIgdGVhbW1hdGVz4oCZIHJlYWN0aW9ucyBhcmUgZ29vZCBvcHBvcnR1bml0aWVzIHRvIGZvY3VzIG9uIGh1bWFuLWNlbnRyaWMgcmVzcG9uc2VzLCBsaWtlIGdpdmluZyBwZW9wbGUgdGhlIG9wcG9ydHVuaXR5IHRvIHRhbGsgdGhyb3VnaCB0aGVpciBmZWVsaW5ncy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0Nvbm5lY3QgdG8gdGhlIGJpZ2dlciBwaWN0dXJlLiZsdDsvc3Ryb25nJmd0OyBDcmVhdGluZyBhbiBpbXBhY3QgaXMgYSB2ZXJ5IGdvb2QgbW90aXZhdG9yIGZvciBhbGwgb2YgdXMsIHNvIGhlbHBpbmcgZW5naW5lZXJzIHVuZGVyc3RhbmQgaG93IHRoZWlyIHdvcmsgY29ubmVjdHMgdG8gdGhlIGJpZ2dlciBwaWN0dXJlIChob3cgaXQgaGVscHMgdXNlcnMgb3Igc3VwcG9ydHMgb3RoZXIgdGVhbXMpIGlzIGFuIGV4dHJlbWVseSBpbXBvcnRhbnQgYW5kIHN0cmF0ZWdpYyBza2lsbCBmb3IgbWFuYWdlcnMuIFdoaWxlIGdvYWwtc2V0dGluZyBmcmFtZXdvcmtzIGxpa2UgT0tScyBjYW4gaGVscCwgaXQgaXMgYWxzbyBjcnVjaWFsIHRvIGFsaWduIGVuZ2luZWVyaW5nIGluaXRpYXRpdmVzIHdpdGggaGlnaGVyLWxldmVsIGdvYWxzLCBhbmQgY29ubmVjdCB0aGVtIGNsZWFybHkgd2l0aCB1c2VyIHZhbHVlLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7SW52b2x2ZSBlbmdpbmVlcnMgaW4gZGVjaXNpb24gbWFraW5nLiZsdDsvc3Ryb25nJmd0OyBGZWVsaW5nIHRoYXQgZGVjaXNpb25zIGFyZSBmYWlyIGFuZCBlcXVpdGFibGUgaXMgYW4gaW1wb3J0YW50IGNvbXBvbmVudCBvZiB0aGUgQklDRVBTIG1vZGVsLiBXaGVuIHdlIG1ha2UgZGVjaXNpb25zLCBpdCBpcyBoZWxwZnVsIHRvIGFzayBldmVyeW9uZSBmb3IgdGhlaXIgb3BpbmlvbnMgZmlyc3QsIGFuZCB0YWtlIHRoZWlyIG9waW5pb25zIGludG8gYWNjb3VudC4gSXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBnbyB3aXRoIHdoYXQgZXZlcnlvbmUgd2FudHMuIEJ1dCB3ZSBjYW4gc3RpbGwgZG8gYSBnb29kIGpvYiBhdCBjb250ZXh0dWFsaXppbmcgdGhlIGRlY2lzaW9ucyB3ZSBtYWtlLCBhbmQgaGVscGluZyBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IHRoZWlyIGZlZWRiYWNrIHdhcyBjb25zaWRlcmVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7R2l2ZSBmZWVkYmFjayBmb3IgZ3Jvd3RoLiZsdDsvc3Ryb25nJmd0OyBPbmUgb2YgdGhlIGJlc3QgdGhpbmdzIHdlIGdldCB0byBkbyBhcyBlbmdpbmVlcmluZyBtYW5hZ2VycyBpcyBzdXBwb3J0IGVuZ2luZWVyc+KAmSBncm93dGguIEdpdmUgZmVlZGJhY2sgcmVndWxhcmx5IHRvIGhlbHAgdGhlIHBlb3BsZSBvbiB5b3VyIHRlYW0gdW5kZXJzdGFuZCB3aGVyZSB0aGV5IGFyZSBhdCBhbmQgZ3JvdyDigJMgYnkgY291cnNlLWNvcnJlY3Rpbmcgd2hlcmUgbmVlZGVkLCBhcyB3ZWxsIGFzIGJ5IGRvaW5nIG1vcmUgaW4gdGhlIGFyZWFzIGluIHdoaWNoIHRoZXkgYXJlIGFscmVhZHkgZG9pbmcgZ3JlYXQuIE1hbmFnZXJzIG5lZWQgZmVlZGJhY2sgYXMgd2VsbDogaXTigJlzIGltcG9ydGFudCB0byByZWd1bGFybHkgYXNrIHlvdXIgdGVhbSBmb3IgZmVlZGJhY2sgc28geW91IGNhbiBtYWtlIGFkanVzdG1lbnRzLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Q29hY2ggZW5naW5lZXJzLiZsdDsvc3Ryb25nJmd0OyBDb2FjaGluZyBoZWxwcyBwZW9wbGUgZmluZCBhbnN3ZXJzIHRoZW1zZWx2ZXMsIGltcHJvdmVzIHRoZWlyIHByb2JsZW0tc29sdmluZyBhbmQgbGVhZGVyc2hpcCBza2lsbHMsIGFuZCBpbmNyZWFzZXMgbGVhcm5pbmcsIHJlc2lsaWVuY2UsIGFuZCBzZWxmLW1hbmFnZW1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTcG9uc29yIGVuZ2luZWVycy4mbHQ7L3N0cm9uZyZndDsgVGhpbmsgYmFjayBvbiB5b3VyIGNhcmVlciwgYW5kIHdoZXRoZXIgeW91IGhhdmUgaGFkIGEgbWVudG9yIHdobyBjb25uZWN0ZWQgeW91IHdpdGggc29tZW9uZSwgcHV0IHlvdXIgbmFtZSBmb3J3YXJkLCBhbmQgdXNlZCB0aGVpciBpbmZsdWVuY2UgdG8gbWFrZSBhIGRpZmZlcmVuY2UgaW4geW91ciBjYXJlZXIuIEJlIHRoYXQgcGVyc29uIGZvciBzb21lb25lIGVsc2U6IGludmVzdCBpbiB0aGVpciBncm93dGgsIGxpZnQgdGhlbSB1cCwgYW5kIHB1dCB5b3VyIHdlaWdodCBiZWhpbmQgdGhlaXIgc3VjY2Vzcy4gU3VwcG9ydGluZyB5b3VyIHRlYW3igJlzIHN1Y2Nlc3MgY2FuIG1ha2UgYSByZWFsIGRpZmZlcmVuY2UgZm9yIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhpcyBpcyB0aGUgZm91bmRhdGlvbiBvZiBvdXIgd29yayBhcyBlbmdpbmVlcmluZyBtYW5hZ2Vycy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RHJpdmluZyBhIGN1bHR1cmUgb2YgdHJ1c3QgYW5kIGNvbnRpbnVvdXMgaW1wcm92ZW1lbnQgb24gdGVhbXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgbmV4dCBpbXBvcnRhbnQgYnVpbGRpbmcgYmxvY2sgaW4gb3VyIHdvcmsgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgaXMgdGhlIHRlYW0uIEFjY29yZGluZyB0byByZXNlYXJjaCwgaGlnaC1wZXJmb3JtaW5nIHRlYW1zIG5lZWQgdGhlIGZvbGxvd2luZyBlbGVtZW50cy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7UHN5Y2hvbG9naWNhbCBzYWZldHkuJmx0Oy9zdHJvbmcmZ3Q7IFRoaXMgaXMgYWJvdXQgYmVsaWV2aW5nIHRoYXQgd2Ugd2lsbCBub3QgYmUgcmVqZWN0ZWQsIGFuZCBmZWVsaW5nIGZyZWUgdG8gZXhwcmVzcyBvdXIgd29yay1yZWxhdGVkIHRob3VnaHRzIGFuZCBmZWVsaW5ncyB0byB0aGUgcGVvcGxlIGFyb3VuZCB1cy4gSXQgYWxzbyBtZWFucyBiZWxpZXZpbmcgdGhhdCBvdGhlcnMgd29u4oCZdCB0aGluayBsZXNzIG9mIHVzIGlmIHdlIG1ha2UgYSB3ZWxsLWludGVudGlvbmVkIG1pc3Rha2Ugb3IgYXNrIGZvciBoZWxwLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7U3RydWN0dXJlIGFuZCBjbGFyaXR5LiZsdDsvc3Ryb25nJmd0OyBFdmVyeW9uZSBvbiB0aGUgdGVhbSBzaG91bGQgdW5kZXJzdGFuZCBleHBlY3RhdGlvbnMsIGdvYWxzLCBhbmQgYWNjb3VudGFiaWxpdHkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtNZWFuaW5nIGFuZCBpbXBhY3QuJmx0Oy9zdHJvbmcmZ3Q7IEhpZ2gtcGVyZm9ybWluZyB0ZWFtcyBmaW5kIGEgc2Vuc2Ugb2YgcHVycG9zZSBpbiB0aGVpciB3b3JrLCBhbmQga25vdyB0aGF0IHRoZWlyIHdvcmsgaGFzIGFuIGltcGFjdC4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7THVja2lseSBmb3IgbWFuYWdlcnMsIHRoaXMgcmVzZWFyY2ggbmVhdGx5IGFsaWducyB3aXRoIHRoZSBCSUNFUFMgbW9kZWwuIEFsbCBodW1hbiBjb3JlIG5lZWRzIGFyZSByZXByZXNlbnRlZCBhbmQgaGF2ZSBpbXBhY3QgYXQgdGhlIHRlYW0gbGV2ZWwgYXMgd2VsbC4gQnkgdW5kZXJzdGFuZGluZyBhbmQgcmVzcG9uZGluZyB0byBwZW9wbGXigJlzIG1vdGl2YXRpb25zLCBsZWFkZXJzIGNyZWF0ZSB0aGUgYmFzaXMgZm9yIHRlYW1zICB0byBleHByZXNzIHRoZW1zZWx2ZXMg4oCTIGFuZCBwcm92aWRlIHRoZSBzdHJ1Y3R1cmUsIG1lYW5pbmcsIGFuZCBpbXBhY3QgdGhleSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgdHJ1c3QuJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBmaXJzdCBzdGVwIGluIGNyZWF0aW5nIHN0cnVjdHVyZSBpcyBidWlsZGluZyByZWxhdGlvbnNoaXBzLiBGb3Igb3VyIGRpc3RyaWJ1dGVkIHRlYW1zIGF0IENpcmNsZUNJLCB3ZeKAmXZlIGJ1aWx0IGRpZmZlcmVudCBzdHJ1Y3R1cmVzIHRvIGhlbHAgdGVhbW1hdGVzIGRvIHRoYXQsIHN1Y2ggYXMgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucyBhbmQgZW5naW5lZXJpbmcgdGFsa3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTdHJ1Y3R1cmUgYXJvdW5kIGhvdyB3ZSBjb2xsYWJvcmF0ZS4mbHQ7L3N0cm9uZyZndDsgT3VyIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0kgaGFzIGRvdWJsZWQgaW4gc2l6ZSBmb3IgdGhyZWUgeWVhcnMgaW4gYSByb3cuIE92ZXIgdGhpcyB0aW1lLCB3ZeKAmXZlIG1vdmVkIHRvIGEgbW9yZSBzdHJlYW1saW5lZCBlbmdpbmVlcmluZyBkZWxpdmVyeSBwcm9jZXNzIGZvciBhbGwgdGVhbXMuIEJ1dCB3ZSBzdGlsbCBsZWF2ZSBpdCB0byB0aGUgdGVhbXMgdG8gZGVjaWRlIGhvdyB0byBpbXBsZW1lbnQgdCBkYXktdG8tZGF5IHByb2Nlc3NlcywgaW5jbHVkaW5nIGRhaWx5IHN0YW5kdXAgbWVldGluZ3MsIHBsYW5uaW5nIHNlc3Npb25zLCBvciBjb2xsYWJvcmF0aW9uLiBFdmVyeSB0ZWFtIGhhcyBzcGVjaWZpYyBuZWVkcywgYW5kIHRoZXkga25vdyBiZXN0IGhvdyB0byBhZGRyZXNzIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtSZW1vdmUgYmxvY2tlcnMuJmx0Oy9zdHJvbmcmZ3Q7IFN0cnVjdHVyZXMgY2FuIGFsc28gaGVscCBtaXRpZ2F0ZSB0aGUgaW1wYWN0IG9mIGdldHRpbmcgYmxvY2tlZCBhdCB3b3JrLiBXZSBhbGwga25vdyBob3cgZnJ1c3RyYXRpbmcgaXQgaXMgdG8gYmUgc3R1Y2suIFB1dHRpbmcgdXAgcGF0aHdheXMgdG8gaGVscCBwZW9wbGUgZ2V0IHVuYmxvY2tlZCBjYW4gYmUgcmVhbGx5IGltcG9ydGFudCDigJMgZm9yIGV4YW1wbGUsIHNldHRpbmcgdXAgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucywgaW52ZXN0aW5nIGluIHNlbGYtc2VydmUgaW5mb3JtYXRpb24gYWNjZXNzLCBzdXBwb3J0aW5nIGVhY2ggb3RoZXIgYWNyb3NzIHRlYW1zLCBwdXR0aW5nIHVwIGVzY2FsYXRpb24gcGF0aHMgZm9yIHBlb3BsZSB0byBnZXQgaGVscCB3aGVuIHRoZXkgbmVlZCBpdCwgb3IgaGVscGluZyBwZW9wbGUgc3VwcG9ydCBlYWNoIG90aGVyIHRocm91Z2gga25vd2xlZGdlLXNoYXJpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtDb250aW51b3VzbHkgaW1wcm92ZS4mbHQ7L3N0cm9uZyZndDsgV2UgY2FuIHVzZSByZXRyb3NwZWN0aXZlcyB0byBkaXNjdXNzIGFuZCBpbXByb3ZlIGhvdyB3ZSB3b3JrIHRvZ2V0aGVyLiBCbGFtZWxlc3MgcG9zdG1vcnRlbXMgYXJlIGFsc28gYSBncmVhdCB0b29sIHRvIGhlbHAgdW5kZXJzdGFuZCBwcm9ibGVtcyBhbmQgZHJpdmUgdG93YXJkcyBzb2x1dGlvbnMuIENvZGUgcmV2aWV3cywgbWVudG9yaW5nLCBvciBrbm93bGVkZ2Ugc2hhcmluZyBjYW4gaGVscCB0ZWFtIG1lbWJlcnMgbGVhcm4gZnJvbSBlYWNoIG90aGVyLiBUaGUgd2F5IHdlIHRhbGsgYWJvdXQgbGVhcm5pbmcgbWF0dGVycyDigJMgZXNwZWNpYWxseSB0aGUgd2F5IHdlIGRpc2N1c3MgbWlzdGFrZXMuIFRoZXNlIGRlY2lzaW9ucyB3aWxsIGZ1bmRhbWVudGFsbHkgc2hhcGUgdGhlIGN1bHR1cmUgb2Ygb3VyIHRlYW1zLCBhbmQgZGV0ZXJtaW5lIHdoZXRoZXIgcGVvcGxlIGZlZWwgc2FmZSBvciB0aHJlYXRlbmVkIGluIHRoZWlyIGNvcmUgbmVlZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtEcml2ZSB0b3dhcmQgYWxpZ25tZW50LiZsdDsvc3Ryb25nJmd0OyBDb21tdW5pY2F0ZSBzdHJhdGVneSwgZGlyZWN0aW9uLCBhbmQgcmVsZXZhbnQgdGFjdGljYWwgZGV0YWlscyB0byBvdXIgdGVhbXMg4oCTIGFuZCByZW1lbWJlciBpdOKAmXMgYWxtb3N0IGltcG9zc2libGUgdG8gb3Zlci1jb21tdW5pY2F0ZSB0aGVzZSBkZXRhaWxzLiBBbHdheXMgcmVwZWF0IHdoYXTigJlzIGltcG9ydGFudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBlbmdpbmVlcmluZyBtYW5hZ2Vycywgd2UgYXJlIGxpa2UgbW9ydGFyOiBXZSBjb25uZWN0IHN0cnVjdHVyZXMsIHRlYW1zLCBhbmQgcGVvcGxlLiBXZSBob2xkIHRoZW0gdG9nZXRoZXIsIGJ1dCBhbHNvIGlkZW50aWZ5IGFuZCBmaWxsIGdhcHMgYXMgbmVlZGVkLiBIYW5kbGluZyBhbWJpZ3VpdHkgaXMgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgZGlmZmljdWx0IGFzcGVjdHMgb2YgZW5naW5lZXJpbmcgbWFuYWdlbWVudC4uIEZvciBhIGxvdCBvZiB3b3JrIGluIG91ciBmaWVsZCwgdGhlcmUgYXJlIG5vIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLCBsZXQgYWxvbmUgcmVzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T3VyIHdvcmsgaXNu4oCZdCBzbyBtdWNoIGFib3V0IHVzOyBpdOKAmXMgYWJvdXQgdGhlIHBlb3BsZSwgdGVhbXMsIGFuZCBvcmdhbml6YXRpb25zIHdlIHN1cHBvcnQuIFdlIGJ1aWxkIHN0cnVjdHVyZXMgdG8gaGVscCBvdGhlcnMgc2hpbmUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1N1cHBvcnRpbmcgb3JnYW5pemF0aW9uYWwgY2hhbmdlJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7TGFzdGx5LCBjcmVhdGluZyBlbnZpcm9ubWVudHMgaW4gd2hpY2ggZW5naW5lZXJzIGNhbiB0aHJpdmUgaXMgYWJvdXQgc3VwcG9ydGluZyBvdXIgb3JnYW5pemF0aW9uLiBXZSBuZWVkIHRvIHVzZSBvdXIgcG93ZXIgYXMgbWFuYWdlcnMgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLCBubyBtYXR0ZXIgdGhlIHNpemUgb2Ygb3VyIGJ1c2luZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtBZHZvY2F0ZSBmb3IgY2hhbmdlLiZsdDsvc3Ryb25nJmd0OyBUbyBiZSBlZmZlY3RpdmUgYXMgbWFuYWdlcnMsIHdlIG5lZWQgdG8gcHVzaCBmb3Igb3JnYW5pemF0aW9uYWwgY2hhbmdlIHRvIGltcHJvdmUgdGhlIGxhcmdlciBzdHJ1Y3R1cmVzIGFyb3VuZCB1cy4gRm9yIGV4YW1wbGUsIHdlIG1heSBuZWVkIHRvIGFkdm9jYXRlIGZvciBtb3JlIGNsYXJpdHkgYXJvdW5kIGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMsIGhhdmUgY29udmVyc2F0aW9ucyBhYm91dCB3aGF0IGVuZ2luZWVyaW5nIG1hbmFnZW1lbnQgc2hvdWxkIGJlIGxpa2UgaW4gb3VyIGNvbXBhbnksIGFuZCBkZXRlcm1pbmUgcmVxdWlyZW1lbnRzIGZvciBoaXJpbmcgZW5naW5lZXJpbmcgbWFuYWdlcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtNYW5hZ2UgdXAuJmx0Oy9zdHJvbmcmZ3Q7IE1hbmFnaW5nIG91ciBvd24gbWFuYWdlcnMgaXMgYSB1c2VmdWwgYnV0IGRpZmZpY3VsdCBza2lsbC4gRHJpdmluZyBvcmdhbml6YXRpb25hbCBjaGFuZ2UgYWxzbyBtZWFucyBtYWtpbmcgc3VyZSB0aGF0IG91ciBlbmdpbmVlcnPigJkgY29uY2VybnMgYXJlIGhlYXJkIGF0IHRoZSBoaWdoZXN0IGxldmVscywgYW5kIHRoYXQgd2UgdXNlIG91ciBwb3dlciB0byBtYWtlIHN1cmUgZW5naW5lZXJzIGhhdmUgYSB2b2ljZSBpbiB0aGUgcmVzdCBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgZnJhbWV3b3JrcyBhbmQgc3RhbmRhcmRzLiZsdDsvc3Ryb25nJmd0OyBXaGlsZSBpdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIG1ha2Ugcm9vbSBmb3IgaW5kaXZpZHVhbCBuZWVkcywgc3RydWN0dXJlcyBhbmQgZnJhbWV3b3JrcyBmb3IgbWFuYWdlcnMgaGVscCB1cyBob2xkIGVhY2ggb3RoZXIgYWNjb3VudGFibGUuIFRoZXkgYWxzbyAgaGVscCBsZXZlbCB0aGUgcGxheWluZyBmaWVsZCBhbmQgYnVpbGQgaW4gZXF1YWxpdHkgZm9yIHRoZSBwZW9wbGUgb24gb3VyIHRlYW1zLiBPbiBteSBjdXJyZW50IHRlYW0sIGV2ZXJ5IHF1YXJ0ZXIgd2UgcGljayBzb21lIGhpZ2gtcHJpb3JpdHkgcHJvamVjdHMgIHRvIGltcHJvdmUgaG93IHdlIHdvcmsgYXMgYW4gb3JnYW5pemF0aW9uLiBNb3N0IHJlY2VudGx5LCB3ZeKAmXZlIHdvcmtlZCBvbiBvdXIgaGlyaW5nIHByb2Nlc3MgYW5kIGluY2lkZW50IHJlbWVkaWF0aW9uOyBsYXN0IHllYXIsIHdlIGRldmVsb3BlZCBhbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvd2h5LXdlLXJlLWRlc2lnbmVkLW91ci1lbmdpbmVlcmluZy1jYXJlZXItcGF0aHMtYXQtY2lyY2xlY2kvJnF1b3Q7Jmd0O2ludGVybmFsIGNhcmVlciBncm93dGggZnJhbWV3b3JrIGZvciBlbmdpbmVlcnMmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtHcm93aW5nIGFzIGEgbGVhZGVyJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7QmVpbmcgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgaXNu4oCZdCBhbHdheXMgYSBzdHJhaWdodGZvcndhcmQgcGF0aDsgYSBsb3QgZGVwZW5kcyBvbiB3aGVyZSB3ZSBhcmUgYXQgaW4gb3VyIGNhcmVlcnMgYW5kIHdoZXJlIHdlIGFyZSBsb29raW5nIHRvIGdvLCBhcyB3ZWxsIGFzIHRoZSBncm93dGggc3RhZ2UsIHNpemUsIGFuZCBuZWVkcyBvZiBvdXIgb3JnYW5pemF0aW9ucy4gSW4gb3VyIGRhaWx5IHdvcmssIHdlIGhvbGQgdmFzdCBhbW91bnRzIG9mIHVuY2VydGFpbnR5IHdoaWxlIGFsc28gdHJ5aW5nIHRvIG1ha2UgcHJvZ3Jlc3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QW4gb3ZlcmFyY2hpbmcgdGhlbWUgaW4gbXkgd29yayBpbiBlbmdpbmVlcmluZyBtYW5hZ2VtZW50ICBoYXMgYmVlbiBncm93dGggYW5kIGltcHJvdmVtZW50LiBXZSByYXJlbHkgZGVhbCB3aXRoIGdyZWVuZmllbGQgcHJvamVjdHMgb3IgYXJlIGFibGUgdG8gYnVpbGQgYSB0ZWFtIG9yIGRlcGFydG1lbnQgZnJvbSBzY3JhdGNoLiBFdmVuIHdoZW4gd2UgZG8sIHdlIGJ1aWxkIG9uIGV4aXN0aW5nIHN0cnVjdHVyZXMgaW4gb3VyIG9yZ2FuaXphdGlvbi4gSSBiZWxpZXZlIG91ciBzdXBwb3J0aW5nIHJvbGUgbGFyZ2VseSBtZWFucyBoZWxwaW5nIGVuZ2luZWVycyBncm93LCBzdXBwb3J0aW5nIHRlYW1zIGF0IGNvbnRpbnVvdXNseSBsZWFybmluZywgYW5kIGhlbHBpbmcgb3JnYW5pemF0aW9ucyBiZWNvbWUgYmV0dGVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVyaW5nIG1hbmFnZXJzLCB3ZSBmcmVxdWVudGx5IGZhY2UgcXVlc3Rpb25zIHRoYXQgZG9u4oCZdCBjbGVhciByaWdodCBvciB3cm9uZyBhbnN3ZXJzLiBNYW55IHllYXJzIGFnbywgbXkgbGVhZGVyc2hpcCBjb2FjaCBlbmNvdXJhZ2VkIG1lIHRvIHVzZSB0aG9zZSBraW5kcyBvZiB1bmNlcnRhaW4gc2l0dWF0aW9ucyB0byBhc2sgbXlzZWxmLCDigJxXaGF0IGtpbmQgb2YgbGVhZGVyIGRvIEkgd2FudCB0byBiZT/igJ0mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJIHdhbnQgdG8gbGVhdmUgdGhlIGxhc3QgY2FsbCB0byBncm93dGggYW5kIGltcHJvdmVtZW50IHdpdGggeW91IChhbmQgbWUpOiBObyBtYXR0ZXIgd2hhdCB5b3VyIHJvbGUgb3IgY29tcGFueSBpcyBsaWtlLCB3b3JrIG9uIHNoYXBpbmcgeW91ciBhcHByb2FjaCB0byBlbmdpbmVlcmluZyBtYW5hZ2VtZW50LiBHZXQgdG8ga25vdyB0aGUgcGVvcGxlIHRoYXQgeW91IHdvcmsgd2l0aCwgYW5kIHVzZSBmZWVkYmFjayB0byBoZWxwIHRoZW0gY291cnNlLWNvcnJlY3QuIEJ1aWxkIHRlYW1zIHRoYXQgYXJlIHBzeWNob2xvZ2ljYWxseSBzYWZlIHBsYWNlcywgd2hlcmUgcGVvcGxlIGZpbmQgbWVhbmluZyBpbiBhIHNoYXJlZCBwdXJwb3NlLiBBbmQgdXNlIHlvdXIgcG93ZXIgYW5kIHByaXZpbGVnZSB0byBkcml2ZSBjaGFuZ2UgaW4geW91ciBvcmdhbml6YXRpb24uIE1ha2UgcGVvcGxlIHRoZSBjZW50ZXIgYW5kIGZvY3VzIG9mIHlvdXIgd29yaywgYW5kIGJ1aWxkIG9uIHRoYXQgZm91bmRhdGlvbiB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhleSBjYW4gdGhyaXZlLiAgQWx3YXlzIHB1c2ggdG8gY29udGludW91c2x5IGltcHJvdmUuIExlYWQgd2l0aCBodW1ibGVuZXNzLCBlbXBhdGh5LCBhbmQgbG90cyBvZiBjdXJpb3NpdHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2hhdCBraW5kIG9mIGxlYWRlciBkbyB5b3Ugd2FudCB0byBiZT8mbHQ7L3AmZ3Q7CgombHQ7aHIgLyZndDsKJmx0O3AmZ3Q7SWYgeW914oCZcmUgY3VyaW91cyBhYm91dCBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IGF0IENpcmNsZUNJIGFuZCB3b3JraW5nIHdpdGggdXM6IGpvaW4gdXMhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9ib2FyZHMuZ3JlZW5ob3VzZS5pby9jaXJjbGVjaSZxdW90OyZndDtXZeKAmXJlIGhpcmluZyBlbmdpbmVlcmluZyBtYW5hZ2VycyZsdDsvYSZndDsuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5CdWlsZGluZyBhbmQgZGVwbG95aW5nIEZsdXR0ZXIgYXBwcyB3aXRoIEZhc3RsYW5lPC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RlcGxveS1mbHV0dGVyLWFuZHJvaWQvPC9saW5rPgogICAgICAgIDxwdWJEYXRlPldlZCwgMjkgQXByIDIwMjAgMTA6MDA6MDAgLTA3MDA8L3B1YkRhdGU+CiAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9InRydWUiPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZGVwbG95LWZsdXR0ZXItYW5kcm9pZC88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5HYWJyaWVsIFNpbW1lcjwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvJnF1b3Q7Jmd0O0ZsdXR0ZXImbHQ7L2EmZ3Q7IGlzIGEgdG9vbGtpdCBwcm92aWRlZCBieSBHb29nbGUgZm9yIGJ1aWxkaW5nIGNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9ucywgaW5jbHVkaW5nIEFuZHJvaWQsIGlPUywgYW5kIHdlYiBhcHBzLiBBcyBtb3JlIGFwcHMgYXJlIHdyaXR0ZW4gdXNpbmcgaXQgYW5kIERhcnQgKHRoZSB1bmRlcmx5aW5nIGxhbmd1YWdlKSwgaXTigJlzIGJlY29taW5nIG1vcmUgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyBkZXZlbG9wZXJzIGNhbiBwYWNrYWdlIGFuZCBkZWxpdmVyIHRoZWlyIGNvZGUgdG8gdGhlaXIgdXNlcnMuIExldmVyYWdpbmcgQ2lyY2xlQ0kgYW5kIEZhc3RsYW5lLCB0aGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcHJvY2VzcyB0aGF0IGNhbiBiZSBhdXRvbWF0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbGluZyBGbHV0dGVyIGFuZCBjcmVhdGluZyB5b3VyIGZpcnN0IGFwcCBjYW4gYmUgZG9uZSBieSBmb2xsb3dpbmcgdGhlc2UgZ3VpZGVzOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvZG9jcy9nZXQtc3RhcnRlZC9pbnN0YWxsJnF1b3Q7Jmd0O0luc3RhbGwmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2ZsdXR0ZXIuZGV2L2RvY3MvZ2V0LXN0YXJ0ZWQvY29kZWxhYiZxdW90OyZndDtXcml0ZSB5b3VyIGZpcnN0IGFwcCZsdDsvYSZndDsuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBkZWZhdWx0IOKAnGhlbGxvIHdvcmxk4oCdIGFwcCB3aWxsIHN1ZmZpY2UuIFdlIHdvbuKAmXQgYmUgZGVhbGluZyBtdWNoIHdpdGggdGhlIGFwcGxpY2F0aW9uIGl0c2VsZi4gUHVzaCBpdCB0byBhIHJlcG9zaXRvcnkgb24gR2l0SHViLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Vuc3VyZSB0aGF0IHlvdSBhcmUgc2V0IHVwIHRvIHB1Ymxpc2ggYXBwcyB1c2luZyBHb29nbGUgUGxheSBvciB0aGUgQXBwbGUgQXBwIFN0b3JlIC0gc3RlcHMgZm9yIGVhY2ggd2lsbCB2YXJ5LCBzbyBiZSBzdXJlIHRvIGZvbGxvdyB0aGUgc3RlcHMgb3V0bGluZWQgZm9yIHRoZSByZXNwZWN0aXZlIHByb3ZpZGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBbmRyb2lkJmx0Oy9oMiZndDsKCiZsdDtwJmd0O1doZW4gcHVibGlzaGluZyBBbmRyb2lkIGFwcHMsIHRoZXJlIGFyZSBhIGZldyByZXF1aXJlbWVudHMgdG8gc2F0aXNmeSBiZWZvcmUgaW1wbGVtZW50aW5nIEZhc3RsYW5lLiBBbiDigJx1cGxvYWQga2V54oCdIGlzIHJlcXVpcmVkIHNvIHRoYXQgR29vZ2xlIGNhbiB2ZXJpZnkgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUgYXBwIGJlZm9yZSBhY2NlcHRpbmcgaXQuIFN0ZXBzIGZvciBzZXR0aW5nIHRoaXMgdXAgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9mbHV0dGVyLmRldi9kb2NzL2RlcGxveW1lbnQvYW5kcm9pZCZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oy4gSXTigJlzIHJlY29tbWVuZGVkIHRvIHVzZSBBcHBCdW5kbGVzIHdoZW4gYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBhcyBpdCBhbGxvd3MgR29vZ2xlIHRvIGJ1aWxkIGluZGl2aWR1YWwgQVBLcyBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyB3aGlsZSBrZWVwaW5nIGZpbGVzaXplIGRvd24uIFRha2Ugbm90ZSBvZiB3aGVyZSB5b3Ugc2F2ZSB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5qa3MmbHQ7L2NvZGUmZ3Q7IGZpbGUuIFdoaWxlIGl0IGNhbiBsaXZlIGluIHlvdXIgaG9tZSBkaXJlY3RvcnksIGhhdmluZyBpdCBzYXZlZCB0byBhIGdpdC1pZ25vcmVkIGRpcmVjdG9yeSBpbiB5b3VyIHByb2plY3Qgd2lsbCBjb21lIGluIGhhbmR5IHdoZW4gY29uZmlndXJpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1R3byB0aGluZ3MgZnJvbSB0aGlzIGd1aWRlIHdpbGwgbmVlZCB0byBiZSBhZGRlZCB0byBDaXJjbGVDSSBhcyAmbHQ7YSBocmVmPSZxdW90Oy9kb2NzLzIuMC9lbnYtdmFycy8mcXVvdDsmZ3Q7ZW52aW9ybm1lbnQgdmFyaWFibGVzJmx0Oy9hJmd0OzogdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlIGFuZCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7a2V5LmprcyZsdDsvY29kZSZndDsgZmlsZS4gVGhpcyB3aWxsIGFsbG93IHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBzaWduIHRoZSBhcHBsaWNhdGlvbi4gU2luY2Ugb25lIGZpbGUgcmVxdWlyZXMgbmV3bGluZXMgdG8gYmUgcHJlc2VudCwgYW5kIGFub3RoZXIgaXMgYSBiaW5hcnkgZmlsZSwgaXTigJlzIHJlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgYmFzZTY0LWVuY29kZWQgcHJpb3IgdG8gYWRkaW5nIHRoZW0gYXMgZW52aW9ybm1lbnQgdmFyaWFibGVzIHRvIHByZXNlcnZlIHRoZSBkYXRhLiZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBjYW4gZW5jb2RlIHRoZW0gYnkgcnVpbm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2F0ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7IHwgYmFzZTY0IC13IDAgIyAtdyAwIHdpbGwgZW5zdXJlIG5vIG5ld2xpbmVzIGFyZSBwcmVzZW50LgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBmaWxlcyBjYW4gdGhlbiBiZSByZS1hZGRlZCBkdXJpbmcgdGhlIGpvYiB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2VjaG8gJnF1b3Q7JEVOVl9WQVJJQUJMRV9OQU1FJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIGFsc28gd2FudCB0byBzZXQgdXAgYSBGYXN0bGFuZSBzZXJ2aWNlIGFjY291bnQgd2hpbGUgY3JlYXRpbmcgeW91ciBBbmRyb2lkIHNldHVwLiBZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5mYXN0bGFuZS50b29scy9nZXR0aW5nLXN0YXJ0ZWQvYW5kcm9pZC9zZXR1cC8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuIEJlIHN1cmUgdG8ga2VlcCB5b3VyIFNlcnZpY2UgQWNjb3VudCBKU09OIGZpbGUgaGFuZHkuIFdl4oCZbGwgYmUgYWRkaW5nIHRoYXQgdG8gdGhlIHBpcGVsaW5lIHNob3J0bHkuIEFsc28gbm90ZSB0aGF0IGNvbW1hbmRzIHNob3VsZCBiZSBydW4gZnJvbSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZCZsdDsvY29kZSZndDsgZGlyZWN0b3J5IHVuZGVyIHlvdXIgRmx1dHRlciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IHJlcXVpcmVkIGJ5IEZhc3RsYW5lIGNhbiBiZSBkb25lIGJ5IGFkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IEpTT04gZmlsZSBjb250ZW50cyBhcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IGVudmlvcm5tZW50IHZhcmlhYmxlLiBUaGlzIGlzIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1NVUFBMWV9KU09OX0tFWSZsdDsvY29kZSZndDsgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgYSBmaWxlIHBhdGggdG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0Zhc3RsYW5lJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05vdyB0aGF0IG91ciBlbnZpb3JubWVudCB2YXJpYWJsZXMgYXJlIGluIHBsYWNlIGFuZCB3ZSBjYW4gYnVpbGQgYSBzaWduZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LmFhYiZsdDsvY29kZSZndDsgZmlsZSB1c2luZyBGbHV0dGVyLCBpdOKAmXMgdGltZSB0byB0ZWxsIEZhc3RsYW5lIGhvdyB0byBkbyB0aGlzIGZvciB1cy4gV2XigJlsbCBzdGFydCB3aXRoIEFuZHJvaWQuIE9wZW5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZC9mYXN0bGFuZS9GYXN0ZmlsZSZsdDsvY29kZSZndDsgd2lsbCByZXZlYWwgc29tZSBkZWZhdWx0cyBmb3IgYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBidXQgdGhleSB3b27igJl0IHdvcmsgZm9yIG91ciB1c2UgY2FzZS4gV2XigJlyZSBidWlsZGluZyB3aXRoIEZsdXR0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rmlyc3QsIGxldOKAmXMgZGVmaW5lIGEgbmV3IOKAnGxhbmXigJ0uIFRoaXMgaXMgYSBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgRmFzdGxhbmUgd2lsbCBleGVjdXRlIHdoZW4gY2FsbGVkLiBGb3Igbm93LCB3ZeKAmWxsIGJlIHB1c2hpbmcgb3VyIGFwcCB0byB0aGUg4oCcYmV0YeKAnSBjaGFubmVsLCBub3QgdG8gcHJvZHVjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwoKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgaXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIGxhbmUuIE5leHQsIHdl4oCZbGwgd2FudCB0byBncmFiIGEgYnVpbGQgbnVtYmVyIHdoaWNoIGlzIGFuIGluY3JlbWVudGluZyBudW1iZXIgdXNlZCBhcyBhIHJlZmVyZW5jZSBmb3IgdGhlIHZlcnNpb24gb2YgdGhlIGFwcCAod2hpY2ggZGlmZmVycyBmcm9tIHRoZSB1c2VyLWZhY2luZyBzZW12ZXIpLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHRvIHRoZSBsYW5lOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ICBidWlsZF9udW1iZXIgPSBudW1iZXJfb2ZfY29tbWl0cygpCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgZW5zdXJlcyB0aGF0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZF9udW1iZXImbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0aGF0IGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBHaXQgcmVwb3NpdG9yeS4gVGhpcyBjYW4gYWxzbyBiZSBtYW51YWxseSBpbmNyZW1lbnRlZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVic3BlYy55YW1sJmx0Oy9jb2RlJmd0OyBmaWxlIHRoYXQgRmx1dHRlciB1c2VzIHRvIGJ1aWxkIHRoZSBwYWNrYWdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdl4oCZbGwgZG8gdGhlIGJ1aWxkaW5nLiBXZSBuZWVkIHRvIGdvIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5LCBydW4gYSBmZXcgc2hlbGwgY29tbWFuZHMgdG8gZmV0Y2ggb3VyIHBhY2thZ2VzLCBjbGVhbiB0aGUgcHJldmlvdXMgYnVpbGQgKGlmIGF2YWlsYWJsZSksIHRoZW4gYnVpbGQgdGhlIGFwcGJ1bmRsZSB3aXRoIG91ciBidWlsZCBudW1iZXIuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIERpci5jaGRpciAmcXVvdDsuLi8uLiZxdW90OyBkbwogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7cGFja2FnZXMmcXVvdDssICZxdW90O2dldCZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2NsZWFuJnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7YnVpbGQmcXVvdDssICZxdW90O2FwcGJ1bmRsZSZxdW90OywgJnF1b3Q7LS1idWlsZC1udW1iZXI9I3tidWlsZF9udW1iZXJ9JnF1b3Q7KQogIGVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtGaW5hbGx5LCB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYXBwIHN0b3JlIG9uIHRoZSBiZXRhIGNoYW5uZWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIHVwbG9hZF90b19wbGF5X3N0b3JlKHRyYWNrOiAnYmV0YScsIGFhYjogJy4uL2J1aWxkL2FwcC9vdXRwdXRzL2J1bmRsZS9yZWxlYXNlL2FwcC5hYWInKQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGxhbmUgd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwogIGJ1aWxkX251bWJlciA9IG51bWJlcl9vZl9jb21taXRzKCkKICBEaXIuY2hkaXIgJnF1b3Q7Li4vLi4mcXVvdDsgZG8KICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O3BhY2thZ2VzJnF1b3Q7LCAmcXVvdDtnZXQmcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtjbGVhbiZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2J1aWxkJnF1b3Q7LCAmcXVvdDthcHBidW5kbGUmcXVvdDssICZxdW90Oy0tYnVpbGQtbnVtYmVyPSN7YnVpbGRfbnVtYmVyfSZxdW90OykKICBlbmQKICB1cGxvYWRfdG9fcGxheV9zdG9yZSh0cmFjazogJ2JldGEnLCBhYWI6ICcuLi9idWlsZC9hcHAvb3V0cHV0cy9idW5kbGUvcmVsZWFzZS9hcHAuYWFiJykKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dvIGFoZWFkIGFuZCBzYXZlIHRoZSBmaWxlLCBhbmQgdGhlbiBydW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZmFzdGxhbmUgYmV0YSZsdDsvY29kZSZndDsuIEl0IHdpbGwgcnVuIHRocm91Z2ggdGhlIHN0ZXBzLCBidWlsZGluZyB0aGUgYXBwIGFuZCBwdXNoaW5nIHRoZSBhcHBsaWNhdGlvbiBmb3IgeW91LiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgd2XigJlsbCBkbyB0aGUgc2FtZSBmb3IgaU9TLCBidXQgcmVwbGFjaW5nIHNvbWUgb2YgdGhlIGNvbW1hbmRzIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBpT1MgY29tbWFuZHMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lvcy9GYXN0bGFuZSZsdDsvY29kZSZndDsgZGlyZWN0b3J5LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZGVzYyAmcXVvdDtEZXBsb3kgYSBuZXcgYnVpbGQgdG8gVGVzdGZsaWdodCZxdW90OwpsYW5lIDpiZXRhIGRvCiAgRGlyLmNoZGlyICZxdW90Oy4uLy4uJnF1b3Q7IGRvCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtwYWNrYWdlcyZxdW90OywgJnF1b3Q7Z2V0JnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7Y2xlYW4mcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtidWlsZCZxdW90OywgJnF1b3Q7aW9zJnF1b3Q7LCAmcXVvdDstLXJlbGVhc2UmcXVvdDssICZxdW90Oy0tbm8tY29kZXNpZ24mcXVvdDspCiAgZW5kCiAgYnVpbGRfaW9zX2FwcChzY2hlbWU6ICZxdW90O015QXBwJnF1b3Q7KQogIHVwbG9hZF90b190ZXN0ZmxpZ2h0CmVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhcHAgaXMgYnVpbHQgdHdpY2UuIFRoZSBmaXJzdCBidWlsZCBidWlsZHMgYWdhaW5zdCB0aGUgbGF0ZXN0IEZsdXR0ZXIgdG9vbGNoYWluLCB3aGlsZSB0aGUgc2Vjb25kIGJ1aWxkIGJ1aWxkcyB0aGUgYWN0dWFsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5pcGEmbHQ7L2NvZGUmZ3Q7IGZpbGUgdGhhdCB3aWxsIGJlIHVwbG9hZGVkIHRvIFRlc3RmbGlnaHQuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O05vdywgd2l0aCBDaXJjbGVDSSZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gcGxhY2UsIGl04oCZcyB0aW1lIHRvIGdldCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB3cml0dGVuIHNvIHRoYXQgYSBwdXNoIHRvIGEgYnJhbmNoIGlzIHRyYW5zbGF0ZWQgdG8gYSBuZXcgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7aU9TJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0ZvciBkZXBsb3lpbmcgd2l0aCBpT1MsIENpcmNsZUNJIGFscmVhZHkgaGFzIGRvY3MgdG8gY292ZXIgdGhpcyEgU3RlcHMgZm9yIHNldHRpbmcgdXAgRmFzdGxhbmUgZGVwbG95bWVudCB3aXRoIEZsdXR0ZXIgaXMgc2ltaWxhciB0byB0aGUgc3RlcHMgb3V0bGluZWQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvaW9zLWNvZGVzaWduaW5nLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OyBhbmQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZGVwbG95aW5nLWlvcy8jYXBwLXN0b3JlLWNvbm5lY3QmcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0FuZHJvaWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7V2hlbiBpdCBjb21lcyB0byB0aGUgRG9ja2VyIGltYWdlIHRvIHBpY2ssIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gRWl0aGVyIHlvdSBjYW4gYnVpbGQgYW5kIHB1c2ggdGhlIERvY2tlciBpbWFnZSB1c2VkIGJ5IHRoZSBGbHV0dGVyIHByb2plY3QgZm91bmQgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2Jsb2IvbWFzdGVyL2Rldi9jaS9kb2NrZXJfbGludXgvRG9ja2VyZmlsZSZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oywgb3IgeW91IGNhbiBwdWxsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dtZW1zdHIvZmx1dHRlci1mYXN0bGFuZTpsYXRlc3QmbHQ7L2NvZGUmZ3Q7LCB3aGljaCBpcyBidWlsdCBvbiB0b3Agb2YgYW4gZXhpc3RpbmcgRmx1dHRlciBEb2NrZXIgaW1hZ2UgYW5kIGluc3RhbGxzIEZhc3RsYW5lIGFsb25nc2lkZSBpdCwgYXZvaWRpbmcgYWRkaXRpb25hbCBvdmVyaGVhZCBvZiBpbnN0YWxsaW5nIGl0IGR1cmluZyBydW50aW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28gZW5zdXJlIHRoYXQgdGhlIGVudmlvcm5tZW50IHZhcmlhYmxlcyBtZW50aW9uZWQgZWFybGllciBhcmUgYWRkZWQgdG8geW91ciBwcm9qZWN0LiBOYW1lbHk6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQTEFZX1NUT1JFX1VQTE9BRF9LRVkmbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtrZXkuamtzJmx0Oy9jb2RlJmd0OyBmaWxlJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7UExBWV9TVE9SRV9VUExPQURfS0VZX0lORk8mbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCBmaWxlIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIGFuZCBvdGhlciBpbmZvIHJlZ2FyZGluZyB0aGUgdXBsb2FkIHNpZ25pbmcga2V5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IC0gWW91ciBHb29nbGUgU2VydmljZSBBY2NvdW50IEpTT04gc3RyaW5nIGZvciBhdXRoZW50aWNhdGlvbiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtJbiB5b3VyIHByb2plY3RzIHJvb3QsIGFkZCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLCBhbmQgaW4gdGhhdCBmb2xkZXIgYWRkIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y2lyY2xlY2kueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLiBBZGQgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSBuZXdseSBjcmVhdGVkIGZpbGU6Jmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7JwogIAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgc25pcHBldCBhYm92ZSBkZWZpbmVzIGFuIGV4ZWN1dG9yIHdlIGNhbiByZXVzZSBsYXRlciBpbiBvdXIgY29uZmlndXJhdGlvbiB0aGFua3MgdG8gdGhlIHVzZSBvZiByZXVzYWJsZSBjb25maWd1cmF0aW9uIGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYnMmbHQ7L2EmZ3Q7IGluIENpcmNsZUNJIDIuMS4gSXQgYWxzbyBpbmNsdWRlcyBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBlbnN1cmUgSmF2YSBkb2VzbuKAmXQgY29uc3VtZSBhbGwgb2Ygb3VyIG1lbW9yeSB3aGlsZSBidWlsZGluZyB0aGUgYXBwLiBOZXh0LCB3ZeKAmWxsIGRlZmluZSB0aGUgam9iIHdlIHdhbnQgdG8gcnVuIHRoZSBjb21tYW5kcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2pvYnM6CiAgYmV0YV9kZXBsb3k6CiAgICBleGVjdXRvcjogYW5kcm9pZC1mbHV0dGVyCiAgICBzdGVwczoKICAgICAgLSBjaGVja291dAogICAgICAtIHJ1bjogZWNobyAmcXVvdDskUExBWV9TVE9SRV9VUExPQURfS0VZJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGtleS5qa3MKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWV9JTkZPJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGFuZHJvaWQva2V5LnByb3BlcnRpZXMKICAgICAgLSBydW46IGNkIGFuZHJvaWQgJmFtcDthbXA7JmFtcDthbXA7IGZhc3RsYW5lIGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgd2XigJlsbCBkZWZpbmUgb3VyIHdvcmtmbG93IHdoaWNoIHdpbGwgb25seSBydW4gdGhlIGpvYiB3aGVuIHRoZSBuZXcgY29kZSBpcyBwdXNoZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2JldGEmbHQ7L2NvZGUmZ3Q7IGJyYW5jaC4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3dvcmtmbG93czoKICBkZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGJldGFfZGVwbG95OgogICAgICAgICAgZmlsdGVyczoKICAgICAgICAgICAgYnJhbmNoZXM6CiAgICAgICAgICAgICAgb25seTogYmV0YQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7Jwpqb2JzOgogIGJldGFfZGVwbG95OgogICAgZXhlY3V0b3I6IGFuZHJvaWQtZmx1dHRlcgogICAgc3RlcHM6CiAgICAgIC0gY2hlY2tvdXQKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWSZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBrZXkuamtzCiAgICAgIC0gcnVuOiBlY2hvICZxdW90OyRQTEFZX1NUT1JFX1VQTE9BRF9LRVlfSU5GTyZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBhbmRyb2lkL2tleS5wcm9wZXJ0aWVzCiAgICAgIC0gcnVuOiBjZCBhbmRyb2lkICZhbXA7YW1wOyZhbXA7YW1wOyBmYXN0bGFuZSBiZXRhCgp3b3JrZmxvd3M6CiAgZGVwbG95OgogICAgam9iczoKICAgICAgLSBiZXRhX2RlcGxveToKICAgICAgICAgIGZpbHRlcnM6CiAgICAgICAgICAgIGJyYW5jaGVzOgogICAgICAgICAgICAgIG9ubHk6IGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvcHJvamVjdHMvJnF1b3Q7Jmd0O1NldCB1cCB5b3VyIHByb2plY3Qgb24gQ2lyY2xlQ0kmbHQ7L2EmZ3Q7LiBPbmNlIHlvdSBjbGljayAmbHQ7c3Ryb25nJmd0O1NldCBVcCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7LCB5b3Ugd2lsbCBiZSBicm91Z2h0IHRvIGEgdGV4dCBlZGl0b3IgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBjb3B5IGluIHRoZSBjb25maWcgZnJvbSBhYm92ZS4gQ2xpY2sgJmx0O3N0cm9uZyZndDtTdGFydCBCdWlsZGluZyZsdDsvc3Ryb25nJmd0Oy4gTm93IGV2ZXJ5IG5ldyBjb21taXQgdG8gdGhlIGJldGEgYnJhbmNoIHdpbGwgcmVzdWx0IGluIGEgZGVwbG95LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIGFuIEV4cHJlc3MgR3JhcGhRTCBzZXJ2ZXIgdG8gSGVyb2t1PC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1hbi1leHByZXNzLWdyYXBocWwtc2VydmVyLXRvLWhlcm9rdS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VHVlLCAyOCBBcHIgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtYW4tZXhwcmVzcy1ncmFwaHFsLXNlcnZlci10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dyYXBocWwub3JnLyZxdW90OyZndDtHcmFwaFFMJmx0Oy9hJmd0OyBjb250aW51ZXMgdG8gZ3JvdyBpbiBwb3B1bGFyaXR5IHdpdGggZWFjaCBwYXNzaW5nIGRheSwgc2luY2UgaXRzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9lbmdpbmVlcmluZy5mYi5jb20vY29yZS1kYXRhL2dyYXBocWwtYS1kYXRhLXF1ZXJ5LWxhbmd1YWdlLyZxdW90OyZndDtwdWJsaWMgcmVsZWFzZSBieSBGYWNlYm9vayZsdDsvYSZndDsgaW4gMjAxNS4gVGhlIHRlY2hub2xvZ3kgZW5hYmxlcyBmcm9udCBlbmQgY2xpZW50cyB0byBxdWVyeSBleGFjdGx5IHdoYXQgdGhleSBuZWVkIGZyb20gdGhlIGJhY2tlbmQsIGFuZCBpcyBnYWluaW5nIHdpZGUgcmVjb2duaXRpb24gYW5kIGFkb3B0aW9uIGJ5IHJlcHV0YWJsZSBjb21wYW5pZXMgc3VjaCBhcyBQaW50ZXJlc3QsIENvdXJzZXJhLCBBaXJibmIsIGFuZCBGYWNlYm9vayBpdHNlbGYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBwb3N0LCB3ZSB3aWxsIGxlYXJuIGhvdyB0byBkZXBsb3kgYSBzaW1wbGUgR3JhcGhRTCBzZXJ2ZXIgd3JpdHRlbiBpbiBOb2RlLmpzIHRvIEhlcm9rdSB2aWEgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IChDSSkgcGlwZWxpbmUgdXNpbmcgQ2lyY2xlQ0kuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1ByZXJlcXVpc2l0ZXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUbyBmb2xsb3cgYWxvbmcgd2l0aCB0aGlzIHBvc3QsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhbHJlYWR5IHNldCB1cDombHQ7L3AmZ3Q7CiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL25vZGVqcy5vcmcvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlIC12Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsIHRvIHByaW50IG91dCB5b3VyIHZlcnNpb24gb2YgTm9kZS5qcyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdC1zY20uY29tLyZxdW90OyZndDtHaXQmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnaXQmbHQ7L2NvZGUmZ3Q7IG9uIHlvdXIgdGVybWluYWw7IHRoaXMgc2hvdWxkIHByaW50IG91dCBhdmFpbGFibGUgZ2l0IGNvbW1hbmRzKSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5oZXJva3UuY29tLyZxdW90OyZndDtIZXJva3UmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tLyZxdW90OyZndDtHaXRIdWImbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vc2lnbnVwLyZxdW90OyZndDtDaXJjbGVDSSZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDsjI1NjYWZmb2xkaW5nIHRoZSBHcmFwaFFMIHNlcnZlciBwcm9qZWN0ClRvIGJlZ2luIHNldHRpbmcgdXAgYSBHcmFwaFFMIHNlcnZlciwgY3JlYXRlIGEgbmV3IGZvbGRlciBmb3IgdGhlIHByb2plY3QgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtta2RpciBncmFwaHFsLXRlc3Qtc2VydmVyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7Tm93IGdvIGludG8gdGhlIHJvb3Qgb2YgdGhlIGZvbGRlciBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBzY2FmZm9sZCBhIG5ldyBOb2RlLmpzIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5pdCAteQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDtwJmd0O1RoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsteSZsdDsvY29kZSZndDsgb3B0aW9uYWwgZmxhZyBhbGxvd3MgeW91IHRvIHNraXAgY29uZmlybWluZyB0aGUgZGVmYXVsdCBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwYWNrYWdlLmpzb24mbHQ7L2NvZGUmZ3Q7IGZpbGUgYW5kIGp1c3QgYWNjZXB0cyB0aGVtLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGFyZSBnb2luZyB0byBjcmVhdGUgYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2V4cHJlc3Nqcy5jb20vJnF1b3Q7Jmd0O0V4cHJlc3NKUyZsdDsvYSZndDsgTm9kZS5qcyBhcHBsaWNhdGlvbiBhbmQgYnVpbGQgdGhlIEdyYXBoUUwgc2VydmVyLiBUbyBkbyB0aGlzLCB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIGZvbGxvd2luZyBwYWNrYWdlczombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2V4cHJlc3MmbHQ7L2NvZGUmZ3Q7OiB0byBjcmVhdGUgb3VyIEV4cHJlc3NKUyBOb2RlLmpzIGFwcGxpY2F0aW9uJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z3JhcGhxbCZsdDsvY29kZSZndDs6IHRoZSBHcmFwaFFMIG5wbSBwYWNrYWdlIGZvciBOb2RlLmpzJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OzogRXhwcmVzc0pTIG1pZGRsZXdhcmUgZm9yIEdyYXBoUUwmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbCB0aGVzZSBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBpbnN0YWxsIC0tc2F2ZSBleHByZXNzIGdyYXBocWwgZXhwcmVzcy1ncmFwaHFsCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIHRoZSByZXF1aXJlZCBwYWNrYWdlcyB0byBzdGFydCBwdXR0aW5nIHRvZ2V0aGVyIG91ciBHcmFwaFFMIHNlcnZlci4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgdGhlIEdyYXBoUUwgc2NoZW1hJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7Q3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bWtkaXIgc3JjCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1dpdGhpbiB0aGlzIGZvbGRlciwgY3JlYXRlIGEgbmV3IGZpbGUgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEuanMmbHQ7L2NvZGUmZ3Q7IGFuZCBwYXN0ZSBpbiB0aGUgY29kZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Owpjb25zdCB7IGJ1aWxkU2NoZW1hIH0gPSByZXF1aXJlKCZxdW90O2dyYXBocWwmcXVvdDspOwoKY29uc3Qgc2NoZW1hID0gYnVpbGRTY2hlbWEoYAogICAgdHlwZSBRdWVyeSB7CiAgICAgICAgdXNlcnM6IFtVc2VyIV0hLAogICAgICAgIHVzZXIoaWQ6IEludCEpOiBVc2VyIQogICAgfQoKICAgIHR5cGUgTXV0YXRpb24gewogICAgICAgIGVkaXRVc2VyKGlkOiBJbnQhLCBuYW1lOiBTdHJpbmchLCBlbWFpbDogU3RyaW5nISk6IFVzZXIhCiAgICB9CgogICAgdHlwZSBVc2VyIHsKICAgICAgICBpZDogSUQhCiAgICAgICAgbmFtZTogU3RyaW5nIQogICAgICAgIGVtYWlsOiBTdHJpbmcKICAgICAgICBwb3N0czogW1Bvc3QhXQogICAgfQoKICAgIHR5cGUgUG9zdCB7CiAgICAgICAgaWQ6IElEIQogICAgICAgIHRpdGxlOiBTdHJpbmchCiAgICAgICAgcHVibGlzaGVkOiBCb29sZWFuIQogICAgICAgIGxpbms6IFN0cmluZwogICAgfQpgKTsKCm1vZHVsZS5leHBvcnRzID0gc2NoZW1hOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBhYm92ZSBjb2RlLCB3ZSBoYXZlIGNyZWF0ZWQgZm91ciB0eXBlcywgY29uc2lzdGluZyBvZiB0d28gYnVpbHQtaW4gdHlwZXMgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7KSBhbmQgdHdvIGN1c3RvbSB0eXBlcyAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXNlciZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1Bvc3QmbHQ7L2NvZGUmZ3Q7KS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWdpbm5pbmcgd2l0aCB0aGUgY3VzdG9tIHR5cGVzLCB3ZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmc6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VyJmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHVzZXIgaW4gdGhlIGFwcGxpY2F0aW9uIHdpdGggaXRzIHJlc3BlY3RpdmUgZmllbGRzIGFuZCBhIHJlbGF0aW9uYWwgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cG9zdHMmbHQ7L2NvZGUmZ3Q7IGZpZWxkLCB3aGljaCByZXR1cm5zIGFuIGFycmF5IG9mIHBvc3RzIGNyZWF0ZWQgYnkgdGhlIHVzZXImbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQb3N0Jmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHB1YmxpY2F0aW9uIGNyZWF0ZWQgYnkgYSB1c2VyIGluIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGl0cyByZXNwZWN0aXZlIGZpZWxkcyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OzogaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyB0eXBlLCB3ZSBkZWZpbmVkIHR3byBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgcXVlcmllZCBmcm9tIG91ciBHcmFwaFFMIHNlcnZlciBhcyBmb2xsb3dzOgogICAgJmx0O3VsJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlcnMmbHQ7L2NvZGUmZ3Q7OiBhbiBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VycyZsdDsvY29kZSZndDsmbHQ7L2xpJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlciZsdDsvY29kZSZndDs6IGEgc2luZ2xlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1VzZXImbHQ7L2NvZGUmZ3Q7IHdpdGggdGhlIHNwZWNpZmllZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgaW4gdGhlIGFyZ3VtZW50cyBsaXN0Jmx0Oy9saSZndDsKICAgICZsdDsvdWwmZ3Q7CiAgJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7OiBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7IHR5cGUsIHdlIGRlZmluZWQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VkaXRVc2VyJmx0Oy9jb2RlJmd0OyBtdXRhdGlvbiwgd2hpY2gsIGdpdmVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgb2YgdGhlIHVzZXIsIGNhbiBiZSBjYWxsZWQgdG8gZWRpdCBhIHVzZXIgYW5kIHRoZW4gdXBkYXRlIHRoZSBpbmZvcm1hdGlvbiAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bmFtZSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VtYWlsJmx0Oy9jb2RlJmd0OykmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhlIHNjaGVtYSBpcyBjcmVhdGVkIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZFNjaGVtYSZsdDsvY29kZSZndDsgb2YgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dyYXBocWwmbHQ7L2NvZGUmZ3Q7IHBhY2thZ2UgYW5kIGV4cG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O01vY2tpbmcgZGF0YSZsdDsvaDImZ3Q7CiZsdDtwJmd0O0luIG9yZGVyIHRvIGhhdmUgcmVzdWx0cyBmb3Igb3VyIHF1ZXJpZXMsIHdlIG5lZWQgZGF0YS4gRm9yIHRoaXMgZXhlcmNpc2UsIHdlIHdpbGwgYmUgdXNpbmcgTW9uZ29EQi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIb3dldmVyLCBzaW5jZSB0aGUgZ29hbCBvZiB0aGlzIHBvc3QgaXMgdG8gZGVtb25zdHJhdGUgZGVwbG95aW5nIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyLCB3ZSB3b27igJl0IGJvdGhlciB3aXRoIHNldHRpbmcgdXAgYSBNb25nb0RCIHNlcnZlci4gSW5zdGVhZCwgd2Ugd2lsbCAgdXNlIGEgbW9ja2VkIHZlcnNpb24gdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O21vbmdvZGItbWVtb3J5LXNlcnZlciZsdDsvY29kZSZndDsuIFRoaXMgcGFja2FnZSBhbGxvd3MgdXMgdG8gY3JlYXRlIGFuZCB1c2UgYW4gaW4tbWVtb3J5IE1vbmdvREIgZGF0YWJhc2Ugc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHNldCB0aGlzIHVwLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhdCB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5zdGFsbCAtLXNhdmUgbW9uZ29kYiBtb25nb2RiLW1lbW9yeS1zZXJ2ZXIKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwombHQ7cCZndDtUaGlzIGluc3RhbGxhdGlvbiBtaWdodCB0YWtlIGEgd2hpbGUsIGRlcGVuZGluZyBvbiB5b3VyIGRvd25sb2FkIHNwZWVkLiBNb25nb0RCIHdhcyBhdCBsZWFzdCA2NiBtZWdhYnl0ZXMgaW4gc2l6ZSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhLmpzJmx0Oy9jb2RlJmd0OyBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3JjJmx0Oy9jb2RlJmd0OyBmb2xkZXIuIFRoaXMgZmlsZSB3aWxsIGV4cG9ydCBhbiBhcnJheSBvZiBoYXJkLWNvZGVkIHVzZXIgZGF0YS4gUGFzdGUgdGhlIGZvbGxvd2luZyBjb2RlIGJlbG93IGludG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBVc2VycyA9IFsKICB7CiAgICBpZDogMSwKICAgIG5hbWU6ICZxdW90O0Zpa2F5byBBZGVwb2p1JnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2ZpazRjaHJpc3RAeWFob28uY29tJnF1b3Q7LAogICAgcG9zdHM6IFsKICAgICAgewogICAgICAgIGlkOiAxLAogICAgICAgIHRpdGxlOiAmcXVvdDtDcmVhdGluZyBhbiBFbW9qaSBHYW1lIHdpdGggVnVlLCBBdXRoMCwgYW5kIEdvb2dsZSBWaXNpb24gQVBJJnF1b3Q7LAogICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSwKICAgICAgICBsaW5rOgogICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hdXRoMC5jb20vYmxvZy9jcmVhdGluZy1hbi1lbW9qaS1nYW1lLXdpdGgtdnVlLWF1dGgwLWFuZC1nb29nbGUtdmlzaW9uLWFwaS8mcXVvdDssCiAgICAgICAgYXV0aG9yOiAxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBpZDogMiwKICAgICAgICB0aXRsZTogJnF1b3Q7RWxlY3Ryb24gVHV0b3JpYWw6IEJ1aWxkaW5nIE1vZGVybiBEZXNrdG9wIEFwcHMgd2l0aCBWdWUuanMmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2F1dGgwLmNvbS9ibG9nL2VsZWN0cm9uLXR1dG9yaWFsLWJ1aWxkaW5nLW1vZGVybi1kZXNrdG9wLWFwcHMtd2l0aC12dWUtanMvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDMsCiAgICAgICAgdGl0bGU6ICZxdW90O1N0YXRlIE1hbmFnZW1lbnQgd2l0aCBWdWV4OiBhIFByYWN0aWNhbCBUdXRvcmlhbCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazoKICAgICAgICAgICZxdW90O2h0dHBzOi8vYXV0aDAuY29tL2Jsb2cvc3RhdGUtbWFuYWdlbWVudC13aXRoLXZ1ZXgtYS1wcmFjdGljYWwtdHV0b3JpYWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMiwKICAgIG5hbWU6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2pvaG5AY29tcGFueS5jb20mcXVvdDssCiAgICBwb3N0czogWwogICAgICB7CiAgICAgICAgaWQ6IDQsCiAgICAgICAgdGl0bGU6ICZxdW90O0J1aWxkIGEgQ0kgcG93ZXJlZCBSRVNUZnVsIEFQSSB3aXRoIExhcmF2ZWwmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2J1aWxkLWEtY2ktcG93ZXJlZC1yZXN0ZnVsLWFwaS13aXRoLWxhcmF2ZWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDUsCiAgICAgICAgdGl0bGU6ICZxdW90O0F1dG9tYXRlIHlvdXIgTnV4dC5qcyBhcHAgZGVwbG95bWVudCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazogJnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hdXRvbWF0ZS15b3VyLW51eHQtanMtYXBwLWRlcGxveW1lbnQvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMywKICAgIG5hbWU6ICZxdW90O0phbmUgUGF1bCZxdW90OywKICAgIGVtYWlsOiAmcXVvdDtqYW5lQGNvbXBhbnkuY29tJnF1b3Q7LAogICAgcG9zdHM6IFtdCiAgfQpdOwoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgVXNlcnMKfTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBjb2RlIGFib3ZlLCB3ZSBoYXZlIGFuIGFycmF5IG9mIHVzZXIgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgcG9zdHMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIHNlZWQgb3VyIGluLW1lbW9yeSBkYXRhYmFzZSBvbmNlIGl0IGlzIGluc3RhbnRpYXRlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCB0YXNrIGlzIHRvIHNldCB1cCBvdXIgbW9jayBNb25nb0RCIGRhdGFiYXNlIHNlcnZlci4gSW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhYmFzZS5qcyZsdDsvY29kZSZndDsgYW5kIGluc2VydCB0aGUgZm9sbG93aW5nIGNvZGUgaW50byB0aGUgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O01vbmdvTWVtb3J5U2VydmVyJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtyZXF1aXJlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtzMiZxdW90OyZndDsmcXVvdDttb25nb2RiLW1lbW9yeS1zZXJ2ZXImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O21vbmdvZGImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtjb25zdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bm8mcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90Oy4vZGF0YSZxdW90OyZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0Oyk7Jmx0Oy9zcGFuJmd0OwoKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7bGV0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDtudWxsJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXN5bmMmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7ZnVuY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25mJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoKSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDt7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7bmV3Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtNb25nb01lbW9yeVNlcnZlciZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygpOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtubyZxdW90OyZndDttb25nb0RCVVJMJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXdhaXQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7LiZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtnZXRDb25uZWN0aW9uU3RyaW5nJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3QmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvREJVUkwmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDssJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7CiAgICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDt1c2VOZXdVcmxQYXJzZXImbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs6Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDt0cnVlJmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSk7Jmx0Oy9zcGFuJmd0OwoKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtjMSZxdW90OyZndDsvL1NlZWQgRGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7CiAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtpZiZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7ISZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OykmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsKICAgICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RhdGFiYXNlJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RiJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbGxlY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O3VzZXJzJnF1b3Q7Jmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7aW5zZXJ0TWFueSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7VXNlcnMmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7CgogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7cmV0dXJuJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OzsmbHQ7L3NwYW4mZ3Q7CiZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vZHVsZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZXhwb3J0cyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtzdGFydERhdGFiYXNlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGNvZGUgYWJvdmUsIHdlIGV4cG9ydCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L2NvZGUmZ3Q7IGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBzdGFydHMgYSBuZXcgKG1vY2tlZCkgTW9uZ29EQiBzZXJ2ZXIgaW5zdGFuY2UgYW5kIGdldHMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuIEl0IHRoZW4gY3JlYXRlcyBhIG5ldyBNb25nb0RCIGNsaWVudCBjb25uZWN0aW9uIHVzaW5nIHRoZSBjb25uZWN0aW9uIHN0cmluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwgd2Ugc2VlZCBpdCB3aXRoIG91ciB1c2VyIGRhdGEgZXhwb3J0ZWQgZnJvbSBvdXIgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZGF0YS5qcyZsdDsvY29kZSZndDsgZmlsZS4gQSBjaGVjayBpcyBtYWRlIHRvIHNlZSBpZiB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIGlzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O251bGwmbHQ7L2NvZGUmZ3Q7IGJlZm9yZSBzZWVkaW5nIGl0IHdpdGggZGF0YSwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBmcm9tIGJlaW5nIGVudGVyZWQgaW50byB0aGUgZGF0YWJhc2UgZWFjaCB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdXAuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGRhdGFiYXNlIHJlZmVyZW5jZS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgb3VyIHJlc29sdmVycyZsdDsvaDImZ3Q7CiZsdDtwJmd0O05leHQgdXAsIHdlIG5lZWQgdG8gZGVmaW5lIHJlc29sdmVycyBmb3Igb3VyIEdyYXBoUUwgcXVlcmllcyBpbiBvcmRlciB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGRhdGEgZm9yIGVhY2ggcXVlcnkgb3BlcmF0aW9uLiBXZSB3aWxsIGRlZmluZSByZXNvbHZlcnMgZm9yIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt1c2VycyZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3VzZXImbHQ7L2NvZGUmZ3Q7IHF1ZXJpZXMgYW5kIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtlZGl0VXNlciZsdDsvY29kZSZndDsgbXV0YXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Jlc29sdmVycy5qcyZsdDsvY29kZSZndDsgYW5kIHBhc3RlIGluIHRoZSBmb2xsb3dpbmcgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IHJlc29sdmVycyA9IHsKICB1c2VyczogYXN5bmMgKF8sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIKICAgICAgLmNvbGxlY3Rpb24oJnF1b3Q7dXNlcnMmcXVvdDspCiAgICAgIC5maW5kKCkKICAgICAgLnRvQXJyYXkoKTsKICB9LAogIHVzZXI6IGFzeW5jICh7IGlkIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIuY29sbGVjdGlvbigmcXVvdDt1c2VycyZxdW90OykuZmluZE9uZSh7IGlkIH0pOwogIH0sCiAgLy9NdXRhdGlvbiByZXNvbHZlcnMKICBlZGl0VXNlcjogYXN5bmMgKHsgaWQsIG5hbWUsIGVtYWlsIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CgogICAgcmV0dXJuIGRiCiAgICAgIC5jb2xsZWN0aW9uKCZxdW90O3VzZXJzJnF1b3Q7KQogICAgICAuZmluZE9uZUFuZFVwZGF0ZSgKICAgICAgICB7IGlkIH0sCiAgICAgICAgeyAkc2V0OiB7IG5hbWUsIGVtYWlsIH0gfSwKICAgICAgICB7IHJldHVybk9yaWdpbmFsOiBmYWxzZSB9CiAgICAgICkKICAgICAgLnRoZW4ocmVzcCA9JmFtcDtndDsgcmVzcC52YWx1ZSk7CiAgfSAKfTsKCm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZXJzOwoKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgc2VlbiBhYm92ZSwgd2Ugbm93IGhhdmUgcmVzb2x2ZXJzIGZvciB0aGUgdGhyZWUgR3JhcGhRTCByZXF1ZXN0cyBhdmFpbGFibGUgb24gb3VyIHNlcnZlci4gVGhlc2UgcmVzb2x2ZXJzIGZldGNoIGFuZCB1cGRhdGUgZGF0YSB1c2luZyB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIHdlIGNyZWF0ZWQgZWFybGllciBieSByZWZlcmVuY2luZyBpdCBmcm9tIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb250ZXh0Jmx0Oy9jb2RlJmd0OyBvYmplY3Qgb2YgdGhlIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgcmVmZXJlbmNlIHdpbGwgYmUgYWRkZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbnRleHQmbHQ7L2NvZGUmZ3Q7IG9iamVjdCBvZiBvdXIgR3JhcGhRTCBzZXJ2ZXIgc2V0dXAgaW4gdGhlIG5leHQgc2VjdGlvbiB3aGVuIHdlIHB1dCBldmVyeXRoaW5nIHRvZ2V0aGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTZXR0aW5nIHVwIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O0l0IGlzIHRpbWUgdG8gcHV0IGV2ZXJ5IGNvbXBvbmVudCB3ZSBidWlsdCB0b2dldGhlciB0byBzZXQgdXAgb3VyIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlZm9yZSB3ZSBiZWdpbiwgd2UgbmVlZCB0byBpbnN0YWxsIG9uZSBtb3JlIHBhY2thZ2UuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIGNvbWVzIHdpdGggdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0dyYXBoaVFMJmx0Oy9jb2RlJmd0OyBhcHBsaWNhdGlvbiwgd2hpY2ggYWxsb3dzIHlvdSB0byBxdWVyeSB5b3VyIEdyYXBoUUwgZW5kcG9pbnQsIGJ1dCBsZXTigJlzIGFkZCBhIHRvb2wgdGhhdCBpcyBtb3JlIHJvYnVzdC4gV2Ugd2lsbCBpbnN0YWxsIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIHRvIGdpdmUgdXMgYSBmYW5jaWVyIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgb3VyIEdyYXBoUUwgZW5kcG9pbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSBmb2xsb3dpbmcgY29kZSB0byBpbnN0YWxsIHRoZSBwYWNrYWdlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGluc3RhbGwgLS1zYXZlIGdyYXBocWwtcGxheWdyb3VuZC1taWRkbGV3YXJlLWV4cHJlc3MKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7V2Ugd2lsbCB1c2UgdGhpcyBtaWRkbGV3YXJlIHRvIHNldCB1cCB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kIGZvciBxdWVyeWluZyBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0xldOKAmXMgc2V0IHVwIG91ciBzZXJ2ZXIgYnkgY3JlYXRpbmcgYSBmaWxlIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2luZGV4LmpzJmx0Oy9jb2RlJmd0OyBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBhbmQgcGxhY2luZyB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBleHByZXNzID0gcmVxdWlyZSgmcXVvdDtleHByZXNzJnF1b3Q7KTsKY29uc3QgZ3JhcGhxbEhUVFAgPSByZXF1aXJlKCZxdW90O2V4cHJlc3MtZ3JhcGhxbCZxdW90Oyk7CmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoJnF1b3Q7Li9zcmMvc2NoZW1hJnF1b3Q7KTsKY29uc3QgcmVzb2x2ZXJzID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9yZXNvbHZlcnMmcXVvdDspOwpjb25zdCBzdGFydERhdGFiYXNlID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9kYXRhYmFzZSZxdW90Oyk7CmNvbnN0IGV4cHJlc3NQbGF5Z3JvdW5kID0gcmVxdWlyZSgmcXVvdDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJnF1b3Q7KS5kZWZhdWx0OwoKLy8gQ3JlYXRlIGEgY29udGV4dCBmb3IgaG9sZGluZyBjb250ZXh0dWFsIGRhdGEgCmNvbnN0IGNvbnRleHQgPSBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IGRiID0gYXdhaXQgc3RhcnREYXRhYmFzZSgpOwoKICByZXR1cm4geyBkYiB9Owp9OwoKY29uc3QgYXBwID0gZXhwcmVzcygpOwoKYXBwLnVzZSgKICAmcXVvdDsvZ3JhcGhxbCZxdW90OywKICBncmFwaHFsSFRUUCh7CiAgICBzY2hlbWEsCiAgICByb290VmFsdWU6IHJlc29sdmVycywKICAgIGNvbnRleHQKICB9KQopOwoKLy9HcmFwaHFsIFBsYXlncm91bmQgcm91dGUKYXBwLmdldCgmcXVvdDsvcGxheWdyb3VuZCZxdW90OywgZXhwcmVzc1BsYXlncm91bmQoeyBlbmRwb2ludDogJnF1b3Q7L2dyYXBocWwmcXVvdDsgfSkpOwoKY29uc3QgcG9ydCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgJnF1b3Q7NDAwMCZxdW90OzsKCmFwcC5saXN0ZW4ocG9ydCk7Cgpjb25zb2xlLmxvZyhg8J+agCBTZXJ2ZXIgcmVhZHkgYXQgaHR0cDovL2xvY2FsaG9zdDo0MDAwL2dyYXBocWxgKTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBmaWxlIGFib3ZlLCB3ZSBzdGFydCBieSBpbXBvcnRpbmcgYWxsIG5lY2Vzc2FyeSBtb2R1bGVzLiBUaGVuLCB3ZSBjcmVhdGUgb3VyIEdyYXBoUUwgY29udGV4dCBhbmQgcmV0dXJuIGFuIG9iamVjdCBmcm9tIGl0IGNvbnRhaW5pbmcgdGhlIHJlZmVyZW5jZSB0byBvdXIgTW9uZ29EQiBpbnN0YW5jZS4gTmV4dCwgd2UgY3JlYXRlIG91ciBFeHByZXNzSlMgYXBwbGljYXRpb24gYW5kIHNldCB1cCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OyBtaWRkbGV3YXJlIHdpdGggR3JhcGhRTCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEmbHQ7L2NvZGUmZ3Q7LCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtyZXNvbHZlcnMmbHQ7L2NvZGUmZ3Q7LCBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29udGV4dCZsdDsvY29kZSZndDsuIFdlIHRoZW4gc2V0IHVwIHRoZSBHcmFwaFFMIFBsYXlncm91bmQgYXQgdGhlIHJvdXRlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBsb2FkIG91ciBHcmFwaFFMIGVuZHBvaW50LiBGaW5hbGx5LCB3ZSBzdGFydCBvdXIgRXhwcmVzc0pTIHNlcnZlciB0byBsaXN0ZW4gYXQgcG9ydCA0MDAwIGFuZCBwcmludCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1F1ZXJ5aW5nIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O05vdyB0aGF0IHdlIGhhdmUgb3VyIHNlcnZlciBzZXQgdXAsIGxldOKAmXMgdGFrZSBpdCBmb3IgYSBzcGluLiBGaXJzdCwgbGV04oCZcyBjcmVhdGUgYSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzdGFydCZsdDsvY29kZSZndDsgc2NyaXB0IGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3BhY2thZ2UuanNvbiZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHNjcmlwdCB0byB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2NyaXB0cyZsdDsvY29kZSZndDsgc2VjdGlvbiBvZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Li4uCgrigJxzY3JpcHRz4oCdIDogewoJLi4uLAoJ4oCcc3RhcnTigJ0gOiDigJxub2RlIGluZGV4Lmpz4oCdCn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25wbSBzdGFydCZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCB0aGUgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNlcnZlciBpcyB1cCBhbmQgcnVubmluZywgb3BlbiB1cCB5b3VyIGJyb3dzZXIgYW5kIHZpc2l0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMC9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBvcGVuIHVwIHRoZSBwbGF5Z3JvdW5kLiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDEucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgcGxheWdyb3VuZCBhdXRvbWF0aWNhbGx5IHBvaW50cyB0byBvdXIgR3JhcGhRTCBlbmRwb2ludC4gRnJvbSBoZXJlIHdlIGNhbiB3cml0ZSBxdWVyaWVzIGFnYWluc3Qgb3VyIGVuZHBvaW50IGFuZCBnZXQgdGhlIHJlc3VsdHMuIFBhc3RlIHRoZSBxdWVyeSBiZWxvdyBpbnRvIHRoZSBxdWVyeSBzZWN0aW9uIG9mIHRoZSBwbGF5Z3JvdW5kIGFuZCBoaXQgUGxheSB0byBydW4gaXQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt7CiAgdXNlcnMgewogICAgbmFtZQogICAgZW1haWwKICAgIHBvc3RzIHsKICAgICAgdGl0bGUKICAgICAgcHVibGlzaGVkCiAgICB9CiAgfQp9CgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtSdW5uaW5nIHRoZSBhYm92ZSBxdWVyeSB3aWxsIHByb2R1Y2UgdGhlIHJlc3VsdCBzaG93biBvbiB0aGUgc2NyZWVuIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsMi5wbmcmcXVvdDsgd2lkdGg9JnF1b3Q7ODc1JnF1b3Q7IC8mZ3Q7CiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIHNlZW4gYWJvdmUsIG91ciBHcmFwaFFMIHNlcnZlciBpcyB3b3JraW5nIGZpbmUgYW5kIHJldHVybmluZyB0aGUgZXhwZWN0ZWQgZGF0YS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRvIEhlcm9rdSB3aXRoIENpcmNsZUNJJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7T3VyIGZpbmFsIHRhc2sgaXMgdG8gZGVwbG95IG91ciBHcmFwaFFMIHNlcnZlciB0aHJvdWdoIGEgQ0kgcGlwZWxpbmUgd2l0aCBDaXJjbGVDSSBvbiB0aGUgSGVyb2t1IGhvc3RpbmcgcGxhdGZvcm0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2UgYXJlIGdvaW5nIHRvIHRha2UgdGhlIGZvbGxvd2luZyBzdGVwcyB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7UHVzaCB0aGUgcHJvamVjdCB0byBhIEdpdEh1YiByZXBvc2l0b3J5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgbmV3IEhlcm9rdSBhcHAgYW5kIGdldCB0aGUgSGVyb2t1IEFQSSBrZXkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgYSBuZXcgcHJvamVjdCB0byBvdXIgQ2lyY2xlQ0kgYWNjb3VudCBhbmQgY29ubmVjdCBpdCB0byB0aGUgR2l0SHViIHJlcG8mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgb3VyIEhlcm9rdSBhcHAgbmFtZSBhbmQgQVBJIGtleSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gb3VyIG5ldyBwcm9qZWN0Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7V3JpdGUgb3VyIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgZGVwbG95bWVudCB0byBIZXJva3UmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIHRoZSBjb25maWd1cmF0aW9uIHRvIG91ciBHaXRIdWIgcmVwbyB0byBkZXBsb3kgdG8gSGVyb2t1Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0xldOKAmXMgYmVnaW4uIEZpcnN0LCBwdXNoIHRoZSBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG8uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY3JlYXRlIGEgSGVyb2t1IGFwcGxpY2F0aW9uIGFzIHNob3duIGJlbG93LiBUaGUgbmFtZSB5b3UgZW50ZXIgaXMgdGhlIG5hbWUgeW91IHdpbGwgc2F2ZSBhcyB5b3VyIEhlcm9rdSBhcHAgbmFtZSBvbiBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWwzLnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7WW91IGNhbiBnZXQgeW91ciBIZXJva3UgQVBJIGtleSBieSBnb2luZyB0byAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgYW5kIHNjcm9sbGluZyBkb3duIHRvIHRoZSAmbHQ7c3Ryb25nJmd0O0FQSSBLZXkmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIHRvIGRlcGxveWluZyBvdXIgYXBwbGljYXRpb24gdG8gSGVyb2t1IGlzIHRvIGNvbm5lY3QgdGhlIGFwcGxpY2F0aW9uIG9uIG91ciBHaXRIdWIgcmVwb3NpdG9yeSB0byBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIZWFkIHRvIHlvdXIgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9kYXNoYm9hcmQmcXVvdDsmZ3Q7Q2lyY2xlQ0kgZGFzaGJvYXJkJmx0Oy9hJmd0OyBhbmQgYWRkIHRoZSBwcm9qZWN0IGluIHRoZSAmbHQ7c3Ryb25nJmd0O0FkZCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7IHNlY3Rpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsNC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCAoaW4gdGhpcyBjYXNlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NpbXBsZS1ncmFwaHFsLW5vZGUtc2VydmVyJmx0Oy9jb2RlJmd0OyksIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0IFVwIFByb2plY3QmbHQ7L3N0cm9uZyZndDsuIFRoaXMgd2lsbCBicmluZyB5b3UgdG8gYSBwYWdlIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDUucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IGJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIHByb2plY3QuIFRoaXMgd2lsbCBpbW1lZGlhdGVseSBnaXZlIHVzIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCBhIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIHByb2plY3QuIFRoaXMgaXMgdW5kZXJzdGFuZGFibGUsIGFzIHdlIGFyZSB5ZXQgdG8gaW5jbHVkZSBvdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlLiBXZSB3aWxsIGJlIGRvaW5nIHRoYXQgbGF0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIG5leHQgc3RlcCBpcyB0byBhZGQgb3VyIEhlcm9rdSBkZXRhaWxzIGFzICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wL2Vudi12YXJzLyZxdW90OyZndDtlbnZpcm9ubWVudCB2YXJpYWJsZXMmbHQ7L2EmZ3Q7IHRvIHRoZSBuZXdseSBzZXQgdXAgcHJvamVjdC4KSW4gb3JkZXIgdG8gcHVzaCBvdXIgcHJvamVjdCB0byBIZXJva3UgZnJvbSBDaXJjbGVDSSwgd2UgbmVlZCB0byBjb25maWd1cmUgYW4gYXV0aGVudGljYXRlZCBoYW5kc2hha2UgYmV0d2VlbiBDaXJjbGVDSSBhbmQgSGVyb2t1LiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcgdHdvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgc2V0dGluZ3MgZm9yIHlvdXIgQ2lyY2xlQ0kgcHJvamVjdC4gVGhlIHR3byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtIRVJPS1VfQVBQX05BTUUmbHQ7L2NvZGUmZ3Q7OiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIChpbiB0aGlzIGNhc2UgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2ltcGxlLWdyYXBocWwtbm9kZS1zZXJ2ZXImbHQ7L2NvZGUmZ3Q7KSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OzogWW91ciBIZXJva3UgYWNjb3VudCBBUEkga2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBvbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50Jmx0Oy9zdHJvbmcmZ3Q7IHRhYiBvZiB5b3VyIEhlcm9rdSBhY2NvdW50IHVuZGVyICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VG8gYWRkIHRoZXNlIGRldGFpbHMsIGhlYWQgb3ZlciB0byB5b3VyIENpcmNsZUNJIGRhc2hib2FyZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBmb3IgeW91ciBwcm9qZWN0LiBPbiB0aGUgc2lkZWJhciBtZW51IG9uIHRoZSBzZXR0aW5ncyBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O0Vudmlyb25tZW50IFZhcmlhYmxlcyZsdDsvc3Ryb25nJmd0OyB1bmRlciAmbHQ7c3Ryb25nJmd0O0J1aWxkIFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDYucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIHBhZ2UsIGNyZWF0ZSB0d28gdmFyaWFibGVzIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OyBhbmQgYWRkIHRoZSByZXNwZWN0aXZlIHZhbHVlcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZXNlIGluIHBsYWNlLCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBjYW4gdXNlIHRoZW0gdG8gbWFrZSBhdXRoZW50aWNhdGVkIGRlcGxveW1lbnRzIHRvIHRoZSBIZXJva3UgcGxhdGZvcm0uCk5vdywgbGV04oCZcyB3cml0ZSBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyIHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtDcmVhdGUgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsuY2lyY2xlY2kmbHQ7L2NvZGUmZ3Q7IGF0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCBhbmQgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgaXQuIEFkZCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uJmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpvcmJzOgogIGhlcm9rdTogY2lyY2xlY2kvaGVyb2t1QDAuMC4xMAp3b3JrZmxvd3M6CiAgaGVyb2t1X2RlcGxveToKICAgIGpvYnM6CiAgICAgIC0gaGVyb2t1L2RlcGxveS12aWEtZ2l0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7VGhlIGNvZGUgYWJvdmUgdXNlcyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7SGVyb2t1IG9yYiZsdDsvYSZndDsgdG8gcGVyZm9ybSBhIHNlYW1sZXNzIGRlcGxveW1lbnQgdG8gSGVyb2t1LiBBbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYiZsdDsvYSZndDsgaXMgYSByZXVzYWJsZSBwYWNrYWdlIG9mIGEgWUFNTCBjb25maWd1cmF0aW9uIHRoYXQgY29uZGVuc2VzIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoaXMgb25lIG1ha2VzIGl0IHZlcnkgZWFzeSB0byBkZXBsb3kgdG8gSGVyb2t1IHdpdGhvdXQgd3JpdGluZyBhIHNvcGhpc3RpY2F0ZWQgY29uZmlnIHlvdXJzZWxmLiZsdDsvcCZndDsKCiZsdDtwJmd0O1NhdmUgdGhpcyBmaWxlIGFuZCBwdXNoIHlvdXIgY2hhbmdlcyB0byB0aGUgR2l0SHViIHJlcG9zaXRvcnkuIFRoZW4gd2F0Y2ggeW91ciBDaXJjbGVDSSBkYXNoYm9hcmQgdHJpZ2dlciBhIGRlcGxveW1lbnQgYWZ0ZXIgdGhlIHN1Y2Nlc3NmdWwgcHVzaC4gWW91IHdpbGwgc2VlIGEgc3VjY2Vzc2Z1bCBkZXBsb3ltZW50IG9uIHlvdXIgZGFzaGJvYXJkIHNpbWlsYXIgdG8gdGhlIHNjcmVlbiBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWw3LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXdlc29tZSEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXTigJlzIG5vdyB2aXNpdCBvdXIgUGxheWdyb3VuZCBvbiB0aGUgbGl2ZSBhcHBsaWNhdGlvbiB0byBjb25maXJtIHRoYXQgb3VyIGRlcGxveW1lbnQgaXMgZmluZS4gVmlzaXQgdGhlIGxpbmsgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9ZT1VSX0hFUk9LVV9BUFBfTkFNRS5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7LiBGb3Igb3VyIGV4ZXJjaXNlLCB0aGlzIHdpbGwgYmUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9zaW1wbGUtZ3JhcGhxbC1ub2RlLXNlcnZlci5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7IGFzIHNlZW4gYmVsb3cuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsOC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SW4gdGhpcyBhcnRpY2xlLCB3ZSBoYXZlIGJlZW4gYWJsZSB0byBzdWNjZXNzZnVsbHkgcHV0IHRvZ2V0aGVyIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyIGFuZCBhdXRvbWF0ZSBpdHMgZGVwbG95bWVudCB1c2luZyBDaXJjbGVDSS4gR3JhcGhRTCBpcyBoZXJlIHRvIHN0YXkgYW5kIGlzIGV4cGVjdGVkIHRvIGdhaW4gbW9yZSBhZG9wdGlvbiwgc2luY2UgaXRzIG1hbnkgYmVuZWZpdHMgbWFrZSBpdCB3b3J0aHkgb2YgaW5jcmVhc2VkIHVzZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIYXBweSBjb2RpbmchJmx0Oy9wJmd0OwoKJmx0O2hyIC8mZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Eb2NrZXIgYW5kIENJL0NEIHR1dG9yaWFsOiBhIGRlZXAgZGl2ZSBpbnRvIGNvbnRhaW5lcnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZG9ja2VyLWFuZC1jaWNkLXR1dG9yaWFsLWEtZGVlcC1kaXZlLWludG8tY29udGFpbmVycy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+RnJpLCAyNCBBcHIgMjAyMCAxMjowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9kb2NrZXItYW5kLWNpY2QtdHV0b3JpYWwtYS1kZWVwLWRpdmUtaW50by1jb250YWluZXJzLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkFuZ2VsIFJpdmVyYTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtUaGlzIGlzIGEgZm9sbG93LXVwIHRvIGEgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7IHRoYXQgSSB3cm90ZSBhZnRlciBDaXJjbGVDSSAyLjAgd2FzIHJlbGVhc2VkLiBUaGlzIHJlbGVhc2UgaW1wbGVtZW50ZWQgYnVpbGQgc3VwcG9ydCB1c2luZyBEb2NrZXIgZXhlY3V0b3JzLiBBZnRlciB0aGUgcmVsZWFzZSwgd2UgcmVhbGl6ZWQgdGhhdCBvbmUgb2YgdGhlIGJpZ2dlc3QgYmFycmllcnMgdGhhdCBDaXJjbGVDSSB1c2VycyBlbmNvdW50ZXJlZCB3YXMgYSBsYWNrIG9mIGV4cGVyaWVuY2Ugd2l0aCBEb2NrZXIuIFRoaXMgd2FzIGNvbmZpcm1lZCB0aHJvdWdoIG15IGNvbnZlcnNhdGlvbnMgd2l0aCBudW1lcm91cyBkZXZlbG9wZXJzLCBpbiB0aGUgY29tbXVuaXR5IGFuZCBhdCBldmVudHMsIGFib3V0IHRoZWlyIHVzZSBvZiBjb250YWluZXIgdGVjaG5vbG9naWVzIGluIHRoZWlyICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmVzLiBUaGVzZSBjb252ZXJzYXRpb25zIGhhdmUgaGlnaGxpZ2h0ZWQgdGhhdCBtYW55IGRldmVsb3BlcnMgZG9u4oCZdCBoYXZlIGEgZnVsbCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byB1c2UgY29udGFpbmVyIHRlY2hub2xvZ2llcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgd2lsbCBleHBhbmQgb24gYW5kIGRlbW9uc3RyYXRlIHNvbWUgb2YgdGhlIG1vcmUgdXNlZnVsIERvY2tlciBjb21tYW5kcyBkaXNjdXNzZWQgaW4gbXkgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtXaGF0IGlzIERvY2tlcj8mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZSBpcyB0aGUgc2ltcGxpZmllZCBkZWZpbml0aW9uIG9mIERvY2tlciB0aGF0IEkgdXNlZCBpbiBteSBwcmV2aW91cyBwb3N0OiZsdDsvcCZndDsKCiZsdDtibG9ja3F1b3RlJmd0OwogICZsdDtwJmd0O0RvY2tlciBpcyBhIHBsYXRmb3JtIGZvciBkZXZlbG9wZXJzIGFuZCBzeXNhZG1pbnMgdG8gZGV2ZWxvcCwgZGVwbG95LCBhbmQgcnVuIGFwcGxpY2F0aW9ucyB1c2luZyBjb250YWluZXJzLiZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7RG9ja2VyIGlzIGFsc28gcmVmZXJyZWQgdG8gYXMgYW4gYXBwbGljYXRpb24gcGFja2FnaW5nIHRvb2wgdGhhdCBlbmFibGVzIGFwcGxpY2F0aW9ucyB0byBiZSBjb25maWd1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZC8jaW1hZ2VzLWFuZC1jb250YWluZXJzJnF1b3Q7Jmd0O0RvY2tlciBpbWFnZSZsdDsvYSZndDsgdGhhdCBjYW4gYmUgdXNlZCB0byBzcGF3biAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyNpbWFnZXMtYW5kLWNvbnRhaW5lcnMmcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IHRoYXQgcnVuIGluc3RhbmNlcyBvZiB0aGUgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIG1hbnkgYmVuZWZpdHMgaW5jbHVkaW5nIHJ1bnRpbWUgZW52aXJvbm1lbnQgaXNvbGF0aW9uLCBjb25zaXN0ZW5jeSB2aWEgY29kZSwgYW5kIHBvcnRhYmlsaXR5LiBEb2NrZXIgY29udGFpbmVycyBjYW4gcnVuIG9uIGFueSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgc3VwcG9ydHMgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZW5naW5lJnF1b3Q7Jmd0O0RvY2tlciBFbmdpbmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtCYXNpYyBEb2NrZXIgdGVybWlub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZeKAmXMgYSBsaXN0IG9mIGJhc2ljIERvY2tlciBjb21tYW5kcyBhbmQgdGVybXMgd2l0aCBsaW5rcyB0byBtb3JlIGluZm9ybWF0aW9uLiBUaGVzZSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgRG9ja2VyIGFuZCBjb250cm9sIHRoZSBleGVjdXRvci4gVGhlIGNvbW1hbmRzIGNhbiBiZSBydW4gbG9jYWxseSBvbiBhbnkgY29tcHV0ZXIgdGhhdCBoYXMgdGhlIERvY2tlciBlbmdpbmUgaW5zdGFsbGVkLiZsdDsvcCZndDsKCiZsdDtoMyZndDtCdWlsZGluZyBEb2NrZXIgaW1hZ2VzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBhIHRleHQgZG9jdW1lbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNvbW1hbmRzIGEgdXNlciBjb3VsZCBjYWxsIG9uIHRoZSBjb21tYW5kIGxpbmUgdG8gYXNzZW1ibGUgYW4gaW1hZ2UuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBEb2NrZXJmaWxlIGlzIGEgYmx1ZXByaW50IGZvciBidWlsZGluZyBEb2NrZXIgaW1hZ2VzLiBEb2NrZXJmaWxlIHRlbXBsYXRlcyBob2xkIGVsZW1lbnRzIHN1Y2ggYXMgdGhlIGJhc2Ugb3BlcmF0aW5nIHN5c3RlbSBpbWFnZSB1c2VkIGFzIGEgZm91bmRhdGlvbiwgZXhlY3V0aW9uIGNvbW1hbmRzIHRoYXQgaW5zdGFsbC9jb25maWd1cmUgZGVwZW5kZW5jaWVzLCBhbmQgY29weSBjb21tYW5kcyB0aGF0IHB1c2ggbG9jYWwgc291cmNlIGNvZGUgb3IgYXJ0aWZhY3RzIGludG8gdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBEb2NrZXJmaWxlIGZvciBhIHNpbXBsZSBOb2RlLmpzIGFwcGxpY2F0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7RlJPTSBub2RlOjEwCgojIENyZWF0ZSBhcHAgZGlyZWN0b3J5CldPUktESVIgL3Vzci9zcmMvYXBwCgojIEluc3RhbGwgYXBwIGRlcGVuZGVuY2llcwojIEEgd2lsZGNhcmQgaXMgdXNlZCB0byBlbnN1cmUgYm90aCBwYWNrYWdlLmpzb24gQU5EIHBhY2thZ2UtbG9jay5qc29uIGFyZSBjb3BpZWQKIyB3aGVyZSBhdmFpbGFibGUgKG5wbUA1KykKQ09QWSBwYWNrYWdlKi5qc29uIC4vCgpSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIyBJZiB5b3UgYXJlIGJ1aWxkaW5nIHlvdXIgY29kZSBmb3IgcHJvZHVjdGlvbgojIFJVTiBucG0gaW5zdGFsbCAtLW9ubHk9cHJvZHVjdGlvbgoKIyBCdW5kbGUgYXBwIHNvdXJjZQpDT1BZIC4gLgoKRVhQT1NFIDUwMDAKQ01EIFsgJnF1b3Q7bnBtJnF1b3Q7LCAmcXVvdDtzdGFydCZxdW90OyBdCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2ltYWdlcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7IGxpc3RzIERvY2tlciBpbWFnZXMgZm91bmQgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gbGlzdCBhbGwgb2YgdGhlIERvY2tlciBpbWFnZXMgYW5kIHJlbGF0ZWQgZGF0YSB0aGF0IGN1cnJlbnRseSBleGlzdCBvbiB0aGUgbG9jYWwgbWFjaGluZS4gSXTigJlzIGNvbXBhcmFibGUgdG8gYSBsaW51eCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtscyZsdDsvY29kZSZndDsgb3Igd2luZG93cyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkaXImbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdXNlZCB0byBzaG93IHRoZSBjb250ZW50cyBvZiBkaXJlY3RvcmllcyBpbiBhIHRlcm1pbmFsLiBUaGlzIGNvbW1hbmQgaXMgdmVyeSB1c2VmdWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRvIG1hbmFnZSwgbWFpbnRhaW4sIGFuZCBidWlsZCBEb2NrZXIgaW1hZ2VzIGxvY2FsbHkuIEJlbG93IGlzIGFuIGV4YW1wbGUgcmVzdWx0IG9mIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgZXhlY3V0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UkVQT1NJVE9SWSAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHICAgICAgICAgICAgICAgICBJTUFHRSBJRCAgICAgICAgICAgIENSRUFURUQgICAgICAgICAgICAgU0laRQphcml2M3JhL25vZGVqcy1jaXJjbGVjaSAgICAgICAgICAgICBsYXRlc3QgICAgICAgICAgICAgIGY0MTllNGE2YjFiOCAgICAgICAgMTEgZGF5cyBhZ28gICAgICAgICA5NDNNQgpub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAgICAgICAgICAgICAgICAgIDAxYjgxNjA1MWQzNCAgICAgICAgMiB3ZWVrcyBhZ28gICAgICAgICA5MTFNQgpjaXJjbGVjaS9weXRob24gICAgICAgICAgICAgICAgICAgICAzLjcuNiAgICAgICAgICAgICAgIDBkMjk3NTg5NmM3MyAgICAgICAgNSB3ZWVrcyBhZ28gICAgICAgICAxLjQzR0IKYXJpdjNyYS9pbmZyYXN0cnVjdHVyZS1hcy1jb2RlMTAxICAgbGF0ZXN0ICAgICAgICAgICAgICBjYjIxYTM2YTI5NzMgICAgICAgIDggd2Vla3MgYWdvICAgICAgICAgOTI5TUIKcHl0aG9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43LjYgICAgICAgICAgICAgICA4NzkxNjU1MzVhNTQgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgOTE5TUIKY2lyY2xlY2kvcnVzdCAgICAgICAgICAgICAgICAgICAgICAgMS1idXN0ZXIgICAgICAgICAgICAyMTgzMjliOTI5Y2YgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgMS42OEdCCnJ1c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtYnVzdGVyICAgICAgICAgICAgZjVmZGUwOTJhMWNkICAgICAgICAyIG1vbnRocyBhZ28gICAgICAgIDEuMTlHQgpweXRob24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcuNCAgICAgICAgICAgICAgIDlmYTU2ZDBhZGRhZSAgICAgICAgNiBtb250aHMgYWdvICAgICAgICA5MThNQgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGJ1aWxkIC10ICZhbXA7bHQ7aW1hZ2UgbmFtZSZhbXA7Z3Q7IC4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBjcmVhdGVzIGEgRG9ja2VyIGltYWdlIHdpdGggYSB0YWcgdXNpbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LXQmbHQ7L2NvZGUmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhYm92ZSBjb21tYW5kLCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgdmFsaWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDssIGJ1aWxkcyBhIERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgZXhlY3V0aW9uIGNvbW1hbmRzIGRlZmluZWQgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7LiBPbmUgY3JpdGljYWwgZWxlbWVudCB0byBidWlsZGluZyBpbWFnZXMgYW5kIHN0YXJ0aW5nIGNvbnRhaW5lcnMgaXMgdW5kZXJzdGFuZGluZyB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9hJmd0Oy4gQnVpbGRpbmcgRG9ja2VyIGltYWdlcyB1c2luZyB0aGlzIGNvbW1hbmQgc3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIERvY2tlciBpbWFnZXMgdXRpbGl6ZXMgYSBuYW1pbmcgY29udmVudGlvbiBtYWRlIHVwIG9mIHNsYXNoLXNlcGFyYXRlZCBuYW1lIGNvbXBvbmVudHMgdGhhdCBtYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgc2VwYXJhdG9ycy4gQSBzZXBhcmF0b3IgaXMgZGVmaW5lZCBhcyBhIHBlcmlvZCwgb25lIG9yIHR3byB1bmRlcnNjb3Jlcywgb3Igb25lIG9yIG1vcmUgZGFzaGVzLiBBIG5hbWUgY29tcG9uZW50IG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggYSBzZXBhcmF0b3IuIEEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7ZG9ja2VyIHRhZyZsdDsvYSZndDsgbmFtZSBtdXN0IGJlIHZhbGlkIEFTQ0lJIGFuZCBtYXkgY29udGFpbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHVuZGVyc2NvcmVzLCBwZXJpb2RzLCBhbmQgZGFzaGVzLiBBIHRhZyBuYW1lIG1heSBub3Qgc3RhcnQgd2l0aCBhIHBlcmlvZCBvciBhIGRhc2ggYW5kIG1heSBjb250YWluIGEgbWF4aW11bSBvZiAxMjggY2hhcmFjdGVycy4gWW91IGNhbiBncm91cCB5b3VyIGltYWdlcyB0b2dldGhlciB1c2luZyBuYW1lcyBhbmQgdGFncy4gSW4gdGhpcyBwb3N0LCB3ZSB3aWxsIHVzZSB0aGlzIG5hbWluZyBjb252ZW50aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB0aGF0IHdl4oCZdmUgZGlzY3Vzc2VkIG5hbWluZyBjb252ZW50aW9ucyBsZXTigJlzIGJ1aWxkIGEgRG9ja2VyIGltYWdlIGJhc2VkIG9uIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXJmaWxlJmx0Oy9jb2RlJmd0OyBpbiBvdXIgZXhhbXBsZSBhYm92ZS4gSW4gdGhpcyBwb3N0IHdlIGNhbiB1dGlsaXplIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9wdW5rZGF0YS9ub2RlanMtY2lyY2xlY2kmcXVvdDsmZ3Q7cHVua2RhdGEvbm9kZWpzLWNpcmNsZWNpJmx0Oy9hJmd0OyBnaXQgcmVwby4gQ2xvbmUgaXQgbG9jYWxseSBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7JCBjZCZsdDsvY29kZSZndDsgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlbiBydW4gdGhpcyBjb21tYW5kIHRvIGJ1aWxkIGEgbmV3IERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgcHJvamVjdCBzb3VyY2UgY29kZSBhbmQgdGhlIGV4YW1wbGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgYnVpbGQgLXQgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0FmdGVyIHJ1bm5pbmcgdGhpcyBidWlsZCBjb21tYW5kLCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtTZW5kaW5nIGJ1aWxkIGNvbnRleHQgdG8gRG9ja2VyIGRhZW1vbiAgOTguMDdNQgpTdGVwIDEvNyA6IEZST00gbm9kZToxMAogLS0tJmFtcDtndDsgMDFiODE2MDUxZDM0ClN0ZXAgMi83IDogV09SS0RJUiAvdXNyL3NyYy9hcHAKIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyAxMmIyZWRjMmI5N2MKU3RlcCAzLzcgOiBDT1BZIHBhY2thZ2UqLmpzb24gLi8KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyA1M2I1YjhlNGU2NTQKU3RlcCA0LzcgOiBSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyBlZWZkZjU2MGJjNGQKU3RlcCA1LzcgOiBDT1BZIC4gLgogLS0tJmFtcDtndDsgYWE3ZDU0ZTk1NWM2ClN0ZXAgNi83IDogRVhQT1NFIDUwMDAKIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gY2M0MjdkYmFmZGNjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgY2M0MjdkYmFmZGNjCiAtLS0mYW1wO2d0OyA0Y2U5MDg0ZTM5ZWIKU3RlcCA3LzcgOiBDTUQgWyAmcXVvdDtucG0mcXVvdDssICZxdW90O3N0YXJ0JnF1b3Q7IF0KIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gZjZlODU0NTk5ZGRjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgZjZlODU0NTk5ZGRjCiAtLS0mYW1wO2d0OyA3OWE4ZDk0Y2JmNDIKU3VjY2Vzc2Z1bGx5IGJ1aWx0IDc5YThkOTRjYmY0MgpTdWNjZXNzZnVsbHkgdGFnZ2VkIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2VzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgeW91ciBuZXdseSBjcmVhdGVkIERvY2tlciBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDskIGRvY2tlciBpbWFnZXMKClJFUE9TSVRPUlkgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRyAgICAgICAgICAgICAgICAgSU1BR0UgSUQgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNJWkUKdHV0b3JpYWwvY2lyY2xlY2ktbm9kZSAgICAgICAgICAgICAgMTAgICAgICAgICAgICAgICAgICA3OWE4ZDk0Y2JmNDIgICAgICAgIDQgbWludXRlcyBhZ28gICAgICAgMS4wM0dCCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyB5b3UgaGF2ZSBhbiBhd2Vzb21lIERvY2tlciBpbWFnZSBidWlsdCBhbmQgcmVhZHkgdG8gdXNlLiBJbiB0aGUgbmV4dCBzZWN0aW9uIEnigJlsbCBjcmVhdGUgbmV3IGluc3RhbmNlcyBvZiB0aGlzIERvY2tlciBpbWFnZSBpbiB0aGUgZm9ybSBvZiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvY29udGFpbmVyLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXIgY29udGFpbmVycyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBjb250YWluZXJzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IGFyZSBkZXNpZ25lZCB0byBydW4gYXBwbGljYXRpb25zIGluIGlzb2xhdGlvbiBhbmQgYXQgc2NhbGUuICBUaGV5IGFsbG93IGZvciBzdHJlYW1saW5pbmcgdGhlIG1hbmFnZW1lbnQgYW5kIGltcGxlbWVudGF0aW9uIG9mIGFwcGxpY2F0aW9ucy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7QmVmb3JlIHdlIHN0YXJ0IGNyZWF0aW5nIGFuZCBydW5uaW5nIERvY2tlciBjb250YWluZXJzLCBJ4oCZbGwgYWRkIHNvbWUgY29udGV4dC4gRG9ja2VyIGNvbnRhaW5lcnMgYXJlIG9iamVjdHMgdGhhdCBhcmUgYmFzZWQgb24gYW5kIHNwYXduZWQgZnJvbSBEb2NrZXIgaW1hZ2VzLiBEb2NrZXIgaW1hZ2VzIGFyZSB0ZW1wbGF0ZXMuIEkgbGlrZW4gdGhlbSB0byBjb29raWUgY3V0dGVyIG1vbGRzLiBDb29raWUgY3V0dGVyIG1vbGRzIGVuYWJsZSB5b3UgdG8gcXVpY2tseSBhbmQgY29uc2lzdGVudGx5IHByb2R1Y2UgaW5kaXZpZHVhbCBjb29raWVzIGZyb20gZG91Z2guIEkgbGlrZW4gdGhlc2UgY29va2llcyB0byBEb2NrZXIgY29udGFpbmVycyB3aGljaCBhcmUgZGlzdGluZ3Vpc2hlZCBpbiBzaGFwZSBieSB0aGUgdHlwZSBvZiBjb29raWUgbW9sZCwgb3IgRG9ja2VyIGNvbnRhaW5lciwgdXNlZCBpbiB0aGUgY3V0dGluZy9idWlsZGluZyBwcm9jZXNzLiBTbyB1c2luZyBteSBjb29raWUgY3V0dGVyIGFuYWxvZ3ksIERvY2tlciBpbWFnZXMgYXJlIHRoZSBjb29raWUgY3V0dGVyIGFuZCB0aGUgaW5kaXZpZHVhbCBjb29raWVzIGN1dCB1c2luZyB0aGF0IGN1dHRlciBhcmUgZXF1aXZhbGVudCB0byBEb2NrZXIgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCBJ4oCZdmUgcHJvYmFibHkgbWFkZSB5b3UgYSBiaXQgaHVuZ2FyeSBmb3IgY29va2llcywgbGV04oCZcyBzdGFydCBydW5uaW5nIHNvbWUgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBydW5zIGEgY29tbWFuZCBpbiBhIG5ldyBjb250YWluZXIuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY29tbWFuZCBvZiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgc3RhcnRpbmcgRG9ja2VyIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCBhIG5ldyBjb250YWluZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcnVuIC1kIC1wIDUwMDA6NTAwMCAtLW5hbWUgbm9kZXRlc3QwMSB0dXRvcmlhbC9jaXJjbGVjaS1ub2RlOjEwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NvbmdyYXRzISBZb3Ugc2hvdWxkIG5vdyBoYXZlIHRoZSBOb2RlLmpzIGltYWdlIHJ1bm5pbmcgaW4gdGhlIG5ldyBjb250YWluZXIgdGhhdCB5b3UganVzdCBjcmVhdGVkIGF2YWlsYWJsZSBvbiBwb3J0IDUwMDAuIE9wZW4gYSB3ZWIgYnJvd3NlciBhbmQgZ28gdG8gdGhpcyBhZGRyZXNzOiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtodHRwOi8vbG9jYWxob3N0OjUwMDAmbHQ7L2NvZGUmZ3Q7LiBJdCB3aWxsIHRha2UgeW91IHRoZSBzdGF0aWMg4oCcV2VsY29tZSB0byBDSS9DRCAxMDEgdXNpbmcgQ2lyY2xlQ0kh4oCdIHdlYiBwYWdlIHNlcnZlZCBieSB0aGlzIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsc28gdmVyaWZ5IHlvdXIgY29udGFpbmVyIGlzIHJ1bm5pbmcgYnkgZXhlY3V0aW5nIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbC4gV2XigJlsbCBkaXNjdXNzIHRoaXMgaW4gdGhlIG5leHQgc2VjdGlvbi4gQmVmb3JlIHRoYXQsIGxldOKAmXMgc3RhcnQgYW4gb3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGFwcGxpY2F0aW9uIGJ5IHJ1bm5pbmcgYW5vdGhlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnRlZCBvdXIgZmlyc3QgY29udGFpbmVyIHdpdGggdGhlIG5hbWUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDsgYW5kIHNpbmNlIGNvbnRhaW5lciBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgd2XigJlyZSBnb2luZyB0byBuYW1lIG91ciBuZXcgY29udGFpbmVyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7LiBBbm90aGVyIGNoYW5nZSB0aGF0IG11c3QgYmUgbWFkZSBpbiBvdXIgbmV3IGNvbnRhaW5lciBpcyB0aGUgcG9ydCBudW1iZXIuIFdl4oCZbGwgY2hhbmdlIGl0IGZyb20gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMCZsdDsvY29kZSZndDsgdG8gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMSZsdDsvY29kZSZndDsgc2luY2UgYXBwbGljYXRpb25zIGNhbm5vdCBvY2N1cHkgdGhlIHNhbWUgcG9ydCBudW1iZXIgb24gdGhlIHNhbWUgbmV0d29yayBpbnRlcmZhY2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RXhlY3V0ZSB0aGUgZm9sbG93aW5nICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtZCAtcCA1MDAxOjUwMDAgLS1uYW1lIG5vZGV0ZXN0MDIgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISBZb3Ugbm93IGhhdmUgdHdvIGNvbnRhaW5lcnMgcnVubmluZyBvbiB5b3VyIGxvY2FsIG1hY2hpbmUuIFlvdSBjYW4gZ28gdG8gdGhpcyBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMSZsdDsvY29kZSZndDsgaW4gYSBicm93c2VyIGFuZCBzZWUgdGhlIGFwcCBydW5uaW5nIGluIHlvdXIgc2Vjb25kIERvY2tlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaXMgdmVyeSByb2J1c3QgYW5kIGhhcyBtYW55IHByb3BlcnR5IGFuZCBjb25maWd1cmF0aW9uIGZsYWdzIHdoaWNoIEkgd29u4oCZdCBiZSBhYmxlIHRvIGFkZHJlc3Mgb3IgZGVtb25zdHJhdGUgaW4gdGhpcyBwb3N0LiBJIGhpZ2hseSByZWNvbW1lbmQgdGhhdCB5b3UgcmVhZCBhbmQgZmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgbWFueSB3YXlzIHRoYXQgeW91IGNhbiBleGVjdXRlIGFuZCBydW4gRG9ja2VyIGNvbnRhaW5lcnMuIFlvdSBjYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7cmVhZCB1cCBvbiBEb2NrZXIgY29udGFpbmVycyBjb21tYW5kcyBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9wcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbGlzdHMgYWxsIG9mIHRoZSBydW5uaW5nIERvY2tlciBjb250YWluZXJzLiBUaGlzIGNvbW1hbmQgc2VydmVzIGEgc2ltaWxhciBwdXJwb3NlIGFzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2UmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgYW5kIGxpc3RzIGFjdGl2ZWx5IHJ1bm5pbmcgY29udGFpbmVycy4gVXNlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDstYSZsdDsvY29kZSZndDsgZmxhZyB0byBzaG93IGFsbCBvZiB0aGUgcnVubmluZyBhbmQgbm90IHJ1bm5pbmcgY29udGFpbmVycy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoaXMgY29tbWFuZCBpbiBhIHRlcm1pbmFsIGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIGJvdGggb2YgdGhlIHByZXZpb3VzbHkgY3JlYXRlZCBjb250YWluZXJzIHJ1bm5pbmcgaW4gdGhlIHJlc3VsdHM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlIHJlc3VsdHMgd2lsbCBiZSBzaW1pbGFyIHRvIHRoaXMgc2hvd2luZyBib3RoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDEmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcnMgc3RpbGwgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0NPTlRBSU5FUiBJRCAgICAgICAgSU1BR0UgICAgICAgICAgICAgICAgICAgICAgIENPTU1BTkQgICAgICAgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNUQVRVUyAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICAgICAgIE5BTUVTCmRmZDMwMTgxZTE1YyAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAxMiBtaW51dGVzIGFnbyAgICAgIFVwIDEyIG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAxLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAyOCBtaW51dGVzIGFnbyAgICAgIFVwIDI4IG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAwLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7CiAgICAmbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvc3RhcnQvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdGFydHMgYW4gZXhpc3RpbmcgY29udGFpbmVyLiZsdDsvcCZndDsKICAmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsKICAgICZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9zdG9wLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdG9wcyBhbiBleGlzdGluZyBjb250YWluZXIuJmx0Oy9wJmd0OwogICZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgaXMgb25seSB1c2VkIHRvIHN0YXJ0ICZsdDtzdHJvbmcmZ3Q7ZXhpc3RpbmcmbHQ7L3N0cm9uZyZndDsgY29udGFpbmVycyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcnVuJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBVbmxlc3MgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy0tcm09dHJ1ZSZsdDsvY29kZSZndDsgZmxhZyBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgbmV3bHkgY3JlYXRlZCBjb250YWluZXJzIHdpbGwgcGVyc2lzdCBhbmQgY2FuIGJlIHJldXNlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RhcnQmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCZsdDsvY29kZSZndDsgY29tbWFuZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdG9wIHNvbWUgcnVubmluZyBjb250YWluZXJzIGJ5IGV4ZWN1dGluZyB0aGVzZSBjb21tYW5kczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBzdG9wIG5vZGV0ZXN0MDEgbm9kZXRlc3QwMgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBydW5uaW5nIGNvbnRhaW5lcnMgc2hvdWxkIG5vdyBiZSBpbmFjdGl2ZSBhbmQgc3RvcHBlZC4gU2luY2UgdGhleeKAmXJlIHN0b3BwZWQsIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgaW5kaWNhdGluZyBzdG9wcGVkIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtDT05UQUlORVIgSUQgICAgICAgIElNQUdFICAgICAgICAgICAgICAgICAgICAgICBDT01NQU5EICAgICAgICAgICAgICAgICAgQ1JFQVRFRCAgICAgICAgICAgICBTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICBOQU1FUwpkZmQzMDE4MWUxNWMgICAgICAgIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAgICAmcXVvdDtkb2NrZXItZW50cnlwb2ludC5z4oCmJnF1b3Q7ICAgMzEgbWludXRlcyBhZ28gICAgICBFeGl0ZWQgKDApIDM4IHNlY29uZHMgYWdvICAgICAgICAgICAgICAgICAgICAgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICBBYm91dCBhbiBob3VyIGFnbyAgIEV4aXRlZCAoMCkgMzggc2Vjb25kcyBhZ28gICAgICAgICAgICAgICAgICAgICAgIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhvdWdoIHRoZXNlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQgdGhleSB3aWxsIHBlcnNpc3QgYW5kIGNhbiBiZSByZXN0YXJ0ZWQgdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCZsdDsvY29kZSZndDsgY29tbWFuZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXRzIHN0YXJ0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAxJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgc28gd2UgY2FuIGxlYXJuIGhvdyB0byB1c2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBmZWF0dXJlcyBpbiB0aGUgbmV4dCBzZWN0aW9uLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHN0YXJ0IG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Tm93IHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBOb3RpY2UgdGhlIHN0YXR1cyBmb3IgdGhpcyBjb250YWluZXIgcmVhZHMgc2ltaWxhciB0byAgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXAgYWJvdXQgYSAzMCBzZWNvbmRzJmx0Oy9jb2RlJmd0OyBvciBzb21ldGhpbmcgdG8gdGhhdCBlZmZlY3QuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9ncy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ3MmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBmZXRjaGVzIGEgY29udGFpbmVy4oCZcyBsb2dzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIHNlZSBsb2dzIHRoYXQgYXJlIHByZXNlbnQgYXQgdGhlIHRpbWUgb2YgZXhlY3V0aW9uLiBTaW5jZSB5b3VyIGFwcHMgYXJlIHJ1bm5pbmcgaW5zaWRlIHRoZXNlIGNvbnRhaW5lcnMsIHRoZSBsb2dzIGNvbW1hbmQgaXMgdXNlZnVsIGZvciByZWFkaW5nIG91dCBjcml0aWNhbCBhcHAgb3V0cHV0cy4gVGhpcyBoZWxwcyBpbiB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgYXBwIGlzIHBlcmZvcm1pbmcgYW5kIGFueSBkZWJ1Z2dpbmcvdHJvdWJsZXNob290aW5nIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBydW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDEmbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBsb2dzIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIGNvbW1hbmQgeW91IHNob3VsZCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHdoYXTigJlzIHNob3duIGJlbG93LiBJdCBzaG93cyB0aGF0IHRoZSBhcHAgaW5zaWRlIGNvbnRhaW5lciBpcyB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O05vZGUgc2VydmVyIGlzIHJ1bm5pbmcuLgoKJmFtcDtndDsgbm9kZWpzLWNpcmNsZWNpQDAuMC4xIHN0YXJ0IC91c3Ivc3JjL2FwcAomYW1wO2d0OyBub2RlIGFwcC5qcwoKTm9kZSBzZXJ2ZXIgaXMgcnVubmluZy4uCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0gJmFtcDtsdDtjb250YWluZXIgbmFtZSZhbXA7Z3Q7Jmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgZGVsZXRlcyBhIGNvbnRhaW5lciBvciBtdWx0aXBsZSBjb250YWluZXJzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtQZXJzaXN0aW5nIERvY2tlciBjb250YWluZXJzIGNvbnN1bWVzIGRpc2sgc3BhY2UgYW5kIHJlc291cmNlcyBvbiBpdHMgaG9zdC4gT3BlcmF0aW9uYWxseSwgaXQgZG9lc27igJl0IG1ha2UgbXVjaCBzZW5zZSB0byBwZXJzaXN0IGV2ZXJ5IGNvbnRhaW5lciBvbiBkaXNrIHNpbmNlIGluIG1vc3QgY2FzZXMgY29udGFpbmVycyBhcmUgZGlzcG9zYWJsZSBhbmQgc2hvdWxkIGJlIHVzZWQgdGhhdCB3YXkuIFNvIHdoZW4gYSBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpdCBzaG91bGQgYmUgcGVybWFuZW50bHkgZGlzY2FyZGVkIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgcGVybWFuZW50bHkgZGVsZXRlcyBjb250YWluZXJzIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAyJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBzbyBsZXTigJlzIHNhdmUgc29tZSBkaXNrIHNwYWNlIGFuZCBkZWxldGUgaXQuIE5vdGUgdGhpcyBjb21tYW5kIHdpbGwgb25seSBkZWxldGUgaW5hY3RpdmUvc3RvcHBlZCBjb250YWluZXJzIGFuZCB3aWxsIGVycm9yIG91dCBpZiBpdOKAmXMgcnVuIGFnYWluc3QgYW4gYWN0aXZlL3J1bm5pbmcgY29udGFpbmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBybSBub2RldGVzdDAyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm8gbG9uZ2VyIHNlZSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMiZsdDsvY29kZSZndDsgY29udGFpbmVyIG9uIHRoZSBob3N0IGFmdGVyIHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGhhcyBvdGhlciBwcm9wZXJ0aWVzIGFuZCBmbGFncyBhbmQgeW91IHNob3VsZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcm0vJnF1b3Q7Jmd0O2ZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggdGhlbSBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ybWkvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBybWkmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBkZWxldGVzIERvY2tlciBpbWFnZXMgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGFwcGxpZXMgdG8gZGVsZXRpbmcgRG9ja2VyIGltYWdlcyBmcm9tIGEgaG9zdC4gSWYgdGhlcmUgYXJlIGV4aXN0aW5nIGNvbnRhaW5lcnMgb24gdGhlIGhvc3QgdGhhdCBhcmUgYmFzZWQgb24gYSBzcGVjaWZpYyBpbWFnZSwgdGhlbiB0aGlzIGNvbW1hbmQgd2lsbCBub3QgYWxsb3cgdGhlIGRlbGV0aW9uIG9mIHRoZSBjb250YWluZXIgYmFzZWQgb24gdGhlIGltYWdlLiBZb3UgbXVzdCBmaXJzdCBlbnN1cmUgdGhlIGNvbnRhaW5lciBpcyBzdG9wcGVkIGFuZCBkZWxldGVkIGJlZm9yZSB5b3UgY2FuIGRlbGV0ZSBEb2NrZXIgaW1hZ2VzIHVzaW5nIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtaSZsdDsvY29kZSZndDsgY29tbWFuZC4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtaS8mcXVvdDsmZ3Q7UmVhZCB1cCBvbiB0aGUgZG9ja2VyIHJtaSBjb21tYW5kIGhlcmUmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBpbWFnZSBkZXBsb3ltZW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtNYW55IERvY2tlciBpbWFnZXMgYXJlIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgaG9zdGVkIG9uIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2RvY2tlci1odWIvJnF1b3Q7Jmd0O0RvY2tlciBIdWIgUmVnaXN0cnkmbHQ7L2EmZ3Q7IHdoaWNoIGlzIGFuIG9ubGluZSBjZW50cmFsIGhvc3Rpbmcgc29sdXRpb24gZm9yIERvY2tlciBpbWFnZXMuIERvY2tlciBIdWIgZW5hYmxlcyBhbnlvbmUgd2l0aCBhbiBpbnRlcm5ldCBjb25uZWN0aW9uIHRvIHB1bGwgZG93biBwdWJsaWNseSBhdmFpbGFibGUgaW1hZ2VzIGZyb20gdGhlIHJlZ2lzdHJ5IHRvIHRoZWlyIGxvY2FsIG1hY2hpbmVzIG9yIHNlcnZlcnMuIEl0IGFsc28gZW5hYmxlcyByZWdpc3RlcmVkIHVzZXJzIHRvIHVwbG9hZCBhbmQgcHVibGljbHkgc2hhcmUgYW55IG9mIHRoZWlyIGNvbnRhaW5lcnMgc28gdGhhdCBhbnlvbmUgY2FuIHB1bGwgZG93biB0aGF0IGltYWdlIGZyb20gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2h1Yi5kb2NrZXIuY29tLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIEnigJlsbCBicmllZmx5IGRpc2N1c3Mgc29tZSBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItaHViLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0OyByZWxhdGVkIGNvbW1hbmRzLiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3B1bGwvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBwdWxsJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgcHVsbHMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IGZyb20gYSByZWdpc3RyeS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGVuYWJsZXMgeW91IHRvIGRvd25sb2FkIGEgdmFsaWQgRG9ja2VyIGltYWdlIGZyb20gRG9ja2VyIEh1Yi4gUHVibGljbHkgYXZhaWxhYmxlIERvY2tlciBpbWFnZXMgZG8gbm90IHJlcXVpcmUgYXV0aGVudGljYXRpb24uIElmIHRoZSByZWdpc3RyeSBpcyBwcml2YXRlIHlvdSB3aWxsIG5lZWQgdG8gYXV0aGVudGljYXRlIHVzaW5nIGFuIGFzc2lnbmVkIGNyZWRlbnRpYWwgdXN1YWxseSBpbiB0aGUgZm9ybSBvZiBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ2luJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbG9ncyBpbnRvIGEgRG9ja2VyIHJlZ2lzdHJ5LiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyB5b3UgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgYSBEb2NrZXIgUmVnaXN0cnkuIElmIHlvdeKAmXJlIHVzaW5nIHRoaXMgbG9naW4gY29tbWFuZCB5b3Ugc2hvdWxkICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8jcHJvdmlkZS1hLXBhc3N3b3JkLXVzaW5nLXN0ZGluJnF1b3Q7Jmd0O3BvcHVsYXRlIGEgLnR4dCBmaWxlJmx0Oy9hJmd0OyB3aXRoIHlvdXIgRG9ja2VyIEh1YiBhY2NvdW50IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBwcm90ZWN0IHRoZXNlIGNyZWRlbnRpYWxzIGZyb20gZXhwb3N1cmUuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcHVzaC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHB1c2gmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBwdXNoZXMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IHRvIGEgcmVnaXN0cnkuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBlbmFibGVzIHVzZXJzIHRvIHVwbG9hZCBpbWFnZXMgdG8gYSBEb2NrZXIgcmVnaXN0cnkgYW5kIHJlcXVpcmVzIHZhbGlkIGNyZWRlbnRpYWxzLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O1NvIHRoZXJlIHlvdSBoYXZlIGl0LiBJbiB0aGlzIHBvc3QgSSB3ZW50IGEgYml0IGRlZXBlciBpbiBleHBsYWluaW5nIERvY2tlciB0ZXJtaW5vbG9neSBhbmQgY29tbWFuZHMgYXMgd2VsbCBhcyBjb250YWluZXJzIGFuZCB0aGVpciB1c2FnZS4gVGhlIGNvbW1hbmRzIEkgZGlzY3Vzc2VkIGFuZCBkZW1vbnN0cmF0ZWQsIGFyZSB0aGUgbW9zdCB3aWRlbHkgdXNlZCBjb21tYW5kcyBpbiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGxlYXJuaW5nIGEgYml0IG1vcmUgYWJvdXQgdGhlbSBhbmQgdGhlaXIgcHJvcGVydGllcyBhbmQgZmxhZ3Mgd2lsbCBkZWZpbml0ZWx5IGhlbHAgeW91IGxldmVsIHVwIHlvdXIgRG9ja2VyIGFuZCBjb250YWluZXIgc2tpbGxzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZhbWlsaWFyaXppbmcgeW91cnNlbGYgd2l0aCB0aGVzZSBiYXNpYyBjb21tYW5kcyB3aWxsIHJlbW92ZSBvbmUgb2YgdGhlIGxhcmdlciBiYXJyaWVycyB0aGF0IG5ldyB1c2VycyBvZiBDaXJjbGVDSSBlbmNvdW50ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SWYgeW91IHdhbnQgdG8gbGVhcm4gbW9yZSBhYm91dCBDaXJjbGVDSSBjaGVjayBvdXQgdGhlICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wLyZxdW90OyZndDtkb2N1bWVudGF0aW9uIHNpdGUmbHQ7L2EmZ3Q7LCBhbmQgaWYgeW91IHJlYWxseSBnZXQgc3R1Y2sgeW91IGNhbiByZWFjaCBvdXQgdG8gdGhlIENpcmNsZUNJIGNvbW11bml0eSB2aWEgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mbHQ7L2EmZ3Q7IGNvbW11bml0eS9mb3J1bSBzaXRlLiZsdDsvcCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogIDwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:53:13 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:53:13 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"55b1e7d07045d561","ot-tracer-traceid":"4652d4b513dc207b","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889193240:5df3383fc72a
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:08:13 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595d9dc1596bd614-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce60ecd80000d6148dacb200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:53:13 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:53:13 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"577fcbf73284f5f8","ot-tracer-traceid":"28f0676620b547be","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889193444:d7b532a7e78e
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:08:13 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595d9dc2ae23f923-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce60eda50000f92336119200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDExOjQ4OjUyIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:53:13 GMT
+- request:
+ method: get
+ uri: https://circleci.com/blog/feed.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/xml
+ Date:
+ - Tue, 19 May 2020 11:53:15 GMT
+ Etag:
+ - '"d148e5f0c8f6530989f97099948abd37"'
+ Last-Modified:
+ - Tue, 19 May 2020 02:33:22 GMT
+ Server:
+ - nginx
+ Strict-Transport-Security:
+ - max-age=15724800
+ X-Amz-Id-2:
+ - VYHkjLQoaqWuTWVgo8qk6jlG13ECRtNU7vFn36pSkdrviwpSmjc/91YNUePd7eUqZg8ii80x/wY=
+ X-Amz-Request-Id:
+ - 5C0CECACADD35442
+ X-Frame-Options:
+ - SAMEORIGIN
+ Content-Length:
+ - '183502'
+ Connection:
+ - keep-alive
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiCiAgeG1sOmJhc2U9Imh0dHBzOi8vY2lyY2xlY2kuY29tLyIKICB4bWxuczphdG9tPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8Y2hhbm5lbD4KICAgIDx0aXRsZT5UaGUgQ2lyY2xlQ0kgQmxvZyBGZWVkIC0gQ2lyY2xlQ0k8L3RpdGxlPgogICAgPGRlc2NyaXB0aW9uPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgbmV3cywgdXBkYXRlcywgYW5kIGhhY2tzIGZyb20gQ2lyY2xlQ0kuPC9kZXNjcmlwdGlvbj4KICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvPC9saW5rPgogICAgPGF0b206bGluayBocmVmPSJodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2ZlZWQueG1sIiByZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Db250aW51b3VzIGludGVncmF0aW9uIGZvciBJb25pYyBhcHBsaWNhdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvY29udGlub3VzLWludGVncmF0aW9uLWZvci1pb25pYy1hcHBzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDE4IE1heSAyMDIwIDE3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbm91cy1pbnRlZ3JhdGlvbi1mb3ItaW9uaWMtYXBwcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5GaWtheW8gQWRlcG9qdTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtJbiB0aGUgd29ybGQgb2YgaHlicmlkIG1vYmlsZSBkZXZlbG9wbWVudCwgbm8gb3RoZXIgZnJhbWV3b3JrIGhhcyBkb25lIG1vcmUgZm9yIHRoZSBpbmR1c3RyeSB0aGFuIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tLyZxdW90OyZndDtJb25pYyBmcmFtZXdvcmsmbHQ7L2EmZ3Q7LiBDcmVhdGVkIGluIDIwMTMgYW5kIG9yaWdpbmFsbHkgYnVpbHQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXJqcy5vcmcvJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7IGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY29yZG92YS5hcGFjaGUub3JnLyZxdW90OyZndDtBcGFjaGUgQ29yZG92YSZsdDsvYSZndDssIElvbmljIGhhcyBncm93biB0byBhIGZ1bGwtZmVhdHVyZWQgYXBwbGljYXRpb24gZnJhbWV3b3JrIGZvciBkZXZlbG9waW5nIG1vYmlsZSwgZGVza3RvcCwgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93ZWIuZGV2L3Byb2dyZXNzaXZlLXdlYi1hcHBzLyZxdW90OyZndDtwcm9ncmVzc2l2ZSB3ZWIgYXBwbGljYXRpb25zJmx0Oy9hJmd0Oy4gSW9uaWMgaGFzIGFsc28gYmVjb21lIGZyYW1ld29yay1hZ25vc3RpYywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byB1c2UgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXIuaW8vJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oywgb3IgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3Z1ZWpzLm9yZy8mcXVvdDsmZ3Q7VnVlLmpzJmx0Oy9hJmd0OyBmb3IgZGV2ZWxvcG1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2Ugd2lsbCBiZSBidWlsZGluZyBhIGhhbmR5IHRhc2sgbWFuYWdlci4gV2Ugd2lsbCB3cml0ZSB0ZXN0cyBmb3IgZmVhdHVyZXMgaW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBzZXQgdXAgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbm91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgKENJKSBwaXBlbGluZSB0byBhdXRvbWF0ZSBvdXIgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFdlIHdpbGwgYmUgZGV2ZWxvcGluZyBvdXIgYXBwbGljYXRpb24gdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9yZWFjdCZxdW90OyZndDtJb25pYyBSZWFjdCZsdDsvYSZndDssIHRoZSBJb25pYyB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgZGV2ZWxvcGluZyB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBmb2xsb3cgdGhpcyBwb3N0LCBhIGZldyB0aGluZ3MgYXJlIHJlcXVpcmVkOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QmFzaWMga25vd2xlZGdlIG9mIFJlYWN0LmpzIChOb3QgYSBkZWFsLWJyZWFrZXIsIHlvdSBvbmx5IGhhdmUgdG8gY29weS1wYXN0ZSB0aGUgY29kZSBzbmlwcGV0cykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbm9kZWpzLm9yZyZxdW90OyZndDtOb2RlLmpzJmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtUaGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2NsaSZxdW90OyZndDtJb25pYyBDTEkmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L29sJmd0OwoKJmx0O2gyJmd0O1NjYWZmb2xkaW5nIHRoZSBJb25pYyBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBiZWdpbiwgbGV04oCZcyBzY2FmZm9sZCBhIG5ldyBJb25pYyBhcHBsaWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2lvbmljIHN0YXJ0IHRhc2stbWFuYWdlciB0YWJzIC0tdHlwZT1yZWFjdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgSW9uaWMgQ0xJIHRvIHNjYWZmb2xkIGEgbmV3IHByb2plY3QgZm9yIHVzIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0YWJzJmx0Oy9jb2RlJmd0OyB0ZW1wbGF0ZSBpbnNpZGUgYSBmb2xkZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGFzay1tYW5hZ2VyJmx0Oy9jb2RlJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1lvdSBtaWdodCBiZSBwcm9tcHRlZCBhdCBzb21lIHBvaW50IHdpdGggJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Q3JlYXRlIGZyZWUgSW9uaWMgYWNjb3VudD8mbHQ7L2NvZGUmZ3Q7LiBIaXQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7biZsdDsvY29kZSZndDsgdG8gZGVjbGluZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYW4gSW9uaWMgYWNjb3VudCBzZWUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9hcHBmbG93JnF1b3Q7Jmd0O2hlcmUmbHQ7L2EmZ3Q7LiZsdDsvaSZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmNlIHRoaXMgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb24gKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIHRhc2stbWFuYWdlciZsdDsvY29kZSZndDspIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHNlcnZlIHRoZSBhcHBsaWNhdGlvbiBpbiB5b3VyIHdlYiBicm93c2VyOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7aW9uaWMgc2VydmUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGlzIGNvbW1hbmQgaGFzIGNvbXBsZXRlZCwgeW91IHdpbGwgc2VlIGFuIGFwcGxpY2F0aW9uIHZpZXcgaW4geW91ciBicm93c2VyIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O0kgYW0gdXNpbmcgYSBtb2JpbGUgcHJldmlldyBhY3RpdmF0ZWQgaW4gQ2hyb21l4oCZcyBkZXZlbG9wbWVudCB0b29scy4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXNjYWZmb2xkLXByZXZpZXcucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtEb27igJl0IGJlIHN1cnByaXNlZCBpZiB5b3VycyBoYXMgYSBibGFjayBiYWNrZ3JvdW5kIGFuZCB3aGl0ZSBmb250LiBJdCB1c2VzIHRoZSBkZWZhdWx0IG1vZGUgb2YgeW91ciBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMiZndDtCdWlsZGluZyB0aGUgVGFzayBNYW5hZ2VyIGFwcGxpY2F0aW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05leHQsIGxldOKAmXMgYmVnaW4gYnVpbGRpbmcgdGhlIG1haW4gYXBwbGljYXRpb24uIEdvIGludG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyIG9mIHlvdXIgYXBwbGljYXRpb24gYW5kIG9wZW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGhvbWUgcGFnZSBmb3IgdGhlIG5ld2x5IHNjYWZmb2xkZWQgYXBwbGljYXRpb24uIFJlbW92ZSBldmVyeXRoaW5nIGluIHRoaXMgZmlsZSBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRzeAoKaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsKICBJb25Db250ZW50LAogIElvbkhlYWRlciwKICBJb25QYWdlLAogIElvblRpdGxlLAogIElvblRvb2xiYXIsCiAgSW9uTGlzdCwKICBJb25JdGVtU2xpZGluZywKICBJb25JdGVtLAogIElvbkxhYmVsLAogIElvbkl0ZW1PcHRpb25zLAogIElvbkl0ZW1PcHRpb24sCiAgSW9uRmFiLAogIElvbkZhYkJ1dHRvbiwKICBJb25JY29uLAogIElvbk1vZGFsLAogIElvbkJ1dHRvbiwKICBJb25DYXJkLAogIElvbkNhcmRDb250ZW50LAogIElvbklucHV0LAp9IGZyb20gJnF1b3Q7QGlvbmljL3JlYWN0JnF1b3Q7OwoKaW1wb3J0IHsgYWRkIH0gZnJvbSAmcXVvdDtpb25pY29ucy9pY29ucyZxdW90OzsKCmltcG9ydCAmcXVvdDsuL1RhYjEuY3NzJnF1b3Q7OwoKaW50ZXJmYWNlIFRhc2sgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwp9Cgpjb25zdCBUYWIxOiBSZWFjdC5GQyA9ICgpID0mYW1wO2d0OyB7CiAgY29uc3QgW3Rhc2tzLCBzZXRUYXNrc10gPSB1c2VTdGF0ZSZhbXA7bHQ7VGFza1tdJmFtcDtndDsoW10pOwogIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7CiAgY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKCiAgZnVuY3Rpb24gYWRkTmV3VGFzaygpIHsKICAgIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogICAgY29uc3QgbmV3VGFzayA9IHsKICAgICAgaWQ6IG5ld19pZCwKICAgICAgbmFtZTogdGFza05hbWUsCiAgICB9OwoKICAgIHRhc2tzLnB1c2gobmV3VGFzayk7CgogICAgc2V0VGFza3ModGFza3MpOwoKICAgIHNldFRhc2tOYW1lKCZxdW90OyZxdW90Oyk7CgogICAgc2V0U2hvd01vZGFsKGZhbHNlKTsKICB9CgogIHJldHVybiAoCiAgICAmYW1wO2x0O0lvblBhZ2UmYW1wO2d0OwogICAgICAmYW1wO2x0O0lvbkhlYWRlciZhbXA7Z3Q7CiAgICAgICAgJmFtcDtsdDtJb25Ub29sYmFyJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uVGl0bGUmYW1wO2d0O1Rhc2sgTWFuYWdlciZhbXA7bHQ7L0lvblRpdGxlJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25Ub29sYmFyJmFtcDtndDsKICAgICAgJmFtcDtsdDsvSW9uSGVhZGVyJmFtcDtndDsKICAgICAgJmFtcDtsdDtJb25Db250ZW50JmFtcDtndDsKICAgICAgICAmYW1wO2x0O0lvbkxpc3QmYW1wO2d0OwogICAgICAgICAge3Rhc2tzLmxlbmd0aCAmYW1wO2d0OyAwID8gKAogICAgICAgICAgICB0YXNrcy5tYXAoKGl0ZW06IFRhc2spID0mYW1wO2d0OyB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbVNsaWRpbmcga2V5PXtpdGVtLmlkfSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbSBjbGFzc05hbWU9JnF1b3Q7dG9kby1pdGVtJnF1b3Q7JmFtcDtndDsKICAgICAgICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDt7aXRlbS5uYW1lfSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbnMgc2lkZT0mcXVvdDtlbmQmcXVvdDsmYW1wO2d0OwogICAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsge319JmFtcDtndDtEb25lJmFtcDtsdDsvSW9uSXRlbU9wdGlvbiZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1PcHRpb25zJmFtcDtndDsKICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1TbGlkaW5nJmFtcDtndDsKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KQogICAgICAgICAgKSA6ICgKICAgICAgICAgICAgJmFtcDtsdDtJb25JdGVtJmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICApfQogICAgICAgICZhbXA7bHQ7L0lvbkxpc3QmYW1wO2d0OwoKICAgICAgICB7LyogTW9kYWwqL30KICAgICAgICAmYW1wO2x0O0lvbk1vZGFsIGlzT3Blbj17c2hvd01vZGFsfSZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkNhcmQmYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICZhbXA7bHQ7SW9uTGFiZWwmYW1wO2d0O0FkZCBOZXcgVGFzayZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAmYW1wO2x0O0lvbkNhcmRDb250ZW50JmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICAgJmFtcDtsdDtJb25JbnB1dAogICAgICAgICAgICAgICAgICB2YWx1ZT17dGFza05hbWV9CiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSZxdW90O0VudGVyIFRhc2sgTmFtZS4uLiZxdW90OwogICAgICAgICAgICAgICAgICBvbklvbkNoYW5nZT17KGUpID0mYW1wO2d0OyBzZXRUYXNrTmFtZShlLmRldGFpbC52YWx1ZSEpfQogICAgICAgICAgICAgICAgJmFtcDtndDsmYW1wO2x0Oy9Jb25JbnB1dCZhbXA7Z3Q7CiAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uCiAgICAgICAgICAgICAgICBleHBhbmQ9JnF1b3Q7ZnVsbCZxdW90OwogICAgICAgICAgICAgICAgY29sb3I9JnF1b3Q7cHJpbWFyeSZxdW90OwogICAgICAgICAgICAgICAgb25DbGljaz17KCkgPSZhbXA7Z3Q7IGFkZE5ld1Rhc2soKX0KICAgICAgICAgICAgICAmYW1wO2d0OwogICAgICAgICAgICAgICAgQWRkIFRhc2sKICAgICAgICAgICAgICAmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkQ29udGVudCZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uIG9uQ2xpY2s9eygpID0mYW1wO2d0OyBzZXRTaG93TW9kYWwoZmFsc2UpfSZhbXA7Z3Q7Q2xvc2UgTW9kYWwmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICZhbXA7bHQ7L0lvbk1vZGFsJmFtcDtndDsKCiAgICAgICAgey8qIEFkZCBUYXNrIEJ1dHRvbiAqL30KICAgICAgICAmYW1wO2x0O0lvbkZhYiB2ZXJ0aWNhbD0mcXVvdDtib3R0b20mcXVvdDsgaG9yaXpvbnRhbD0mcXVvdDtlbmQmcXVvdDsgc2xvdD0mcXVvdDtmaXhlZCZxdW90OyZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkZhYkJ1dHRvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsgc2V0U2hvd01vZGFsKHRydWUpfSZhbXA7Z3Q7CiAgICAgICAgICAgICZhbXA7bHQ7SW9uSWNvbiBpY29uPXthZGR9IC8mYW1wO2d0OwogICAgICAgICAgJmFtcDtsdDsvSW9uRmFiQnV0dG9uJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25GYWImYW1wO2d0OwogICAgICAmYW1wO2x0Oy9Jb25Db250ZW50JmFtcDtndDsKICAgICZhbXA7bHQ7L0lvblBhZ2UmYW1wO2d0OwogICk7Cn07CgpleHBvcnQgZGVmYXVsdCBUYWIxOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyBsZXTigJlzIGdvIHRocm91Z2ggdGhlIGNvZGUgc25pcHBldCBhYm92ZS4gVGhpcyBpcyB0aGUgZW50aXJlIGNvZGUgZm9yIG91ciBUYXNrIE1hbmFnZXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnQgYnkgaW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzIGluY2x1ZGluZyB0aGUgY3NzIGZpbGUgZm9yIG91ciBwYWdlLiBXZSB0aGVuIGRlZmluZSBhbiBpbnRlcmZhY2UgdG8gZGVmaW5lIG91ciB0YXNrIG9iamVjdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtpbnRlcmZhY2UgVGFzayB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7Cn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7TmV4dCwgd2UgY3JlYXRlIG91ciBjb21wb25lbnQgYXMgYSBSZWFjdCBmdW5jdGlvbiBjb21wb25lbnQgdHlwZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtSZWFjdC5GQyZsdDsvY29kZSZndDsgYW5kIGJlZ2luIHRoZSBmdW5jdGlvbiBieSBkZWZpbmluZyB0aGUgZGF0YSB3ZSB3YW50IHRvIGhvbGQgaW4gb3VyIHN0YXRlIHVzaW5nIGhvb2tzOiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tzJmx0Oy9jb2RlJmd0OyBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYXNrJmx0Oy9jb2RlJmd0O3MsIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2hvd01vZGFsJmx0Oy9jb2RlJmd0OyBib29sZWFuIHRvIGNvbnRyb2wgdGhlIG9wZW5pbmcgYW5kIGNsb3Npbmcgb2Ygb3VyIHRhc2sgY3JlYXRpb24gZm9ybSwgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tOYW1lJmx0Oy9jb2RlJmd0OyB3aGljaCBob2xkcyB0aGUgdmFsdWUgb2YgYSBuZXcgdGFzayBpbiB0aGUgcHJvY2VzcyBvZiBjcmVhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IFt0YXNrcywgc2V0VGFza3NdID0gdXNlU3RhdGUmYW1wO2x0O1Rhc2tbXSZhbXA7Z3Q7KFtdKTsKY29uc3QgW3Nob3dNb2RhbCwgc2V0U2hvd01vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTsKY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Rm9sbG93aW5nIHRoZXNlIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdlIGNhbGwgdG8gYWRkIGEgbmV3IHRhc2suIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyB0YXNrIGJ5IHNldHRpbmcgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lkJmx0Oy9jb2RlJmd0OyBiYXNlZCBvbiB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBhbmQgY2xlYXJzIHRoZSBmb3JtIGFmdGVyIGFkZGluZyB0aGUgbmV3IHRhc2sgdG8gb3VyIGV4aXN0aW5nIGxpc3Qgb2YgdGFza3MuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtmdW5jdGlvbiBhZGROZXdUYXNrKCkgewogIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogIGNvbnN0IG5ld1Rhc2sgPSB7CiAgICBpZDogbmV3X2lkLAogICAgbmFtZTogdGFza05hbWUsCiAgfTsKCiAgdGFza3MucHVzaChuZXdUYXNrKTsKCiAgc2V0VGFza3ModGFza3MpOwoKICBzZXRUYXNrTmFtZSgmcXVvdDsmcXVvdDspOwoKICBzZXRTaG93TW9kYWwoZmFsc2UpOwp9CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05leHQsIHdlIHJlbmRlciBvdXIgdGVtcGxhdGUgdG8gZGlzcGxheSBvdXIgbGlzdCBvZiB0YXNrcyBhbmQgYWxzbyBkaXNwbGF5IGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgcmVhZHMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmbHQ7L2NvZGUmZ3Q7IHdoZW4gdGhlIHRhc2sgbGlzdCBpcyBlbXB0eS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtGb2xsb3dpbmcgdGhlIGxpc3QgaXMgYSBtb2RhbCBjb21wb25lbnQgdGhhdCBjb250YWlucyBvdXIgdGFzayBmb3JtIGZvciBhZGRpbmcgbmV3IHRhc2tzLiBCZWxvdyB0aGUgY29tcG9uZW50IGlzIGEgZmxvYXRpbmcgYWN0aW9uIGJ1dHRvbiB0aGF0IHRoZSB1c2VyIGNsaWNrcyB0byBvcGVuIHRoZSBtb2RhbC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWZvcmUgd2UgcHJldmlldyB0aGlzLCBvcGVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEuY3NzJmx0Oy9jb2RlJmd0OyBsb2NhdGVkIGluIHRoZSBzYW1lIGZvbGRlciBhcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRzeCZsdDsvY29kZSZndDsgYW5kIHJlcGxhY2UgaXRzIGNvbnRlbnRzIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Lyogc3JjL3BhZ2VzL1RhYjEuY3NzICovCgoudG9kby1pdGVtIHsKICAtLW1pbi1oZWlnaHQ6IDcwcHg7CiAgZm9udC1zaXplOiAxLjJlbTsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHNpbXBseSBidW1wcyB1cCB0aGUgaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgdGhlIGxpc3QgaXRlbXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm93LCBnbyB0byB5b3VyIGJyb3dzZXIgYW5kIGxvYWQgdGhlIGhvbWVwYWdlIG9mIHlvdXIgYXBwbGljYXRpb24gKFRhYjEpLiBZb3Ugd2lsbCBzZWUgdGhlIHBhZ2UgZGlzcGxheWVkIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1ob21lLW5vLXRhc2tzLnBuZyZxdW90OyAvJmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QmVjYXVzZSB3ZSBoYXZlbuKAmXQgYWRkZWQgYW55IHRhc2tzIHlldCwgd2UgaGF2ZSB0aGUgbWVzc2FnZSAmbHQ7c3Ryb25nJmd0O1lvdSBoYXZlIHlldCB0byBhZGQgdGFza3MgZm9yIHRvZGF5Jmx0Oy9zdHJvbmcmZ3Q7IGRpc3BsYXllZC4gV2UgYWxzbyBoYXZlIG91ciAmbHQ7c3Ryb25nJmd0O0FkZCBUYXNrJmx0Oy9zdHJvbmcmZ3Q7IGJ1dHRvbiBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lciB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwbHVzJmx0Oy9jb2RlJmd0OyBzeW1ib2wuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0FkZGluZyB0YXNrcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBhZGQgYSBuZXcgdGFzaywgY2xpY2sgdGhlIGJvdHRvbS1yaWdodCBibHVlIGJ1dHRvbiB0byBwdWxsIHVwIHRoZSB0YXNrIGNyZWF0aW9uIGZvcm0gYW5kIHR5cGUgaW4gYSB0YXNrIGFzIHNob3duIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtdGFzay5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7QUREIFRBU0smbHQ7L3N0cm9uZyZndDsgdG8gYWRkIHRoZSB0YXNrIGFuZCBnbyBhaGVhZCB0byBhZGQgMiB0byAzIG1vcmUgdGFza3MuIFdlIHNob3VsZCBub3cgaGF2ZSBlbm91Z2ggdGFza3Mgb24gdGhlIHBhZ2UgZm9yIG91ciBhcHBsaWNhdGlvbiB0byBsb29rIGZ1bmN0aW9uYWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXRhc2stbGlzdC5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB3ZSBoYXZlIGEgZnVuY3Rpb25hbCBhcHBsaWNhdGlvbi4gTm90IHByb2R1Y3Rpb24tcmVhZHksIGJ1dCBnb29kIGVub3VnaCB0byBzdGFydCB0ZXN0aW5nLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBZGRpbmcgdGVzdHMgdG8gdGhlIFRhc2sgTWFuYWdlciBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtPbmUgYWR2YW50YWdlIHRoYXQgd2UgaGF2ZSB3aXRoIHRlc3Rpbmcgb3VyIElvbmljIGFwcGxpY2F0aW9ucyBpcyB0aGF0IHdoaWxlIHNjYWZmb2xkaW5nIHRoZSBhcHBsaWNhdGlvbiwgdGhlIElvbmljIENMSSBoYXMgc2V0IHVwIGFsbCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcywgaW4gdGVybXMgb2YgcGFja2FnZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCBmb3IgdGVzdGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUZXN0aW5nIElvbmljIFJlYWN0IGFwcGxpY2F0aW9ucyBpcyBkb25lIHVzaW5nIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vamVzdGpzLmlvLyZxdW90OyZndDtKZXN0Jmx0Oy9hJmd0OyB0ZXN0aW5nIGZyYW1ld29yayB0b2dldGhlciB3aXRoIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdGVzdGluZy1saWJyYXJ5LmNvbS9kb2NzL3JlYWN0LXRlc3RpbmctbGlicmFyeS9pbnRybyZxdW90OyZndDtSZWFjdCBUZXN0aW5nIExpYnJhcnkmbHQ7L2EmZ3Q7IGFuZCB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1yZWFjdC10ZXN0LXV0aWxzJnF1b3Q7Jmd0O0lvbmljIFJlYWN0IFRlc3QgVXRpbHMmbHQ7L2EmZ3Q7IGxpYnJhcnkgd2hpY2ggaXMgYSBzbWFsbCBzdWl0ZSBvZiB1dGlsaXRpZXMgdG8gc2ltdWxhdGUgY29tbW9uIGZlYXR1cmVzIGluIElvbmljIGxpa2UgZmlyaW5nIGN1c3RvbSBJb25pYyBldmVudHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIHByb2plY3QgYWxyZWFkeSBjb21lcyB3aXRoIGEgdGVzdCBmaWxlIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7QXBwLnRzeCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLiBBcyB5b3UgbWF5IGhhdmUgZ3Vlc3NlZCwgdGhlIHRlc3QgZmlsZSBpcyBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtBcHAudGVzdC50c3gmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGZvbGxvd3MgdGhlIGNvbnZlbnRpb24gZm9yIEplc3QgdGVzdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsvLyBzcmMvQXBwLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgQXBwIGZyb20gJnF1b3Q7Li9BcHAmcXVvdDs7Cgp0ZXN0KCZxdW90O3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZyZxdW90OywgKCkgPSZhbXA7Z3Q7IHsKICBjb25zdCB7IGJhc2VFbGVtZW50IH0gPSByZW5kZXIoJmFtcDtsdDtBcHAgLyZhbXA7Z3Q7KTsKICBleHBlY3QoYmFzZUVsZW1lbnQpLnRvQmVEZWZpbmVkKCk7Cn0pOwombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHRlc3Qgc2ltcGx5IGNoZWNrcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiByZW5kZXJzIHByb3Blcmx5IGFuZCBkb2VzIG5vdCBjcmFzaC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBydW4gdGhpcyB0ZXN0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBpbnZva2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2plc3QmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gcnVuIHRoZSB0ZXN0IGRlZmluZWQgaW4gdGhlIGZpbGUuIEFzIGRpcmVjdGVkLCBwcmVzcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDthJmx0Oy9jb2RlJmd0OyB0byBydW4gYWxsIHRlc3RzLiBUaGUgYWJvdmUgY29tbWFuZCBpcyB0aGUgY29tbWFuZCB3ZSB3aWxsIGJlIHVzaW5nIHRvIHJ1biBhbGwgdGVzdHMgaW4gb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgbGV04oCZcyBhZGQgc29tZSB0ZXN0cyBvZiBvdXIgb3duLiBXZSB3aWxsIGJlIGNyZWF0aW5nIGEgdGVzdCBmaWxlIHRvIHRlc3QgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIHdlIGhhdmUgaW4gb3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlIHdoaWNoIGhvdXNlcyBvdXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRlc3QudHN4Jmx0Oy9jb2RlJmd0OyBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyLiBJdOKAmXMgdGhlIHNhbWUgcGxhY2UgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VGFiMS50c3gmbHQ7L2NvZGUmZ3Q7IGZpbGUgaXMgbG9jYXRlZC4gSW5zaWRlIHRoZSBuZXdseSBjcmVhdGVkIGZpbGUsIHBsYWNlIGluIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgVGFiMSBmcm9tICZxdW90Oy4vVGFiMSZxdW90OzsKCnRlc3QoJnF1b3Q7UGFnZSB0aXRsZSBpcyBUYXNrIE1hbmFnZXImcXVvdDssIGFzeW5jICgpID0mYW1wO2d0OyB7CiAgY29uc3QgeyBmaW5kQnlUZXh0IH0gPSByZW5kZXIoJmFtcDtsdDtUYWIxIC8mYW1wO2d0Oyk7CiAgYXdhaXQgZmluZEJ5VGV4dCgmcXVvdDtUYXNrIE1hbmFnZXImcXVvdDspOwp9KTsKCnRlc3QoJnF1b3Q7V2hlbiB0aGVyZSBhcmUgbm8gVGFza3MsIGluZm9ybSB0aGUgdXNlciB0aGF0IG5vIHRhc2tzIGhhdmUgYmVlbiBjcmVhdGVkJnF1b3Q7LCBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IHsgZmluZEJ5VGV4dCB9ID0gcmVuZGVyKCZhbXA7bHQ7VGFiMSAvJmFtcDtndDspOwogIGF3YWl0IGZpbmRCeVRleHQoJnF1b3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmcXVvdDspOwp9KTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBmaWxlLCB3ZSBoYXZlIGFkZGVkIHR3byB0ZXN0cy4gVGhlIGZpcnN0IHRlc3QgY2hlY2tzIGlmIG91ciBwYWdlIGRpc3BsYXlzIHdpdGggdGhlIGNvcnJlY3QgdGl0bGUgd2hpY2ggaXMgJmx0O3N0cm9uZyZndDtUYXNrIE1hbmFnZXImbHQ7L3N0cm9uZyZndDsuIFRoZSBzZWNvbmQgdGVzdCBjaGVja3MgaWYgb3VyIGFwcGxpY2F0aW9uIGluaXRpYWxseSBsb2FkcyB3aXRob3V0IHRhc2tzLCBhbmQgaWYgaXQgZG9lcywgaXQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgJmx0O3N0cm9uZyZndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3csIGxldOKAmXMgcnVuIHRoZXNlIHRlc3RzIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGF0IHRoZSByb290IG9mIG91ciBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSBhIHNjcmVlbiBzaW1pbGFyIHRvIHRoZSBvbmUgYmVsb3cgb24geW91ciBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi10ZXN0cy1sb2NhbC1ydW4ucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIG91ciB0ZXN0cyBydW5uaW5nIGFzIGV4cGVjdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBdXRvbWF0aW5nIG91ciB0ZXN0aW5nJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBmaW5hbCB0YXNrIGlzIHRvIGF1dG9tYXRlIG91ciBjb250aW51b3VzIGludGVncmF0aW9uIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhhdCwgd2Ugd2lsbCBiZSBkb2luZyB0aGUgZm9sbG93aW5nOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QWRkIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgdG8gb3VyIHByb2plY3QgdG8gc2V0IHVwIGEgQ0kgcGlwZWxpbmUgb24gQ2lyY2xlQ0kmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIG91ciBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG9zaXRvcnkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDcmVhdGUgYSBDaXJjbGVDSSBwcm9qZWN0IGZvciBvdXIgYXBwbGljYXRpb24mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtSdW4gdGhlIENJIHBpcGVsaW5lIG9uIENpcmNsZUNJJmx0Oy9saSZndDsKJmx0Oy9vbCZndDsKCiZsdDtwJmd0O0xldOKAmXMgZ2V0IHRvIGl0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZpcnN0LCBsZXTigJlzIGFkZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3Igb3VyIENJIHBpcGVsaW5lIHRvIG91ciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLiBJbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbmZpZy55bWwmbHQ7L2NvZGUmZ3Q7IGZpbGUsIGVudGVyIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpqb2JzOgogIGJ1aWxkOgogICAgd29ya2luZ19kaXJlY3Rvcnk6IH4vcmVwbwogICAgZG9ja2VyOgogICAgICAtIGltYWdlOiBjaW1nL25vZGU6MTIuMTYKICAgIHN0ZXBzOgogICAgICAtIGNoZWNrb3V0CiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdXBkYXRlLW5wbQogICAgICAgICAgY29tbWFuZDogJnF1b3Q7c3VkbyBucG0gaW5zdGFsbCAtZyBucG1ANSZxdW90OwogICAgICAtIHJlc3RvcmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgLSBydW46CiAgICAgICAgICBuYW1lOiBpbnN0YWxsLXBhY2thZ2VzCiAgICAgICAgICBjb21tYW5kOiBucG0gaW5zdGFsbAogICAgICAtIHNhdmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgICAgIHBhdGhzOgogICAgICAgICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdGVzdAogICAgICAgICAgY29tbWFuZDogbnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgY29uZmlndXJhdGlvbiBwdWxscyBpbiBhIE5vZGUuanMgaW1hZ2UgYW5kIGluc3RhbGxzIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGRlZmluZWQgaW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0Oy4gT25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCB0aGUgdGVzdCBzY3JpcHQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bnBtIHJ1biB0ZXN0Jmx0Oy9jb2RlJmd0OyBpcyB0aGVuIGV4ZWN1dGVkIHRvIHJ1biBhbGwgdGhlIHRlc3RzIGluIG91ciBhcHBsaWNhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGdvb2QgdG8gZ28uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY29tbWl0IGFsbCB5b3VyIGNoYW5nZXMgYW5kIHB1c2ggdGhlIHByb2plY3QgdG8gYSBHaXRIdWIgcmVwb3NpdG9yeSBvbiB0aGUgR2l0SHViIGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgQ2lyY2xlQ0kgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIGlzIHRvIHNldCB1cCB0aGUgcmVwb3NpdG9yeSBmb3Igb3VyIHByb2plY3QgYXMgYSBDaXJjbGVDSSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBDaXJjbGVDSSBjb25zb2xlLCBnbyB0byB0aGUgJmx0O3N0cm9uZyZndDtBZGQgUHJvamVjdHMmbHQ7L3N0cm9uZyZndDsgcGFnZSB0byBhZGQgdGhlIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtcHJvamVjdC5wbmcmcXVvdDsgYWx0PSZxdW90O0FkZCBQcm9qZWN0JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0Oy4gVGhpcyB3aWxsIGxvYWQgdGhlIG5leHQgc2NyZWVuLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3N0YXJ0LWJ1aWxkaW5nMS5wbmcmcXVvdDsgYWx0PSZxdW90O1N0YXJ0IEJ1aWxkaW5nIC0gQ29uZmlnIHNhbXBsZSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBzZXR1cCBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7LiBCZWZvcmUgdGhlIGJ1aWxkIHN0YXJ0cywgeW91IGdldCBhIHByb21wdCB0byBlaXRoZXIgZG93bmxvYWQgYW5kIHVzZSB0aGUgcHJvdmlkZWQgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBoYXZlIGl0IG9uIGEgc2VwYXJhdGUgYnJhbmNoIG9yIHNldCB1cCBvbmUgbWFudWFsbHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzIucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIEFkZCBtYW51YWxseSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1NlbGVjdCAmbHQ7c3Ryb25nJmd0O0FkZCBNYW51YWxseSZsdDsvc3Ryb25nJmd0OyB0byBwcm9jZWVkLiBUaGlzIHdpbGwgcHJvbXB0IGFub3RoZXIgZGlhbG9nIHRoYXQgY2hlY2tzIHRvIGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXQgdXAgdG8gYmVnaW4gYnVpbGRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzMucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIENvbmZpcm0gY29uZmlndXJhdGlvbiZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsgdG8gY29tcGxldGUgdGhlIHNldHVwLiBUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgcGlwZWxpbmUgdXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBvdXIgcHJvamVjdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGUgYnVpbGQgaXMgZG9uZSBydW5uaW5nLCB5b3Ugd2lsbCBnZXQgYSBzdWNjZXNzZnVsIGJ1aWxkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtc3VjY2Vzc2Z1bC5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHN1Y2Nlc3NmdWwmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O2J1aWxkJmx0Oy9zdHJvbmcmZ3Q7IHRvIHNlZSB0aGUgYmVoaW5kLXRoZS1zY2VuZXMgcHJvY2VzcyhJIGhhdmUgY29sbGFwc2VkIHRoZSAmbHQ7ZW0mZ3Q7dGVzdCZsdDsvZW0mZ3Q7IHN0ZXApLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtcHJvY2Vzcy5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHByb2Nlc3MmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBzY3JlZW4sIG91ciBwcm9qZWN0IGlzIHByb3Blcmx5IHNldCB1cCBhbmQgYWxsIG91ciB0ZXN0cyBhcmUgcnVubmluZyBmaW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgYXMgeW91IGRldmVsb3AsIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgbW9yZSBmZWF0dXJlcywgYWRkIHRlc3RzIHRvIHRoZW0gYW5kIHB1c2ggdG8gR2l0SHViLiBPbmNlIHlvdSBwdXNoLCB0aGUgQ0kgcGlwZWxpbmUgd2lsbCBydW4gYW5kIGFsbCB5b3VyIHRlc3RzIHdpbGwgYmUgZXhlY3V0ZWQuIElmIGFueSB0ZXN0IGZhaWxzLCB5b3VyIGJ1aWxkIHdpbGwgZmFpbCB3aGljaCB3aWxsIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbiB0byBiZSBmaXhlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW914oCZcmUgbm90IHB1c2hpbmcgYW55IGJ1Z3MgaW50byB5b3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIHRoaXMgYXJ0aWNsZSwgd2UgaGF2ZSBzZXQgdXAgYW4gYXV0b21hdGVkIENJIHBpcGVsaW5lIGZvciBvdXIgSW9uaWMgYXBwbGljYXRpb25zIHRvIGltcHJvdmUgb3VyIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGF1dG9tYXRpbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4gSGF2aW5nIGEgQ0kgcGlwZWxpbmUgdGhhdCBwcm9wZXJseSBydW5zIG91ciB0ZXN0cyBwcm90ZWN0cyB1cyBhZ2FpbnN0IG91cnNlbHZlcyBieSBlbnN1cmluZyB0aGF0IHdlIGRvbuKAmXQgZW5kIHVwIHdpdGggYnJva2VuIGFwcGxpY2F0aW9ucyBvciB0aGF0IHdlIGRvbuKAmXQgcHVzaCBidWdneSBjb2RlIHRvIG91ciB0ZWFt4oCZcyByZXBvc2l0b3J5IHdoaWxlIHdvcmtpbmcgdG9nZXRoZXIgb24gYSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyA6KSZsdDsvcCZndDsKCiZsdDtociAvJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3R3aXR0ZXIuY29tL2NvZGVyb25mbGVlaz9sYW5nPWVuJnF1b3Q7Jmd0O0Zpa2F5byZsdDsvYSZndDsgaXMgYSBmdWxsc3RhY2sgZGV2ZWxvcGVyIGFuZCBhdXRob3Igd2l0aCBvdmVyIGEgZGVjYWRlIG9mIGV4cGVyaWVuY2UgZGV2ZWxvcGluZyB3ZWIgYW5kIG1vYmlsZSBzb2x1dGlvbnMuIEhlIGlzIGN1cnJlbnRseSB0aGUgU29mdHdhcmUgTGVhZCBhdCBUZWNoIFNwZWNpYWxpc3QgQ29uc3VsdGluZyBhbmQgZGV2ZWxvcHMgY291cnNlcyBmb3IgUGFja3QgYW5kIFVkZW15LiBIZSBoYXMgYSBzdHJvbmcgcGFzc2lvbiBmb3IgdGVhY2hpbmcgYW5kIGhvcGVzIHRvIGJlY29tZSBhIGZ1bGwtdGltZSBhdXRob3IuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5EcmF3biBPdXQgQ29udmVyc2F0aW9ucywgZmVhdHVyaW5nIENpcmNsZUNJIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlciwgUGF0IFNoaWVsZHM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZHJhd24tb3V0LWNvbnZlcnNhdGlvbi1mZWF0dXJpbmctY2lyY2xlY2ktcHJpbmNpcGFsLXNvZnR3YXJlLWVuZ2luZWVyLXBhdC1zaGllbGRzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5GcmksIDE1IE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RyYXduLW91dC1jb252ZXJzYXRpb24tZmVhdHVyaW5nLWNpcmNsZWNpLXByaW5jaXBhbC1zb2Z0d2FyZS1lbmdpbmVlci1wYXQtc2hpZWxkcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Db3JleSBMZXdpczwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtPbiB0aGlzIGVwaXNvZGUgb2YgRHJhd24gT3V0IENvbnZlcnNhdGlvbnMsIHdlIHRhbGsgYWJvdXQgc29tZXRoaW5nIG5lYXIgYW5kIGRlYXIgdG8gb3VyIGhlYXJ0cyDigJMgQ2lyY2xlQ0kuIFdlLCBhbG9uZyB3aXRoIGh1bmRyZWQgb2YgdGhvdXNhbmRzIG9mIG90aGVyIGRldmVsb3BlcnMgYXQgY29tcGFuaWVzIGxpa2UgU3BvdGlmeSwgRmFjZWJvb2ssIEZvcmQgYW5kIEFldG5hLCB1c2UgQ2lyY2xlQ0kgZXZlcnkgZGF5IHRvIG1ha2Ugc3VyZSB0aGF0IHdl4oCZcmUgZGVwbG95aW5nIHF1YWxpdHkgY29kZSwgYW5kIGJ1aWxkaW5nIGVmZmljaWVuY2llcyBpbnRvIG91ciBlbmdpbmVlcmluZyBwcm9jZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0LCB3aGF0IGV4YWN0bHkgaXMgdW5kZXJuZWF0aCBvdXIgcGxhdGZvcm3igJlzIGhvb2Q/Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Sm9pbiBvdXIgQ1RPIFJvYiBadWJlciBhcyBoZSBob3N0cyBDaXJjbGVDSeKAmXMgUHJpbmNpcGFsIFNvZnR3YXJlIEVuZ2luZWVyIFBhdCBTaGllbGRzIHRvIGRpc2N1c3MgdGhlIGlubmVyLXdvcmtpbmdzIG9mIG91ciB0ZWNobm9sb2d5IGFuZCBwbGF0Zm9ybS4gVGhleSBkaXNjdXNzIGV2ZXJ5dGhpbmcgZnJvbSBwcm9kdWN0IGZlYXR1cmVzIHRvIGFyY2hpdGVjdHVyZSBhbmQgdGFsayBhYm91dCBob3cgYW5kIHdoeSB0aGUgY29yZSBlbGVtZW50cyBvZiBvdXIgcGxhdGZvcm0gZ290IGJ1aWx0LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3JvYi1wYXQucG5nJnF1b3Q7IGFsdD0mcXVvdDtyb2ItcGF0LnBuZyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1JvYiBldmVuIHRha2VzIGEgdHVybiB3aXRoIHRoZSBtYXJrZXJzIHRvIGRpc2N1c3MgZG9tYWluLWRyaXZlbiBkZXNpZ24sIGF1dGhlbnRpY2F0aW9uIGFuZCBtb3JlLiBMZWFybiBldmVyeXRoaW5nIHlvdSBldmVyIHdhbnRlZCB0byBrbm93IGFib3V0IENpcmNsZUNJIGFuZCBtb3JlIGluIHRvZGF54oCZcyBjb252ZXJzYXRpb24uJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXImcXVvdDsmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3lvdXR1LmJlL1dMOVJRNmZNbGUwJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvY2lyY2xlY2kuZ2lmJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsKICAmbHQ7L2EmZ3Q7CgombHQ7YnIgLyZndDsKCiAgJmx0O3AmZ3Q7CiAgICAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8veW91dHUuYmUvV0w5UlE2Zk1sZTAmcXVvdDsgc3R5bGU9JnF1b3Q7Y29sb3I6IzAwMDBFRTsmcXVvdDsmZ3Q7CiAgICAgIFdhdGNoIHRoZSBmdWxsIHZpZGVvIGhlcmUKICAgICZsdDsvYSZndDsKICAmbHQ7L3AmZ3Q7CiZsdDsvZGl2Jmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZG8gSSB1c2UgSW5mcmFzdHJ1Y3R1cmUgYXMgQ29kZT88L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWRvLWktaWFjLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE1heSAyMDIwIDEyOjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2hvdy1kby1pLWlhYy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5BbmdlbCBSaXZlcmE8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7SW5mcmFzdHJ1Y3R1cmUgYXMgY29kZSAoSWFDKSBpcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBhbmQgcHJvdmlzaW9uaW5nIGNsb3VkIGFuZCBJVCByZXNvdXJjZXMgdmlhIG1hY2hpbmUgcmVhZGFibGUgZGVmaW5pdGlvbiBmaWxlcyBhbmQgaXMgYSBwYXJ0IG9mIG1vZGVybiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lcy4gSWFDIGVuYWJsZXMgb3JnYW5pemF0aW9ucyB0byBwcm92aXNpb24sIG1hbmFnZSwgYW5kIGRlc3Ryb3kgY29tcHV0ZSByZXNvdXJjZXMgdXNpbmcgbW9kZXJuIERldk9wcyB0b29scy4gSWFDIGVuYWJsZXMgdGhpcyBieSBzdGF0aWNhbGx5IGRlZmluaW5nIGFuZCBkZWNsYXJpbmcgdGhlc2UgcmVzb3VyY2VzIGluIGNvZGUsIHRoZW4gZGVwbG95aW5nIGFuZCBkeW5hbWljYWxseSBtYWludGFpbmluZyB0aGVzZSByZXNvdXJjZXMgdmlhIGNvZGUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gcmVjZW50IGludGVyYWN0aW9ucyB3aXRoIGRldmVsb3BlcnMsIEnigJl2ZSByZWFsaXplZCB0aGF0IG1hbnkgYXJlIGVpdGhlciBub3QgYXdhcmUgb2YgSWFDLCBvciBhcmUgYXdhcmUgYnV0IGhhdmUgYWJhbmRvbmVkIHRoZWlyIGluaXRpYWwgZWZmb3J0cyBiZWNhdXNlIHJhbXBpbmcgdXAgd2FzIHRvbyBjdW1iZXJzb21lLiBJbiB0aGlzIHBvc3QsIEkgd2lsbCBkaXNjdXNzIHRoZSBiZW5lZml0cyBvZiBJYUMgYW5kIHNvbWUgb2YgdGhlIHRvb2xpbmcgb3B0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgYWxvbmcgd2l0aCBhIGJyaWVmIGRlbW9uc3RyYXRpb24gb24gaG93IHRvIHVzZSB0aGVtIGluIGhvcGVzIG9mIGVhc2luZyB0aGUgdHJhbnNpdGlvbiB0byB1c2luZyBJYUMuIEkgd2lsbCBmb2N1cyBvbiB0aGUgdHdvIG1vc3QgcG9wdWxhciBJYUMgdG9vbHMgdXNlZCBpbiB0aGUgaW5kdXN0cnkgdG9kYXk6ICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cudGVycmFmb3JtLmlvLyZxdW90OyZndDtIYXNoaUNvcnDigJlzIFRlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtCZWZvcmUgeW91IGdldCBzdGFydGVkLCB5b3XigJlsbCBuZWVkIHRvIGhhdmUgdGhlc2UgdGhpbmdzOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9mcmVlJnF1b3Q7Jmd0O0dvb2dsZSBDbG91ZCZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NyZWF0ZSBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3Jlc291cmNlLW1hbmFnZXIvZG9jcy9jcmVhdGluZy1tYW5hZ2luZy1wcm9qZWN0cyNjcmVhdGluZ19hX3Byb2plY3QmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIHByb2plY3QmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FwcC5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkgQVBJIHRva2VuJmx0Oy9hJmd0OyBhbmQgc2F2ZSBpdCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgbG9jYWwgaW5zdGFsbCBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vc2RrL2RvY3MvcXVpY2tzdGFydHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIFNESyBDTEkmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSBsb2NhbCBpbnN0YWxsIG9mIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaHViLmRvY2tlci5jb20vc2VhcmNoLz90eXBlPWVkaXRpb24mYW1wO2FtcDtvZmZlcmluZz1jb21tdW5pdHkmcXVvdDsmZ3Q7RG9ja2VyIGNsaWVudCZsdDsvYSZndDsmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBHb29nbGUgQ2xvdWQgcHJvamVjdCBjcmVkZW50aWFscyZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDbG91ZFBsYXRmb3JtL2NvbW11bml0eS9ibG9iL21hc3Rlci90dXRvcmlhbHMvZ2V0dGluZy1zdGFydGVkLW9uLWdjcC13aXRoLXRlcnJhZm9ybS9pbmRleC5tZCNnZXR0aW5nLXByb2plY3QtY3JlZGVudGlhbHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIGNyZWRlbnRpYWxzJmx0Oy9hJmd0OyBpbiBvcmRlciB0byBwZXJmb3JtIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgdXNpbmcgSWFDIHRvb2xpbmcuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9hcGlzL2NyZWRlbnRpYWxzL3NlcnZpY2VhY2NvdW50a2V5JnF1b3Q7Jmd0O0NyZWF0ZSBTZXJ2aWNlIEFjY291bnQgS2V5IHBhZ2UmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7U2VsZWN0IHRoZSBkZWZhdWx0IHNlcnZpY2UgYWNjb3VudCBvciBjcmVhdGUgYSBuZXcgb25lLCBzZWxlY3QgSlNPTiBhcyB0aGUga2V5IHR5cGUsIGFuZCBjbGljayAmbHQ7c3Ryb25nJmd0O0NyZWF0ZSZsdDsvc3Ryb25nJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O1NhdmUgdGhpcyBKU09OIGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgYW5kIHJlbmFtZSB0aGUgZmlsZSB0byAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaWNkX2RlbW9fZ2NwX2NyZWRzLmpzb24mbHQ7L2NvZGUmZ3Q7LiBUaGlzIGlzICZsdDtzdHJvbmcmZ3Q7dmVyeSBpbXBvcnRhbnQmbHQ7L3N0cm9uZyZndDsgZm9yIGVuYWJsaW5nIHRoZSBHb29nbGUgQ2xvdWQgQ0xJIGluIHRoZSBjb250YWluZXIgbGF0ZXIgb24mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBhIFB1bHVtaSBBUEkgdG9rZW4mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7WW91IHdpbGwgbmVlZCB0byBnZXQgYSBQdWx1bWkgQVBJIHRva2VuIHRvIHN0b3JlIHlvdXIgcHJvamVjdCBzdGF0ZSBvbiBQdWx1bWnigJlzIGJhY2tlbmQgY2xvdWQuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vYXBwLnB1bHVtaS5jb20vJnF1b3Q7Jmd0O2FwcC5wdWx1bWkuY29tLyZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1NlbGVjdCBhbiBPcmdhbml6YXRpb24mbHQ7L3N0cm9uZyZndDsgb24gdGhlIHVwcGVyIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSBhbmQgc2VsZWN0IHlvdXIgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O0FjY2VzcyBUb2tlbnMmbHQ7L3N0cm9uZyZndDsgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7TmV3IEFjY2VzcyBUb2tlbiZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7Q3JlYXRlJmx0Oy9zdHJvbmcmZ3Q7IGFuZCBzYXZlIHRoZSBuZXcgQVBJIHRva2VuIHRoYXQgd2FzIGNyZWF0ZWQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemUgeW91ciBQdWx1bWkgcHJvamVjdCBsYXRlciZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7aDImZ3Q7RG9ja2VyIHB1bGwgSWFDMTAxIERvY2tlciBpbWFnZSZsdDsvaDImZ3Q7CgombHQ7cCZndDtBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlZCBhbmQgeW914oCZcmUgcmVhZHkgdG8gcHVsbCB0aGUgZG9ja2VyIGltYWdlIGZvciB0aGlzIHdvcmtzaG9wLiBJbiB0ZXJtaW5hbCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBwdWxsIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm93IGhhdmUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2FyaXYzcmEvaWFjMTAxJmx0Oy9jb2RlJmd0OyBkb2NrZXIgaW1hZ2UgbG9jYWxseS4gWW91IGNhbiB2ZXJpZnkgYnV5IHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgYW5kIHlvdSBzaG91bGQgc2VlIHRoZSBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0RvY2tlciBydW4gSWFDMTAxIGNvbnRhaW5lciZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgd2XigJlsbCBjcmVhdGUgYSBuZXcgRG9ja2VyIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YXJpdjNyYS9pYWMxMDEmbHQ7L2NvZGUmZ3Q7IGltYWdlIHdoaWNoIGhhcyBhbGwgdGhlIElhQyB0b29scyBhbmQgY29kZSBwcmUtYmFrZWQuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O01vdW50aW5nIHRoZSAvLmNvbmZpZy9nY2xvdWQvIGRpcmVjdG9yeSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtCZWZvcmUgcnVubmluZyB0aGUgbmV3IGNvbnRhaW5lciB5b3UgbmVlZCB0aGUgYWJzb2x1dGUgcGF0aCB0byB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkuIE9uIG15IE1hY09TIG1hY2hpbmUsIG15IGFic29sdXRlIHBhdGggaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7L1VzZXJzL2FuZ2VsLy5jb25maWcvZ2Nsb3VkLyZsdDsvY29kZSZndDsuIEJlIHN1cmUgdG8gZ2V0IHlvdXIgYWJzb2x1dGUgZmlsZSBwYXRoIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2Nsb3VkJmx0Oy9jb2RlJmd0OyBkaXJlY3Rvcnkgb24geW91ciBsb2NhbCBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtSdW4gSWFDMTAxIGNvbnRhaW5lciB3aXRoIG1vdW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtSdW4gdGhpcyBjb21tYW5kIGluIGEgdGVybWluYWwgcnVuIGJ1dCBiZSBzdXJlIHRvIHJlcGxhY2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0OyZsdDsvY29kZSZndDsgYml0IHdpdGggeW91ciBhY3R1YWwgYWJzb2x1dGUgcGF0aCB0byB5b3VyIGxvY2FsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dsb2N1ZC8mbHQ7L2NvZGUmZ3Q7ZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtaXQgLS1uYW1lIGlhY3Rlc3QgLS1tb3VudCB0eXBlPWJpbmQsc291cmNlPSZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0Oy5jb25maWcvZ2Nsb3VkLyx0YXJnZXQ9L3Jvb3QvLmNvbmZpZy9nY2xvdWQvIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJYUMxMDEgY29udGFpbmVyIGlzIHJ1bm5pbmcmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGUgcHJldmlvdXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgeW91ciBJYUMxMDEgY29udGFpbmVyIHdpbGwgYmUgdXAgYW5kIHJ1bm5pbmcgYW5kIHlvdXIgdGVybWluYWwgc2hlbGwgaGFzIGRyb3BwZWQgeW91IGludG8gdGhlIHJ1bm5pbmcgY29udGFpbmVyLiBFdmVyeSBjb21tYW5kIHlvdSBydW4gaW4geW91ciB0ZXJtaW5hbCBzaGVsbCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBEb2NrZXIgY29udGFpbmVyIGZyb20gbm93IG9uIHVudGlsIHlvdSBtYW51YWxseSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtleGl0Jmx0Oy9jb2RlJmd0OyB0aGUgY29udGFpbmVyLiBUaGUgY29udGFpbmVyIGhhcyB0aGUgVGVycmFmb3JtIGFuZCBQdWx1bWkgQ0xJIHRvb2xzIGluc3RhbGxlZCwgYXMgd2VsbCBhcyBleGFtcGxlIGNvZGUgZm9yIGVhY2ggdGhhdCBjcmVhdGVzIGluZnJhc3RydWN0dXJlIGluIHRoZWlyIHJlc3BlY3RpdmUgdG9vbHMuIFRoZSBjb250YWluZXIgcHJvamVjdHMgZmlsZXMgYXJlIG1hcHBlZCBhcyBmb2xsb3dzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHJvamVjdHMvCnxfIHRlcnJhZm9ybS9nY3AvY29tcHV0ZS8gICAjIENvbnRhaW5zIHRoZSBUZXJyYWZvcm0gY29kZSBmaWxlcwp8XyBwdWx1bWkvZ2NwL2NvbXB1dGUvICAgICAgIyBDb250YWlucyB0aGUgUHVsdW1pIGNvZGUgZmlsZXMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gyJmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2EmZ3Q7IGlzIGEgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgYnVpbGRpbmcsIGNoYW5naW5nLCBhbmQgdmVyc2lvbmluZyBpbmZyYXN0cnVjdHVyZSBzYWZlbHkgYW5kIGVmZmljaWVudGx5LiBUZXJyYWZvcm0gY2FuIG1hbmFnZSBleGlzdGluZyBzZXJ2aWNlIHByb3ZpZGVycyBhcyB3ZWxsIGFzIGN1c3RvbSBpbi1ob3VzZSBzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q29uZmlndXJhdGlvbiBmaWxlcyBkZXNjcmliZSB0aGUgY29tcG9uZW50cyBuZWVkZWQgdG8gcnVuIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yIHlvdXIgZW50aXJlIGRhdGFjZW50ZXIgb24gVGVycmFmb3JtLiBUZXJyYWZvcm0gZ2VuZXJhdGVzIGFuIGV4ZWN1dGlvbiBwbGFuIGRlc2NyaWJpbmcgd2hhdCBpdCB3aWxsIGRvIHRvIHJlYWNoIHRoZSBkZXNpcmVkIHN0YXRlLCBhbmQgdGhlbiBleGVjdXRlcyBpdCB0byBidWlsZCB0aGUgZGVzY3JpYmVkIGluZnJhc3RydWN0dXJlLiBBcyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBUZXJyYWZvcm0gaXMgYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBjaGFuZ2VkIGFuZCBjcmVhdGUgaW5jcmVtZW50YWwgZXhlY3V0aW9uIHBsYW5zIHdoaWNoIGNhbiBiZSBhcHBsaWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZSBpbmZyYXN0cnVjdHVyZSBUZXJyYWZvcm0gY2FuIG1hbmFnZSBpbmNsdWRlcyBsb3ctbGV2ZWwgY29tcG9uZW50cyBzdWNoIGFzIGNvbXB1dGUgaW5zdGFuY2VzLCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZywgYXMgd2VsbCBhcyBoaWdoLWxldmVsIGNvbXBvbmVudHMgc3VjaCBhcyBETlMgZW50cmllcywgU2FhUyBmZWF0dXJlcywgZXRjLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBUZXJyYWZvcm0mbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCB3aXRoIHByb3Zpc2lvbmluZyBzb21lIHJlc291cmNlcyBpbiBHQ1AgdXNpbmcgVGVycmFmb3JtIGNvZGUuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDttYWluLnRmICZsdDsvY29kZSZndDsgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBjb2RlIHRoYXQgaGFzIG91ciBpbmZyYXN0cnVjdHVyZSBkZWZpbmVkLiBJbiB0aGlzIGZpbGUgd2XigJlyZSBjcmVhdGluZyBhIG5ldyBjb21wdXRlIGluc3RhbmNlIHRoYXQgd2lsbCBpbnN0YWxsIGFuZCBydW4gYSBQeXRob24gRmxhc2sgYXBwIHBhY2thZ2VkIGluIGEgRG9ja2VyIGNvbnRhaW5lci4gVGhlIFRlcnJhZm9ybSBjb2RlIHdpbGwgYWxzbyBjcmVhdGUgc29tZSBmaXJld2FsbCBydWxlcyB0aGF0IHdpbGwgYWxsb3cgcHVibGljIGFjY2VzcyB0byB0aGUgYXBwIG92ZXIgcG9ydCA1MDAwLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHByb3Zpc2lvbiB0aGlzLCBydW4gdGhpcyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NkIH4vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJbml0aWFsaXppbmcgVGVycmFmb3JtJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1doaWxlIGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBydW4gdGhpcyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7dGVycmZvcm0gaW5pdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSByZXN1bHRzIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cm9vdEBkOWNlNzIxMjkzZTI6fi9wcm9qZWN0L3RlcnJhZm9ybS9nY3AvY29tcHV0ZSMgdGVycmFmb3JtIGluaXQKCkluaXRpYWxpemluZyB0aGUgYmFja2VuZC4uLgoKSW5pdGlhbGl6aW5nIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBDaGVja2luZyBmb3IgYXZhaWxhYmxlIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBEb3dubG9hZGluZyBwbHVnaW4gZm9yIHByb3ZpZGVyICZxdW90O2dvb2dsZSZxdW90OyAoaGFzaGljb3JwL2dvb2dsZSkgMy4xMC4wLi4uCgoqIHByb3ZpZGVyLmdvb2dsZTogdmVyc2lvbiA9ICZxdW90O34mYW1wO2d0OyAzLjEwJnF1b3Q7CgpUZXJyYWZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7aDMmZ3Q7UHJldmlld2luZyB3aXRoIFRlcnJhZm9ybSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUZXJyYWZvcm0gaGFzIGEgY29tbWFuZCB0aGF0IGFsbG93cyB5b3UgdG8gZHJ5IHJ1biBhbmQgdmFsaWRhdGUgeW91ciBUZXJyYWZvcm0gY29kZSB3aXRob3V0IGFjdHVhbGx5IGV4ZWN1dGluZyBhbnl0aGluZy4gVGhlIGNvbW1hbmQgaXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybSBwbGFuJmx0Oy9jb2RlJmd0OyB3aGljaCBhbHNvIGdyYXBocyBhbGwgdGhlIGFjdGlvbnMgYW5kIGNoYW5nZXMgdGhhdCBUZXJyYWZvcm0gd2lsbCBleGVjdXRlIGFnYWluc3QgeW91ciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS4gSW4gdGhlIHRlcm1pbmFsIHJ1bjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3RlcnJhZm9ybSBwbGFuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSByZXN1bHRzIHNpbWlsYXIgdG8gdGhpcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0FuIGV4ZWN1dGlvbiBwbGFuIGhhcyBiZWVuIGdlbmVyYXRlZCBhbmQgaXMgc2hvd24gYmVsb3cuClJlc291cmNlIGFjdGlvbnMgYXJlIGluZGljYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKICArIGNyZWF0ZQoKVGVycmFmb3JtIHdpbGwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGFjdGlvbnM6CgogICMgZ29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwuaHR0cC01MDAwIHdpbGwgYmUgY3JlYXRlZAogICsgcmVzb3VyY2UgJnF1b3Q7Z29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwmcXVvdDsgJnF1b3Q7aHR0cC01MDAwJnF1b3Q7IHsKICAgICAgKyBjcmVhdGlvbl90aW1lc3RhbXAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVzdGluYXRpb25fcmFuZ2VzID0gKGtub3duIGFmdGVyIGFwcGx5KQogIH0KCiAgICAjIGdvb2dsZV9jb21wdXRlX2luc3RhbmNlLmRlZmF1bHQgd2lsbCBiZSBjcmVhdGVkCiAgKyByZXNvdXJjZSAmcXVvdDtnb29nbGVfY29tcHV0ZV9pbnN0YW5jZSZxdW90OyAmcXVvdDtkZWZhdWx0JnF1b3Q7IHsKICAgICAgKyBjYW5faXBfZm9yd2FyZCAgICAgICA9IGZhbHNlCiAgICAgICsgY3B1X3BsYXRmb3JtICAgICAgICAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVsZXRpb25fcHJvdGVjdGlvbiAgPSBmYWxzZQogICAgICArIGd1ZXN0X2FjY2VsZXJhdG9yICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGlkICAgICAgICAgICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGluc3RhbmNlX2lkICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVsX2ZpbmdlcnByaW50ICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVscyAgICAgICAgICAgICAgID0gewogICAgICAgICAgKyAmcXVvdDtjb250YWluZXItdm0mcXVvdDsgPSAmcXVvdDtjb3Mtc3RhYmxlLTY5LTEwODk1LTYyLTAmcXVvdDsKICAgICAgICB9CiAgICAgICsgbWFjaGluZV90eXBlICAgICAgICAgPSAmcXVvdDtnMS1zbWFsbCZxdW90OwogIH0KICBQbGFuOiAyIHRvIGFkZCwgMCB0byBjaGFuZ2UsIDAgdG8gZGVzdHJveS4KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgeW91IGNhbiBzZWUsIFRlcnJhZm9ybSBpcyBnb2luZyB0byBjcmVhdGUgbmV3IEdDUCByZXNvdXJjZXMgZm9yIHlvdSBiYXNlZCBvbiB0aGUgY29kZSBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bWFpbi50ZiZsdDsvY29kZSZndDsgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGFwcGx5Jmx0Oy9oMyZndDsKCiZsdDtwJmd0O05vdyB5b3XigJlyZSByZWFkeSB0byBjcmVhdGUgdGhlIG5ldyBpbmZyYXN0cnVjdHVyZSBhbmQgZGVwbG95IHRoZSBhcHBsaWNhdGlvbi4gUnVuIHRoaXMgY29tbWFuZCBpbiB0aGUgdGVybWluYWw6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt0ZXJyYWZvcm0gYXBwbHkKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGVycmFmb3JtIHdpbGwgcHJvbXB0IHlvdSB0byBjb25maXJtIHlvdXIgY29tbWFuZC4gVHlwZSB5ZXMgYW5kIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0RvIHlvdSB3YW50IHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucz8KICBUZXJyYWZvcm0gd2lsbCBwZXJmb3JtIHRoZSBhY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KICBPbmx5ICd5ZXMnIHdpbGwgYmUgYWNjZXB0ZWQgdG8gYXBwcm92ZS4KCiAgRW50ZXIgYSB2YWx1ZTogeWVzCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RlcnJhZm9ybSB3aWxsIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgYW5kIHlvdSB3aWxsIGhhdmUgYW4gYXBwbGljYXRpb24gdXAgYW5kIHJ1bm5pbmcgb24gR0NQIHNob3J0bHkgYWZ0ZXIgaXQgY29tcGxldGVzLiBQbGVhc2Ugbm90ZSB0aGF0IGl0IHdpbGwgdGFrZSAzLTUgbWludXRlcyBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbWUgb25saW5lIGFmdGVyIFRlcnJhZm9ybSBjb21wbGV0ZXMuIEl04oCZcyBub3QgYW4gaW5zdGFudCBwcm9jZXNzIGJlY2F1c2UgdGhlIGJhY2tlbmQgc3lzdGVtcyBhcmUgcHJvdmlzaW9uaW5nIGFuZCBicmluZ2luZyB0aGluZ3Mgb25saW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgZG9uZSwgeW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7bGFuZ3VhZ2Utc2hlbGwgaGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7T3V0cHV0czoKClB1YmxpY19JUF9BZGRyZXNzICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgMzQuNzQuNzUuMTcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1B1YmxpY19JUF9BZGRyZXNzJmx0Oy9jb2RlJmd0OyB2YWx1ZSBpcyB0aGUgSVAgQWRkcmVzcyB0aGF0IHlvdXIgYXBwIGlzIHJ1bm5pbmcgb24sIHNvIGlmIHlvdSBnbyB0byBhIGJyb3dzZXIgYW5kIHBsdWcgdGhhdCBudW1iZXIgaW4gcGx1cyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7OjUwMDAmbHQ7L2NvZGUmZ3Q7IHBvcnQgYWRkcmVzcyAoaXQgd291bGQgbG9vayBsaWtlIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7MzQuNzQuNzUuMTc6NTAwMCZsdDsvY29kZSZndDspIHlvdSB3aWxsIHNlZSB5b3VyIGFwcCBydW5uaW5nIGluIEdDUC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Tm93IHRoYXQgeW91IGhhdmUgcHJvb2YgdGhhdCB5b3VyIEdvb2dsZSBDb21wdXRlIGluc3RhbmNlIGFuZCB5b3VyIGFwcGxpY2F0aW9uIHdvcmssIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gZGVzdHJveSB0aGUgYXNzZXRzIHRoYXQgeW91IGNyZWF0ZWQgaW4gdGhpcyB0dXRvcmlhbC4gWW91IGNhbiBsZWF2ZSBpdCB1cCBhbmQgcnVubmluZywgYnV0IGJlIGF3YXJlIHRoYXQgdGhlcmUgaXMgYSBjb3N0IGFzc29jaWF0ZWQgd2l0aCBhbnkgYXNzZXRzIHJ1bm5pbmcgb24gdGhlIEdvb2dsZSBDbG91ZCBQbGF0Zm9ybSBhbmQgeW91IHdpbGwgYmUgbGlhYmxlIGZvciB0aG9zZSBjb3N0cy4gR29vZ2xlIGdpdmVzIGEgZ2VuZXJvdXMgJDMwMCBjcmVkaXQgZm9yIGl0cyBmcmVlIHRyaWFsIHNpZ24tdXAsIGJ1dCB5b3UgY291bGQgZWFzaWx5IGVhdCB0aHJvdWdoIHRoYXQgaWYgeW91IGxlYXZlIGFzc2V0cyBydW5uaW5nLiBJdOKAmXMgdXAgdG8geW91LCBidXQgcnVubmluZyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0ZXJyYWZvcm0gZGVzdHJveSZsdDsvY29kZSZndDsgd2lsbCB0ZXJtaW5hdGUgYW55IHJ1bm5pbmcgYXNzZXRzLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIEnigJlsbCBkZW1vbnN0cmF0ZSBob3cgdG8gcGVyZm9ybSBpbmZyYXN0cnVjdHVyZSBwcm92aXNpb25pbmcgdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtQdWx1bWkgU0RLJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9wcm9kdWN0LyNzZGsmcXVvdDsmZ3Q7UHVsdW1pIFNESyZsdDsvYSZndDsgaXMgYW4gb3BlbiBzb3VyY2UgZnJhbWV3b3JrIGZvciBkZWZpbmluZyBhbmQgZGVwbG95aW5nIGNsb3VkIGFwcHMgYW5kIElhQy4gUHVsdW1pIGVuYWJsZXMgZGV2ZWxvcGVycyB0byB3cml0ZSBjb2RlIGluIHRoZWlyIGZhdm9yaXRlIGxhbmd1YWdlIHN1Y2ggYXMgVHlwZVNjcmlwdCwgSmF2YVNjcmlwdCwgUHl0aG9uLCBhbmQgR28uIFRoaXMgZW5hYmxlcyBtb2Rlcm4gYXBwcm9hY2hlcyB0byBjbG91ZCBhcHBsaWNhdGlvbnMgYW5kIGluZnJhc3RydWN0dXJlIHdpdGhvdXQgbmVlZGluZyB0byBsZWFybiBhbm90aGVyIFlBTUwgb3IgRFNMIGRpYWxlY3QuIFRoaXMgdW5sb2NrcyBhYnN0cmFjdGlvbnMgYW5kIHJldXNlLCBhcyB3ZWxsIGFzIGFjY2VzcyB0byB5b3VyIGZhdm9yaXRlIElERXMsIHJlZmFjdG9yaW5nLCBhbmQgdGVzdGluZyB0b29scy4gTWFzdGVyIG9uZSB0b29sY2hhaW4gYW5kIHNldCBvZiBmcmFtZXdvcmtzIGFuZCBnbyB0byBhbnkgY2xvdWQgKEFXUywgQXp1cmUsIEdDUCwgb3IgS3ViZXJuZXRlcykgd2l0aCBlYXNlLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBQdWx1bWkmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUgZXhwZXJpZW5jZWQgYnVpbGRpbmcgaW5mcmFzdHJ1Y3R1cmUgdXNpbmcgVGVycmFmb3JtLCBub3cgeW914oCZbGwgbGVhcm4gaG93IHRvIHByb3Zpc2lvbiBhbmQgZGVwbG95IG5ldyBpbmZyYXN0cnVjdHVyZSB1c2luZyBQdWx1bWkuIFRoZSBQdWx1bWkgZXhhbXBsZSB3aWxsIGNyZWF0ZSB0aGUgc2FtZSBHQ1AgcmVzb3VyY2VzIHByZXZpb3VzbHkgdXNpbmcgUHVsdW1pIGNvZGUgYW5kIHRvb2xzLiBQdWx1bWkgZW5hYmxlcyB5b3UgdG8gZGVmaW5lIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgaW4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHdoaWNoIHByb3ZpZGVzIGxvdHMgb2YgZmxleGliaWxpdHkuIEluIHRoaXMgZXhhbXBsZSwgd2XigJlyZSB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vd3d3LnB5dGhvbi5vcmcvJnF1b3Q7Jmd0O1B5dGhvbiZsdDsvYSZndDsgYXMgb3VyIGxhbmd1YWdlLiBUaGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7X19tYWluLnB5X18mbHQ7L2NvZGUmZ3Q7IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC9wdWx1bWkvZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgaXMgd2hlcmUgd2VyZSBnb2luZyB0byBkZWZpbmUgb3VyIGluZnJhc3RydWN0dXJlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlIHN1cmUgdG8gaGF2ZSB5b3VyIFB1bHVtaSBBUEkgdG9rZW4gYXZhaWxhYmxlLiBZb3XigJlsbCBuZWVkIGl0IGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIFB1bHVtaSBleGFtcGxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7fi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGRpcmVjdG9yeS4gUnVuIHRoaXMgY29tbWFuZCB0byBjaGFuZ2UgaW50byB0aGUgUHVsdW1pIGV4YW1wbGUgZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2Qgfi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gzJmd0O0luc3RhbGxpbmcgZGVwZW5kaWVuY2llcyBmb3IgUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1NpbmNlIHdl4oCZcmUgZGVmaW5pbmcgb3VyIElhQyBzcGVjcyB1c2luZyBQeXRob24gd2XigJlsbCBuZWVkIHRvIGZpcnN0IGluc3RhbGwgdGhlIFB1bHVtaSBQeXRob24gU0RLIGRlcGVuZGVuY2llcy4gSW4gdGhlIHRlcm1pbmFsIHJ1biB0aGlzIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtwaXAgaW5zdGFsbCAtciAuLi9yZXF1aXJlbWVudHMudHh0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtQcmV2aWV3aW5nIHdpdGggUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1B1bHVtaSBoYXMgYSBkcnktcnVuIGNvbW1hbmQgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBwcmV2aWV3Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRpc3BsYXlzIGEgcHJldmlldyBvZiB0aGUgdXBkYXRlcyB0byBhbiBleGlzdGluZyBzdGFjayB3aG9zZSBzdGF0ZSBpcyByZXByZXNlbnRlZCBieSBhbiBleGlzdGluZyBzdGF0ZSBmaWxlLiBUaGUgbmV3IGRlc2lyZWQgc3RhdGUgaXMgY29tcHV0ZWQgYnkgcnVubmluZyBhIFB1bHVtaSBwcm9ncmFtLCBhbmQgZXh0cmFjdGluZyBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbnMgZnJvbSBpdHMgcmVzdWx0aW5nIG9iamVjdCBncmFwaC4gVGhlc2UgYWxsb2NhdGlvbnMgYXJlIHRoZW4gY29tcGFyZWQgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc3RhdGUgdG8gZGV0ZXJtaW5lIHdoYXQgb3BlcmF0aW9ucyBtdXN0IHRha2UgcGxhY2UgdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZCBzdGF0ZS4gTm8gY2hhbmdlcyB0byB0aGUgc3RhY2sgd2lsbCBhY3R1YWxseSB0YWtlIHBsYWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGlzIGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHByZXZpZXcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHJlc3VsdHMgcHJvbXB0aW5nIHlvdSBmb3IgdGhlIFB1bHVtaSBBUEkgdG9rZW4geW91IGNyZWF0ZWQgZWFybGllci4gUGFzdGUgdGhlIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLiBBZnRlciB5b3UgcGFzdGUgdGhlIHRva2VuIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O01hbmFnZSB5b3VyIFB1bHVtaSBzdGFja3MgYnkgbG9nZ2luZyBpbi4KUnVuIGBwdWx1bWkgbG9naW4gLS1oZWxwYCBmb3IgYWx0ZXJuYXRpdmUgbG9naW4gb3B0aW9ucy4KRW50ZXIgeW91ciBhY2Nlc3MgdG9rZW4gZnJvbSBodHRwczovL2FwcC5wdWx1bWkuY29tL2FjY291bnQvdG9rZW5zCiAgICBvciBoaXQgJmFtcDtsdDtFTlRFUiZhbXA7Z3Q7IHRvIGxvZyBpbiB1c2luZyB5b3VyIGJyb3dzZXIgICAgICAgICAgICAgICAgICAgOgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1doZW4gcGFzdGluZyB0aGUgQVBJIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLCBubyB2YWx1ZXMgd2lsbCBiZSBkaXNwbGF5ZWQuIEl0IHdpbGwgcmVtYWluIGludmlzaWJsZSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuJmx0Oy9pJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBtYXkgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGEgc3RhY2sgaW4gdGhlIHRlcm1pbmFsLiBJZiBzbywgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkZXYmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB0aGVuIGhpdCBlbnRlci4gWW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UHJldmlld2luZyB1cGRhdGUgKGRldik6CiAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICAgICBQbGFuCiArICAgcHVsdW1pOnB1bHVtaTpTdGFjayAgICAgIGNvbXB1dGUtZGV2ICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6TmV0d29yayAgIG5ldHdvcmsgICAgICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6SW5zdGFuY2UgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJTilIAgZ2NwOmNvbXB1dGU6RmlyZXdhbGwgIGZpcmV3YWxsICAgICAgICAgICAgICAgICAgICBjcmVhdGUKClJlc291cmNlczoKICAgICsgNSB0byBjcmVhdGUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUganVzdCBlbmFibGVkIGFjY2VzcyB0byB0aGUgUHVsdW1pIGJhY2tlbmQgY2xvdWQgd2hpY2gga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXRlIG9mIHlvdXIgaW5mcmFzdHJ1Y3R1cmVzLiBOb3cgeW914oCZcmUgcmVhZHkgdG8gcnVuIHNvbWUgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7UHVsdW1pIHVwJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1RvIGV4ZWN1dGUgdGhlIFB1bHVtaSBjb2RlLCB1c2UgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIHVwJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGNyZWF0ZXMgb3IgdXBkYXRlcyByZXNvdXJjZXMgaW4gYSBzdGFjay4gVGhlIG5ldyBkZXNpcmVkIGdvYWwgc3RhdGUgZm9yIHRoZSB0YXJnZXQgc3RhY2sgaXMgY29tcHV0ZWQgYnkgcnVubmluZyB0aGUgY3VycmVudCBQdWx1bWkgcHJvZ3JhbSBhbmQgb2JzZXJ2aW5nIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9ucyB0byBwcm9kdWNlIGEgcmVzb3VyY2UgZ3JhcGguIFRoaXMgZ29hbCBzdGF0ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIGV4aXN0aW5nIHN0YXRlIHRvIGRldGVybWluZSB3aGF0IGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQvb3IgZGVsZXRlIG9wZXJhdGlvbnMgbXVzdCB0YWtlIHBsYWNlIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgZ29hbCBzdGF0ZSBpbiB0aGUgbW9zdCBtaW5pbWFsbHkgZGlzcnVwdGl2ZSB3YXkuIEFmdGVyd2FyZCwgdGhpcyBjb21tYW5kIHJlY29yZHMgYSBmdWxsIHRyYW5zYWN0aW9uYWwgc25hcHNob3Qgb2YgdGhlIHN0YWNr4oCZcyBuZXcgc3RhdGUgc28gdGhhdCB0aGUgc3RhY2sgbWF5IGJlIHVwZGF0ZWQgaW5jcmVtZW50YWxseSBhZ2FpbiBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgdGVybWluYWwgcnVuOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHVwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1NlbGVjdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7eWVzJmx0Oy9jb2RlJmd0OyBvcHRpb24gYW5kIGhpdCBlbnRlci4gVGhlIFB1bHVtaSBhcHAgd2lsbCBleGVjdXRlLCBhbmQgc2hvcnRseSBhZnRlciB5b3XigJlsbCBoYXZlIGEgY29tcGxldGUgc2VydmVyIHJ1bm5pbmcgYW4gYXBwbGljYXRpb24gb24gR0NQLiBZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtVcGRhdGluZyAoZGV2KToKICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cwogKyAgIHB1bHVtaTpwdWx1bWk6U3RhY2sgICAgICBjb21wdXRlLWRldiAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUnOKUgCBnY3A6Y29tcHV0ZTpOZXR3b3JrICAgbmV0d29yayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGVkCiArICAg4pSc4pSAIGdjcDpjb21wdXRlOkZpcmV3YWxsICBmaXJld2FsbCAgICAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUlOKUgCBnY3A6Y29tcHV0ZTpJbnN0YW5jZSAgd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDEgIGNyZWF0ZWQKCk91dHB1dHM6CiAgICBleHRlcm5hbF9pcCAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICBpbnN0YW5jZV9tZXRhX2RhdGE6IHsKICAgICAgICBnY2UtY29udGFpbmVyLWRlY2xhcmF0aW9uOiAmcXVvdDtzcGVjOlxuICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDFcbiAgICAgIGltYWdlOiBhcml2M3JhL3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxOmxhdGVzdFxuICAgICAgc3RkaW46IGZhbHNlXG4gICAgICB0dHk6IGZhbHNlXG4gIHJlc3RhcnRQb2xpY3k6IEFsd2F5c1xuJnF1b3Q7CiAgICB9CiAgICBpbnN0YW5jZV9uYW1lICAgICA6ICZxdW90O3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxJnF1b3Q7CiAgICBpbnN0YW5jZV9uZXR3b3JrICA6IFsKICAgICAgICBbMF06IHsKICAgICAgICAgICAgYWNjZXNzQ29uZmlncyAgICA6IFsKICAgICAgICAgICAgICAgIFswXTogewogICAgICAgICAgICAgICAgICAgIG5hdElwICAgICAgICAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICAgICAgICAgICAgICAgICAgbmV0d29ya190aWVyICAgICAgIDogJnF1b3Q7UFJFTUlVTSZxdW90OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgOiAmcXVvdDtuaWMwJnF1b3Q7CiAgICAgICAgfQogICAgXQoKUmVzb3VyY2VzOgogICAgKyA1IGNyZWF0ZWQKCkR1cmF0aW9uOiA1OHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlc2UgcmVzdWx0cywgeW914oCZbGwgc2VlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXh0ZXJuYWxfaXAmbHQ7L2NvZGUmZ3Q7IGtleS4gSXTigJlzIHZhbHVlIGlzIHRoZSBJUCBBZGRyZXNzIHRvIHRoZSBwdWJsaWMgZmFjaW5nIGFwcGxpY2F0aW9uIGV4cG9zZWQgb24gcG9ydCA1MDAwLiBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIFRlcnJhZm9ybSBleGFtcGxlLCB5b3UgY2FuIGFjY2VzcyB0aGUgYXBwbGljYXRpb24gaW4gYSBicm93c2VyLiBSZW1lbWJlciB0byBhbGxvdyBmb3IgYSBmZXcgbWludXRlcyBzbyB0aGUgYmFja2VuZCBzeXN0ZW0gY2FuIGJyaW5nIGV2ZXJ5dGhpbmcgb25saW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQdWx1bWkgZGVzdHJveSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtQdWx1bWkgaGFzIGEgY29tbWFuZCB0byB0ZXJtaW5hdGUgYWxsIG9mIHRoZSBjbG91ZCByZXNvdXJjZXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBkZXN0cm95Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRlbGV0ZXMgYW4gZW50aXJlIGV4aXN0aW5nIHN0YWNrIGJ5IG5hbWUuIFRoZSBjdXJyZW50IHN0YXRlIGlzIGxvYWRlZCBmcm9tIHRoZSBhc3NvY2lhdGVkIHN0YXRlIGZpbGUgaW4gdGhlIHdvcmtzcGFjZS4gQWZ0ZXIgcnVubmluZyB0byBjb21wbGV0aW9uLCBhbGwgb2YgdGhpcyBzdGFja+KAmXMgcmVzb3VyY2VzIGFuZCBhc3NvY2lhdGVkIHN0YXRlIHdpbGwgYmUgZ29uZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtSdW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGluIHRoZSB0ZXJtaW5hbCBhbmQgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5ZXMmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB3aGVuIHByb21wdGVkIHRvICZsdDtzdHJvbmcmZ3Q7cGVybWFuZW50bHkmbHQ7L3N0cm9uZyZndDsgZGVzdHJveSB0aGUgR0NQIHJlc291cmNlcyBjcmVhdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O0NvbmdyYXR1bGF0aW9ucyEgWW914oCZdmUganVzdCBsZXZlbGVkIHVwIGFuZCBub3cgaGF2ZSBleHBlcmllbmNlIHByb3Zpc2lvbmluZyBhbmQgZGVwbG95aW5nIGFwcGxpY2F0aW9ucyB0byBHQ1AgdXNpbmcgdGhlIG1vZGVybiBJYUMgdG9vbHMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O1RlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4gVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2lsbCBoZWxwIHlvdSBleHBhbmQgeW91ciBrbm93bGVkZ2UgZnJvbSBoZXJlOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9jbGktaW5kZXguaHRtbCZxdW90OyZndDtUZXJyYWZvcm0gR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9kb2NzL2dldC1zdGFydGVkLyZxdW90OyZndDtQdWx1bWkgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS9vcmIvcHVsdW1pL3B1bHVtaSZxdW90OyZndDtQdWx1bWkgb3JiIGZvciBDaXJjbGVDSSZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyZxdW90OyZndDtEb2NrZXIgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm0vY29tbXVuaXR5L2Jsb2IvbWFzdGVyL3R1dG9yaWFscy9nZXR0aW5nLXN0YXJ0ZWQtb24tZ2NwLXdpdGgtdGVycmFmb3JtL2luZGV4Lm1kI2dldHRpbmctcHJvamVjdC1jcmVkZW50aWFscyZxdW90OyZndDtHb29nbGUgQ2xvdWQgUGxhdGZvcm0mbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogICAgICAKICAgICAgPGl0ZW0+CiAgICAgICAgPHRpdGxlPkEgbG9vayBhdCBDaXJjbGVDSeKAmXMgaW5kdXN0cnktbGVhZGluZyBzdXBwb3J0IGZvciB0cmFuc2l0aW9uLXJlbGF0ZWQgbWVkaWNhbCBsZWF2ZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hLWxvb2stYXQtY2lyY2xlY2ktcy1pbmR1c3RyeS1sZWFkaW5nLXN1cHBvcnQtZm9yLXRyYW5zaXRpb24tcmVsYXRlZC1tZWRpY2FsLWxlYXZlLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5XZWQsIDEzIE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2EtbG9vay1hdC1jaXJjbGVjaS1zLWluZHVzdHJ5LWxlYWRpbmctc3VwcG9ydC1mb3ItdHJhbnNpdGlvbi1yZWxhdGVkLW1lZGljYWwtbGVhdmUvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RWxpemFiZXRoIEJlbGw8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7T25lIG9mIHRoZSBncmVhdCB0aGluZ3MgYWJvdXQgd29ya2luZyBhdCBDaXJjbGVDSSBpcyB0aGF0IHRoZSBjb21wYW55IGJlbGlldmVzIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGJlIGFibGUgdG8gYmUgdGhlaXIgd2hvbGUgc2VsZiBhdCB3b3JrLiBJbmNsdXNpdml0eSwgZGVtb25zdHJhdGluZyB0cnVzdCBhbmQgcmVzcGVjdCwgYW5kIG1ha2luZyBzdXJlIGV2ZXJ5b25lIGhhcyB0aGUgdG9vbHMgYW5kIHN1cHBvcnQgdGhleSBuZWVkIGFyZSBhbGwgYnVyaWVkIGRlZXAgaW4gdGhlIGN1bHR1cmUgaGVyZSDigJMgaXQgaXMgYSBiaWcgcGFydCBvZiBob3cgd2UgZGVsaXZlciB0aGUgYmVzdCB2YWx1ZSBmb3Igb3VyIGN1c3RvbWVycy4gV2l0aCB0aGF0IGluIG1pbmQsIHRoZSBjb21wYW55IHJlY2VudGx5IHJvbGxlZCBvdXQgYSBuZXcgaGVhbHRoY2FyZSBwb2xpY3kgZm9yIG91ciB0cmFuc2dlbmRlciBjby13b3JrZXJzLiBJbiBhIGZpcnN0IGZvciBjb21wYW5pZXMgaW4gdGhlIENJL0NEIHNwYWNlLCBDaXJjbGVDSSBub3cgb2ZmZXJzIGZ1bGx5LWNvbXBlbnNhdGVkIHBhaWQgbGVhdmUgZm9yIGVtcGxveWVlcyByZWNvdmVyaW5nIGZyb20gdHJhbnNpdGlvbi1yZWxhdGVkIG1lZGljYWwgcHJvY2VkdXJlcy4gVGhpcyBwb2xpY3kgaXMgYW4gZXh0cmVtZWx5IGltcG9ydGFudCBhZGRpdGlvbiB0byBDaXJjbGVDSeKAmXMgYmVuZWZpdHMgcGFja2FnZSBhbmQgYW5vdGhlciBleGFtcGxlIG9mIHRoZSBjb21wYW554oCZcyBkZWRpY2F0aW9uIHRvIHRoZSB3ZWxsLWJlaW5nIG9mIGFsbCBlbXBsb3llZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VHJhbnNpdGlvbiBpcyBhbiBpbW1lbnNlbHkgc3RyZXNzZnVsIHByb2Nlc3MsIGFuZCB0aGUgbWVkaWNhbCBwcm9jZWR1cmVzIHJlcXVpcmVkIHRvIHRyZWF0IHRoZSBkeXNwaG9yaWEgZXhwZXJpZW5jZWQgYnkgc29tZSB0cmFuc2dlbmRlciBwZW9wbGUgb2Z0ZW4gbmVlZCBhIHZlcnkgY2FyZWZ1bCBhcHByb2FjaCB0byByZWNvdmVyeS4mbHQ7L3AmZ3Q7CgombHQ7YmxvY2txdW90ZSZndDsKICAmbHQ7cCZndDtUaGUgZ29hbCBvZiB0aGUgcG9saWN5IGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRyYW5zZ2VuZGVyIGVtcGxveWVlcyBmZWVsIHN1cHBvcnRlZCBkdXJpbmcgdGhpcyBkaWZmaWN1bHQgdGltZSwgYW5kIGJ5IGVuc3VyaW5nIHRoYXQgdHJhbnNnZW5kZXIgZW1wbG95ZWVzIGhhdmUgYWNjZXNzIHRvIGFwcHJvcHJpYXRlbHkgY29tcGVuc2F0ZWQgbWVkaWNhbCBsZWF2ZSwgdGhlIGNvbXBhbnkgY2FuIHJlbW92ZSBtYWpvciBzb3VyY2VzIG9mIHVubmVjZXNzYXJ5IHN0cmVzcy4gVGhpcyB3YXksIHdlIGNhbiByZXR1cm4gdG8gd29yayBoYXBwaWVyLCBoZWFsdGhpZXIsIGFuZCBiZXR0ZXIgYWJsZSB0byBkbyBvdXIgYmVzdCBmb3Igb3VyIGN1c3RvbWVycyBhbmQgb3VyIGNvbGxlYWd1ZXMuJmx0Oy9wJmd0OwombHQ7L2Jsb2NrcXVvdGUmZ3Q7CgombHQ7aDImZ3Q7SG93IHRoaXMgcG9saWN5IGNhbWUgdG9nZXRoZXImbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgcHVzaCBmb3IgdGhlIGZvcm1hbGl6YXRpb24gb2YgdGhlc2UgYmVuZWZpdHMgZ3JldyBvdXQgb2YgdGhlIGVmZm9ydHMgb2YgbWFueSBpbmRpdmlkdWFscy4gVG9nZXRoZXIsIHRoZSB0cmFucyBlbXBsb3llZXMgYXQgQ2lyY2xlQ0kgZGlzY3Vzc2VkIHRoZSBpc3N1ZSBhbW9uZ3N0IG91cnNlbHZlcywgb3VyIG1hbmFnZXJzLCBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIHdobyBzdXBwb3J0ZWQgdXMgaW4gYnJpbmdpbmcgdGhlIHRvcGljIHRvIG91ciBleGVjdXRpdmUgdGVhbS4gQnkgYnVpbGRpbmcgY29uc2Vuc3VzLCBib3RoIHdpdGhpbiB0aGUgdHJhbnMgcG9wdWxhdGlvbiBhdCB0aGUgY29tcGFueSBhbmQgb3VyIGNpc2dlbmRlciBjb2xsZWFndWVzLCB3ZSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IGFkdm9jYXRlIGZvciBhIGZvcm1hbGl6YXRpb24gb2YsIGFuZCBhIGNvbW1pdG1lbnQgdG8sIHRoaXMgaW5kdXN0cnktbGVhZGluZyB0cmFucyBoZWFsdGhjYXJlIGJlbmVmaXQuIFF1ZWVyU3BoZXJlLCB0aGUgRW1wbG95ZWUgUmVzb3VyY2UgR3JvdXAgaGVyZSBhdCBDaXJjbGVDSSBmb3IgTEdCVFFJQSsgZW1wbG95ZWVzLCBoZWxwZWQgY29vcmRpbmF0ZSB0aGUgZWZmb3J0IHRvIGFkdm9jYXRlLCBhbmQgdGhlIHJlc3VsdCB3YXMgYSBwb2xpY3kgdGhhdCBoZWxwcyBlbnN1cmUgdHJhbnMgZW1wbG95ZWVzIGdldCB0aGUgc3VwcG9ydCB3ZSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uZSBvZiB0aGUgYmVzdCB0aGluZ3MgZm9yIG1lIGFib3V0IHdvcmtpbmcgYXQgQ2lyY2xlQ0kgaXMgaG93IGVtcG93ZXJlZCBJIGZlZWwgdG8gY2FsbCBhdHRlbnRpb24gdG8gaXNzdWVzIG9yIHByYWN0aWNlcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCBhbmQgYnJpbmcgcGVvcGxlIHRvZ2V0aGVyIHRvIHdvcmsgb24gdGhlbSwgdG8gdGhlIGJlbmVmaXQgb2YgYm90aCB0aGUgY29tcGFueSBhcyBhIHdob2xlIGFuZCB1bmRlcnJlcHJlc2VudGVkIG9yIG1hcmdpbmFsaXplZCBlbXBsb3llZXMuIFRyYW5zIHBlb3BsZSBmYWNlIHN5c3RlbWljIGJpYXM6IHRoZXJlIGFyZSBubyBmZWRlcmFsLWxldmVsIHByb3RlY3Rpb25zIGZyb20gZGlzY3JpbWluYXRpb24gb24gdGhlIGJhc2lzIG9mIGdlbmRlciBpZGVudGl0eSBpbiB0aGUgVW5pdGVkIFN0YXRlcywgYW5kIG9mIHRoZSB0cmFucyBwb3B1bGF0aW9uIHN1cnZleWVkIGJ5IHRoZSBOYXRpb25hbCBDZW50ZXIgZm9yIFRyYW5zZ2VuZGVyIEVxdWFsaXR5IGluIDIwMTUsIDgwJSBvZiB0aG9zZSB3aG8gd2VyZSBlbXBsb3llZCByZXBvcnRlZCBleHBlcmllbmNpbmcgaGFyYXNzbWVudCwgbWlzdHJlYXRtZW50LCBvciBoYWQgdG8gdGFrZSBzdGVwcyB0byBhdm9pZCB0aG9zZSBob3N0aWxlIHdvcmtwbGFjZSBiZWhhdmlvcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SSBrbm93IGZpcnN0aGFuZCBob3cgZGlmZmljdWx0IGJlaW5nIG91dCBhdCB3b3JrIGNhbiBiZS4gQXQgYSBwcmV2aW91cyBlbXBsb3llciBlYXJseSBpbiBteSB0cmFuc2l0aW9uLCBJIGZlbHQgYWxpZW5hdGVkIGFuZCBkaXNsaWtlZCBieSBjb2xsZWFndWVzIHdobyBoYWQgcHJldmlvdXNseSBiZWVuIGZyaWVuZGx5IGJlZm9yZSB0aGV5IGtuZXcgSSB3YXMgdHJhbnNnZW5kZXIuIEkgaGF2ZSBoYWQgdG8gbWluaW1pemUgdGhlIGZhY3QgdGhhdCBJ4oCZbSB0cmFucywgdG9sZXJhdGUgYWN0aXZlIGhvc3RpbGl0eSBmcm9tIGNvd29ya2Vycywgb3IgcHJldGVuZCB0aGF0IEkgd2FzIGNpc2dlbmRlciwgaW4gb3JkZXIgdG8gcHJvdGVjdCBteSBqb2IuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgQ2lyY2xlQ0ksIEkgaGF2ZSBmZWx0IHN1cHBvcnRlZCwgcmVzcGVjdGVkLCBhbmQgYWJsZSB0byBjb25maWRlbnRseSBiZSBteXNlbGYuIEkgZmVlbCBleGNlcHRpb25hbGx5IGZvcnR1bmF0ZSB0byBoYXZlIGEgd29uZGVyZnVsIGdyb3VwIG9mIHRyYW5zZ2VuZGVyIGNvbGxlYWd1ZXMgYW5kIGZyaWVuZHMgKHdlIG1ha2UgdXAgNyUgb2YgdGhlIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0ksIGFuZCAzJSBvZiB0aGUgb3JnIGluIHRvdGFsLCBjb21wYXJlZCB0byAwLjYlIG9mIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24pLCBhbmQgdG8gd29yayBzb21ld2hlcmUgd2hlcmUgb3VyIHZpZXdzIGFuZCBleHBlcmllbmNlcyBhcmUgdmFsdWVkIGF0IHRoZSBoaWdoZXN0IGxldmVscyBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0lmIHlvdSBsaWtlIHRoZSBzb3VuZCBvZiB3b3JraW5nIHNvbWV3aGVyZSB3aXRoIGEgcmVtb3RlLWZpcnN0IGN1bHR1cmUgYW5kIGNvbGxhYm9yYXRpbmcgb24gaW50ZXJlc3RpbmcgcHJvYmxlbXMgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIHRyYW5zIGZvbHggYW5kIGFsbGllcywgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9jYXJlZXJzLyZxdW90OyZndDtjaGVjayBvdXQgb3VyIG9wZW5pbmdzIGhlcmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIEdhdHNieSBhcHBzIHRvIEhlcm9rdTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtZ2F0c2J5LWFwcHMtdG8taGVyb2t1LzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDExIE1heSAyMDIwIDA5OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1nYXRzYnktYXBwcy10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9qYW1zdGFjay5vcmcvJnF1b3Q7Jmd0O0pBTVN0YWNrJmx0Oy9hJmd0OyBpcyBxdWlja2x5IGJlY29taW5nIGEgYmlnIGRlYWwgaW4gdGhlIHdvcmxkIG9mIHdlYiBkZXZlbG9wbWVudC4gSkFNU3RhY2ssIHdoaWNoIHN0YW5kcyBmb3IgSmF2YXNjcmlwdCwgQVBJcywgYW5kIEhUTUwgbWFya3VwLCBpcyBhIG1vZGVybiBhcmNoaXRlY3R1cmUgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMgYW5kIG9uZSBvZiBpdHMgbWFqb3IgZmVhdHVyZXMgaXMgdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBhIGRhdGFiYXNlIGFuZCBhIHdlYiBzZXJ2ZXIgaXMgb3B0aW9uYWwuIFRoZSBKQU1TdGFjayBhcmNoaXRlY3R1cmUgaXMgYWltZWQgYXQgZGVjb3VwbGluZyB0aGUgZnJvbnRlbmQgYW5kIHRoZSBiYWNrZW5kIGJ5IGdlbmVyYXRpbmcgYSBmcm9udGVuZCBtYWRlIG9mIEhUTUwsIENTUywgYW5kIEphdmFzY3JpcHQgYW5kIGEgYmFja2VuZCB0aGF0IGlzIHNpbXBseSBhIGNvbnRlbnQgQVBJIHJldHVybmluZyBKU09OIG9yIFhNTC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmUgb2YgdGhlIGxlYWRpbmcgSkFNU3RhY2sgcGxhdGZvcm1zIHRvZGF5IGlzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnLyZxdW90OyZndDtHYXRzYnkuanMmbHQ7L2EmZ3Q7LiBHYXRzYnkuanMgaXMgYSBmcmVlIGFuZCBvcGVuLXNvdXJjZSBmcmFtZXdvcmsgYmFzZWQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3JlYWN0anMub3JnLyZxdW90OyZndDtSZWFjdC5qcyZsdDsvYSZndDsgdGhhdCBoZWxwcyBkZXZlbG9wZXJzIGJ1aWxkIGhpZ2gtc3BlZWQgd2ViIGFwcGxpY2F0aW9ucy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHR1dG9yaWFsLCB3ZSB3aWxsIGJlIGRlbW9uc3RyYXRpbmcgaG93IHRvIGRlcGxveSBhIEdhdHNieS5qcyBzaXRlIHRvIHRoZSBwb3B1bGFyIEhlcm9rdSBwbGF0Zm9ybSBieSBidWlsZGluZyBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmUgZm9yIGl0cyBkZXBsb3ltZW50IHVzaW5nIENpcmNsZUNJLiZsdDsvcCZndDsKCiZsdDtoMiZndDtQcmVyZXF1aXNpdGVzJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIG9yZGVyIHRvIGZvbGxvdyBhbG9uZyB3aXRoIHRoaXMgcG9zdCwgeW91IHdpbGwgbmVlZCBhIGZldyB0aGluZ3MgaW4gcGxhY2U6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7ICZhbXA7Z3Q7PSAxMC4xNiBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZSAtdiZsdDsvY29kZSZndDsgb24geW91ciB0ZXJtaW5hbCB0byBwcmludCBvdXQgeW91ciB2ZXJzaW9uIG9mIE5vZGVKUyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7R2l0Jmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2l0Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsLiBUaGlzIHNob3VsZCBwcmludCBvdXQgYXZhaWxhYmxlIGdpdCBjb21tYW5kcykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuaGVyb2t1LmNvbS8mcXVvdDsmZ3Q7SGVyb2t1Jmx0Oy9hJmd0OyBhY2NvdW50Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O0dpdEh1YiZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7V2l0aCB0aGVzZSwgeW91IGFyZSByZWFkeSB0byBmb2xsb3cgYWxvbmcuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NyZWF0aW5nIGEgR2F0c2J5LmpzIHByb2plY3QmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7VG8gYmVnaW4sIHdlIG5lZWQgdG8gY3JlYXRlIG91ciBHYXRzYnkuanMgcHJvamVjdC4gSW4gYW4gYXBwcm9wcmlhdGUgbG9jYXRpb24gd2l0aGluIHlvdXIgc3lzdGVtLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGdhdHNieSBuZXcgZ2F0c2J5LWhlcm9rdS1kZXBsb3kKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBwYXJ0IG9mIHRoaXMgY29tbWFuZCBpcyB0aGUgZm9sZGVyIG5hbWUgZm9yIG15IHByb2plY3QgdG8gYmUgc2NhZmZvbGRlZCBpbi4gWW91IGNhbiB1c2UgYW55IHByZWZlcnJlZCBuYW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCB3aWxsIGltbWVkaWF0ZWx5IGJlZ2luIHNjYWZmb2xkaW5nIGEgbmV3IEdhdHNieS5qcyBwcm9qZWN0LiBZb3UgbWlnaHQgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGVpdGhlciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5YXJuJmx0Oy9jb2RlJmd0OyBvciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7IGFzIHlvdXIgcGFja2FnZSBtYW5hZ2VyLCBmb3IgdGhpcyB0dXRvcmlhbCwgZ28gd2l0aCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNjYWZmb2xkaW5nIHByb2Nlc3MgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIGdhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OykgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gYm9vdCB1cCBhIHNlcnZlciB0byBzZXJ2ZSB0aGUgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBydW4gZGV2ZWxvcAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgc2VydmUgdGhlIGFwcGxpY2F0aW9uIGF0IHRoZSBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8mbHQ7L2NvZGUmZ3Q7IGFuZCBkaXNwbGF5IHRoZSBwYWdlIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MS5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIGEgZnVuY3Rpb25hbCBHYXRzYnkuanMgc2l0ZSB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7U2V0dGluZyB1cCBhIEhlcm9rdSBBcHAgZm9yIEdhdHNieSZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBzZXQgdXAgYSBIZXJva3UgYXBwIGZvciBvdXIgR2F0c2J5IGFwcGxpY2F0aW9uLCB3ZSBuZWVkIHRvIGxvZyBpbnRvIEhlcm9rdSBhbmQgY3JlYXRlIGEgbmV3IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5Mi5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdlIG5lZWQgdG8gZ2V0IHRoZSBuYW1lIG9mIG91ciBhcHBsaWNhdGlvbiAodGhpcyB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBmb3IgdGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgYWJvdmUpIGFuZCB0aGUgQVBJIGtleSBmb3Igb3VyIEhlcm9rdSBhY2NvdW50LiBUaGUgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIEhlcm9rdSAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXZSB3aWxsIG5lZWQgdGhlc2UgdHdvIHZhbHVlcyAodGhlIGFwcCBuYW1lIGFuZCBBUEkga2V5KSBsYXRlciBvbiB0byBjcmVhdGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9uIG91ciBDaXJjbGVDSSBwcm9qZWN0IGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiBvdXIgSGVyb2t1IGFjY291bnQgaXMgdG8gaW5zdGFsbCBzb21lIG5lY2Vzc2FyeSBidWlsZHBhY2tzLiBCdWlsZHBhY2tzIGFyZSBzY3JpcHRzIHRoYXQgcnVuIHdoZW4geW91ciBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZC4gV2Ugd2lsbCBuZWVkIHR3byBidWlsZCBwYWNrcyBmb3IgdGhpcyBleGVyY2lzZTombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0O2hlcm9rdS9ub2RlanM6IFJlcXVpcmVkIGZvciBhbGwgTm9kZS5qcyBhcHBsaWNhdGlvbnMmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtoZXJva3UvaGVyb2t1LWJ1aWxkcGFjay1zdGF0aWM6IFRoZSBIZXJva3UgQnVpbGRwYWNrIFN0YXRpYyBwYWNrYWdlIChiZWNhdXNlIEdhdHNieS5qc+KAmXMgYnVpbGQgaXMgbWFkZSB1cCBvZiBzdGF0aWMgZmlsZXMsIHRoaXMgd2lsbCBoZWxwIHVzIHNlcnZlIHRoZSBzdGF0aWMgZmlsZXMgb24gdGhlIEhlcm9rdSBwbGF0Zm9ybSkmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7R28gdG8geW91ciBIZXJva3UgYXBwbGljYXRpb27igJlzICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgcGFnZSBhbmQgc2Nyb2xsIGRvd24gdG8gJmx0O3N0cm9uZyZndDtCdWlsZHBhY2tzJmx0Oy9zdHJvbmcmZ3Q7ICh5b3UgbWlnaHQgYWxyZWFkeSBzZWUgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgYnVpbGRwYWNrIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQpLiBDbGljayAmbHQ7c3Ryb25nJmd0O0FkZCBidWlsZHBhY2smbHQ7L3N0cm9uZyZndDsgYW5kIHlvdSB3aWxsIHNlZSBhIGRpYWxvZyBwb3AgdXAgc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnkzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rm9yIGVhY2ggYnVpbGRwYWNrICgmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3Uvbm9kZWpzJmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L2hlcm9rdS1idWlsZHBhY2stc3RhdGljJmx0Oy9jb2RlJmd0OykgZW50ZXIgdGhlIGlkZW50aWZpZXIgaW50byB0aGUgdGV4dCBmaWVsZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTYXZlIENoYW5nZXMmbHQ7L3N0cm9uZyZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtOb3RlOiZsdDsvc3Ryb25nJmd0OyAmbHQ7aSZndDtJZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCwgb25seSBhZGQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2hlcm9rdS9oZXJva3UtYnVpbGRwYWNrLXN0YXRpYyZsdDsvY29kZSZndDsgYnVpbGQgcGFjay4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgZG9pbmcgdGhpcyBmb3IgYm90aCBidWlsZHBhY2tzLCB5b3Ugd2lsbCBzZWUgdGhlIHR3byBidWlsZCBwYWNrcyBub3cgbGlzdGVkIGluICZsdDtzdHJvbmcmZ3Q7QnVpbGRwYWNrcyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGF0IGNvbXBsZXRlcyB0aGUgc2V0IHVwIHJlcXVpcmVkIGZvciBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1NldHRpbmcgdXAgdGhlIEdhdHNieS5qcyBwcm9qZWN0IG9uIENpcmNsZUNJJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBuZXh0IHRhc2sgaXMgdG8gZ2V0IG91ciBHYXRzYnkuanMgcHJvamVjdCBzZXQgdXAgb24gQ2lyY2xlQ0kuIFdlIG5lZWQgdG8gcHVzaCBvdXIgY29kZSB0byBhIEdpdEh1YiByZXBvc2l0b3J5IG9uIHRoZSBhY2NvdW50IHlvdSBoYXZlIGxpbmtlZCB0byB5b3VyIENpcmNsZUNJIGFjY291bnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgZ28gdG8gdGhlICZsdDtzdHJvbmcmZ3Q7QWRkIFByb2plY3RzJmx0Oy9zdHJvbmcmZ3Q7IHBhZ2UgdG8gYWRkIHRoZSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk0LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0OyB0byBiZWdpbiBzZXR0aW5nIHVwIHRoZSBwcm9qZWN0LiBUaGlzIHdpbGwgbG9hZCB0aGUgbmV4dCBzY3JlZW4uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk1LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhlIHNldHVwIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsuIEJlZm9yZSB0aGUgYnVpbGQgc3RhcnRzLCB5b3Ugd2lsbCBnZXQgYSBwcm9tcHQgdG8gZWl0aGVyIGRvd25sb2FkIGFuZCB1c2UgdGhlIHByb3ZpZGVkIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgaGF2ZSBpdCBhZGRlZCBvbiBhIHNlcGFyYXRlIGJyYW5jaCBvciBzZXQgb25lIHVwIG1hbnVhbGx5LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk2LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U2VsZWN0ICZsdDtzdHJvbmcmZ3Q7QWRkIE1hbnVhbGx5Jmx0Oy9zdHJvbmcmZ3Q7IHRvIHByb2NlZWQuIFRoaXMgd2lsbCBwcm9tcHQgYW5vdGhlciBkaWFsb2cgdGhhdCBjaGVja3MgdG8gY29uZmlybSB0aGF0IHlvdSBoYXZlIGEgY29uZmlndXJhdGlvbiBmaWxlIHNldCB1cCB0byBiZWdpbiBidWlsZGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTcucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGNvbXBsZXRlIHRoZSBzZXR1cC4gVGhlIGJ1aWxkIHdpbGwgc3VyZWx5IGZhaWwgYmVjYXVzZSB3ZSBoYXZlIG5vdCBzZXQgdXAgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB5ZXQsIHRoaXMgd2Ugd2lsbCBkbyBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiB0aGUgQ2lyY2xlQ0kgY29uc29sZSBpcyB0byBzZXQgdXAgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZW52LXZhcnMvJnF1b3Q7Jmd0O2Vudmlyb25tZW50IHZhcmlhYmxlcyZsdDsvYSZndDsgZm9yIHRoZSBwcm9qZWN0IHdlIGp1c3QgYWRkZWQuIFRoaXMgd2lsbCBlbmFibGUgaXQgdG8gaGF2ZSBhdXRoZW50aWNhdGVkIGFjY2VzcyB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIGZvciBkZXBsb3ltZW50cy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHbyB0byB5b3VyIHByb2plY3TigJlzIHNldHRpbmdzIGJ5IGNsaWNraW5nICZsdDtzdHJvbmcmZ3Q7UHJvamVjdCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgJmx0O3N0cm9uZyZndDtQaXBlbGluZXMmbHQ7L3N0cm9uZyZndDsgcGFnZSAobWFrZSBzdXJlIHlvdXIgcHJvamVjdCBpcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2plY3QpLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5OC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBuYXZpZ2F0ZSB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBwYWdlLiBPbiB0aGlzIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7RW52aXJvbm1lbnQgVmFyaWFibGVzJmx0Oy9zdHJvbmcmZ3Q7IG9uIHRoZSBzaWRlIG1lbnUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk5LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFnZSwgY2xpY2sgJmx0O3N0cm9uZyZndDtBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUgYnV0dG9uJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTAucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZGQgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Jmx0Oy9wJmd0OwombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDs6IFRoaXMgaXMgdGhlIG5hbWUgb2YgeW91ciBIZXJva3UgYXBwbGljYXRpb24gKGluIHRoaXMgY2FzZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnYXRzYnktaGVyb2t1LWRlcGxveSZsdDsvY29kZSZndDspJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7SEVST0tVX0FQSV9LRVkmbHQ7L2NvZGUmZ3Q7OiBZb3VyIEhlcm9rdSBhY2NvdW50IEFQSSBrZXkgZm91bmQgdW5kZXIgdGhlICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCZsdDsvc3Ryb25nJmd0OyB0YWIgb2YgeW91ciBIZXJva3UgYWNjb3VudCBpbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50IFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O09uY2UgYWRkZWQsIHlvdSB3aWxsIGhhdmUgZXZlcnl0aGluZyBzZXQgdXAgb24geW91ciBDaXJjbGVDSSBjb25zb2xlIGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRoZSBHYXRic3kuanMgc2l0ZSB1c2luZyBvcmJzJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy8mcXVvdDsmZ3Q7T3JicyZsdDsvYSZndDsgYXJlIHJldXNhYmxlIHBhY2thZ2VzIG9mIFlBTUwgY29uZmlndXJhdGlvbiB0aGF0IGNvbmRlbnNlIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoZXkgZW5hYmxlIGRldmVsb3BlcnMgdG8gZWFzaWx5IHVzZSBwb3dlcmZ1bCBwaXBlbGluZSBmdW5jdGlvbmFsaXRpZXMgd2l0aCBhbGwgdGhlIGJvaWxlcnBsYXRlIGFic3RyYWN0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBleGVyY2lzZSwgd2Ugd2lsbCBiZSB1c2luZyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7b3JiIGZvciBIZXJva3UmbHQ7L2EmZ3Q7IHRvIGNvbmZpZ3VyZSBvdXIgcGlwZWxpbmUgdG8gZGVwbG95IG91ciBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0IGJlZm9yZSB0aGF0LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGZpbGUgdG8gaW5zdHJ1Y3Qgb3VyIEhlcm9rdSBCdWlsZHBhY2sgU3RhdGljIHBhY2thZ2Ugb24gaG93IHRvIGRlcGxveSBhbmQgc2VydmUgb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgbmV3IGZpbGUgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3RhdGljLmpzb24mbHQ7L2NvZGUmZ3Q7IGFuZCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGUgaW50byBpdDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3sKICAmcXVvdDtyb290JnF1b3Q7OiAmcXVvdDtwdWJsaWMvJnF1b3Q7LAogICZxdW90O2hlYWRlcnMmcXVvdDs6IHsKICAgICZxdW90Oy8qKiZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJnF1b3Q7CiAgICB9LAogICAgJnF1b3Q7LyoqLmNzcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy8qKi5qcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy9zdGF0aWMvKiomcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0sCiAgICAmcXVvdDsvaWNvbnMvKi5wbmcmcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0KICB9LAogICZxdW90O2h0dHBzX29ubHkmcXVvdDs6IHRydWUsCiAgJnF1b3Q7ZXJyb3JfcGFnZSZxdW90OzogJnF1b3Q7NDA0Lmh0bWwmcXVvdDsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgbW9zdCBpbXBvcnRhbnQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaGVyZSBpcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkuIFdoZW4gR2F0c2J5LmpzIHJ1bnMgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2J1aWxkJmx0Oy9jb2RlJmd0OyBzY3JpcHQgKHRoaXMgaXMgYWxzbyB0aGUgc2NyaXB0IHVzZWQgYnkgSGVyb2t1IHRvIHJ1biB0aGUgYnVpbGQgYmVmb3JlIGRlcGxveW1lbnQpLCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1YmxpYyZsdDsvY29kZSZndDsgZm9sZGVyIGlzIGdlbmVyYXRlZCBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBjb250YWluaW5nIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb2R1Y3Rpb24gdmVyc2lvbiBpcyB3aGF0IHRoZSBob3N0IHNlcnZlcyB0byB1c2Vycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaHVzLCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkgaXMgdXNlZCB0byBwb2ludCB0byB0aGlzIGZvbGRlciBzbyB0aGF0IHRoZSBob3N0IHNlcnZlcyB0aGUgYXBwcm9wcmlhdGUgY29kZS4gT3RoZXIgcGFyYW1ldGVycyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gYXJlIHNpbXBseSBiZXN0LXByYWN0aWNlIGNvbmZpZ3VyYXRpb25zIGZvciBHYXRzYnkuanMgc2l0ZXMuIEZvciBleGFtcGxlLCBjYWNoaW5nIGd1aWRlbGluZXMgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvY2FjaGluZy8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7R29vZCEgTm93IHdlIGNhbiB3cml0ZSBvdXIgZGVwbG95bWVudCBzY3JpcHQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgdGhlIHJvb3Qgb2YgeW91ciBHYXRzYnkuanMgcHJvamVjdCwgY3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgYW5kIGEgZmlsZSB3aXRoaW4gaXQgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0Oy4gSW5zaWRlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGU6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt2ZXJzaW9uOiAyLjEKb3JiczoKICBoZXJva3U6IGNpcmNsZWNpL2hlcm9rdUAwLjAuMTAKd29ya2Zsb3dzOgogIGhlcm9rdV9kZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGhlcm9rdS9kZXBsb3ktdmlhLWdpdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGF04oCZcyBpdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgY29uZmlndXJhdGlvbiBhYm92ZSwgd2UgcHVsbCBpbiB0aGUgSGVyb2t1IG9yYiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaXJjbGVjaS9oZXJva3VAMC4wLjEwJmx0Oy9jb2RlJmd0OyB3aGljaCBhdXRvbWF0aWNhbGx5IGdpdmVzIHVzIGFjY2VzcyB0byBhIHBvd2VyZnVsIHNldCBvZiBIZXJva3Ugam9icyBhbmQgY29tbWFuZHMuIE9uZSBvZiB0aG9zZSBqb2JzIGlzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3UvZGVwbG95LXZpYS1naXQmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGRlcGxveXMgeW91ciBhcHBsaWNhdGlvbiBzdHJhaWdodCBmcm9tIHlvdXIgR2l0SHViIHJlcG8gdG8geW91ciBIZXJva3UgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIGpvYiBhbHJlYWR5IHRha2VzIGNhcmUgb2YgaW5zdGFsbGluZyB0aGUgSGVyb2t1IENMSSwgaW5zdGFsbGluZyBwcm9qZWN0IGRlcGVuZGVuY2llcywgcnVubmluZyB0aGUgYnVpbGQgc2NyaXB0LCBhbmQgZGVwbG95aW5nIHRoZSBhcHBsaWNhdGlvbi4gSXQgYWxzbyBwaWNrcyB1cCBvdXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGggZGVwbG95bWVudCB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgdGhlIG1vbWVudCBvZiB0cnV0aCAoZHJ1bSByb2xsKS4gTGV04oCZcyBjb21taXQgYWxsIHRoZSBjaGFuZ2VzIHdlIGhhdmUgbWFkZSB0byBvdXIgR2F0c2J5LmpzIHByb2plY3QgYW5kIHB1c2ggdG8gb3VyIHJlcG8gdG8gdHJpZ2dlciB0aGUgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTEucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBzZWUgdGhlIGJlaGluZC10aGUtc2NlbmVzIHpjdGlvbiBvZiB0aGUgZGVwbG95bWVudCwgeW91IGNhbiBjbGljayBpbnRvIHRoZSBidWlsZC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTIucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgZm9yIHRoZSBmaW5hbCBjb25maXJtYXRpb24gdGhhdCB0aGUgZGVwbG95bWVudCBvZiBvdXIgR2F0c2J5LmpzIHNpdGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bCwgdmlzaXQgdGhlIGRlZmF1bHQgSGVyb2t1IGFkZHJlc3MgZm9yIHRoZSBzaXRlIGF0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vW0FQUF9OQU1FXS5oZXJva3VhcHAuY29tJmx0Oy9jb2RlJmd0Oy4gSWYgeW91IHVzZWQgdGhlIHNhbWUgbmFtZSBhcyBJIGRpZCBmb3IgdGhpcyBleGVyY2lzZSwgdGhhdCB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vZ2F0c2J5LWhlcm9rdS1kZXBsb3kuaGVyb2t1YXBwLmNvbS8mbHQ7L2NvZGUmZ3Q7LiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93ICh0aGlzIG1pZ2h0IGJlIGRpZmZlcmVudCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IEdhdHNieS5qcyBzdGFydGVyIHRlbXBsYXRlLCBsZWFybiBtb3JlIGFib3V0IHN0YXJ0ZXJzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvcGx1Z2lucy10aGVtZXMtYW5kLXN0YXJ0ZXJzLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OykuJmx0Oy9wJmd0OwoKJmx0O3AgYWxpZ249JnF1b3Q7Y2VudGVyJnF1b3Q7Jmd0OwogICAmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTEzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NvbmNsdXNpb24mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2UgZGVwbG95ZWQgYSBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UgdXNpbmcgQ2lyY2xlQ0kgb3Jicy4gTm93IHdoZW4gd2UgcHVzaCBvdXIgY29kZSwgYWxsIGNoYW5nZXMgd2lsbCBiZSBkZXBsb3llZCBhdXRvbWF0aWNhbGx5LiBUaGlzIHR1dG9yaWFsIGhhcyBhbHNvIGRlbW9uc3RyYXRlZCBob3cgQ2lyY2xlQ0kgb3JicyBtYWtlcyBkZXBsb3ltZW50IGVhc3kuIEluc3RlYWQgb2Ygd3JpdGluZyBtYW55IGxpbmVzIG9mIGNvbmZpZyBuZWVkIHRvIGRlcGxveSB0byBIZXJva3UsIG9yYnMgYWJzdHJhY3QgYWxsIG9mIHRoYXQgaW50byBjb252ZW5pZW50IGNvbW1hbmRzIGZvciB1cyB0byB1c2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2hlY2sgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kgb3JicyByZWdpc3RyeSZsdDsvYSZndDsgZm9yIG9yYnMgdGhhdCBzdWl0IHlvdXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGRlcGxveW1lbnQgZGVzdGluYXRpb24gb2YgY2hvaWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyEmbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5MZXR0aW5nIGNoYW5nZSBhbmQgdW5jZXJ0YWludHkgYWR2YW5jZSB5b3VyIHNvZnR3YXJlIGFyY2hpdGVjdHVyZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VGh1LCAwNyBNYXkgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Sb2IgWnViZXI8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIGZpcnN0IGxpbmVzIG9mIENpcmNsZUNJ4oCZcyBjb2RlYmFzZSB3ZXJlIHdyaXR0ZW4gbmVhcmx5IG5pbmUgeWVhcnMgYWdvLiBMb29raW5nIGJhY2sgb24gd2hhdCB3ZSBoYXZlIGJ1aWx0IHNvIGZhciB3aXRoIHRoZSBjbGFyaXR5IG9mIGhpbmRzaWdodCBleHBvc2VzIHNvbWUgaW50ZXJlc3RpbmcgdGhlbWVzIHRoYXQgY2FuIGJlIGluc3RydWN0aXZlIGluIGlkZW50aWZ5aW5nIGFwcHJvYWNoZXMgdG8gZGVhbGluZyB3aXRoIGNoYW5nZS4gV2hpbGUgdGhleSB3ZXJlbuKAmXQgYWxsIGludGVudGlvbmFsLCBpdCBkb2VzbuKAmXQgbWFrZSB0aGVtIGFueSBsZXNzIHZhbHVhYmxlLiBUaHJlZSBzdWNoIHRoZW1lcyBhcmU6IGRlZmVycmluZyB0aGUgbmVlZCB0byBoYW5kbGUgY2hhbmdlLCB0aGlua2luZyBsaWtlIGEgcHJvZHVjdCBtYW5hZ2VyLCBhbmQga2VlcGluZyB5b3VyIGhlYWQgdXAuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NoYW5nZSBpcyBhIGNvbnN0YW50IGluIHRlY2hub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Q2hhbmdlIG1pZ2h0IGJlIG9uZSBvZiB0aGUgb25seSBjb25zdGFudHMgZW5naW5lZXJzIHdpbGwgZGVhbCB3aXRoIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGVpciBjYXJlZXJzLiBJdCBjZXJ0YWlubHkgZHJpdmVzIG1hbnkgb2Ygb3VyIG1vc3QgaW50ZXJlc3RpbmcgY2hhbGxlbmdlcy4gVGhlIG1hcmtldCBpcyBjaGFuZ2luZywgb3VyIGJ1c2luZXNzIGlzIGV2b2x2aW5nLCBvdXIgY3VzdG9tZXIgYmFzZSBpcyBncm93aW5nLCBhbmQgb3VyIHRlYW0gaXMgc2NhbGluZy4gV2UgbmVlZCB0byBidWlsZCBhIHNvbHV0aW9uIHRoYXQgbWVldHMgdG9kYXnigJlzIG5lZWRzIGJ1dCBzZXRzIHVzIHVwIGZvciB0aGUgZGVtYW5kcyBvZiB0b21vcnJvdy4gSG93IGRvIHdlIGRlc2lnbiBvdXIgc3lzdGVtcyBpbiBhIG1hbm5lciB0aGF0IGNhbiBhZGFwdCBhbmQgY2hhbmdlIHRvIHRoaW5ncyB0aGF0IGRvbuKAmXQgZXZlbiBleGlzdCB3aGVuIHdlIHN0YXJ0IGJ1aWxkaW5nIGl0PyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZXJlIGhhcyBiZWVuIGEgbG90IG9mIHRhbGsgaW4gcmVjZW50IHllYXJzIGFib3V0IGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGV2b2x2ZSBvciBtb3JlIGVhc2lseSBhZGFwdCB0byBjaGFuZ2UuIFRoZW4gd2Ugc3RhcnQgdG8gZGViYXRlIHRoZSBtZXJpdHMgb2YgdGhlc2UgYXJjaGl0ZWN0dXJlcyB1c2luZyBhIGxpbmUgb2YgdGhpbmtpbmcgdGhhdCBzdWdnZXN0cyB5b3UgYXJlIGNob29zaW5nIHRvIGhhdmUgYSDigJxNaWNyb3NlcnZpY2VzIEFyY2hpdGVjdHVyZeKAnSBvciBhbiDigJxFdmVudC1Ecml2ZW4gQXJjaGl0ZWN0dXJl4oCdIG9yIGEg4oCcU2VydmVybGVzcyBBcmNoaXRlY3R1cmUu4oCdIEkgd291bGQgcG9zaXQgdGhhdCB0aGlzIHR5cGUgb2YgZGVzY3JpcHRpb24gY3JlYXRlcyBhIGZhbHNlIHNlbnNlIG9mIGZpbmFsaXR5IHRoYXQgZG9lc27igJl0IGFjdHVhbGx5IGV4aXN0IGluIG1vc3QgcmVhbC13b3JsZCBzeXN0ZW1zLiZsdDsvcCZndDsKCiZsdDtwJmd0O091dHNpZGUgb2YgdGhlIHlvdW5nZXN0IG9mIHByb2plY3RzLCBpdOKAmXMgdW5saWtlbHkgdGhhdCB5b3UgY2FuIGRlc2NyaWJlIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCB5b3UgaGF2ZSB3aXRoIGFueSBzaW1wbGUgb25lLWxpbmVyLiBJdOKAmXMgbW9yZSBsaWtlbHkganVzdCDigJx5b3VyIGFyY2hpdGVjdHVyZSzigJ0gYW5kIGlmIHlvdeKAmXZlIGJlZW4gd29ya2luZyBvbiBpdCBmb3IgYW55IHNpZ25pZmljYW50IGFtb3VudCBvZiB0aW1lLCB5b3UgbWF5IGhhdmUgYXBwbGllZCBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0dGVybnMgYWxvbmcgdGhlIHdheSB0byBzb2x2ZSBzcGVjaWZpYyBwcm9ibGVtcy4gVGhlcmXigJlzIHByb2JhYmx5IGEgbW9ub2xpdGggc29tZXdoZXJlLCBzb21lIG51bWJlciBvZiBtaWNyb3NlcnZpY2VzLCBhIGZldyBldmVudHMsIGFuZCBhIHNlcnZlcmxlc3MgZWxlbWVudCBvciB0d28uIE9uIHRvcCBvZiBhbGwgdGhhdCwgeW91IG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YgdHJhbnNpdGlvbmluZyBzb21lIG9mIHRob3NlIHBpZWNlcyBmcm9tIG9uZSBwYXR0ZXJuIHRvIGFub3RoZXIuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0Rlc2lnbiBhcmNoaXRlY3R1cmUgdG8gc29sdmUgcHJvYmxlbXMmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gb2Z0ZW4gYXNrZWQgYnkgZm9sa3Mgd2hpY2ggYXJjaGl0ZWN0dXJlIHRoZXkgc2hvdWxkIGNob29zZSwgb3Igd2hlbiB0aGV5IHNob3VsZCBzd2l0Y2ggZnJvbSBvbmUgdG8gYW5vdGhlci4gSSBoYXZlIGEgZ3JlYXQgdGVuZGVuY3kgdG8gZGlzYXBwb2ludCB3aXRoIGFuc3dlcnMgbGlrZSDigJx3aGF0IHByb2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gc29sdmU/4oCdJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28sIHdoYXQgJmx0O3N0cm9uZyZndDtzaG91bGQmbHQ7L3N0cm9uZyZndDsgeW91IGJlIHRoaW5raW5nIGFib3V0IGFzIHlvdXIgcHJvZHVjdCBldm9sdmVzIGFuZCB5b3VyIG5lZWRzIGFyZSBjaGFuZ2luZz8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGVyZSBhcmUgYSBsb3Qgb2YgYXBwcm9hY2hlcyB0aGF0IHdlIGNhbiB1c2UgdG8gZGVzaWduIHNvZnR3YXJlIGFuZCBzeXN0ZW1zIHRvIGJlIG1vcmUgcmVzaWxpZW50IHRvIGNoYW5nZS4gVGhlIGFsbHVyZSBvZiBub3QgaGF2aW5nIHRvIGRvIGNvbXBsZXggcmVmYWN0b3Jpbmcgb3IgcmVidWlsZGluZyBkb3duIHRoZSByb2FkIGxlYWRzIHVzIHRvIHdhbnQgdG8gZGVzaWduIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG93IGNvc3Qgb2YgY2hhbmdlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2hpbGUgZ2VuZXJhbGl6ZWQgYWJzdHJhY3Rpb25zIGFuZCByZXVzYWJsZSBjb21wb25lbnRzIGFyZSBhdCB0aGUgY29yZSBvZiByZWR1Y2luZyB0aGUgaW1wYWN0IG9mIGNoYW5nZSwgdGhleSBhcmUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Jsb2cuY29kaW5naG9ycm9yLmNvbS90aGUtZGVsdXNpb24tb2YtcmV1c2UvJnF1b3Q7Jmd0O2hhcmQgdG8gZ2V0IHJpZ2h0IGluIHRoZSBmaXJzdCBwbGFjZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0l04oCZcyBoYXJkIHRvIHByZWRpY3QgdGhlIGZ1dHVyZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtBdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHRlY2huaWNhbCBsYW5kc2NhcGUgaXMgY2hhbmdpbmcsIHlvdXIgYnVzaW5lc3MgYW5kIHlvdXIgb3JnYW5pemF0aW9uIGFyZSBib3RoIGV2b2x2aW5nIGFzIHdlbGwuIFRoZXNlIGJvdGggaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiB5b3VyIGFyY2hpdGVjdHVyYWwgZGVjaXNpb25zLiBUaGUgc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlIHRoYXQgeW91IGFyZSB1bmRlcmdvaW5nIHdpbGwgaW5mbHVlbmNlIHRoZSBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUgYmVzdCBzdWl0ZWQgdG8gYWJzb3JiIHRob3NlIGNoYW5nZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGVhcmx5IGRheXMgb2YgYSBwcm9qZWN0IG9yIGNvbXBhbnksIGl04oCZcyBwb3NzaWJsZSB0byBtYWtlIHN3ZWVwaW5nIGZ1bmRhbWVudGFsIHNoaWZ0cyBpbiB0aGUgb2JqZWN0aXZlLiBFeHRyZW1lLCBidXQgbm90IHVuY29tbW9uLCBleGFtcGxlcyBpbmNsdWRlIFRpbnkgU3BlY2sgYmVjb21pbmcgU2xhY2sgYW5kIE9kZW8gYmVjb21pbmcgVHdpdHRlci4gV2hlbiB0aGUgZG9tYWluIG9mIHlvdXIgYnVzaW5lc3MgY2FuIG1vdmUgdGhhdCBkcmFzdGljYWxseSwgdGhlIGNsZWFuIGJvdW5kYXJpZXMgb2YgeW91ciBEREQgbW9kZWwgYXJlIG91dCB0aGUgd2luZG93LiBJbiBhIHNldCBvZiBtaWNyb3NlcnZpY2VzLCB0aGVzZSBib3VuZGFyaWVzIHdpbGwgYmUgY29kaWZpZWQsIHNvIGlmIHlvdSBoYXZlIHRvIGN1dCB0aHJvdWdoIHRoZW0sIHlvdeKAmWxsIGxpa2VseSBiZSB0aGFua2Z1bCBmb3IgYSBtb3JlIHBsaWFibGUgbW9ub2xpdGguJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB5b3UgZmluZCBwcm9kdWN0IC8gbWFya2V0IGZpdCwgeW91ciBwcmlvcml0aWVzIHdpbGwgc2hpZnQgdG93YXJkcyBzdXBwb3J0aW5nIHlvdXIgcmFwaWQgZ3Jvd3RoLiBXaXRoIHN5c3RlbSBzY2FsZSBhcyBhIGRyaXZlciBvZiBjaGFuZ2UsIHRoZSBhYmlsaXR5IHRvIHJlc3BvbmQgdG8gY2hhbmdlIGlzIG9mdGVuIHRpZWQgdG8gdGhlIGluZGVwZW5kZW5jZSBvZiBzeXN0ZW1zIGJhc2VkIG9uIHRoZWlyIG9wZXJhdGlvbmFsIGNoYXJhY3RlcmlzdGljcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGF0IHNjYWxpbmcgcGhhc2UsIHlvdeKAmWxsIGhhdmUgYSBsYXJnZXIgb3JnYW5pemF0aW9uIGFuZCBmYXIgbW9yZSB0ZWFtcy4gSWYgeW914oCZcmUgbHVja3kgeW914oCZbGwgYmUgYmFjayB0byBzdXN0YWluYWJsZSBwcm9kdWN0IGV2b2x1dGlvbi4gVGhlbiB0aGUgY29zdCBvZiBjaGFuZ2Ugd2lsbCBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIGFtb3VudCBvZiBjcm9zcy10ZWFtIGNvb3JkaW5hdGlvbiByZXF1aXJlZCB0byBtYWtlIGEgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtoMiZndDtEZWZlciByZXNwb25zZSB0byBjaGFuZ2UmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7V2hlbiBhbiBpbmRpdmlkdWFsIG9yIHRlYW0gaGFzIGEgcHJvYmxlbSB0aGV54oCZcmUgdHJ5aW5nIHRvIHNvbHZlLCB0aGV5IGdlbmVyYWxseSBzdGFydCBvZmYgd2l0aCBhIHByZXR0eSBzaW1wbGUgZGlyZWN0aXZlIOKAkyBsZXTigJlzIGJ1aWxkIHRvIHNvbHZlIHRoYXQgcHJvYmxlbS4gV2hhdOKAmXMgdGhlIG1vc3QgZWZmZWN0aXZlIGFyY2hpdGVjdHVyZSB3ZSBjYW4gdXNlIHRvIGJ1aWxkIGEgdmlhYmxlIHByb2R1Y3QgYXQgdGhlIGxvd2VzdCBjb3N0PyBUaGlzIGlzIGdlbmVyYWxseSB0cnVlIHdoZXRoZXIgaXTigJlzIGEgc3RhcnR1cCBvciBhIGh1Z2UgbXVsdGluYXRpb25hbCBjb3Jwb3JhdGlvbi4gQSBuZXcgcHJvamVjdCB3aWxsIGJlIGJ1aWx0IG9uIGEgc3lzdGVtIHRoYXTigJlzIHJlbGF0aXZlbHkgbmV3LCBhbmQgd2lsbCBiZSB1bmxpa2VseSB0byBoYXZlIHByb2R1Y3QtbWFya2V0IGZpdCBiZWNhdXNlIHRoZSBjb21wYW55IHdvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCBpdHMgYnVzaW5lc3MgZG9tYWluIHlldCwgYW5kIHdvbuKAmXQga25vdyB3aGVyZSB0aGUgcHJpbWFyeSBzb3VyY2VzIG9mIGNoYW5nZSB3aWxsIGNvbWUgZnJvbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHNpdHVhdGlvbiwgZGVzaWduaW5nIGZvciBjaGFuZ2UgYmVjb21lcyBhIGxvdCBoYXJkZXIuIElmIGl04oCZcyBhIGxvdCBtb3JlIGV4cGVuc2l2ZSB0byBtYWtlIHRoaW5ncyByZXNpbGllbnQgdG8gY2hhbmdlIGFuZCB5b3UgY2Fu4oCZdCB0ZWxsIHlldCB3aGljaCBwYXJ0cyBvZiB5b3VyIHN5c3RlbSB3aWxsIGNoYW5nZSwgaG93IGRvIHlvdSBtYWtlIHRoZSBkZWNpc2lvbiBhYm91dCB3aGVyZSB0byBtYWtlIHRoYXQgaW52ZXN0bWVudD8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBjb3VudGVyaW50dWl0aXZlIGFzIGl0IG1heSBzb3VuZCwgdGhlIGFuc3dlciBpcyBwcm9iYWJseSBub3doZXJlLiBBdCBsZWFzdCBub3QgeWV0LiBJbnN0ZWFkIHdhdGNoIGNoYW5nZSBjbG9zZWx5IGFuZCBidWlsZCBpbiBhIHdheSB0aGF0IG1pbmltaXplcyB0aGUgY29zdCBvZiBiZWluZyB3cm9uZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiDigJwmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9zaG9wLm9yZWlsbHkuY29tL3Byb2R1Y3QvOTc4MDU5NjUyMjcwNC5kbyZxdW90OyZndDs5NyBUaGluZ3MgRXZlcnkgU29mdHdhcmUgQXJjaGl0ZWN0IFNob3VsZCBLbm93Jmx0Oy9hJmd0O+KAnSBLZXZsaW4gSGVubmV5LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbWVkaXVtLmNvbS9Aa2V2bGluaGVubmV5L2h0dHBzLW1lZGl1bS1jb20ta2V2bGluaGVubmV5LXVzZS11bmNlcnRhaW50eS1hcy1hLWRyaXZlci00OTNlYmViZDU3NWQmcXVvdDsmZ3Q7ZGVzY3JpYmVzIGFuIGltcG9ydGFudCBhcHByb2FjaCB0byB0aGlua2luZyBhYm91dCB1bmNlcnRhaW50eSZsdDsvYSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2Jsb2NrcXVvdGUmZ3Q7CiAgJmx0O3AmZ3Q74oCcVGhlIHByZXNlbmNlIG9mIHR3byBvcHRpb25zIGlzIGFuIGluZGljYXRvciB0aGF0IHlvdSBuZWVkIHRvIGNvbnNpZGVyIHVuY2VydGFpbnR5IGluIHRoZSBkZXNpZ24uIFVzZSB0aGUgdW5jZXJ0YWludHkgYXMgYSBkcml2ZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHlvdSBjYW4gZGVmZXIgY29tbWl0bWVudCB0byBkZXRhaWxzIGFuZCB3aGVyZSB5b3UgY2FuIHBhcnRpdGlvbiBhbmQgYWJzdHJhY3QgdG8gcmVkdWNlIHRoZSBzaWduaWZpY2FuY2Ugb2YgZGVzaWduIGRlY2lzaW9ucy4gSWYgeW91IGhhcmR3aXJlIHRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQsIHlvdeKAmXJlIG1vcmUgbGlrZWx5IHRvIGJlIHN0dWNrIHdpdGggaXQg4oCTIGluY2lkZW50YWwgZGVjaXNpb25zIGJlY29tZSBzaWduaWZpY2FudCBhbmQgdGhlIHNvZnRuZXNzIG9mIHRoZSBzb2Z0d2FyZSBoYXJkZW5zLuKAnSZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7VGhpcyBmcmFtaW5nIGlzIGdyZWF0IGZvciBleHBsaWNpdCBkZWNpc2lvbnMsIGJ1dCB3aGF0IGlmIHlvdSBkb27igJl0IGtub3cgeW914oCZcmUgbWFraW5nIGEgY2hvaWNlPyZsdDsvcCZndDsKCiZsdDtwJmd0O01hbnkgdGltZXMsIHRoZSBjaG9pY2UgaXNu4oCZdCBldmVuIHZpc2libGUgeWV0LCBidXQgd2lsbCByZXZlYWwgaXRzZWxmIGxhdGVyLiBJbiB0aGVzZSBzaXR1YXRpb25zLCB0aGUgYW5zd2VyIGlzIG5vdCB0byBvdmVyIGdlbmVyYWxpemUsIGJ1aWxkaW5nIGFic3RyYWN0aW9ucyBldmVyeXdoZXJlIGp1c3QgaW4gY2FzZS4gSW5zdGVhZCwga2VlcCB0aGluZ3MgYXMgc2ltcGxlIGFzIHBvc3NpYmxlIHNvIHlvdSBjYW4gdW5kZXJzdGFuZCB0aGVtIGxhdGVyIGlmIHlvdSBoYXZlIHRvIG1ha2UgYSBjaGFuZ2UuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O1NpbXBsaWNpdHkgbWFrZXMgaXQgZWFzaWVyIHRvIGFkYXB0IHRvIGNoYW5nZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZWFybHkgZGF5cywgdGhlIENpcmNsZUNJIGFwcGxpY2F0aW9uIHdhcyBhIG1vbm9saXRoIHRoYXQgdG9vayBhIGN1c3RvbWVy4oCZcyBidWlsZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRhdGEgYW5kIHB1c2hlZCBpdCBpbnRvIG9uZSBvZiBzZXZlcmFsIExYQyBjb250YWluZXJzLiBFdmVyeSBjb250YWluZXIgdGhhdCB3ZSBzcHVuIHVwIHdhcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgc2FtZSBpbWFnZSB0aGF0IGNvbnRhaW5lZCBldmVyeXRoaW5nIHRoYXQgd2UgdGhvdWdodCBhbnlvbmUgd291bGQgZXZlciB3YW50IGluIHRoZWlyIHRlc3QgZW52aXJvbm1lbnQuIEluIGhpbmRzaWdodCwgdGhpcyBzb3VuZHMgbGlrZSBhIHRlcnJpYmxlIGlkZWEsIGJ1dCBhdCB0aGUgdGltZSwgaXQgd2FzIGZhbnRhc3RpYy4gSXQgd2FzIHNpbXBsZSB0byBtYWludGFpbiBhbmQgc3VwcG9ydGVkIHRoZSBuZWVkcyBvZiBvdXIgZWFybHkgY3VzdG9tZXJzLCBtYW55IG9mIHdob20gd2VyZSBidWlsZGluZyBSYWlscyBtb25vbGl0aHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXMgdGltZSBwYXNzZWQgYW5kIG91ciBjdXN0b21lciBiYXNlIGdyZXcsIHNvIGRpZCB0aGUgZGl2ZXJzaXR5IG9mIHRoZWlyIG5lZWRzIGluIHRlcm1zIG9mIHRlc3QgZW52aXJvbm1lbnRzLiBVcGdyYWRlZCB2ZXJzaW9ucyBvZiB0aGVpciB1bmRlcmx5aW5nIGRhdGFiYXNlcywgbm92ZWwgbmV3IGRldmVsb3BtZW50IGZyYW1ld29ya3MsIGV2ZW4gbmV3IG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbnMgYmVjYW1lIG5lY2Vzc2FyeS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgb3JpZ2luYWwgY29udGFpbmVyIG1hbmFnZW1lbnQgaW4gQ2lyY2xlQ0kgd2FzbuKAmXQgZGVzaWduZWQgaW4gYSB3YXkgdGhhdCBhbGxvd2VkIHVzIHRvIGFkYXB0IGVhc2lseSB0byB0aGVzZSBjaGFuZ2luZyBuZWVkcy4gQnV0IGl0IHdhcyBmYWlybHkgc2ltcGxlLiBTbyB3aGVuIHdlIHNldCBvdXQgdG8gc29sdmUgdGhlc2UgcHJvYmxlbXMsIHdlIGtuZXcgd2hlcmUgdG8gc3BsaWNlIGluIGEgbmV3IGFwcHJvYWNoIGFuZCBpdCB3YXMgbWluaW1hbCB3b3JrIHRvIGVuYWJsZSB0aGF0IHNwbGljaW5nLiBXZSBhbHNvIGRpZG7igJl0IGhhdmUgdG8gdW5yYXZlbCBhIHBvb3IgZ2VuZXJhbGl6YXRpb24gdGhhdCBkaWRu4oCZdCBzdXBwb3J0IG91ciBuZXcgcHJvYmxlbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3aGlsZSBzZWVtaW5nbHkgc2ltcGxlLCB3ZSB3ZXJlIGZpdmUgeWVhcnMgaW50byBzdWNjZXNzZnVsIGdyb3d0aCBhcyBhIGNvbXBhbnkgbWVldGluZyB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycyBvbiB0aGF0IHNpbXBsZSBzeXN0ZW0gYmVmb3JlIG91ciBmaXJzdCBjdXN0b21lcnMgdGVzdGVkIGl0cyByZXBsYWNlbWVudC4gSW4gdGhvc2UgZml2ZSB5ZWFycywgRG9ja2VyIHdhcyBjcmVhdGVkLCBhcyB3YXMgSGFzaGlDb3Jw4oCZcyBOb21hZC4gQ29tYmluZWQsIHRob3NlIHRvb2xzIGVsaW1pbmF0ZWQgaHVnZSBwb3J0aW9ucyBvZiB0aGUgd29yayBuZWNlc3NhcnkgdG8gZ2V0IHRoZSBmbGV4aWJsZSBhbmQgc2NhbGFibGUgZW52aXJvbm1lbnRzIHRoYXQgd2Ugc3VwcG9ydCBmb3IgY3VzdG9tZXJzIHRvZGF5LiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28sIGFzIHdlIHJldG9vbGVkIHRoZSBzeXN0ZW0gdG8gYWRhcHQgdG8gdGhlIGNoYW5nZWQgbWFya2V0IHdlIHdlcmUgaW4gYSBwb3NpdGlvbiB0byBhc2sg4oCcSG93IGRvIHdlIGRvIHRoaXMgaW4gYSB3YXkgdGhhdCBiZXR0ZXIgcG9zaXRpb25zIHVzIGZvciBpbmNyZW1lbnRhbCBjaGFuZ2U/4oCdIEl0IHdvdWxkIGJlIGRpZmZpY3VsdCB0byBvdmVyc3RhdGUgaG93IG11Y2ggdmFsdWUgdGhhdCBmaXZlIHllYXJzIG9mIGV4cGVyaWVuY2UgcHJvdmlkZWQgd2hlbiBkZXNpZ25pbmcgYSBzb2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdCBzb3VuZHMgd2VpcmQgYW5kIGdyb3NzbHkgdW5mYWlyIHRvIHNheSB0aGlzLCBidXQgbW9zdCBvZiB0aGUgdGltZSB3ZSBkb27igJl0IGV2ZW4ga25vdyB0aGF0IHdl4oCZcmUgbWFraW5nIGEgbW9udW1lbnRhbCBkZXNpZ24gZGVjaXNpb24gYmVjYXVzZSB0aGUgYWx0ZXJuYXRlIHBhdGggaGFzbuKAmXQgc2hvd24gdXAgeWV0LiBIb3cgZG8geW91IGd1YXJkIGFnYWluc3QgdGhpcz8mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7RGVmZXIsIGRlZmVyLCBkZWZlciZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUaGUgY29ycmVjdCBzb2x1dGlvbnMgaGF2ZSBhIGhhYml0IG9mIHJldmVhbGluZyB0aGVtc2VsdmVzIGlmIHlvdSBjYW4gZmluZCBhIHdheSB0byB3YWl0IGxvbmcgZW5vdWdoLiBUZWNobm9sb2d5IGdhaW5zIHRyYWN0aW9uIG9yIGRpZXMuIElmIHlvdSBjaG9zZSBhIGNvbnRhaW5lciBvcmNoZXN0cmF0aW9uIGVuZ2luZSBpbiAyMDE2LCB0aGVyZeKAmXMgYSByb3VnaGx5IDIwJSBjaGFuY2UgdGhhdCB5b3Ugd291bGQgaGF2ZSBjaG9zZW4gS3ViZXJuZXRlcy4gVGhhdCBtZWFucyBieSB0aGUgYmVnaW5uaW5nIG9mIDIwMTgsIGFsbW9zdCA4MCUgb2YgY29tcGFuaWVzIHdlcmUgc3dpdGNoaW5nLiBUaG9zZSBhcmUgbm90IGdyZWF0IG9kZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28gZGVmZXJyaW5nIGNhbiBiZSBnb29kLiBEZWZlcnJpbmcgdG8gdGhlIHBvaW50IG9mIGNyZWF0aW5nIGEgY3Jpc2lzIGlzIG5vdC4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7VGhpbmsgbGlrZSBhIHByb2R1Y3QgbWFuYWdlciZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3VyIGFyY2hpdGVjdHVyZSBpcyBhIGxlYWt5IGFic3RyYWN0aW9uLiBXaGlsZSBDaXJjbGVDSSBpcyBwcm9iYWJseSBhbiBleHRyZW1lIGV4YW1wbGUgb2YgdGhpcyBjYXNlIGR1ZSB0byB0aGUgYWNjZXNzIG91ciBjdXN0b21lcnMgaGF2ZSB0byBzeXN0ZW1zIGluIG91ciBwbGF0Zm9ybSwgdGhlcmUgaXMgYWx3YXlzIHNvbWUgaW1wbGljYXRpb24gZm9yIGN1c3RvbWVycyBvZiB0aGUgZGVjaXNpb25zIHlvdSBtYWtlIGluIGRlZmluaW5nIHlvdXIgYXJjaGl0ZWN0dXJlLiBSZWNvZ25pemluZyB0aGlzIGltcGFjdCBhbmQgYmVpbmcgYWJsZSB0byBjb2hlcmVudGx5IGRpc2N1c3MgYXBwcm9hY2hlcyBhbmQgYWx0ZXJuYXRpdmVzIGlzIGEgaHVnZSBhc3NldCB0aGF0IGFuIGVuZ2luZWVyIGNhbiBicmluZyB0byB0aGVpciBQTSBhbmQgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaGlsZSB3ZSB3ZXJlIHdpdG5lc3NpbmcgYWxsIG9mIHRoaXMgY2hhbmdlIGluIGhvdyBvdXIgY3VzdG9tZXJzIHdlcmUgYnVpbGRpbmcgc29mdHdhcmUsIG9uZSB0aGluZyB3ZSBpZ25vcmVkIGZvciB0b28gbG9uZyB3YXMgdGhlIHJpc2Ugb2YgRG9ja2VyLiBEb2NrZXIgZGlkbuKAmXQgZXZlbiBleGlzdCB3aGVuIENpcmNsZUNJIHN0YXJ0ZWQgaW4gMjAxMSwgdGhlbiBieSAyMDE0IGl0IHdhcyBldmVyeXdoZXJlLiBNYW55IG9mIG91ciBjdXN0b21lcnMgaGFkIHN0YXJ0ZWQgYnVpbGRpbmcgRG9ja2VyIGltYWdlcyBhcyBwYXJ0IG9mIHRoZWlyIGJ1aWxkIHRvIHByZXBhcmUgZm9yIGRlcGxveS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtEb2NrZXIgd2FzIG9yaWdpbmFsbHkgYnVpbHQgb24gdG9wIG9mIExYQywgYW5kIHRoYXQgbWVhbnQgaW4gdGhvc2UgZWFybHkgZGF5cyB3ZSBjb3VsZCBzdXBwb3J0IHRoZSB1c2Ugb2YgRG9ja2VyIGNvbW1hbmRzIHRvIGJ1aWxkIGltYWdlcyBhbmQgcHVzaCB0aGVtIHRvIHJlcG9zaXRvcmllcyBhbGwgaW5zaWRlIG9mIG9uZSBvZiBvdXIgTFhDIGNvbnRhaW5lcnMuIEluIDIwMTQsIERvY2tlciBsYXVuY2hlZCBzb21ldGhpbmcgY2FsbGVkIGxpYmNvbnRhaW5lciBhbmQgdGhleSBwdWxsZWQgYXBhcnQgdGhlIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBzeXN0ZW0gYW5kIGNyZWF0ZWQgZXhlY3V0aW9uIGRyaXZlcnMsIHdoaWNoIHNvb24gbGVkIHRvIHRoZSBkZXByZWNhdGlvbiBvZiB0aGUgTFhDIGRyaXZlci4gRGlzYXBwb2ludGluZywgYnV0IGl0IHN0aWxsIHdvcmtlZC4gVGhlbiBEb2NrZXIgZGVsZXRlZCBhbGwgTFhDIHN1cHBvcnQuIFRoYXQgd2FzIGJhZC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QWx3YXlzIHRoaW5rIGFib3V0IHVzZXJzJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVycyBhbmQgYXJjaGl0ZWN0cywgd2Ugc2F3IHRoaXMgY29taW5nLCBhbmQgZnJhbmtseSwgaXQgd2FzIHVuZGVyIHRoZSByYWRhciBvZiBvdXIgcHJvZHVjdCB0ZWFtLiBPdXIgbm9uLXRlY2huaWNhbCBwcm9kdWN0IGZvbGtzIGRpZG7igJl0IG5lY2Vzc2FyaWx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBidXQgb3VyIGVuZ2luZWVycyB3ZXJlIHRhbGtpbmcgYWJvdXQgaXQgZXZlcnkgZGF5LiBTbyBhcyBhbiBlbmdpbmVlciwgYW4gYXJjaGl0ZWN0LCBvciBhIGxlYWRlciBpbiB0ZWNobm9sb2d5LCB5b3UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBwcm9kdWN0IGFuZCB3b3JraW5nIHdpdGggeW91ciBwcm9kdWN0IG1hbmFnZXJzIHRvIGVuc3VyZSBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGUgaW1wbGljYXRpb25zIG9mIHRlY2huaWNhbCBjaG9pY2VzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0l04oCZcyBpbXBvcnRhbnQgdG8gc2VwYXJhdGUgdGhpcyBkaXNjdXNzaW9uIGZyb20gdGVjaG5pY2FsIGludmVzdG1lbnRzLiBUaGVyZSBpcyBhYnNvbHV0ZWx5IGEgcGxhY2UgZm9yIHRoaXMgdHlwZSBvZiBpbnZlc3RtZW50LCBhbmQsIGFuIGFyZ3VtZW50IHRoYXQgZnJhbWluZyB0aGVzZSBpbnZlc3RtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB5b3UgZnJhbWUgcHJvZHVjdCBpbnZlc3RtZW50cyBtYWtlcyBpdCBtdWNoIGVhc2llciB0byBtYWtlIHRyYWRlb2ZmIGRlY2lzaW9ucy4gSG93ZXZlciwgaWRlbnRpZnlpbmcgdGhlIGRpcmVjdGx5IGN1c3RvbWVyLXZpc2libGUgZmVhdHVyZSBpbXBhY3Qgb2YgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBtb3JlIGNvbW1vbmx5IGRpc2N1c3NlZCBpbXBhY3RzIG9mIGNvc3QsIHBlcmZvcm1hbmNlLCBzZWN1cml0eSwgZXRjLiZsdDsvcCZndDsKCiZsdDtwJmd0O0J1aWxkaW5nIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHlvdXIgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgdmFsdWUgYWNoaWV2ZWQgYnkgeW91ciBjdXN0b21lcnMgd2lsbCBwdXQgeW91IGluIGEgcG9zaXRpb24gdG8gbWFrZSBtb3JlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB3aGF0IGFuZCBob3cgdG8gYnVpbGQgYXMgeW91ciBidXNpbmVzcyBldm9sdmVzLiBUaGVuIHlvdSBjYW4gZm9jdXMgb24gZ2V0dGluZyBhaGVhZCBvZiB0aGF0IGV2b2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7S2VlcCB5b3VyIGhlYWQgdXAmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gQ2FuYWRpYW4gYW5kLCB1bnN1cnByaXNpbmdseSwgSSBncmV3IHVwIHBsYXlpbmcgaWNlIGhvY2tleS4gVGhyb3VnaG91dCBteSBjaGlsZGhvb2QsIEkgc3BlbnQgYW4gZW5kbGVzcyBhbW91bnQgb2YgdGltZSBhdCBwcmFjdGljZSBqdXN0IHNrYXRpbmc6IGZvcndhcmRzLCBiYWNrd2FyZHMsIHR1cm5pbmcsIHN0b3BwaW5nLCBmaWd1cmUgZWlnaHRzIGFyb3VuZCBjb25lcy4gVGhlbiBjYW1lIHN0aWNrIGhhbmRsaW5nLiBUaGUgaWRlYSB3YXMgdG8gaGF2ZSB0aGUgbW92ZW1lbnQgb24gdGhlIGljZSBiZWNvbWUgc2Vjb25kIG5hdHVyZSBzbyBJIGNvdWxkIGZvY3VzIG9uIHdoYXQgcmVhbGx5IG1hdHRlcmVkOiBzZWVpbmcgdGhlIHBsYXkgZGV2ZWxvcCwgZ2V0dGluZyBpbnRvIHNwYWNlLCBhbmQgdHJ5aW5nIHRvIHNjb3JlLiBNYWtlIHRoZSBmdW5kYW1lbnRhbHMgYWxtb3N0IGVmZm9ydGxlc3Mgc28geW91IGNhbiBwdXQgeW91ciBlbmVyZ3kgaW50byB0aGUgbm92ZWwgc3R1ZmYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gc29mdHdhcmUsIHdlIGhhdmUgYSBiYWQgdGVuZGVuY3kgdG8gbWFrZSB0aGUgZnVuZGFtZW50YWxzIGEgbG90IGhhcmRlciB0aGFuIHRoZXkgc2hvdWxkIGJlIGJ5IGFkb3B0aW5nIG5ldyB0ZWNobm9sb2d5IHRoYXQgd2UgdGhpbmsgaXMgZ29pbmcgdG8gYmUgZ2FtZSBjaGFuZ2luZywgYnV0IGVuZHMgdXAgaGF2aW5nIG1vZGVzdCB1cHNpZGUgaWYgYW55LiBUbyBtYWtlIHRoaW5ncyB3b3JzZSwgdGhlIGRvd25zaWRlIGlzIG9mdGVuIHVuYm91bmRlZCBhcyB3ZSBnZXQgb3VyIHRlYW1zIHVwIHRoZSBsZWFybmluZyBjdXJ2ZSwgZmluZCB1bnRlc3RlZCBlZGdlIGNhc2VzIGR1cmluZyBwcm9kdWN0aW9uIGluY2lkZW50cywgYW5kIGludmVudCBvdXIgb3duIOKAnGJlc3QgcHJhY3RpY2VzLuKAnSBBIHdvcmxkIHdoZXJlIFN0YWNrIE92ZXJmbG93IGhhcyBubyBhbnN3ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1doaWxlIHdl4oCZcmUgcHV0dGluZyB0aGlzIGVmZm9ydCBpbnRvIG91ciBub3ZlbCB0ZWNoLCB3ZeKAmXJlIG5vdCBmb2N1c2luZyBvbiBob3cgb3VyIHN5c3RlbXMgbmVlZCB0byBldm9sdmUgdG8gbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QSB0aW1lIHNpbXBsaWNpdHkgd291bGQgaGF2ZSBoZWxwZWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Q2lyY2xlQ0kgaXMgYSBDbG9qdXJlIHNob3AgYW5kLCBpbiBvdXIgZWFybHkgZGF5cywgd2UgZGVjaWRlZCB3ZeKAmWQgYmUgYmV0dGVyIGF0IGZyb250IGVuZCBkZXZlbG9wbWVudCBpZiB3ZSB1c2VkIHRoZSBzYW1lIGxhbmd1YWdlIHRoYXQgd2UgdXNlZCBpbiB0aGUgYmFja2VuZC4gU28gd2UgYWRvcHRlZCBPbSwgYSBDbG9qdXJlU2NyaXB0IHdyYXBwZXIgYXJvdW5kIFJlYWN0LiBBIGZldyB5ZWFycyBsYXRlciwgRGF2aWQgTm9sZW4sIHRoZSBwZXJzb24gd2hvIHN0YXJ0ZWQgT20sIGRlY2lkZWQgaGUgZGlkbuKAmXQgbGlrZSB0aGUgbW9kZWwgc28gaGUgcmVwbGFjZWQgaXQgd2l0aCBzb21ldGhpbmcgaW5jb21wYXRpYmxlIGNhbGxlZCBPbSBOZXh0LiBXZSB0cmllZCB0byBtaWdyYXRlIGluY3JlbWVudGFsbHkgdG8gT20gTmV4dCBhbmQgZW5kZWQgdXAgd2l0aCBhbiBvdmVybHkgY29tcGxleCBmcm9udGVuZCB3aXRoIHR3byBzdGF0ZSBtb2RlbHMgYW5kIG1hc3NpdmUgb3ZlcmhlYWQgdG8gZXZlcnkgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGVuZGVkIHVwIHJld3JpdGluZyBpdCBpbiBSZWFjdC4gSW4gcmV0cm9zcGVjdCwgT20gaGFkIGJvdGggaGlnaCByaXNrIGFuZCBoaWdoIGNvc3QgdG8gY2hhbmdlIGFuZCB3ZSBwYWlkIHRoZSBwcmljZS4gQW5kIHdlIHNwZW50IHRoYXQgdGltZSBsb29raW5nIGF0IG91ciBmZWV0LCBub3QgYWhlYWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm8gY29tcGFueSBoYXMgZXZlciB3b24gYmVjYXVzZSBvZiBhbiBhbWF6aW5nbHkgbm92ZWwgb3IgZXNvdGVyaWMgdGVjaG5vbG9neSBjaG9pY2UuIFRoZXJlIGlzIGFuIGVuZGxlc3MgbGlzdCwgaG93ZXZlciwgb2YgY29tcGFuaWVzIHRoYXQgaGF2ZSB3b24gYmVjYXVzZSB0aGV5IGNhbiBtb3ZlIHF1aWNrbHkgYW5kIHdpdGggYWdpbGl0eSwgYWRhcHRpbmcgdG8gY2hhbmdlIGFzIGl0IGhhcHBlbnMuIFRlY2hub2xvZ3kgc2hvdWxkIGJlIGFuIGFjY2VsZXJhdG9yIGhlbHBpbmcgdXMgbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4gV2VsbC11bmRlcnN0b29kLCBwcm9kdWN0aW9uLXRlc3RlZCB0b29scyBhcmUgZmFyIG1vcmUgbGlrZWx5IHRvIGZpdCB0aGF0IGJpbGwuIEFzIG15IGNvbGxlYWd1ZSBCZWFyIHNheXMsIOKAnElmIGEgdG9vbCBpc27igJl0IGhlbHBpbmcsIGl04oCZcyBub3QgYSB0b29sLCBpdOKAmXMgYSBjaG9yZS4gRHJvcCBpdC7igJ0mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7Q29uY2x1c2lvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtVbmZvcmVzZWVuIGNoYW5nZSBpcyB0b3Atb2YtbWluZCBmb3Igc28gbWFueSBvZiB1cyByaWdodCBub3csIGFuZCBpdOKAmXMgbW9yZSBvYnZpb3VzIHRoYW4gZXZlciB0aGF0LCBpbiBidXNpbmVzcywgbm9ib2R5IGNhbiBwcmVkaWN0IHRoZSBmdXR1cmUuIEl04oCZcyBhIHNhZmUgYmV0IHRoYXQgZm9sa3MgYXQgR00gZGlkbuKAmXQgc3RhcnQgdGhlIHllYXIgdGhpbmtpbmcgYWJvdXQgaG93IHRvIHVzZSB0aGVpciBmYWN0b3JpZXMgdG8gbWFrZSB2ZW50aWxhdG9ycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWluZyBwcmVwYXJlZCB0byBhZGFwdCBpbiB0aGUgZmFjZSBvZiBjaGFuZ2UgcmVxdWlyZXMgdGhpbmtpbmcgYWJvdXQgY2hhbmdlIGFzIGEgZHJpdmVyIGluIGV2ZXJ5dGhpbmcgeW91IGRvLiBXYXRjaCBob3cgeW91ciBtYXJrZXQgaXMgY2hhbmdpbmcgYW5kIHJlZmxlY3Q9IG9uIGhvdyB0aGF0IGltcGFjdHMgeW91ciBhcmNoaXRlY3R1cmUgc28gdGhhdCB5b3UgY2FuIG1ha2UgdGFyZ2V0ZWQsIGluY3JlbWVudGFsIGltcHJvdmVtZW50cyBpbiBpdHMgYWRhcHRhYmlsaXR5LiBUaGlzIHdpbGwgaGVscCBrZWVwIHlvdSBmb2N1c2VkIG9uIGV2b2x1dGlvbiB3aXRob3V0IHdhc3RpbmcgdGltZSBvciBtb25leSBvbiBhcmVhcyB0aGF0IHdvbuKAmXQgbmVlZCBpdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCbGFjayBTd2FuIGV2ZW50cyBhcmUgc28gdW51c3VhbCB0aGF0IHN0dWR5aW5nIHRoZSBzcGVjaWZpY3MgY2FuIGJlIGxvdyB2YWx1ZSwgYnV0IHRoZXkgcmVtaW5kIHVzIGhvdyBmYXIgcmVhbGl0eSBjYW4gYmUgZnJvbSBvdXIgcGxhbnMuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZW5naW5lZXJpbmcgbWFuYWdlcnMgY2FuIGVmZmVjdGl2ZWx5IHN1cHBvcnQgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWVuZ2luZWVyaW5nLW1hbmFnZXJzLWNhbi1lZmZlY3RpdmVseS1zdXBwb3J0LWVuZ2luZWVycy10ZWFtcy1hbmQtb3JnYW5pemF0aW9ucy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+V2VkLCAyOSBBcHIgMjAyMCAxNTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9ob3ctZW5naW5lZXJpbmctbWFuYWdlcnMtY2FuLWVmZmVjdGl2ZWx5LXN1cHBvcnQtZW5naW5lZXJzLXRlYW1zLWFuZC1vcmdhbml6YXRpb25zLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkxlbmEgUmVpbmhhcmQ8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIHR5cGljYWwgam9iIGRlc2NyaXB0aW9uIGZvciBtYW55IGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMgaXMgYWN0aW9uLXBhY2tlZC4gSXQgaXMgYSBtaXggb2YgaGFuZHMtb24gY29kaW5nLCB0ZWNobmljYWwgbGVhZGVyc2hpcCBhbmQgZGVjaXNpb24gbWFraW5nLCBwcm9jZXNzIGFuZCBwcm9qZWN0IG1hbmFnZW1lbnQsIHByb2R1Y3Qgb3ZlcnNpZ2h0LCBwZW9wbGUgbWFuYWdlbWVudCwgZmluZGluZyBhbmQgaGlyaW5nIHRhbGVudCDigKYgdGhlIGxpc3QgZ29lcyBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiBvdXIgd29yaywgd2UgZGVhbCB3aXRoIGJvdGggdGVjaG5pY2FsIGFuZCBwZW9wbGUgc3lzdGVtczogd2Ugc3VwcG9ydCBpbmRpdmlkdWFsIGVuZ2luZWVyc+KAmSBncm93dGg7IGhlbHAgdGVhbXMgYmVjb21lIHN1Y2Nlc3NmdWw7IGFuZCBtYWtlIHRoZSBvcmdhbml6YXRpb24gbW9yZSBwcm9kdWN0aXZlLCBmdW5jdGlvbmFsLCBhbmQgaW5ub3ZhdGl2ZS4gQWJvdmUgYWxsLCBhbiBlbmdpbmVlcmluZyBtYW5hZ2VyIGlzIGEgc2VydmljZSBvciBzdXBwb3J0IHJvbGUgYWNyb3NzIHRoZXNlIHZhcmlvdXMgbGF5ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1BlcmhhcHMgbW9zdCBmYXNjaW5hdGluZyBhbmQgZGlmZmljdWx0IGlzIHRoZSBoaWdoLWxldmVsIG9mIGFtYmlndWl0eSB0aGF0IGNvbWVzIHdpdGggZW5naW5lZXJpbmcgbWFuYWdlbWVudC4gTWFueSBwcm9ibGVtcyBvciBxdWVzdGlvbnMgZG9u4oCZdCBoYXZlIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLiBUaGVyZSBhcmVu4oCZdCBhYnNvbHV0ZSBhbnN3ZXJzIHRvIHdoYXQgaXQgbWVhbnMgdG8gYmUgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgZWl0aGVyLCBidXQgdGhlcmUgYXJlIGNlcnRhaW4gdmFsdWVzIGFuZCBndWlkZXBvc3RzIHRvIGZvbGxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgbG9vayBhdCB3aGF0IGNhbiBzaGFwZSBvdXIgdGhpbmtpbmcgYWJvdXQgb3VyIHJvbGUgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgYW5kIGhvdyB0byBlZmZlY3RpdmVseSBzdXBwb3J0IGluZGl2aWR1YWwgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1doYXQgZG8gZW5naW5lZXJzIG5lZWQgdG8gdGhyaXZlIGF0IHdvcms/Jmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SXQgaGVscHMgdG8gc3RhcnQgc2hhcGluZyBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IHJvbGVzIGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCBlbmdpbmVlcnMgbmVlZCwgYW5kIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGV5IHRocml2ZS4gUmVzZWFyY2ggZnJvbSBwZXJmb3JtYW5jZSBjb2FjaCBhbmQgdHJhaW5lciBQYWxvbWEgTWVkaW5hIGV4cG9zZXMgc2l4IGNvcmUgbmVlZHMgaHVtYW5zIGhhdmUgKGluY2x1ZGluZyBhdCB3b3JrKS4gU2hlIGNhbGxzIHRoaXMgcmVzZWFyY2ggdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGFsb21hbWVkaW5hLmNvbS9iaWNlcHMmcXVvdDsmZ3Q7QklDRVBTIG1vZGVsJmx0Oy9hJmd0OzombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7QmVsb25naW5nLiZsdDsvc3Ryb25nJmd0OyBBcyBodW1hbnMsIHdlIHN0cml2ZSB0byBiZSBwYXJ0IG9mIGEgY29tbXVuaXR5IG9mIGxpa2UtbWluZGVkIHBlb3BsZSB3aGVyZSB3ZSB1bmRlcnN0YW5kIGFuZCBzdXBwb3J0IGVhY2ggb3RoZXIuIFdlIGFsc28gd2FudCB0byBmZWVsIGFzIGlmIHdlIGFyZSBub3QgYmVpbmcgZGlzY3JpbWluYXRlZCBhZ2FpbnN0IG9yIG1hcmdpbmFsaXplZC4gQmVsb25naW5nIGlzIHJlYWxseSBpbXBvcnRhbnQgdG8gbWUgcGVyc29uYWxseTogSSBsb3ZlIHdvcmtpbmcgYXMgcGFydCBvZiBhIGRpc3RyaWJ1dGVkIHRlYW0sIGJ1dCBJIGFsc28gcmVhbGx5IGVuam95IHNlZWluZyBwZW9wbGUgaW4gcGVyc29uIGV2ZXJ5IG9uY2UgaW4gYSB3aGlsZS4gSXQgbWFrZXMgbWUgZmVlbCBtb3JlIGNvbm5lY3RlZCB0byB0aGVtLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7SW1wcm92ZW1lbnQuJmx0Oy9zdHJvbmcmZ3Q7IFdlIGFsc28gc2VlayB0byBjb250aW51b3VzbHkgbGVhcm4sIGltcHJvdmUsIGFuZCBncm93IGluIGFyZWFzIHRoYXQgbWF0dGVyIHRvIHVzLCBhcyB3ZWxsIGFzIHRvIG91ciB0ZWFtIG9yIGNvbXBhbnkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtDaG9pY2UuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8gaGF2ZSBjaG9pY2UsIGNvbnRyb2wsIGFuZCBhdXRvbm9teSBvdmVyIGltcG9ydGFudCBwYXJ0cyBvZiBvdXIgbGl2ZXMuIEluIG9uZSBvZiBteSBwcmV2aW91cyByb2xlcywgSSB0b29rIG9uIGEgbG90IG9mIHdvcmsgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLiBCdXQgdWx0aW1hdGVseSwgdGhlIGNvbnRyb2wgSSBoYWQgb3ZlciBteSBkb21haW4gd2FzIGxpbWl0ZWQgZHVlIHRvIG9yZ2FuaXphdGlvbmFsIGlzc3VlcyDigJMgd2hpY2ggbGVkIG1lIHRvIGxlYXZlIHRoZSBjb21wYW55LiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7RXF1YWxpdHkuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8ga25vdyB0aGF0IG91ciBhY2Nlc3MgdG8gaW5mb3JtYXRpb24sIG1vbmV5LCB0aW1lLCBhbmQgb3RoZXIgcmVzb3VyY2VzIGlzIGZhaXIgYW5kIGVxdWFsIGZvciBldmVyeW9uZSDigJMgbm90IGp1c3QgZm9yIG91cnNlbHZlcywgYnV0IGFsc28gZm9yIHRoZSBwZW9wbGUgYXJvdW5kIHVzLiBFdmVyeW9uZeKAmXMgbmVlZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZXF1YWxseSBpbXBvcnRhbnQuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtQcmVkaWN0YWJpbGl0eS4mbHQ7L3N0cm9uZyZndDsgV2UgbG9vayBmb3IgY2VydGFpbnR5LCBzYWZldHksIGFuZCBzdGFiaWxpdHkgaW4gb3VyIGxpdmVzLiBXZSBhbHNvIHdhbnQgZ29hbHMsIHN0cmF0ZWd5LCBhbmQgZGlyZWN0aW9uIHRvIGJlIGNvbnNpc3RlbnQg4oCTIGFuZCB0byBub3QgY2hhbmdlIHRvbyBxdWlja2x5LiBJ4oCZdmUgYmVlbiBsZWFkaW5nIHRlYW1zIGluIGZhc3QtZ3Jvd2luZyBzdGFydHVwcyBmb3IgdGhlIGxhc3QgY291cGxlIG9mIHllYXJzLCBhbmQgd2hlbiB0aGVyZeKAmXMgYSBsb3Qgb2YgY2hhbmdlIGhhcHBlbmluZywgaXTigJlzIGEgY2hhbGxlbmdlIHRvIGluc3RpbGwgcHJlZGljdGFiaWxpdHkgaW4gdGVhbXMuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtTaWduaWZpY2FuY2UuJmx0Oy9zdHJvbmcmZ3Q7IERlZXAgZG93biwgYWxsIG9mIHVzIHNlZWsgbWVhbmluZywgaW1wb3J0YW5jZSwgYW5kIHN0YXR1cy4gV2UgYWxzbyB3YW50IHRvIGJlIGFwcHJlY2lhdGVkIGZvciBvdXIgd29yayBieSBwZW9wbGUgd2hvc2Ugb3BpbmlvbnMgbWVhbiBzb21ldGhpbmcgdG8gdXMuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0lmIG91ciBjb3JlIG5lZWRzIGFyZSB0aHJlYXRlbmVkLCBwZW9wbGUgcmVzb3J0IHRvIGZpZ2h0LW9yLWZsaWdodCBtb2RlcyBvZiByZWFjdGlvbiwgd2hpY2ggYXJlIHZlcnkgc3RyZXNzZnVsLiBUaGUgZmFpbHVyZSB0byBtZWV0IGNvcmUgbmVlZHMgaGFzIGhpZ2ggY29zdHMgZm9yIG9yZ2FuaXphdGlvbnMgYnkgaGFybWluZyBwZW9wbGUgb24gb3VyIHRlYW1zLiBTbyBob3cgY2FuIGVuZ2luZWVyaW5nIG1hbmFnZXJzIHB1dCB0aGUgQklDRVBTIG1vZGVsIGludG8gYWN0aW9uIHRvIGhlbHAgdGhlaXIgdGVhbXMgdGhyaXZlPyZsdDsvcCZndDsKCiZsdDtoMiZndDtVc2luZyB0cnVzdC1iYXNlZCByZWxhdGlvbnNoaXBzIHRvIGhlbHAgZW5naW5lZXJzIGdyb3cmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgZm91bmRhdGlvbiBvZiBiZWluZyBhIGdvb2QgZW5naW5lZXJpbmcgbWFuYWdlciBpcyBnZXR0aW5nIHRvIGtub3cgb3VyIHRlYW1tYXRlcyBhbmQgdW5kZXJzdGFuZGluZyB3aGF0IGlzIGltcG9ydGFudCB0byB0aGVtLiBIZXJlIGFyZSBhIGZldyBwbGFjZXMgdG8gc3RhcnQgYnVpbGRpbmcgdHJ1c3Qgd2l0aGluIHlvdXIgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0FzayBxdWVzdGlvbnMuJmx0Oy9zdHJvbmcmZ3Q7IE9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCB0b29scyBtYW5hZ2VycyBoYXZlIGlzIGFza2luZyBnb29kIHF1ZXN0aW9ucy4gVGhlIGJhc2lzIGZvciBkb2luZyBvdXIgam9icyB3ZWxsIGlzIGxpc3RlbmluZywgb2JzZXJ2aW5nLCB0YWtpbmcgbm90ZSBvZiB3aGF0IG1vdGl2YXRlcyBvdXIgdGVhbW1hdGVzLCBhbmQgcmVhbGx5IGRpZ2dpbmcgaW50byB0aGVpciByZXNwb25zZXMgdG8gb3VyIHF1ZXN0aW9ucy4gSSB1c3VhbGx5IGdhdGhlciBxdWVzdGlvbnMgYmVmb3JlIEkgbWVldCB3aXRoIG15IHRlYW1tYXRlcyBvbmUtb24tb25lLCBzbyBJIGFtIHByZXBhcmVkIGFuZCBJIGNhbiBndWlkZSB0aGUgY29udmVyc2F0aW9uIHRvd2FyZHMgdW5kZXJzdGFuZGluZyB0aGVtIGJldHRlci4gT3ZlciB0aW1lLCBJIGhhdmUgYnVpbHQgYSBraXQgb2Ygb25lLW9uLW9uZSBxdWVzdGlvbnMgdGhhdCBJIHB1bGwgb3V0IHdoZW4gSSBuZWVkIHNvbWUgaW5zcGlyYXRpb24gZm9yIHRoZXNlIGNvbnZlcnNhdGlvbnMuIEFza2luZyBxdWVzdGlvbnMgaGVscHMgdXMgYWRqdXN0IG91ciBsZWFkZXJzaGlwIHN0eWxlIHRvIHRoZSBwZW9wbGUgd2UgYXJlIGxlYWRpbmcuIEl0IGFsc28gZW5zdXJlcyB0aGF0IHRoZXkgZmVlbCB1bmRlcnN0b29kIGFuZCBoZWFyZCwgd2hpY2ggYXJlIHJlYWxseSBpbXBvcnRhbnQgcGlsbGFycyBvZiBpbmNsdXNpb24gYW5kIGJlbG9uZ2luZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0JlIGN1cmlvdXMuJmx0Oy9zdHJvbmcmZ3Q7IFBlb3BsZSBhcmUgZnVsbCBvZiBzdXJwcmlzZXMsIGFuZCBzb21ldGltZXMgb3VyIHRlYW1tYXRlc+KAmSByZWFjdGlvbnMgbWF5IGJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBleHBlY3RlZC4gSSBvbmNlIHJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIGVuZ2luZWVyIG9uIG15IHRlYW0gd2hvIHdhcyBkZWVwbHkgdXBzZXQgYWJvdXQgdGhlIHNwZWNpZmljIHdvcmRpbmcgdXNlZCBpbiBhIHByb2R1Y3QtcmVsZWFzZSBub3RlIHRvIGN1c3RvbWVycy4gQXQgZmlyc3QgSSBkaWQgbm90IHVuZGVyc3RhbmQgdGhlaXIgc3Ryb25nIHJlYWN0aW9uLiBCdXQgd2hlbiB3ZSB0YWxrZWQsIEkgbGVhcm5lZCB0aGUgZW5naW5lZXIgaGFkIGJlZW4gb3ZlcnJ1bGVkIGJ5IHNvbWVvbmUgd2l0aCBtb3JlIHBvd2VyLCBtYWtpbmcgdGhlbSBmZWVsIGhlbHBsZXNzLCBhbmQgdGhyZWF0ZW5pbmcgdGhlaXIgY29yZSBuZWVkIGZvciBjaG9pY2UgYW5kIGVxdWFsaXR5LiZsdDsvcCZndDsKCiZsdDtwJmd0O1doYXQgbWFuYWdlcnMgbWlnaHQgcGVyY2VpdmUgYXMgbm8gYmlnIGRlYWwgY2FuIGJlIGVub3Jtb3VzIHRocmVhdHMgdG8gb3RoZXIgcGVvcGxlLiBDYXNlcyB3aGVyZSB3ZeKAmXJlIHN1cnByaXNlZCBieSBvdXIgdGVhbW1hdGVz4oCZIHJlYWN0aW9ucyBhcmUgZ29vZCBvcHBvcnR1bml0aWVzIHRvIGZvY3VzIG9uIGh1bWFuLWNlbnRyaWMgcmVzcG9uc2VzLCBsaWtlIGdpdmluZyBwZW9wbGUgdGhlIG9wcG9ydHVuaXR5IHRvIHRhbGsgdGhyb3VnaCB0aGVpciBmZWVsaW5ncy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0Nvbm5lY3QgdG8gdGhlIGJpZ2dlciBwaWN0dXJlLiZsdDsvc3Ryb25nJmd0OyBDcmVhdGluZyBhbiBpbXBhY3QgaXMgYSB2ZXJ5IGdvb2QgbW90aXZhdG9yIGZvciBhbGwgb2YgdXMsIHNvIGhlbHBpbmcgZW5naW5lZXJzIHVuZGVyc3RhbmQgaG93IHRoZWlyIHdvcmsgY29ubmVjdHMgdG8gdGhlIGJpZ2dlciBwaWN0dXJlIChob3cgaXQgaGVscHMgdXNlcnMgb3Igc3VwcG9ydHMgb3RoZXIgdGVhbXMpIGlzIGFuIGV4dHJlbWVseSBpbXBvcnRhbnQgYW5kIHN0cmF0ZWdpYyBza2lsbCBmb3IgbWFuYWdlcnMuIFdoaWxlIGdvYWwtc2V0dGluZyBmcmFtZXdvcmtzIGxpa2UgT0tScyBjYW4gaGVscCwgaXQgaXMgYWxzbyBjcnVjaWFsIHRvIGFsaWduIGVuZ2luZWVyaW5nIGluaXRpYXRpdmVzIHdpdGggaGlnaGVyLWxldmVsIGdvYWxzLCBhbmQgY29ubmVjdCB0aGVtIGNsZWFybHkgd2l0aCB1c2VyIHZhbHVlLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7SW52b2x2ZSBlbmdpbmVlcnMgaW4gZGVjaXNpb24gbWFraW5nLiZsdDsvc3Ryb25nJmd0OyBGZWVsaW5nIHRoYXQgZGVjaXNpb25zIGFyZSBmYWlyIGFuZCBlcXVpdGFibGUgaXMgYW4gaW1wb3J0YW50IGNvbXBvbmVudCBvZiB0aGUgQklDRVBTIG1vZGVsLiBXaGVuIHdlIG1ha2UgZGVjaXNpb25zLCBpdCBpcyBoZWxwZnVsIHRvIGFzayBldmVyeW9uZSBmb3IgdGhlaXIgb3BpbmlvbnMgZmlyc3QsIGFuZCB0YWtlIHRoZWlyIG9waW5pb25zIGludG8gYWNjb3VudC4gSXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBnbyB3aXRoIHdoYXQgZXZlcnlvbmUgd2FudHMuIEJ1dCB3ZSBjYW4gc3RpbGwgZG8gYSBnb29kIGpvYiBhdCBjb250ZXh0dWFsaXppbmcgdGhlIGRlY2lzaW9ucyB3ZSBtYWtlLCBhbmQgaGVscGluZyBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IHRoZWlyIGZlZWRiYWNrIHdhcyBjb25zaWRlcmVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7R2l2ZSBmZWVkYmFjayBmb3IgZ3Jvd3RoLiZsdDsvc3Ryb25nJmd0OyBPbmUgb2YgdGhlIGJlc3QgdGhpbmdzIHdlIGdldCB0byBkbyBhcyBlbmdpbmVlcmluZyBtYW5hZ2VycyBpcyBzdXBwb3J0IGVuZ2luZWVyc+KAmSBncm93dGguIEdpdmUgZmVlZGJhY2sgcmVndWxhcmx5IHRvIGhlbHAgdGhlIHBlb3BsZSBvbiB5b3VyIHRlYW0gdW5kZXJzdGFuZCB3aGVyZSB0aGV5IGFyZSBhdCBhbmQgZ3JvdyDigJMgYnkgY291cnNlLWNvcnJlY3Rpbmcgd2hlcmUgbmVlZGVkLCBhcyB3ZWxsIGFzIGJ5IGRvaW5nIG1vcmUgaW4gdGhlIGFyZWFzIGluIHdoaWNoIHRoZXkgYXJlIGFscmVhZHkgZG9pbmcgZ3JlYXQuIE1hbmFnZXJzIG5lZWQgZmVlZGJhY2sgYXMgd2VsbDogaXTigJlzIGltcG9ydGFudCB0byByZWd1bGFybHkgYXNrIHlvdXIgdGVhbSBmb3IgZmVlZGJhY2sgc28geW91IGNhbiBtYWtlIGFkanVzdG1lbnRzLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Q29hY2ggZW5naW5lZXJzLiZsdDsvc3Ryb25nJmd0OyBDb2FjaGluZyBoZWxwcyBwZW9wbGUgZmluZCBhbnN3ZXJzIHRoZW1zZWx2ZXMsIGltcHJvdmVzIHRoZWlyIHByb2JsZW0tc29sdmluZyBhbmQgbGVhZGVyc2hpcCBza2lsbHMsIGFuZCBpbmNyZWFzZXMgbGVhcm5pbmcsIHJlc2lsaWVuY2UsIGFuZCBzZWxmLW1hbmFnZW1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTcG9uc29yIGVuZ2luZWVycy4mbHQ7L3N0cm9uZyZndDsgVGhpbmsgYmFjayBvbiB5b3VyIGNhcmVlciwgYW5kIHdoZXRoZXIgeW91IGhhdmUgaGFkIGEgbWVudG9yIHdobyBjb25uZWN0ZWQgeW91IHdpdGggc29tZW9uZSwgcHV0IHlvdXIgbmFtZSBmb3J3YXJkLCBhbmQgdXNlZCB0aGVpciBpbmZsdWVuY2UgdG8gbWFrZSBhIGRpZmZlcmVuY2UgaW4geW91ciBjYXJlZXIuIEJlIHRoYXQgcGVyc29uIGZvciBzb21lb25lIGVsc2U6IGludmVzdCBpbiB0aGVpciBncm93dGgsIGxpZnQgdGhlbSB1cCwgYW5kIHB1dCB5b3VyIHdlaWdodCBiZWhpbmQgdGhlaXIgc3VjY2Vzcy4gU3VwcG9ydGluZyB5b3VyIHRlYW3igJlzIHN1Y2Nlc3MgY2FuIG1ha2UgYSByZWFsIGRpZmZlcmVuY2UgZm9yIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhpcyBpcyB0aGUgZm91bmRhdGlvbiBvZiBvdXIgd29yayBhcyBlbmdpbmVlcmluZyBtYW5hZ2Vycy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RHJpdmluZyBhIGN1bHR1cmUgb2YgdHJ1c3QgYW5kIGNvbnRpbnVvdXMgaW1wcm92ZW1lbnQgb24gdGVhbXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgbmV4dCBpbXBvcnRhbnQgYnVpbGRpbmcgYmxvY2sgaW4gb3VyIHdvcmsgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgaXMgdGhlIHRlYW0uIEFjY29yZGluZyB0byByZXNlYXJjaCwgaGlnaC1wZXJmb3JtaW5nIHRlYW1zIG5lZWQgdGhlIGZvbGxvd2luZyBlbGVtZW50cy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7UHN5Y2hvbG9naWNhbCBzYWZldHkuJmx0Oy9zdHJvbmcmZ3Q7IFRoaXMgaXMgYWJvdXQgYmVsaWV2aW5nIHRoYXQgd2Ugd2lsbCBub3QgYmUgcmVqZWN0ZWQsIGFuZCBmZWVsaW5nIGZyZWUgdG8gZXhwcmVzcyBvdXIgd29yay1yZWxhdGVkIHRob3VnaHRzIGFuZCBmZWVsaW5ncyB0byB0aGUgcGVvcGxlIGFyb3VuZCB1cy4gSXQgYWxzbyBtZWFucyBiZWxpZXZpbmcgdGhhdCBvdGhlcnMgd29u4oCZdCB0aGluayBsZXNzIG9mIHVzIGlmIHdlIG1ha2UgYSB3ZWxsLWludGVudGlvbmVkIG1pc3Rha2Ugb3IgYXNrIGZvciBoZWxwLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7U3RydWN0dXJlIGFuZCBjbGFyaXR5LiZsdDsvc3Ryb25nJmd0OyBFdmVyeW9uZSBvbiB0aGUgdGVhbSBzaG91bGQgdW5kZXJzdGFuZCBleHBlY3RhdGlvbnMsIGdvYWxzLCBhbmQgYWNjb3VudGFiaWxpdHkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtNZWFuaW5nIGFuZCBpbXBhY3QuJmx0Oy9zdHJvbmcmZ3Q7IEhpZ2gtcGVyZm9ybWluZyB0ZWFtcyBmaW5kIGEgc2Vuc2Ugb2YgcHVycG9zZSBpbiB0aGVpciB3b3JrLCBhbmQga25vdyB0aGF0IHRoZWlyIHdvcmsgaGFzIGFuIGltcGFjdC4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7THVja2lseSBmb3IgbWFuYWdlcnMsIHRoaXMgcmVzZWFyY2ggbmVhdGx5IGFsaWducyB3aXRoIHRoZSBCSUNFUFMgbW9kZWwuIEFsbCBodW1hbiBjb3JlIG5lZWRzIGFyZSByZXByZXNlbnRlZCBhbmQgaGF2ZSBpbXBhY3QgYXQgdGhlIHRlYW0gbGV2ZWwgYXMgd2VsbC4gQnkgdW5kZXJzdGFuZGluZyBhbmQgcmVzcG9uZGluZyB0byBwZW9wbGXigJlzIG1vdGl2YXRpb25zLCBsZWFkZXJzIGNyZWF0ZSB0aGUgYmFzaXMgZm9yIHRlYW1zICB0byBleHByZXNzIHRoZW1zZWx2ZXMg4oCTIGFuZCBwcm92aWRlIHRoZSBzdHJ1Y3R1cmUsIG1lYW5pbmcsIGFuZCBpbXBhY3QgdGhleSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgdHJ1c3QuJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBmaXJzdCBzdGVwIGluIGNyZWF0aW5nIHN0cnVjdHVyZSBpcyBidWlsZGluZyByZWxhdGlvbnNoaXBzLiBGb3Igb3VyIGRpc3RyaWJ1dGVkIHRlYW1zIGF0IENpcmNsZUNJLCB3ZeKAmXZlIGJ1aWx0IGRpZmZlcmVudCBzdHJ1Y3R1cmVzIHRvIGhlbHAgdGVhbW1hdGVzIGRvIHRoYXQsIHN1Y2ggYXMgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucyBhbmQgZW5naW5lZXJpbmcgdGFsa3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTdHJ1Y3R1cmUgYXJvdW5kIGhvdyB3ZSBjb2xsYWJvcmF0ZS4mbHQ7L3N0cm9uZyZndDsgT3VyIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0kgaGFzIGRvdWJsZWQgaW4gc2l6ZSBmb3IgdGhyZWUgeWVhcnMgaW4gYSByb3cuIE92ZXIgdGhpcyB0aW1lLCB3ZeKAmXZlIG1vdmVkIHRvIGEgbW9yZSBzdHJlYW1saW5lZCBlbmdpbmVlcmluZyBkZWxpdmVyeSBwcm9jZXNzIGZvciBhbGwgdGVhbXMuIEJ1dCB3ZSBzdGlsbCBsZWF2ZSBpdCB0byB0aGUgdGVhbXMgdG8gZGVjaWRlIGhvdyB0byBpbXBsZW1lbnQgdCBkYXktdG8tZGF5IHByb2Nlc3NlcywgaW5jbHVkaW5nIGRhaWx5IHN0YW5kdXAgbWVldGluZ3MsIHBsYW5uaW5nIHNlc3Npb25zLCBvciBjb2xsYWJvcmF0aW9uLiBFdmVyeSB0ZWFtIGhhcyBzcGVjaWZpYyBuZWVkcywgYW5kIHRoZXkga25vdyBiZXN0IGhvdyB0byBhZGRyZXNzIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtSZW1vdmUgYmxvY2tlcnMuJmx0Oy9zdHJvbmcmZ3Q7IFN0cnVjdHVyZXMgY2FuIGFsc28gaGVscCBtaXRpZ2F0ZSB0aGUgaW1wYWN0IG9mIGdldHRpbmcgYmxvY2tlZCBhdCB3b3JrLiBXZSBhbGwga25vdyBob3cgZnJ1c3RyYXRpbmcgaXQgaXMgdG8gYmUgc3R1Y2suIFB1dHRpbmcgdXAgcGF0aHdheXMgdG8gaGVscCBwZW9wbGUgZ2V0IHVuYmxvY2tlZCBjYW4gYmUgcmVhbGx5IGltcG9ydGFudCDigJMgZm9yIGV4YW1wbGUsIHNldHRpbmcgdXAgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucywgaW52ZXN0aW5nIGluIHNlbGYtc2VydmUgaW5mb3JtYXRpb24gYWNjZXNzLCBzdXBwb3J0aW5nIGVhY2ggb3RoZXIgYWNyb3NzIHRlYW1zLCBwdXR0aW5nIHVwIGVzY2FsYXRpb24gcGF0aHMgZm9yIHBlb3BsZSB0byBnZXQgaGVscCB3aGVuIHRoZXkgbmVlZCBpdCwgb3IgaGVscGluZyBwZW9wbGUgc3VwcG9ydCBlYWNoIG90aGVyIHRocm91Z2gga25vd2xlZGdlLXNoYXJpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtDb250aW51b3VzbHkgaW1wcm92ZS4mbHQ7L3N0cm9uZyZndDsgV2UgY2FuIHVzZSByZXRyb3NwZWN0aXZlcyB0byBkaXNjdXNzIGFuZCBpbXByb3ZlIGhvdyB3ZSB3b3JrIHRvZ2V0aGVyLiBCbGFtZWxlc3MgcG9zdG1vcnRlbXMgYXJlIGFsc28gYSBncmVhdCB0b29sIHRvIGhlbHAgdW5kZXJzdGFuZCBwcm9ibGVtcyBhbmQgZHJpdmUgdG93YXJkcyBzb2x1dGlvbnMuIENvZGUgcmV2aWV3cywgbWVudG9yaW5nLCBvciBrbm93bGVkZ2Ugc2hhcmluZyBjYW4gaGVscCB0ZWFtIG1lbWJlcnMgbGVhcm4gZnJvbSBlYWNoIG90aGVyLiBUaGUgd2F5IHdlIHRhbGsgYWJvdXQgbGVhcm5pbmcgbWF0dGVycyDigJMgZXNwZWNpYWxseSB0aGUgd2F5IHdlIGRpc2N1c3MgbWlzdGFrZXMuIFRoZXNlIGRlY2lzaW9ucyB3aWxsIGZ1bmRhbWVudGFsbHkgc2hhcGUgdGhlIGN1bHR1cmUgb2Ygb3VyIHRlYW1zLCBhbmQgZGV0ZXJtaW5lIHdoZXRoZXIgcGVvcGxlIGZlZWwgc2FmZSBvciB0aHJlYXRlbmVkIGluIHRoZWlyIGNvcmUgbmVlZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtEcml2ZSB0b3dhcmQgYWxpZ25tZW50LiZsdDsvc3Ryb25nJmd0OyBDb21tdW5pY2F0ZSBzdHJhdGVneSwgZGlyZWN0aW9uLCBhbmQgcmVsZXZhbnQgdGFjdGljYWwgZGV0YWlscyB0byBvdXIgdGVhbXMg4oCTIGFuZCByZW1lbWJlciBpdOKAmXMgYWxtb3N0IGltcG9zc2libGUgdG8gb3Zlci1jb21tdW5pY2F0ZSB0aGVzZSBkZXRhaWxzLiBBbHdheXMgcmVwZWF0IHdoYXTigJlzIGltcG9ydGFudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBlbmdpbmVlcmluZyBtYW5hZ2Vycywgd2UgYXJlIGxpa2UgbW9ydGFyOiBXZSBjb25uZWN0IHN0cnVjdHVyZXMsIHRlYW1zLCBhbmQgcGVvcGxlLiBXZSBob2xkIHRoZW0gdG9nZXRoZXIsIGJ1dCBhbHNvIGlkZW50aWZ5IGFuZCBmaWxsIGdhcHMgYXMgbmVlZGVkLiBIYW5kbGluZyBhbWJpZ3VpdHkgaXMgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgZGlmZmljdWx0IGFzcGVjdHMgb2YgZW5naW5lZXJpbmcgbWFuYWdlbWVudC4uIEZvciBhIGxvdCBvZiB3b3JrIGluIG91ciBmaWVsZCwgdGhlcmUgYXJlIG5vIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLCBsZXQgYWxvbmUgcmVzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T3VyIHdvcmsgaXNu4oCZdCBzbyBtdWNoIGFib3V0IHVzOyBpdOKAmXMgYWJvdXQgdGhlIHBlb3BsZSwgdGVhbXMsIGFuZCBvcmdhbml6YXRpb25zIHdlIHN1cHBvcnQuIFdlIGJ1aWxkIHN0cnVjdHVyZXMgdG8gaGVscCBvdGhlcnMgc2hpbmUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1N1cHBvcnRpbmcgb3JnYW5pemF0aW9uYWwgY2hhbmdlJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7TGFzdGx5LCBjcmVhdGluZyBlbnZpcm9ubWVudHMgaW4gd2hpY2ggZW5naW5lZXJzIGNhbiB0aHJpdmUgaXMgYWJvdXQgc3VwcG9ydGluZyBvdXIgb3JnYW5pemF0aW9uLiBXZSBuZWVkIHRvIHVzZSBvdXIgcG93ZXIgYXMgbWFuYWdlcnMgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLCBubyBtYXR0ZXIgdGhlIHNpemUgb2Ygb3VyIGJ1c2luZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtBZHZvY2F0ZSBmb3IgY2hhbmdlLiZsdDsvc3Ryb25nJmd0OyBUbyBiZSBlZmZlY3RpdmUgYXMgbWFuYWdlcnMsIHdlIG5lZWQgdG8gcHVzaCBmb3Igb3JnYW5pemF0aW9uYWwgY2hhbmdlIHRvIGltcHJvdmUgdGhlIGxhcmdlciBzdHJ1Y3R1cmVzIGFyb3VuZCB1cy4gRm9yIGV4YW1wbGUsIHdlIG1heSBuZWVkIHRvIGFkdm9jYXRlIGZvciBtb3JlIGNsYXJpdHkgYXJvdW5kIGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMsIGhhdmUgY29udmVyc2F0aW9ucyBhYm91dCB3aGF0IGVuZ2luZWVyaW5nIG1hbmFnZW1lbnQgc2hvdWxkIGJlIGxpa2UgaW4gb3VyIGNvbXBhbnksIGFuZCBkZXRlcm1pbmUgcmVxdWlyZW1lbnRzIGZvciBoaXJpbmcgZW5naW5lZXJpbmcgbWFuYWdlcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtNYW5hZ2UgdXAuJmx0Oy9zdHJvbmcmZ3Q7IE1hbmFnaW5nIG91ciBvd24gbWFuYWdlcnMgaXMgYSB1c2VmdWwgYnV0IGRpZmZpY3VsdCBza2lsbC4gRHJpdmluZyBvcmdhbml6YXRpb25hbCBjaGFuZ2UgYWxzbyBtZWFucyBtYWtpbmcgc3VyZSB0aGF0IG91ciBlbmdpbmVlcnPigJkgY29uY2VybnMgYXJlIGhlYXJkIGF0IHRoZSBoaWdoZXN0IGxldmVscywgYW5kIHRoYXQgd2UgdXNlIG91ciBwb3dlciB0byBtYWtlIHN1cmUgZW5naW5lZXJzIGhhdmUgYSB2b2ljZSBpbiB0aGUgcmVzdCBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgZnJhbWV3b3JrcyBhbmQgc3RhbmRhcmRzLiZsdDsvc3Ryb25nJmd0OyBXaGlsZSBpdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIG1ha2Ugcm9vbSBmb3IgaW5kaXZpZHVhbCBuZWVkcywgc3RydWN0dXJlcyBhbmQgZnJhbWV3b3JrcyBmb3IgbWFuYWdlcnMgaGVscCB1cyBob2xkIGVhY2ggb3RoZXIgYWNjb3VudGFibGUuIFRoZXkgYWxzbyAgaGVscCBsZXZlbCB0aGUgcGxheWluZyBmaWVsZCBhbmQgYnVpbGQgaW4gZXF1YWxpdHkgZm9yIHRoZSBwZW9wbGUgb24gb3VyIHRlYW1zLiBPbiBteSBjdXJyZW50IHRlYW0sIGV2ZXJ5IHF1YXJ0ZXIgd2UgcGljayBzb21lIGhpZ2gtcHJpb3JpdHkgcHJvamVjdHMgIHRvIGltcHJvdmUgaG93IHdlIHdvcmsgYXMgYW4gb3JnYW5pemF0aW9uLiBNb3N0IHJlY2VudGx5LCB3ZeKAmXZlIHdvcmtlZCBvbiBvdXIgaGlyaW5nIHByb2Nlc3MgYW5kIGluY2lkZW50IHJlbWVkaWF0aW9uOyBsYXN0IHllYXIsIHdlIGRldmVsb3BlZCBhbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvd2h5LXdlLXJlLWRlc2lnbmVkLW91ci1lbmdpbmVlcmluZy1jYXJlZXItcGF0aHMtYXQtY2lyY2xlY2kvJnF1b3Q7Jmd0O2ludGVybmFsIGNhcmVlciBncm93dGggZnJhbWV3b3JrIGZvciBlbmdpbmVlcnMmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtHcm93aW5nIGFzIGEgbGVhZGVyJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7QmVpbmcgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgaXNu4oCZdCBhbHdheXMgYSBzdHJhaWdodGZvcndhcmQgcGF0aDsgYSBsb3QgZGVwZW5kcyBvbiB3aGVyZSB3ZSBhcmUgYXQgaW4gb3VyIGNhcmVlcnMgYW5kIHdoZXJlIHdlIGFyZSBsb29raW5nIHRvIGdvLCBhcyB3ZWxsIGFzIHRoZSBncm93dGggc3RhZ2UsIHNpemUsIGFuZCBuZWVkcyBvZiBvdXIgb3JnYW5pemF0aW9ucy4gSW4gb3VyIGRhaWx5IHdvcmssIHdlIGhvbGQgdmFzdCBhbW91bnRzIG9mIHVuY2VydGFpbnR5IHdoaWxlIGFsc28gdHJ5aW5nIHRvIG1ha2UgcHJvZ3Jlc3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QW4gb3ZlcmFyY2hpbmcgdGhlbWUgaW4gbXkgd29yayBpbiBlbmdpbmVlcmluZyBtYW5hZ2VtZW50ICBoYXMgYmVlbiBncm93dGggYW5kIGltcHJvdmVtZW50LiBXZSByYXJlbHkgZGVhbCB3aXRoIGdyZWVuZmllbGQgcHJvamVjdHMgb3IgYXJlIGFibGUgdG8gYnVpbGQgYSB0ZWFtIG9yIGRlcGFydG1lbnQgZnJvbSBzY3JhdGNoLiBFdmVuIHdoZW4gd2UgZG8sIHdlIGJ1aWxkIG9uIGV4aXN0aW5nIHN0cnVjdHVyZXMgaW4gb3VyIG9yZ2FuaXphdGlvbi4gSSBiZWxpZXZlIG91ciBzdXBwb3J0aW5nIHJvbGUgbGFyZ2VseSBtZWFucyBoZWxwaW5nIGVuZ2luZWVycyBncm93LCBzdXBwb3J0aW5nIHRlYW1zIGF0IGNvbnRpbnVvdXNseSBsZWFybmluZywgYW5kIGhlbHBpbmcgb3JnYW5pemF0aW9ucyBiZWNvbWUgYmV0dGVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVyaW5nIG1hbmFnZXJzLCB3ZSBmcmVxdWVudGx5IGZhY2UgcXVlc3Rpb25zIHRoYXQgZG9u4oCZdCBjbGVhciByaWdodCBvciB3cm9uZyBhbnN3ZXJzLiBNYW55IHllYXJzIGFnbywgbXkgbGVhZGVyc2hpcCBjb2FjaCBlbmNvdXJhZ2VkIG1lIHRvIHVzZSB0aG9zZSBraW5kcyBvZiB1bmNlcnRhaW4gc2l0dWF0aW9ucyB0byBhc2sgbXlzZWxmLCDigJxXaGF0IGtpbmQgb2YgbGVhZGVyIGRvIEkgd2FudCB0byBiZT/igJ0mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJIHdhbnQgdG8gbGVhdmUgdGhlIGxhc3QgY2FsbCB0byBncm93dGggYW5kIGltcHJvdmVtZW50IHdpdGggeW91IChhbmQgbWUpOiBObyBtYXR0ZXIgd2hhdCB5b3VyIHJvbGUgb3IgY29tcGFueSBpcyBsaWtlLCB3b3JrIG9uIHNoYXBpbmcgeW91ciBhcHByb2FjaCB0byBlbmdpbmVlcmluZyBtYW5hZ2VtZW50LiBHZXQgdG8ga25vdyB0aGUgcGVvcGxlIHRoYXQgeW91IHdvcmsgd2l0aCwgYW5kIHVzZSBmZWVkYmFjayB0byBoZWxwIHRoZW0gY291cnNlLWNvcnJlY3QuIEJ1aWxkIHRlYW1zIHRoYXQgYXJlIHBzeWNob2xvZ2ljYWxseSBzYWZlIHBsYWNlcywgd2hlcmUgcGVvcGxlIGZpbmQgbWVhbmluZyBpbiBhIHNoYXJlZCBwdXJwb3NlLiBBbmQgdXNlIHlvdXIgcG93ZXIgYW5kIHByaXZpbGVnZSB0byBkcml2ZSBjaGFuZ2UgaW4geW91ciBvcmdhbml6YXRpb24uIE1ha2UgcGVvcGxlIHRoZSBjZW50ZXIgYW5kIGZvY3VzIG9mIHlvdXIgd29yaywgYW5kIGJ1aWxkIG9uIHRoYXQgZm91bmRhdGlvbiB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhleSBjYW4gdGhyaXZlLiAgQWx3YXlzIHB1c2ggdG8gY29udGludW91c2x5IGltcHJvdmUuIExlYWQgd2l0aCBodW1ibGVuZXNzLCBlbXBhdGh5LCBhbmQgbG90cyBvZiBjdXJpb3NpdHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2hhdCBraW5kIG9mIGxlYWRlciBkbyB5b3Ugd2FudCB0byBiZT8mbHQ7L3AmZ3Q7CgombHQ7aHIgLyZndDsKJmx0O3AmZ3Q7SWYgeW914oCZcmUgY3VyaW91cyBhYm91dCBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IGF0IENpcmNsZUNJIGFuZCB3b3JraW5nIHdpdGggdXM6IGpvaW4gdXMhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9ib2FyZHMuZ3JlZW5ob3VzZS5pby9jaXJjbGVjaSZxdW90OyZndDtXZeKAmXJlIGhpcmluZyBlbmdpbmVlcmluZyBtYW5hZ2VycyZsdDsvYSZndDsuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5CdWlsZGluZyBhbmQgZGVwbG95aW5nIEZsdXR0ZXIgYXBwcyB3aXRoIEZhc3RsYW5lPC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RlcGxveS1mbHV0dGVyLWFuZHJvaWQvPC9saW5rPgogICAgICAgIDxwdWJEYXRlPldlZCwgMjkgQXByIDIwMjAgMTA6MDA6MDAgLTA3MDA8L3B1YkRhdGU+CiAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9InRydWUiPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZGVwbG95LWZsdXR0ZXItYW5kcm9pZC88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5HYWJyaWVsIFNpbW1lcjwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvJnF1b3Q7Jmd0O0ZsdXR0ZXImbHQ7L2EmZ3Q7IGlzIGEgdG9vbGtpdCBwcm92aWRlZCBieSBHb29nbGUgZm9yIGJ1aWxkaW5nIGNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9ucywgaW5jbHVkaW5nIEFuZHJvaWQsIGlPUywgYW5kIHdlYiBhcHBzLiBBcyBtb3JlIGFwcHMgYXJlIHdyaXR0ZW4gdXNpbmcgaXQgYW5kIERhcnQgKHRoZSB1bmRlcmx5aW5nIGxhbmd1YWdlKSwgaXTigJlzIGJlY29taW5nIG1vcmUgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyBkZXZlbG9wZXJzIGNhbiBwYWNrYWdlIGFuZCBkZWxpdmVyIHRoZWlyIGNvZGUgdG8gdGhlaXIgdXNlcnMuIExldmVyYWdpbmcgQ2lyY2xlQ0kgYW5kIEZhc3RsYW5lLCB0aGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcHJvY2VzcyB0aGF0IGNhbiBiZSBhdXRvbWF0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbGluZyBGbHV0dGVyIGFuZCBjcmVhdGluZyB5b3VyIGZpcnN0IGFwcCBjYW4gYmUgZG9uZSBieSBmb2xsb3dpbmcgdGhlc2UgZ3VpZGVzOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvZG9jcy9nZXQtc3RhcnRlZC9pbnN0YWxsJnF1b3Q7Jmd0O0luc3RhbGwmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2ZsdXR0ZXIuZGV2L2RvY3MvZ2V0LXN0YXJ0ZWQvY29kZWxhYiZxdW90OyZndDtXcml0ZSB5b3VyIGZpcnN0IGFwcCZsdDsvYSZndDsuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBkZWZhdWx0IOKAnGhlbGxvIHdvcmxk4oCdIGFwcCB3aWxsIHN1ZmZpY2UuIFdlIHdvbuKAmXQgYmUgZGVhbGluZyBtdWNoIHdpdGggdGhlIGFwcGxpY2F0aW9uIGl0c2VsZi4gUHVzaCBpdCB0byBhIHJlcG9zaXRvcnkgb24gR2l0SHViLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Vuc3VyZSB0aGF0IHlvdSBhcmUgc2V0IHVwIHRvIHB1Ymxpc2ggYXBwcyB1c2luZyBHb29nbGUgUGxheSBvciB0aGUgQXBwbGUgQXBwIFN0b3JlIC0gc3RlcHMgZm9yIGVhY2ggd2lsbCB2YXJ5LCBzbyBiZSBzdXJlIHRvIGZvbGxvdyB0aGUgc3RlcHMgb3V0bGluZWQgZm9yIHRoZSByZXNwZWN0aXZlIHByb3ZpZGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBbmRyb2lkJmx0Oy9oMiZndDsKCiZsdDtwJmd0O1doZW4gcHVibGlzaGluZyBBbmRyb2lkIGFwcHMsIHRoZXJlIGFyZSBhIGZldyByZXF1aXJlbWVudHMgdG8gc2F0aXNmeSBiZWZvcmUgaW1wbGVtZW50aW5nIEZhc3RsYW5lLiBBbiDigJx1cGxvYWQga2V54oCdIGlzIHJlcXVpcmVkIHNvIHRoYXQgR29vZ2xlIGNhbiB2ZXJpZnkgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUgYXBwIGJlZm9yZSBhY2NlcHRpbmcgaXQuIFN0ZXBzIGZvciBzZXR0aW5nIHRoaXMgdXAgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9mbHV0dGVyLmRldi9kb2NzL2RlcGxveW1lbnQvYW5kcm9pZCZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oy4gSXTigJlzIHJlY29tbWVuZGVkIHRvIHVzZSBBcHBCdW5kbGVzIHdoZW4gYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBhcyBpdCBhbGxvd3MgR29vZ2xlIHRvIGJ1aWxkIGluZGl2aWR1YWwgQVBLcyBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyB3aGlsZSBrZWVwaW5nIGZpbGVzaXplIGRvd24uIFRha2Ugbm90ZSBvZiB3aGVyZSB5b3Ugc2F2ZSB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5qa3MmbHQ7L2NvZGUmZ3Q7IGZpbGUuIFdoaWxlIGl0IGNhbiBsaXZlIGluIHlvdXIgaG9tZSBkaXJlY3RvcnksIGhhdmluZyBpdCBzYXZlZCB0byBhIGdpdC1pZ25vcmVkIGRpcmVjdG9yeSBpbiB5b3VyIHByb2plY3Qgd2lsbCBjb21lIGluIGhhbmR5IHdoZW4gY29uZmlndXJpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1R3byB0aGluZ3MgZnJvbSB0aGlzIGd1aWRlIHdpbGwgbmVlZCB0byBiZSBhZGRlZCB0byBDaXJjbGVDSSBhcyAmbHQ7YSBocmVmPSZxdW90Oy9kb2NzLzIuMC9lbnYtdmFycy8mcXVvdDsmZ3Q7ZW52aW9ybm1lbnQgdmFyaWFibGVzJmx0Oy9hJmd0OzogdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlIGFuZCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7a2V5LmprcyZsdDsvY29kZSZndDsgZmlsZS4gVGhpcyB3aWxsIGFsbG93IHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBzaWduIHRoZSBhcHBsaWNhdGlvbi4gU2luY2Ugb25lIGZpbGUgcmVxdWlyZXMgbmV3bGluZXMgdG8gYmUgcHJlc2VudCwgYW5kIGFub3RoZXIgaXMgYSBiaW5hcnkgZmlsZSwgaXTigJlzIHJlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgYmFzZTY0LWVuY29kZWQgcHJpb3IgdG8gYWRkaW5nIHRoZW0gYXMgZW52aW9ybm1lbnQgdmFyaWFibGVzIHRvIHByZXNlcnZlIHRoZSBkYXRhLiZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBjYW4gZW5jb2RlIHRoZW0gYnkgcnVpbm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2F0ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7IHwgYmFzZTY0IC13IDAgIyAtdyAwIHdpbGwgZW5zdXJlIG5vIG5ld2xpbmVzIGFyZSBwcmVzZW50LgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBmaWxlcyBjYW4gdGhlbiBiZSByZS1hZGRlZCBkdXJpbmcgdGhlIGpvYiB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2VjaG8gJnF1b3Q7JEVOVl9WQVJJQUJMRV9OQU1FJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIGFsc28gd2FudCB0byBzZXQgdXAgYSBGYXN0bGFuZSBzZXJ2aWNlIGFjY291bnQgd2hpbGUgY3JlYXRpbmcgeW91ciBBbmRyb2lkIHNldHVwLiBZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5mYXN0bGFuZS50b29scy9nZXR0aW5nLXN0YXJ0ZWQvYW5kcm9pZC9zZXR1cC8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuIEJlIHN1cmUgdG8ga2VlcCB5b3VyIFNlcnZpY2UgQWNjb3VudCBKU09OIGZpbGUgaGFuZHkuIFdl4oCZbGwgYmUgYWRkaW5nIHRoYXQgdG8gdGhlIHBpcGVsaW5lIHNob3J0bHkuIEFsc28gbm90ZSB0aGF0IGNvbW1hbmRzIHNob3VsZCBiZSBydW4gZnJvbSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZCZsdDsvY29kZSZndDsgZGlyZWN0b3J5IHVuZGVyIHlvdXIgRmx1dHRlciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IHJlcXVpcmVkIGJ5IEZhc3RsYW5lIGNhbiBiZSBkb25lIGJ5IGFkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IEpTT04gZmlsZSBjb250ZW50cyBhcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IGVudmlvcm5tZW50IHZhcmlhYmxlLiBUaGlzIGlzIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1NVUFBMWV9KU09OX0tFWSZsdDsvY29kZSZndDsgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgYSBmaWxlIHBhdGggdG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0Zhc3RsYW5lJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05vdyB0aGF0IG91ciBlbnZpb3JubWVudCB2YXJpYWJsZXMgYXJlIGluIHBsYWNlIGFuZCB3ZSBjYW4gYnVpbGQgYSBzaWduZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LmFhYiZsdDsvY29kZSZndDsgZmlsZSB1c2luZyBGbHV0dGVyLCBpdOKAmXMgdGltZSB0byB0ZWxsIEZhc3RsYW5lIGhvdyB0byBkbyB0aGlzIGZvciB1cy4gV2XigJlsbCBzdGFydCB3aXRoIEFuZHJvaWQuIE9wZW5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZC9mYXN0bGFuZS9GYXN0ZmlsZSZsdDsvY29kZSZndDsgd2lsbCByZXZlYWwgc29tZSBkZWZhdWx0cyBmb3IgYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBidXQgdGhleSB3b27igJl0IHdvcmsgZm9yIG91ciB1c2UgY2FzZS4gV2XigJlyZSBidWlsZGluZyB3aXRoIEZsdXR0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rmlyc3QsIGxldOKAmXMgZGVmaW5lIGEgbmV3IOKAnGxhbmXigJ0uIFRoaXMgaXMgYSBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgRmFzdGxhbmUgd2lsbCBleGVjdXRlIHdoZW4gY2FsbGVkLiBGb3Igbm93LCB3ZeKAmWxsIGJlIHB1c2hpbmcgb3VyIGFwcCB0byB0aGUg4oCcYmV0YeKAnSBjaGFubmVsLCBub3QgdG8gcHJvZHVjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwoKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgaXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIGxhbmUuIE5leHQsIHdl4oCZbGwgd2FudCB0byBncmFiIGEgYnVpbGQgbnVtYmVyIHdoaWNoIGlzIGFuIGluY3JlbWVudGluZyBudW1iZXIgdXNlZCBhcyBhIHJlZmVyZW5jZSBmb3IgdGhlIHZlcnNpb24gb2YgdGhlIGFwcCAod2hpY2ggZGlmZmVycyBmcm9tIHRoZSB1c2VyLWZhY2luZyBzZW12ZXIpLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHRvIHRoZSBsYW5lOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ICBidWlsZF9udW1iZXIgPSBudW1iZXJfb2ZfY29tbWl0cygpCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgZW5zdXJlcyB0aGF0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZF9udW1iZXImbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0aGF0IGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBHaXQgcmVwb3NpdG9yeS4gVGhpcyBjYW4gYWxzbyBiZSBtYW51YWxseSBpbmNyZW1lbnRlZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVic3BlYy55YW1sJmx0Oy9jb2RlJmd0OyBmaWxlIHRoYXQgRmx1dHRlciB1c2VzIHRvIGJ1aWxkIHRoZSBwYWNrYWdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdl4oCZbGwgZG8gdGhlIGJ1aWxkaW5nLiBXZSBuZWVkIHRvIGdvIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5LCBydW4gYSBmZXcgc2hlbGwgY29tbWFuZHMgdG8gZmV0Y2ggb3VyIHBhY2thZ2VzLCBjbGVhbiB0aGUgcHJldmlvdXMgYnVpbGQgKGlmIGF2YWlsYWJsZSksIHRoZW4gYnVpbGQgdGhlIGFwcGJ1bmRsZSB3aXRoIG91ciBidWlsZCBudW1iZXIuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIERpci5jaGRpciAmcXVvdDsuLi8uLiZxdW90OyBkbwogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7cGFja2FnZXMmcXVvdDssICZxdW90O2dldCZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2NsZWFuJnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7YnVpbGQmcXVvdDssICZxdW90O2FwcGJ1bmRsZSZxdW90OywgJnF1b3Q7LS1idWlsZC1udW1iZXI9I3tidWlsZF9udW1iZXJ9JnF1b3Q7KQogIGVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtGaW5hbGx5LCB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYXBwIHN0b3JlIG9uIHRoZSBiZXRhIGNoYW5uZWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIHVwbG9hZF90b19wbGF5X3N0b3JlKHRyYWNrOiAnYmV0YScsIGFhYjogJy4uL2J1aWxkL2FwcC9vdXRwdXRzL2J1bmRsZS9yZWxlYXNlL2FwcC5hYWInKQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGxhbmUgd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwogIGJ1aWxkX251bWJlciA9IG51bWJlcl9vZl9jb21taXRzKCkKICBEaXIuY2hkaXIgJnF1b3Q7Li4vLi4mcXVvdDsgZG8KICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O3BhY2thZ2VzJnF1b3Q7LCAmcXVvdDtnZXQmcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtjbGVhbiZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2J1aWxkJnF1b3Q7LCAmcXVvdDthcHBidW5kbGUmcXVvdDssICZxdW90Oy0tYnVpbGQtbnVtYmVyPSN7YnVpbGRfbnVtYmVyfSZxdW90OykKICBlbmQKICB1cGxvYWRfdG9fcGxheV9zdG9yZSh0cmFjazogJ2JldGEnLCBhYWI6ICcuLi9idWlsZC9hcHAvb3V0cHV0cy9idW5kbGUvcmVsZWFzZS9hcHAuYWFiJykKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dvIGFoZWFkIGFuZCBzYXZlIHRoZSBmaWxlLCBhbmQgdGhlbiBydW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZmFzdGxhbmUgYmV0YSZsdDsvY29kZSZndDsuIEl0IHdpbGwgcnVuIHRocm91Z2ggdGhlIHN0ZXBzLCBidWlsZGluZyB0aGUgYXBwIGFuZCBwdXNoaW5nIHRoZSBhcHBsaWNhdGlvbiBmb3IgeW91LiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgd2XigJlsbCBkbyB0aGUgc2FtZSBmb3IgaU9TLCBidXQgcmVwbGFjaW5nIHNvbWUgb2YgdGhlIGNvbW1hbmRzIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBpT1MgY29tbWFuZHMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lvcy9GYXN0bGFuZSZsdDsvY29kZSZndDsgZGlyZWN0b3J5LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZGVzYyAmcXVvdDtEZXBsb3kgYSBuZXcgYnVpbGQgdG8gVGVzdGZsaWdodCZxdW90OwpsYW5lIDpiZXRhIGRvCiAgRGlyLmNoZGlyICZxdW90Oy4uLy4uJnF1b3Q7IGRvCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtwYWNrYWdlcyZxdW90OywgJnF1b3Q7Z2V0JnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7Y2xlYW4mcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtidWlsZCZxdW90OywgJnF1b3Q7aW9zJnF1b3Q7LCAmcXVvdDstLXJlbGVhc2UmcXVvdDssICZxdW90Oy0tbm8tY29kZXNpZ24mcXVvdDspCiAgZW5kCiAgYnVpbGRfaW9zX2FwcChzY2hlbWU6ICZxdW90O015QXBwJnF1b3Q7KQogIHVwbG9hZF90b190ZXN0ZmxpZ2h0CmVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhcHAgaXMgYnVpbHQgdHdpY2UuIFRoZSBmaXJzdCBidWlsZCBidWlsZHMgYWdhaW5zdCB0aGUgbGF0ZXN0IEZsdXR0ZXIgdG9vbGNoYWluLCB3aGlsZSB0aGUgc2Vjb25kIGJ1aWxkIGJ1aWxkcyB0aGUgYWN0dWFsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5pcGEmbHQ7L2NvZGUmZ3Q7IGZpbGUgdGhhdCB3aWxsIGJlIHVwbG9hZGVkIHRvIFRlc3RmbGlnaHQuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O05vdywgd2l0aCBDaXJjbGVDSSZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gcGxhY2UsIGl04oCZcyB0aW1lIHRvIGdldCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB3cml0dGVuIHNvIHRoYXQgYSBwdXNoIHRvIGEgYnJhbmNoIGlzIHRyYW5zbGF0ZWQgdG8gYSBuZXcgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7aU9TJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0ZvciBkZXBsb3lpbmcgd2l0aCBpT1MsIENpcmNsZUNJIGFscmVhZHkgaGFzIGRvY3MgdG8gY292ZXIgdGhpcyEgU3RlcHMgZm9yIHNldHRpbmcgdXAgRmFzdGxhbmUgZGVwbG95bWVudCB3aXRoIEZsdXR0ZXIgaXMgc2ltaWxhciB0byB0aGUgc3RlcHMgb3V0bGluZWQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvaW9zLWNvZGVzaWduaW5nLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OyBhbmQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZGVwbG95aW5nLWlvcy8jYXBwLXN0b3JlLWNvbm5lY3QmcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0FuZHJvaWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7V2hlbiBpdCBjb21lcyB0byB0aGUgRG9ja2VyIGltYWdlIHRvIHBpY2ssIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gRWl0aGVyIHlvdSBjYW4gYnVpbGQgYW5kIHB1c2ggdGhlIERvY2tlciBpbWFnZSB1c2VkIGJ5IHRoZSBGbHV0dGVyIHByb2plY3QgZm91bmQgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2Jsb2IvbWFzdGVyL2Rldi9jaS9kb2NrZXJfbGludXgvRG9ja2VyZmlsZSZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oywgb3IgeW91IGNhbiBwdWxsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dtZW1zdHIvZmx1dHRlci1mYXN0bGFuZTpsYXRlc3QmbHQ7L2NvZGUmZ3Q7LCB3aGljaCBpcyBidWlsdCBvbiB0b3Agb2YgYW4gZXhpc3RpbmcgRmx1dHRlciBEb2NrZXIgaW1hZ2UgYW5kIGluc3RhbGxzIEZhc3RsYW5lIGFsb25nc2lkZSBpdCwgYXZvaWRpbmcgYWRkaXRpb25hbCBvdmVyaGVhZCBvZiBpbnN0YWxsaW5nIGl0IGR1cmluZyBydW50aW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28gZW5zdXJlIHRoYXQgdGhlIGVudmlvcm5tZW50IHZhcmlhYmxlcyBtZW50aW9uZWQgZWFybGllciBhcmUgYWRkZWQgdG8geW91ciBwcm9qZWN0LiBOYW1lbHk6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQTEFZX1NUT1JFX1VQTE9BRF9LRVkmbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtrZXkuamtzJmx0Oy9jb2RlJmd0OyBmaWxlJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7UExBWV9TVE9SRV9VUExPQURfS0VZX0lORk8mbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCBmaWxlIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIGFuZCBvdGhlciBpbmZvIHJlZ2FyZGluZyB0aGUgdXBsb2FkIHNpZ25pbmcga2V5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IC0gWW91ciBHb29nbGUgU2VydmljZSBBY2NvdW50IEpTT04gc3RyaW5nIGZvciBhdXRoZW50aWNhdGlvbiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtJbiB5b3VyIHByb2plY3RzIHJvb3QsIGFkZCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLCBhbmQgaW4gdGhhdCBmb2xkZXIgYWRkIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y2lyY2xlY2kueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLiBBZGQgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSBuZXdseSBjcmVhdGVkIGZpbGU6Jmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7JwogIAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgc25pcHBldCBhYm92ZSBkZWZpbmVzIGFuIGV4ZWN1dG9yIHdlIGNhbiByZXVzZSBsYXRlciBpbiBvdXIgY29uZmlndXJhdGlvbiB0aGFua3MgdG8gdGhlIHVzZSBvZiByZXVzYWJsZSBjb25maWd1cmF0aW9uIGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYnMmbHQ7L2EmZ3Q7IGluIENpcmNsZUNJIDIuMS4gSXQgYWxzbyBpbmNsdWRlcyBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBlbnN1cmUgSmF2YSBkb2VzbuKAmXQgY29uc3VtZSBhbGwgb2Ygb3VyIG1lbW9yeSB3aGlsZSBidWlsZGluZyB0aGUgYXBwLiBOZXh0LCB3ZeKAmWxsIGRlZmluZSB0aGUgam9iIHdlIHdhbnQgdG8gcnVuIHRoZSBjb21tYW5kcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2pvYnM6CiAgYmV0YV9kZXBsb3k6CiAgICBleGVjdXRvcjogYW5kcm9pZC1mbHV0dGVyCiAgICBzdGVwczoKICAgICAgLSBjaGVja291dAogICAgICAtIHJ1bjogZWNobyAmcXVvdDskUExBWV9TVE9SRV9VUExPQURfS0VZJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGtleS5qa3MKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWV9JTkZPJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGFuZHJvaWQva2V5LnByb3BlcnRpZXMKICAgICAgLSBydW46IGNkIGFuZHJvaWQgJmFtcDthbXA7JmFtcDthbXA7IGZhc3RsYW5lIGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgd2XigJlsbCBkZWZpbmUgb3VyIHdvcmtmbG93IHdoaWNoIHdpbGwgb25seSBydW4gdGhlIGpvYiB3aGVuIHRoZSBuZXcgY29kZSBpcyBwdXNoZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2JldGEmbHQ7L2NvZGUmZ3Q7IGJyYW5jaC4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3dvcmtmbG93czoKICBkZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGJldGFfZGVwbG95OgogICAgICAgICAgZmlsdGVyczoKICAgICAgICAgICAgYnJhbmNoZXM6CiAgICAgICAgICAgICAgb25seTogYmV0YQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7Jwpqb2JzOgogIGJldGFfZGVwbG95OgogICAgZXhlY3V0b3I6IGFuZHJvaWQtZmx1dHRlcgogICAgc3RlcHM6CiAgICAgIC0gY2hlY2tvdXQKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWSZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBrZXkuamtzCiAgICAgIC0gcnVuOiBlY2hvICZxdW90OyRQTEFZX1NUT1JFX1VQTE9BRF9LRVlfSU5GTyZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBhbmRyb2lkL2tleS5wcm9wZXJ0aWVzCiAgICAgIC0gcnVuOiBjZCBhbmRyb2lkICZhbXA7YW1wOyZhbXA7YW1wOyBmYXN0bGFuZSBiZXRhCgp3b3JrZmxvd3M6CiAgZGVwbG95OgogICAgam9iczoKICAgICAgLSBiZXRhX2RlcGxveToKICAgICAgICAgIGZpbHRlcnM6CiAgICAgICAgICAgIGJyYW5jaGVzOgogICAgICAgICAgICAgIG9ubHk6IGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvcHJvamVjdHMvJnF1b3Q7Jmd0O1NldCB1cCB5b3VyIHByb2plY3Qgb24gQ2lyY2xlQ0kmbHQ7L2EmZ3Q7LiBPbmNlIHlvdSBjbGljayAmbHQ7c3Ryb25nJmd0O1NldCBVcCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7LCB5b3Ugd2lsbCBiZSBicm91Z2h0IHRvIGEgdGV4dCBlZGl0b3IgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBjb3B5IGluIHRoZSBjb25maWcgZnJvbSBhYm92ZS4gQ2xpY2sgJmx0O3N0cm9uZyZndDtTdGFydCBCdWlsZGluZyZsdDsvc3Ryb25nJmd0Oy4gTm93IGV2ZXJ5IG5ldyBjb21taXQgdG8gdGhlIGJldGEgYnJhbmNoIHdpbGwgcmVzdWx0IGluIGEgZGVwbG95LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIGFuIEV4cHJlc3MgR3JhcGhRTCBzZXJ2ZXIgdG8gSGVyb2t1PC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1hbi1leHByZXNzLWdyYXBocWwtc2VydmVyLXRvLWhlcm9rdS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VHVlLCAyOCBBcHIgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtYW4tZXhwcmVzcy1ncmFwaHFsLXNlcnZlci10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dyYXBocWwub3JnLyZxdW90OyZndDtHcmFwaFFMJmx0Oy9hJmd0OyBjb250aW51ZXMgdG8gZ3JvdyBpbiBwb3B1bGFyaXR5IHdpdGggZWFjaCBwYXNzaW5nIGRheSwgc2luY2UgaXRzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9lbmdpbmVlcmluZy5mYi5jb20vY29yZS1kYXRhL2dyYXBocWwtYS1kYXRhLXF1ZXJ5LWxhbmd1YWdlLyZxdW90OyZndDtwdWJsaWMgcmVsZWFzZSBieSBGYWNlYm9vayZsdDsvYSZndDsgaW4gMjAxNS4gVGhlIHRlY2hub2xvZ3kgZW5hYmxlcyBmcm9udCBlbmQgY2xpZW50cyB0byBxdWVyeSBleGFjdGx5IHdoYXQgdGhleSBuZWVkIGZyb20gdGhlIGJhY2tlbmQsIGFuZCBpcyBnYWluaW5nIHdpZGUgcmVjb2duaXRpb24gYW5kIGFkb3B0aW9uIGJ5IHJlcHV0YWJsZSBjb21wYW5pZXMgc3VjaCBhcyBQaW50ZXJlc3QsIENvdXJzZXJhLCBBaXJibmIsIGFuZCBGYWNlYm9vayBpdHNlbGYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBwb3N0LCB3ZSB3aWxsIGxlYXJuIGhvdyB0byBkZXBsb3kgYSBzaW1wbGUgR3JhcGhRTCBzZXJ2ZXIgd3JpdHRlbiBpbiBOb2RlLmpzIHRvIEhlcm9rdSB2aWEgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IChDSSkgcGlwZWxpbmUgdXNpbmcgQ2lyY2xlQ0kuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1ByZXJlcXVpc2l0ZXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUbyBmb2xsb3cgYWxvbmcgd2l0aCB0aGlzIHBvc3QsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhbHJlYWR5IHNldCB1cDombHQ7L3AmZ3Q7CiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL25vZGVqcy5vcmcvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlIC12Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsIHRvIHByaW50IG91dCB5b3VyIHZlcnNpb24gb2YgTm9kZS5qcyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdC1zY20uY29tLyZxdW90OyZndDtHaXQmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnaXQmbHQ7L2NvZGUmZ3Q7IG9uIHlvdXIgdGVybWluYWw7IHRoaXMgc2hvdWxkIHByaW50IG91dCBhdmFpbGFibGUgZ2l0IGNvbW1hbmRzKSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5oZXJva3UuY29tLyZxdW90OyZndDtIZXJva3UmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tLyZxdW90OyZndDtHaXRIdWImbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vc2lnbnVwLyZxdW90OyZndDtDaXJjbGVDSSZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDsjI1NjYWZmb2xkaW5nIHRoZSBHcmFwaFFMIHNlcnZlciBwcm9qZWN0ClRvIGJlZ2luIHNldHRpbmcgdXAgYSBHcmFwaFFMIHNlcnZlciwgY3JlYXRlIGEgbmV3IGZvbGRlciBmb3IgdGhlIHByb2plY3QgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtta2RpciBncmFwaHFsLXRlc3Qtc2VydmVyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7Tm93IGdvIGludG8gdGhlIHJvb3Qgb2YgdGhlIGZvbGRlciBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBzY2FmZm9sZCBhIG5ldyBOb2RlLmpzIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5pdCAteQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDtwJmd0O1RoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsteSZsdDsvY29kZSZndDsgb3B0aW9uYWwgZmxhZyBhbGxvd3MgeW91IHRvIHNraXAgY29uZmlybWluZyB0aGUgZGVmYXVsdCBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwYWNrYWdlLmpzb24mbHQ7L2NvZGUmZ3Q7IGZpbGUgYW5kIGp1c3QgYWNjZXB0cyB0aGVtLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGFyZSBnb2luZyB0byBjcmVhdGUgYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2V4cHJlc3Nqcy5jb20vJnF1b3Q7Jmd0O0V4cHJlc3NKUyZsdDsvYSZndDsgTm9kZS5qcyBhcHBsaWNhdGlvbiBhbmQgYnVpbGQgdGhlIEdyYXBoUUwgc2VydmVyLiBUbyBkbyB0aGlzLCB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIGZvbGxvd2luZyBwYWNrYWdlczombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2V4cHJlc3MmbHQ7L2NvZGUmZ3Q7OiB0byBjcmVhdGUgb3VyIEV4cHJlc3NKUyBOb2RlLmpzIGFwcGxpY2F0aW9uJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z3JhcGhxbCZsdDsvY29kZSZndDs6IHRoZSBHcmFwaFFMIG5wbSBwYWNrYWdlIGZvciBOb2RlLmpzJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OzogRXhwcmVzc0pTIG1pZGRsZXdhcmUgZm9yIEdyYXBoUUwmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbCB0aGVzZSBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBpbnN0YWxsIC0tc2F2ZSBleHByZXNzIGdyYXBocWwgZXhwcmVzcy1ncmFwaHFsCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIHRoZSByZXF1aXJlZCBwYWNrYWdlcyB0byBzdGFydCBwdXR0aW5nIHRvZ2V0aGVyIG91ciBHcmFwaFFMIHNlcnZlci4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgdGhlIEdyYXBoUUwgc2NoZW1hJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7Q3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bWtkaXIgc3JjCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1dpdGhpbiB0aGlzIGZvbGRlciwgY3JlYXRlIGEgbmV3IGZpbGUgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEuanMmbHQ7L2NvZGUmZ3Q7IGFuZCBwYXN0ZSBpbiB0aGUgY29kZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Owpjb25zdCB7IGJ1aWxkU2NoZW1hIH0gPSByZXF1aXJlKCZxdW90O2dyYXBocWwmcXVvdDspOwoKY29uc3Qgc2NoZW1hID0gYnVpbGRTY2hlbWEoYAogICAgdHlwZSBRdWVyeSB7CiAgICAgICAgdXNlcnM6IFtVc2VyIV0hLAogICAgICAgIHVzZXIoaWQ6IEludCEpOiBVc2VyIQogICAgfQoKICAgIHR5cGUgTXV0YXRpb24gewogICAgICAgIGVkaXRVc2VyKGlkOiBJbnQhLCBuYW1lOiBTdHJpbmchLCBlbWFpbDogU3RyaW5nISk6IFVzZXIhCiAgICB9CgogICAgdHlwZSBVc2VyIHsKICAgICAgICBpZDogSUQhCiAgICAgICAgbmFtZTogU3RyaW5nIQogICAgICAgIGVtYWlsOiBTdHJpbmcKICAgICAgICBwb3N0czogW1Bvc3QhXQogICAgfQoKICAgIHR5cGUgUG9zdCB7CiAgICAgICAgaWQ6IElEIQogICAgICAgIHRpdGxlOiBTdHJpbmchCiAgICAgICAgcHVibGlzaGVkOiBCb29sZWFuIQogICAgICAgIGxpbms6IFN0cmluZwogICAgfQpgKTsKCm1vZHVsZS5leHBvcnRzID0gc2NoZW1hOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBhYm92ZSBjb2RlLCB3ZSBoYXZlIGNyZWF0ZWQgZm91ciB0eXBlcywgY29uc2lzdGluZyBvZiB0d28gYnVpbHQtaW4gdHlwZXMgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7KSBhbmQgdHdvIGN1c3RvbSB0eXBlcyAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXNlciZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1Bvc3QmbHQ7L2NvZGUmZ3Q7KS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWdpbm5pbmcgd2l0aCB0aGUgY3VzdG9tIHR5cGVzLCB3ZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmc6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VyJmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHVzZXIgaW4gdGhlIGFwcGxpY2F0aW9uIHdpdGggaXRzIHJlc3BlY3RpdmUgZmllbGRzIGFuZCBhIHJlbGF0aW9uYWwgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cG9zdHMmbHQ7L2NvZGUmZ3Q7IGZpZWxkLCB3aGljaCByZXR1cm5zIGFuIGFycmF5IG9mIHBvc3RzIGNyZWF0ZWQgYnkgdGhlIHVzZXImbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQb3N0Jmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHB1YmxpY2F0aW9uIGNyZWF0ZWQgYnkgYSB1c2VyIGluIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGl0cyByZXNwZWN0aXZlIGZpZWxkcyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OzogaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyB0eXBlLCB3ZSBkZWZpbmVkIHR3byBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgcXVlcmllZCBmcm9tIG91ciBHcmFwaFFMIHNlcnZlciBhcyBmb2xsb3dzOgogICAgJmx0O3VsJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlcnMmbHQ7L2NvZGUmZ3Q7OiBhbiBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VycyZsdDsvY29kZSZndDsmbHQ7L2xpJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlciZsdDsvY29kZSZndDs6IGEgc2luZ2xlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1VzZXImbHQ7L2NvZGUmZ3Q7IHdpdGggdGhlIHNwZWNpZmllZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgaW4gdGhlIGFyZ3VtZW50cyBsaXN0Jmx0Oy9saSZndDsKICAgICZsdDsvdWwmZ3Q7CiAgJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7OiBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7IHR5cGUsIHdlIGRlZmluZWQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VkaXRVc2VyJmx0Oy9jb2RlJmd0OyBtdXRhdGlvbiwgd2hpY2gsIGdpdmVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgb2YgdGhlIHVzZXIsIGNhbiBiZSBjYWxsZWQgdG8gZWRpdCBhIHVzZXIgYW5kIHRoZW4gdXBkYXRlIHRoZSBpbmZvcm1hdGlvbiAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bmFtZSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VtYWlsJmx0Oy9jb2RlJmd0OykmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhlIHNjaGVtYSBpcyBjcmVhdGVkIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZFNjaGVtYSZsdDsvY29kZSZndDsgb2YgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dyYXBocWwmbHQ7L2NvZGUmZ3Q7IHBhY2thZ2UgYW5kIGV4cG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O01vY2tpbmcgZGF0YSZsdDsvaDImZ3Q7CiZsdDtwJmd0O0luIG9yZGVyIHRvIGhhdmUgcmVzdWx0cyBmb3Igb3VyIHF1ZXJpZXMsIHdlIG5lZWQgZGF0YS4gRm9yIHRoaXMgZXhlcmNpc2UsIHdlIHdpbGwgYmUgdXNpbmcgTW9uZ29EQi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIb3dldmVyLCBzaW5jZSB0aGUgZ29hbCBvZiB0aGlzIHBvc3QgaXMgdG8gZGVtb25zdHJhdGUgZGVwbG95aW5nIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyLCB3ZSB3b27igJl0IGJvdGhlciB3aXRoIHNldHRpbmcgdXAgYSBNb25nb0RCIHNlcnZlci4gSW5zdGVhZCwgd2Ugd2lsbCAgdXNlIGEgbW9ja2VkIHZlcnNpb24gdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O21vbmdvZGItbWVtb3J5LXNlcnZlciZsdDsvY29kZSZndDsuIFRoaXMgcGFja2FnZSBhbGxvd3MgdXMgdG8gY3JlYXRlIGFuZCB1c2UgYW4gaW4tbWVtb3J5IE1vbmdvREIgZGF0YWJhc2Ugc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHNldCB0aGlzIHVwLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhdCB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5zdGFsbCAtLXNhdmUgbW9uZ29kYiBtb25nb2RiLW1lbW9yeS1zZXJ2ZXIKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwombHQ7cCZndDtUaGlzIGluc3RhbGxhdGlvbiBtaWdodCB0YWtlIGEgd2hpbGUsIGRlcGVuZGluZyBvbiB5b3VyIGRvd25sb2FkIHNwZWVkLiBNb25nb0RCIHdhcyBhdCBsZWFzdCA2NiBtZWdhYnl0ZXMgaW4gc2l6ZSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhLmpzJmx0Oy9jb2RlJmd0OyBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3JjJmx0Oy9jb2RlJmd0OyBmb2xkZXIuIFRoaXMgZmlsZSB3aWxsIGV4cG9ydCBhbiBhcnJheSBvZiBoYXJkLWNvZGVkIHVzZXIgZGF0YS4gUGFzdGUgdGhlIGZvbGxvd2luZyBjb2RlIGJlbG93IGludG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBVc2VycyA9IFsKICB7CiAgICBpZDogMSwKICAgIG5hbWU6ICZxdW90O0Zpa2F5byBBZGVwb2p1JnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2ZpazRjaHJpc3RAeWFob28uY29tJnF1b3Q7LAogICAgcG9zdHM6IFsKICAgICAgewogICAgICAgIGlkOiAxLAogICAgICAgIHRpdGxlOiAmcXVvdDtDcmVhdGluZyBhbiBFbW9qaSBHYW1lIHdpdGggVnVlLCBBdXRoMCwgYW5kIEdvb2dsZSBWaXNpb24gQVBJJnF1b3Q7LAogICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSwKICAgICAgICBsaW5rOgogICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hdXRoMC5jb20vYmxvZy9jcmVhdGluZy1hbi1lbW9qaS1nYW1lLXdpdGgtdnVlLWF1dGgwLWFuZC1nb29nbGUtdmlzaW9uLWFwaS8mcXVvdDssCiAgICAgICAgYXV0aG9yOiAxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBpZDogMiwKICAgICAgICB0aXRsZTogJnF1b3Q7RWxlY3Ryb24gVHV0b3JpYWw6IEJ1aWxkaW5nIE1vZGVybiBEZXNrdG9wIEFwcHMgd2l0aCBWdWUuanMmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2F1dGgwLmNvbS9ibG9nL2VsZWN0cm9uLXR1dG9yaWFsLWJ1aWxkaW5nLW1vZGVybi1kZXNrdG9wLWFwcHMtd2l0aC12dWUtanMvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDMsCiAgICAgICAgdGl0bGU6ICZxdW90O1N0YXRlIE1hbmFnZW1lbnQgd2l0aCBWdWV4OiBhIFByYWN0aWNhbCBUdXRvcmlhbCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazoKICAgICAgICAgICZxdW90O2h0dHBzOi8vYXV0aDAuY29tL2Jsb2cvc3RhdGUtbWFuYWdlbWVudC13aXRoLXZ1ZXgtYS1wcmFjdGljYWwtdHV0b3JpYWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMiwKICAgIG5hbWU6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2pvaG5AY29tcGFueS5jb20mcXVvdDssCiAgICBwb3N0czogWwogICAgICB7CiAgICAgICAgaWQ6IDQsCiAgICAgICAgdGl0bGU6ICZxdW90O0J1aWxkIGEgQ0kgcG93ZXJlZCBSRVNUZnVsIEFQSSB3aXRoIExhcmF2ZWwmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2J1aWxkLWEtY2ktcG93ZXJlZC1yZXN0ZnVsLWFwaS13aXRoLWxhcmF2ZWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDUsCiAgICAgICAgdGl0bGU6ICZxdW90O0F1dG9tYXRlIHlvdXIgTnV4dC5qcyBhcHAgZGVwbG95bWVudCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazogJnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hdXRvbWF0ZS15b3VyLW51eHQtanMtYXBwLWRlcGxveW1lbnQvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMywKICAgIG5hbWU6ICZxdW90O0phbmUgUGF1bCZxdW90OywKICAgIGVtYWlsOiAmcXVvdDtqYW5lQGNvbXBhbnkuY29tJnF1b3Q7LAogICAgcG9zdHM6IFtdCiAgfQpdOwoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgVXNlcnMKfTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBjb2RlIGFib3ZlLCB3ZSBoYXZlIGFuIGFycmF5IG9mIHVzZXIgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgcG9zdHMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIHNlZWQgb3VyIGluLW1lbW9yeSBkYXRhYmFzZSBvbmNlIGl0IGlzIGluc3RhbnRpYXRlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCB0YXNrIGlzIHRvIHNldCB1cCBvdXIgbW9jayBNb25nb0RCIGRhdGFiYXNlIHNlcnZlci4gSW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhYmFzZS5qcyZsdDsvY29kZSZndDsgYW5kIGluc2VydCB0aGUgZm9sbG93aW5nIGNvZGUgaW50byB0aGUgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O01vbmdvTWVtb3J5U2VydmVyJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtyZXF1aXJlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtzMiZxdW90OyZndDsmcXVvdDttb25nb2RiLW1lbW9yeS1zZXJ2ZXImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O21vbmdvZGImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtjb25zdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bm8mcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90Oy4vZGF0YSZxdW90OyZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0Oyk7Jmx0Oy9zcGFuJmd0OwoKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7bGV0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDtudWxsJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXN5bmMmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7ZnVuY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25mJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoKSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDt7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7bmV3Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtNb25nb01lbW9yeVNlcnZlciZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygpOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtubyZxdW90OyZndDttb25nb0RCVVJMJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXdhaXQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7LiZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtnZXRDb25uZWN0aW9uU3RyaW5nJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3QmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvREJVUkwmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDssJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7CiAgICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDt1c2VOZXdVcmxQYXJzZXImbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs6Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDt0cnVlJmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSk7Jmx0Oy9zcGFuJmd0OwoKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtjMSZxdW90OyZndDsvL1NlZWQgRGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7CiAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtpZiZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7ISZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OykmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsKICAgICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RhdGFiYXNlJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RiJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbGxlY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O3VzZXJzJnF1b3Q7Jmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7aW5zZXJ0TWFueSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7VXNlcnMmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7CgogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7cmV0dXJuJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OzsmbHQ7L3NwYW4mZ3Q7CiZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vZHVsZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZXhwb3J0cyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtzdGFydERhdGFiYXNlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGNvZGUgYWJvdmUsIHdlIGV4cG9ydCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L2NvZGUmZ3Q7IGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBzdGFydHMgYSBuZXcgKG1vY2tlZCkgTW9uZ29EQiBzZXJ2ZXIgaW5zdGFuY2UgYW5kIGdldHMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuIEl0IHRoZW4gY3JlYXRlcyBhIG5ldyBNb25nb0RCIGNsaWVudCBjb25uZWN0aW9uIHVzaW5nIHRoZSBjb25uZWN0aW9uIHN0cmluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwgd2Ugc2VlZCBpdCB3aXRoIG91ciB1c2VyIGRhdGEgZXhwb3J0ZWQgZnJvbSBvdXIgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZGF0YS5qcyZsdDsvY29kZSZndDsgZmlsZS4gQSBjaGVjayBpcyBtYWRlIHRvIHNlZSBpZiB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIGlzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O251bGwmbHQ7L2NvZGUmZ3Q7IGJlZm9yZSBzZWVkaW5nIGl0IHdpdGggZGF0YSwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBmcm9tIGJlaW5nIGVudGVyZWQgaW50byB0aGUgZGF0YWJhc2UgZWFjaCB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdXAuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGRhdGFiYXNlIHJlZmVyZW5jZS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgb3VyIHJlc29sdmVycyZsdDsvaDImZ3Q7CiZsdDtwJmd0O05leHQgdXAsIHdlIG5lZWQgdG8gZGVmaW5lIHJlc29sdmVycyBmb3Igb3VyIEdyYXBoUUwgcXVlcmllcyBpbiBvcmRlciB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGRhdGEgZm9yIGVhY2ggcXVlcnkgb3BlcmF0aW9uLiBXZSB3aWxsIGRlZmluZSByZXNvbHZlcnMgZm9yIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt1c2VycyZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3VzZXImbHQ7L2NvZGUmZ3Q7IHF1ZXJpZXMgYW5kIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtlZGl0VXNlciZsdDsvY29kZSZndDsgbXV0YXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Jlc29sdmVycy5qcyZsdDsvY29kZSZndDsgYW5kIHBhc3RlIGluIHRoZSBmb2xsb3dpbmcgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IHJlc29sdmVycyA9IHsKICB1c2VyczogYXN5bmMgKF8sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIKICAgICAgLmNvbGxlY3Rpb24oJnF1b3Q7dXNlcnMmcXVvdDspCiAgICAgIC5maW5kKCkKICAgICAgLnRvQXJyYXkoKTsKICB9LAogIHVzZXI6IGFzeW5jICh7IGlkIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIuY29sbGVjdGlvbigmcXVvdDt1c2VycyZxdW90OykuZmluZE9uZSh7IGlkIH0pOwogIH0sCiAgLy9NdXRhdGlvbiByZXNvbHZlcnMKICBlZGl0VXNlcjogYXN5bmMgKHsgaWQsIG5hbWUsIGVtYWlsIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CgogICAgcmV0dXJuIGRiCiAgICAgIC5jb2xsZWN0aW9uKCZxdW90O3VzZXJzJnF1b3Q7KQogICAgICAuZmluZE9uZUFuZFVwZGF0ZSgKICAgICAgICB7IGlkIH0sCiAgICAgICAgeyAkc2V0OiB7IG5hbWUsIGVtYWlsIH0gfSwKICAgICAgICB7IHJldHVybk9yaWdpbmFsOiBmYWxzZSB9CiAgICAgICkKICAgICAgLnRoZW4ocmVzcCA9JmFtcDtndDsgcmVzcC52YWx1ZSk7CiAgfSAKfTsKCm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZXJzOwoKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgc2VlbiBhYm92ZSwgd2Ugbm93IGhhdmUgcmVzb2x2ZXJzIGZvciB0aGUgdGhyZWUgR3JhcGhRTCByZXF1ZXN0cyBhdmFpbGFibGUgb24gb3VyIHNlcnZlci4gVGhlc2UgcmVzb2x2ZXJzIGZldGNoIGFuZCB1cGRhdGUgZGF0YSB1c2luZyB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIHdlIGNyZWF0ZWQgZWFybGllciBieSByZWZlcmVuY2luZyBpdCBmcm9tIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb250ZXh0Jmx0Oy9jb2RlJmd0OyBvYmplY3Qgb2YgdGhlIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgcmVmZXJlbmNlIHdpbGwgYmUgYWRkZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbnRleHQmbHQ7L2NvZGUmZ3Q7IG9iamVjdCBvZiBvdXIgR3JhcGhRTCBzZXJ2ZXIgc2V0dXAgaW4gdGhlIG5leHQgc2VjdGlvbiB3aGVuIHdlIHB1dCBldmVyeXRoaW5nIHRvZ2V0aGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTZXR0aW5nIHVwIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O0l0IGlzIHRpbWUgdG8gcHV0IGV2ZXJ5IGNvbXBvbmVudCB3ZSBidWlsdCB0b2dldGhlciB0byBzZXQgdXAgb3VyIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlZm9yZSB3ZSBiZWdpbiwgd2UgbmVlZCB0byBpbnN0YWxsIG9uZSBtb3JlIHBhY2thZ2UuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIGNvbWVzIHdpdGggdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0dyYXBoaVFMJmx0Oy9jb2RlJmd0OyBhcHBsaWNhdGlvbiwgd2hpY2ggYWxsb3dzIHlvdSB0byBxdWVyeSB5b3VyIEdyYXBoUUwgZW5kcG9pbnQsIGJ1dCBsZXTigJlzIGFkZCBhIHRvb2wgdGhhdCBpcyBtb3JlIHJvYnVzdC4gV2Ugd2lsbCBpbnN0YWxsIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIHRvIGdpdmUgdXMgYSBmYW5jaWVyIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgb3VyIEdyYXBoUUwgZW5kcG9pbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSBmb2xsb3dpbmcgY29kZSB0byBpbnN0YWxsIHRoZSBwYWNrYWdlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGluc3RhbGwgLS1zYXZlIGdyYXBocWwtcGxheWdyb3VuZC1taWRkbGV3YXJlLWV4cHJlc3MKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7V2Ugd2lsbCB1c2UgdGhpcyBtaWRkbGV3YXJlIHRvIHNldCB1cCB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kIGZvciBxdWVyeWluZyBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0xldOKAmXMgc2V0IHVwIG91ciBzZXJ2ZXIgYnkgY3JlYXRpbmcgYSBmaWxlIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2luZGV4LmpzJmx0Oy9jb2RlJmd0OyBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBhbmQgcGxhY2luZyB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBleHByZXNzID0gcmVxdWlyZSgmcXVvdDtleHByZXNzJnF1b3Q7KTsKY29uc3QgZ3JhcGhxbEhUVFAgPSByZXF1aXJlKCZxdW90O2V4cHJlc3MtZ3JhcGhxbCZxdW90Oyk7CmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoJnF1b3Q7Li9zcmMvc2NoZW1hJnF1b3Q7KTsKY29uc3QgcmVzb2x2ZXJzID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9yZXNvbHZlcnMmcXVvdDspOwpjb25zdCBzdGFydERhdGFiYXNlID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9kYXRhYmFzZSZxdW90Oyk7CmNvbnN0IGV4cHJlc3NQbGF5Z3JvdW5kID0gcmVxdWlyZSgmcXVvdDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJnF1b3Q7KS5kZWZhdWx0OwoKLy8gQ3JlYXRlIGEgY29udGV4dCBmb3IgaG9sZGluZyBjb250ZXh0dWFsIGRhdGEgCmNvbnN0IGNvbnRleHQgPSBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IGRiID0gYXdhaXQgc3RhcnREYXRhYmFzZSgpOwoKICByZXR1cm4geyBkYiB9Owp9OwoKY29uc3QgYXBwID0gZXhwcmVzcygpOwoKYXBwLnVzZSgKICAmcXVvdDsvZ3JhcGhxbCZxdW90OywKICBncmFwaHFsSFRUUCh7CiAgICBzY2hlbWEsCiAgICByb290VmFsdWU6IHJlc29sdmVycywKICAgIGNvbnRleHQKICB9KQopOwoKLy9HcmFwaHFsIFBsYXlncm91bmQgcm91dGUKYXBwLmdldCgmcXVvdDsvcGxheWdyb3VuZCZxdW90OywgZXhwcmVzc1BsYXlncm91bmQoeyBlbmRwb2ludDogJnF1b3Q7L2dyYXBocWwmcXVvdDsgfSkpOwoKY29uc3QgcG9ydCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgJnF1b3Q7NDAwMCZxdW90OzsKCmFwcC5saXN0ZW4ocG9ydCk7Cgpjb25zb2xlLmxvZyhg8J+agCBTZXJ2ZXIgcmVhZHkgYXQgaHR0cDovL2xvY2FsaG9zdDo0MDAwL2dyYXBocWxgKTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBmaWxlIGFib3ZlLCB3ZSBzdGFydCBieSBpbXBvcnRpbmcgYWxsIG5lY2Vzc2FyeSBtb2R1bGVzLiBUaGVuLCB3ZSBjcmVhdGUgb3VyIEdyYXBoUUwgY29udGV4dCBhbmQgcmV0dXJuIGFuIG9iamVjdCBmcm9tIGl0IGNvbnRhaW5pbmcgdGhlIHJlZmVyZW5jZSB0byBvdXIgTW9uZ29EQiBpbnN0YW5jZS4gTmV4dCwgd2UgY3JlYXRlIG91ciBFeHByZXNzSlMgYXBwbGljYXRpb24gYW5kIHNldCB1cCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OyBtaWRkbGV3YXJlIHdpdGggR3JhcGhRTCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEmbHQ7L2NvZGUmZ3Q7LCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtyZXNvbHZlcnMmbHQ7L2NvZGUmZ3Q7LCBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29udGV4dCZsdDsvY29kZSZndDsuIFdlIHRoZW4gc2V0IHVwIHRoZSBHcmFwaFFMIFBsYXlncm91bmQgYXQgdGhlIHJvdXRlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBsb2FkIG91ciBHcmFwaFFMIGVuZHBvaW50LiBGaW5hbGx5LCB3ZSBzdGFydCBvdXIgRXhwcmVzc0pTIHNlcnZlciB0byBsaXN0ZW4gYXQgcG9ydCA0MDAwIGFuZCBwcmludCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1F1ZXJ5aW5nIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O05vdyB0aGF0IHdlIGhhdmUgb3VyIHNlcnZlciBzZXQgdXAsIGxldOKAmXMgdGFrZSBpdCBmb3IgYSBzcGluLiBGaXJzdCwgbGV04oCZcyBjcmVhdGUgYSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzdGFydCZsdDsvY29kZSZndDsgc2NyaXB0IGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3BhY2thZ2UuanNvbiZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHNjcmlwdCB0byB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2NyaXB0cyZsdDsvY29kZSZndDsgc2VjdGlvbiBvZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Li4uCgrigJxzY3JpcHRz4oCdIDogewoJLi4uLAoJ4oCcc3RhcnTigJ0gOiDigJxub2RlIGluZGV4Lmpz4oCdCn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25wbSBzdGFydCZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCB0aGUgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNlcnZlciBpcyB1cCBhbmQgcnVubmluZywgb3BlbiB1cCB5b3VyIGJyb3dzZXIgYW5kIHZpc2l0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMC9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBvcGVuIHVwIHRoZSBwbGF5Z3JvdW5kLiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDEucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgcGxheWdyb3VuZCBhdXRvbWF0aWNhbGx5IHBvaW50cyB0byBvdXIgR3JhcGhRTCBlbmRwb2ludC4gRnJvbSBoZXJlIHdlIGNhbiB3cml0ZSBxdWVyaWVzIGFnYWluc3Qgb3VyIGVuZHBvaW50IGFuZCBnZXQgdGhlIHJlc3VsdHMuIFBhc3RlIHRoZSBxdWVyeSBiZWxvdyBpbnRvIHRoZSBxdWVyeSBzZWN0aW9uIG9mIHRoZSBwbGF5Z3JvdW5kIGFuZCBoaXQgUGxheSB0byBydW4gaXQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt7CiAgdXNlcnMgewogICAgbmFtZQogICAgZW1haWwKICAgIHBvc3RzIHsKICAgICAgdGl0bGUKICAgICAgcHVibGlzaGVkCiAgICB9CiAgfQp9CgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtSdW5uaW5nIHRoZSBhYm92ZSBxdWVyeSB3aWxsIHByb2R1Y2UgdGhlIHJlc3VsdCBzaG93biBvbiB0aGUgc2NyZWVuIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsMi5wbmcmcXVvdDsgd2lkdGg9JnF1b3Q7ODc1JnF1b3Q7IC8mZ3Q7CiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIHNlZW4gYWJvdmUsIG91ciBHcmFwaFFMIHNlcnZlciBpcyB3b3JraW5nIGZpbmUgYW5kIHJldHVybmluZyB0aGUgZXhwZWN0ZWQgZGF0YS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRvIEhlcm9rdSB3aXRoIENpcmNsZUNJJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7T3VyIGZpbmFsIHRhc2sgaXMgdG8gZGVwbG95IG91ciBHcmFwaFFMIHNlcnZlciB0aHJvdWdoIGEgQ0kgcGlwZWxpbmUgd2l0aCBDaXJjbGVDSSBvbiB0aGUgSGVyb2t1IGhvc3RpbmcgcGxhdGZvcm0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2UgYXJlIGdvaW5nIHRvIHRha2UgdGhlIGZvbGxvd2luZyBzdGVwcyB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7UHVzaCB0aGUgcHJvamVjdCB0byBhIEdpdEh1YiByZXBvc2l0b3J5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgbmV3IEhlcm9rdSBhcHAgYW5kIGdldCB0aGUgSGVyb2t1IEFQSSBrZXkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgYSBuZXcgcHJvamVjdCB0byBvdXIgQ2lyY2xlQ0kgYWNjb3VudCBhbmQgY29ubmVjdCBpdCB0byB0aGUgR2l0SHViIHJlcG8mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgb3VyIEhlcm9rdSBhcHAgbmFtZSBhbmQgQVBJIGtleSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gb3VyIG5ldyBwcm9qZWN0Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7V3JpdGUgb3VyIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgZGVwbG95bWVudCB0byBIZXJva3UmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIHRoZSBjb25maWd1cmF0aW9uIHRvIG91ciBHaXRIdWIgcmVwbyB0byBkZXBsb3kgdG8gSGVyb2t1Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0xldOKAmXMgYmVnaW4uIEZpcnN0LCBwdXNoIHRoZSBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG8uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY3JlYXRlIGEgSGVyb2t1IGFwcGxpY2F0aW9uIGFzIHNob3duIGJlbG93LiBUaGUgbmFtZSB5b3UgZW50ZXIgaXMgdGhlIG5hbWUgeW91IHdpbGwgc2F2ZSBhcyB5b3VyIEhlcm9rdSBhcHAgbmFtZSBvbiBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWwzLnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7WW91IGNhbiBnZXQgeW91ciBIZXJva3UgQVBJIGtleSBieSBnb2luZyB0byAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgYW5kIHNjcm9sbGluZyBkb3duIHRvIHRoZSAmbHQ7c3Ryb25nJmd0O0FQSSBLZXkmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIHRvIGRlcGxveWluZyBvdXIgYXBwbGljYXRpb24gdG8gSGVyb2t1IGlzIHRvIGNvbm5lY3QgdGhlIGFwcGxpY2F0aW9uIG9uIG91ciBHaXRIdWIgcmVwb3NpdG9yeSB0byBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIZWFkIHRvIHlvdXIgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9kYXNoYm9hcmQmcXVvdDsmZ3Q7Q2lyY2xlQ0kgZGFzaGJvYXJkJmx0Oy9hJmd0OyBhbmQgYWRkIHRoZSBwcm9qZWN0IGluIHRoZSAmbHQ7c3Ryb25nJmd0O0FkZCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7IHNlY3Rpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsNC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCAoaW4gdGhpcyBjYXNlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NpbXBsZS1ncmFwaHFsLW5vZGUtc2VydmVyJmx0Oy9jb2RlJmd0OyksIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0IFVwIFByb2plY3QmbHQ7L3N0cm9uZyZndDsuIFRoaXMgd2lsbCBicmluZyB5b3UgdG8gYSBwYWdlIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDUucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IGJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIHByb2plY3QuIFRoaXMgd2lsbCBpbW1lZGlhdGVseSBnaXZlIHVzIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCBhIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIHByb2plY3QuIFRoaXMgaXMgdW5kZXJzdGFuZGFibGUsIGFzIHdlIGFyZSB5ZXQgdG8gaW5jbHVkZSBvdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlLiBXZSB3aWxsIGJlIGRvaW5nIHRoYXQgbGF0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIG5leHQgc3RlcCBpcyB0byBhZGQgb3VyIEhlcm9rdSBkZXRhaWxzIGFzICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wL2Vudi12YXJzLyZxdW90OyZndDtlbnZpcm9ubWVudCB2YXJpYWJsZXMmbHQ7L2EmZ3Q7IHRvIHRoZSBuZXdseSBzZXQgdXAgcHJvamVjdC4KSW4gb3JkZXIgdG8gcHVzaCBvdXIgcHJvamVjdCB0byBIZXJva3UgZnJvbSBDaXJjbGVDSSwgd2UgbmVlZCB0byBjb25maWd1cmUgYW4gYXV0aGVudGljYXRlZCBoYW5kc2hha2UgYmV0d2VlbiBDaXJjbGVDSSBhbmQgSGVyb2t1LiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcgdHdvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgc2V0dGluZ3MgZm9yIHlvdXIgQ2lyY2xlQ0kgcHJvamVjdC4gVGhlIHR3byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtIRVJPS1VfQVBQX05BTUUmbHQ7L2NvZGUmZ3Q7OiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIChpbiB0aGlzIGNhc2UgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2ltcGxlLWdyYXBocWwtbm9kZS1zZXJ2ZXImbHQ7L2NvZGUmZ3Q7KSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OzogWW91ciBIZXJva3UgYWNjb3VudCBBUEkga2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBvbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50Jmx0Oy9zdHJvbmcmZ3Q7IHRhYiBvZiB5b3VyIEhlcm9rdSBhY2NvdW50IHVuZGVyICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VG8gYWRkIHRoZXNlIGRldGFpbHMsIGhlYWQgb3ZlciB0byB5b3VyIENpcmNsZUNJIGRhc2hib2FyZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBmb3IgeW91ciBwcm9qZWN0LiBPbiB0aGUgc2lkZWJhciBtZW51IG9uIHRoZSBzZXR0aW5ncyBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O0Vudmlyb25tZW50IFZhcmlhYmxlcyZsdDsvc3Ryb25nJmd0OyB1bmRlciAmbHQ7c3Ryb25nJmd0O0J1aWxkIFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDYucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIHBhZ2UsIGNyZWF0ZSB0d28gdmFyaWFibGVzIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OyBhbmQgYWRkIHRoZSByZXNwZWN0aXZlIHZhbHVlcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZXNlIGluIHBsYWNlLCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBjYW4gdXNlIHRoZW0gdG8gbWFrZSBhdXRoZW50aWNhdGVkIGRlcGxveW1lbnRzIHRvIHRoZSBIZXJva3UgcGxhdGZvcm0uCk5vdywgbGV04oCZcyB3cml0ZSBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyIHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtDcmVhdGUgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsuY2lyY2xlY2kmbHQ7L2NvZGUmZ3Q7IGF0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCBhbmQgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgaXQuIEFkZCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uJmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpvcmJzOgogIGhlcm9rdTogY2lyY2xlY2kvaGVyb2t1QDAuMC4xMAp3b3JrZmxvd3M6CiAgaGVyb2t1X2RlcGxveToKICAgIGpvYnM6CiAgICAgIC0gaGVyb2t1L2RlcGxveS12aWEtZ2l0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7VGhlIGNvZGUgYWJvdmUgdXNlcyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7SGVyb2t1IG9yYiZsdDsvYSZndDsgdG8gcGVyZm9ybSBhIHNlYW1sZXNzIGRlcGxveW1lbnQgdG8gSGVyb2t1LiBBbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYiZsdDsvYSZndDsgaXMgYSByZXVzYWJsZSBwYWNrYWdlIG9mIGEgWUFNTCBjb25maWd1cmF0aW9uIHRoYXQgY29uZGVuc2VzIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoaXMgb25lIG1ha2VzIGl0IHZlcnkgZWFzeSB0byBkZXBsb3kgdG8gSGVyb2t1IHdpdGhvdXQgd3JpdGluZyBhIHNvcGhpc3RpY2F0ZWQgY29uZmlnIHlvdXJzZWxmLiZsdDsvcCZndDsKCiZsdDtwJmd0O1NhdmUgdGhpcyBmaWxlIGFuZCBwdXNoIHlvdXIgY2hhbmdlcyB0byB0aGUgR2l0SHViIHJlcG9zaXRvcnkuIFRoZW4gd2F0Y2ggeW91ciBDaXJjbGVDSSBkYXNoYm9hcmQgdHJpZ2dlciBhIGRlcGxveW1lbnQgYWZ0ZXIgdGhlIHN1Y2Nlc3NmdWwgcHVzaC4gWW91IHdpbGwgc2VlIGEgc3VjY2Vzc2Z1bCBkZXBsb3ltZW50IG9uIHlvdXIgZGFzaGJvYXJkIHNpbWlsYXIgdG8gdGhlIHNjcmVlbiBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWw3LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXdlc29tZSEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXTigJlzIG5vdyB2aXNpdCBvdXIgUGxheWdyb3VuZCBvbiB0aGUgbGl2ZSBhcHBsaWNhdGlvbiB0byBjb25maXJtIHRoYXQgb3VyIGRlcGxveW1lbnQgaXMgZmluZS4gVmlzaXQgdGhlIGxpbmsgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9ZT1VSX0hFUk9LVV9BUFBfTkFNRS5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7LiBGb3Igb3VyIGV4ZXJjaXNlLCB0aGlzIHdpbGwgYmUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9zaW1wbGUtZ3JhcGhxbC1ub2RlLXNlcnZlci5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7IGFzIHNlZW4gYmVsb3cuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsOC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SW4gdGhpcyBhcnRpY2xlLCB3ZSBoYXZlIGJlZW4gYWJsZSB0byBzdWNjZXNzZnVsbHkgcHV0IHRvZ2V0aGVyIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyIGFuZCBhdXRvbWF0ZSBpdHMgZGVwbG95bWVudCB1c2luZyBDaXJjbGVDSS4gR3JhcGhRTCBpcyBoZXJlIHRvIHN0YXkgYW5kIGlzIGV4cGVjdGVkIHRvIGdhaW4gbW9yZSBhZG9wdGlvbiwgc2luY2UgaXRzIG1hbnkgYmVuZWZpdHMgbWFrZSBpdCB3b3J0aHkgb2YgaW5jcmVhc2VkIHVzZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIYXBweSBjb2RpbmchJmx0Oy9wJmd0OwoKJmx0O2hyIC8mZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Eb2NrZXIgYW5kIENJL0NEIHR1dG9yaWFsOiBhIGRlZXAgZGl2ZSBpbnRvIGNvbnRhaW5lcnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZG9ja2VyLWFuZC1jaWNkLXR1dG9yaWFsLWEtZGVlcC1kaXZlLWludG8tY29udGFpbmVycy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+RnJpLCAyNCBBcHIgMjAyMCAxMjowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9kb2NrZXItYW5kLWNpY2QtdHV0b3JpYWwtYS1kZWVwLWRpdmUtaW50by1jb250YWluZXJzLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkFuZ2VsIFJpdmVyYTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtUaGlzIGlzIGEgZm9sbG93LXVwIHRvIGEgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7IHRoYXQgSSB3cm90ZSBhZnRlciBDaXJjbGVDSSAyLjAgd2FzIHJlbGVhc2VkLiBUaGlzIHJlbGVhc2UgaW1wbGVtZW50ZWQgYnVpbGQgc3VwcG9ydCB1c2luZyBEb2NrZXIgZXhlY3V0b3JzLiBBZnRlciB0aGUgcmVsZWFzZSwgd2UgcmVhbGl6ZWQgdGhhdCBvbmUgb2YgdGhlIGJpZ2dlc3QgYmFycmllcnMgdGhhdCBDaXJjbGVDSSB1c2VycyBlbmNvdW50ZXJlZCB3YXMgYSBsYWNrIG9mIGV4cGVyaWVuY2Ugd2l0aCBEb2NrZXIuIFRoaXMgd2FzIGNvbmZpcm1lZCB0aHJvdWdoIG15IGNvbnZlcnNhdGlvbnMgd2l0aCBudW1lcm91cyBkZXZlbG9wZXJzLCBpbiB0aGUgY29tbXVuaXR5IGFuZCBhdCBldmVudHMsIGFib3V0IHRoZWlyIHVzZSBvZiBjb250YWluZXIgdGVjaG5vbG9naWVzIGluIHRoZWlyICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmVzLiBUaGVzZSBjb252ZXJzYXRpb25zIGhhdmUgaGlnaGxpZ2h0ZWQgdGhhdCBtYW55IGRldmVsb3BlcnMgZG9u4oCZdCBoYXZlIGEgZnVsbCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byB1c2UgY29udGFpbmVyIHRlY2hub2xvZ2llcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgd2lsbCBleHBhbmQgb24gYW5kIGRlbW9uc3RyYXRlIHNvbWUgb2YgdGhlIG1vcmUgdXNlZnVsIERvY2tlciBjb21tYW5kcyBkaXNjdXNzZWQgaW4gbXkgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtXaGF0IGlzIERvY2tlcj8mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZSBpcyB0aGUgc2ltcGxpZmllZCBkZWZpbml0aW9uIG9mIERvY2tlciB0aGF0IEkgdXNlZCBpbiBteSBwcmV2aW91cyBwb3N0OiZsdDsvcCZndDsKCiZsdDtibG9ja3F1b3RlJmd0OwogICZsdDtwJmd0O0RvY2tlciBpcyBhIHBsYXRmb3JtIGZvciBkZXZlbG9wZXJzIGFuZCBzeXNhZG1pbnMgdG8gZGV2ZWxvcCwgZGVwbG95LCBhbmQgcnVuIGFwcGxpY2F0aW9ucyB1c2luZyBjb250YWluZXJzLiZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7RG9ja2VyIGlzIGFsc28gcmVmZXJyZWQgdG8gYXMgYW4gYXBwbGljYXRpb24gcGFja2FnaW5nIHRvb2wgdGhhdCBlbmFibGVzIGFwcGxpY2F0aW9ucyB0byBiZSBjb25maWd1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZC8jaW1hZ2VzLWFuZC1jb250YWluZXJzJnF1b3Q7Jmd0O0RvY2tlciBpbWFnZSZsdDsvYSZndDsgdGhhdCBjYW4gYmUgdXNlZCB0byBzcGF3biAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyNpbWFnZXMtYW5kLWNvbnRhaW5lcnMmcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IHRoYXQgcnVuIGluc3RhbmNlcyBvZiB0aGUgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIG1hbnkgYmVuZWZpdHMgaW5jbHVkaW5nIHJ1bnRpbWUgZW52aXJvbm1lbnQgaXNvbGF0aW9uLCBjb25zaXN0ZW5jeSB2aWEgY29kZSwgYW5kIHBvcnRhYmlsaXR5LiBEb2NrZXIgY29udGFpbmVycyBjYW4gcnVuIG9uIGFueSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgc3VwcG9ydHMgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZW5naW5lJnF1b3Q7Jmd0O0RvY2tlciBFbmdpbmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtCYXNpYyBEb2NrZXIgdGVybWlub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZeKAmXMgYSBsaXN0IG9mIGJhc2ljIERvY2tlciBjb21tYW5kcyBhbmQgdGVybXMgd2l0aCBsaW5rcyB0byBtb3JlIGluZm9ybWF0aW9uLiBUaGVzZSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgRG9ja2VyIGFuZCBjb250cm9sIHRoZSBleGVjdXRvci4gVGhlIGNvbW1hbmRzIGNhbiBiZSBydW4gbG9jYWxseSBvbiBhbnkgY29tcHV0ZXIgdGhhdCBoYXMgdGhlIERvY2tlciBlbmdpbmUgaW5zdGFsbGVkLiZsdDsvcCZndDsKCiZsdDtoMyZndDtCdWlsZGluZyBEb2NrZXIgaW1hZ2VzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBhIHRleHQgZG9jdW1lbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNvbW1hbmRzIGEgdXNlciBjb3VsZCBjYWxsIG9uIHRoZSBjb21tYW5kIGxpbmUgdG8gYXNzZW1ibGUgYW4gaW1hZ2UuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBEb2NrZXJmaWxlIGlzIGEgYmx1ZXByaW50IGZvciBidWlsZGluZyBEb2NrZXIgaW1hZ2VzLiBEb2NrZXJmaWxlIHRlbXBsYXRlcyBob2xkIGVsZW1lbnRzIHN1Y2ggYXMgdGhlIGJhc2Ugb3BlcmF0aW5nIHN5c3RlbSBpbWFnZSB1c2VkIGFzIGEgZm91bmRhdGlvbiwgZXhlY3V0aW9uIGNvbW1hbmRzIHRoYXQgaW5zdGFsbC9jb25maWd1cmUgZGVwZW5kZW5jaWVzLCBhbmQgY29weSBjb21tYW5kcyB0aGF0IHB1c2ggbG9jYWwgc291cmNlIGNvZGUgb3IgYXJ0aWZhY3RzIGludG8gdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBEb2NrZXJmaWxlIGZvciBhIHNpbXBsZSBOb2RlLmpzIGFwcGxpY2F0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7RlJPTSBub2RlOjEwCgojIENyZWF0ZSBhcHAgZGlyZWN0b3J5CldPUktESVIgL3Vzci9zcmMvYXBwCgojIEluc3RhbGwgYXBwIGRlcGVuZGVuY2llcwojIEEgd2lsZGNhcmQgaXMgdXNlZCB0byBlbnN1cmUgYm90aCBwYWNrYWdlLmpzb24gQU5EIHBhY2thZ2UtbG9jay5qc29uIGFyZSBjb3BpZWQKIyB3aGVyZSBhdmFpbGFibGUgKG5wbUA1KykKQ09QWSBwYWNrYWdlKi5qc29uIC4vCgpSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIyBJZiB5b3UgYXJlIGJ1aWxkaW5nIHlvdXIgY29kZSBmb3IgcHJvZHVjdGlvbgojIFJVTiBucG0gaW5zdGFsbCAtLW9ubHk9cHJvZHVjdGlvbgoKIyBCdW5kbGUgYXBwIHNvdXJjZQpDT1BZIC4gLgoKRVhQT1NFIDUwMDAKQ01EIFsgJnF1b3Q7bnBtJnF1b3Q7LCAmcXVvdDtzdGFydCZxdW90OyBdCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2ltYWdlcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7IGxpc3RzIERvY2tlciBpbWFnZXMgZm91bmQgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gbGlzdCBhbGwgb2YgdGhlIERvY2tlciBpbWFnZXMgYW5kIHJlbGF0ZWQgZGF0YSB0aGF0IGN1cnJlbnRseSBleGlzdCBvbiB0aGUgbG9jYWwgbWFjaGluZS4gSXTigJlzIGNvbXBhcmFibGUgdG8gYSBsaW51eCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtscyZsdDsvY29kZSZndDsgb3Igd2luZG93cyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkaXImbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdXNlZCB0byBzaG93IHRoZSBjb250ZW50cyBvZiBkaXJlY3RvcmllcyBpbiBhIHRlcm1pbmFsLiBUaGlzIGNvbW1hbmQgaXMgdmVyeSB1c2VmdWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRvIG1hbmFnZSwgbWFpbnRhaW4sIGFuZCBidWlsZCBEb2NrZXIgaW1hZ2VzIGxvY2FsbHkuIEJlbG93IGlzIGFuIGV4YW1wbGUgcmVzdWx0IG9mIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgZXhlY3V0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UkVQT1NJVE9SWSAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHICAgICAgICAgICAgICAgICBJTUFHRSBJRCAgICAgICAgICAgIENSRUFURUQgICAgICAgICAgICAgU0laRQphcml2M3JhL25vZGVqcy1jaXJjbGVjaSAgICAgICAgICAgICBsYXRlc3QgICAgICAgICAgICAgIGY0MTllNGE2YjFiOCAgICAgICAgMTEgZGF5cyBhZ28gICAgICAgICA5NDNNQgpub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAgICAgICAgICAgICAgICAgIDAxYjgxNjA1MWQzNCAgICAgICAgMiB3ZWVrcyBhZ28gICAgICAgICA5MTFNQgpjaXJjbGVjaS9weXRob24gICAgICAgICAgICAgICAgICAgICAzLjcuNiAgICAgICAgICAgICAgIDBkMjk3NTg5NmM3MyAgICAgICAgNSB3ZWVrcyBhZ28gICAgICAgICAxLjQzR0IKYXJpdjNyYS9pbmZyYXN0cnVjdHVyZS1hcy1jb2RlMTAxICAgbGF0ZXN0ICAgICAgICAgICAgICBjYjIxYTM2YTI5NzMgICAgICAgIDggd2Vla3MgYWdvICAgICAgICAgOTI5TUIKcHl0aG9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43LjYgICAgICAgICAgICAgICA4NzkxNjU1MzVhNTQgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgOTE5TUIKY2lyY2xlY2kvcnVzdCAgICAgICAgICAgICAgICAgICAgICAgMS1idXN0ZXIgICAgICAgICAgICAyMTgzMjliOTI5Y2YgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgMS42OEdCCnJ1c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtYnVzdGVyICAgICAgICAgICAgZjVmZGUwOTJhMWNkICAgICAgICAyIG1vbnRocyBhZ28gICAgICAgIDEuMTlHQgpweXRob24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcuNCAgICAgICAgICAgICAgIDlmYTU2ZDBhZGRhZSAgICAgICAgNiBtb250aHMgYWdvICAgICAgICA5MThNQgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGJ1aWxkIC10ICZhbXA7bHQ7aW1hZ2UgbmFtZSZhbXA7Z3Q7IC4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBjcmVhdGVzIGEgRG9ja2VyIGltYWdlIHdpdGggYSB0YWcgdXNpbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LXQmbHQ7L2NvZGUmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhYm92ZSBjb21tYW5kLCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgdmFsaWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDssIGJ1aWxkcyBhIERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgZXhlY3V0aW9uIGNvbW1hbmRzIGRlZmluZWQgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7LiBPbmUgY3JpdGljYWwgZWxlbWVudCB0byBidWlsZGluZyBpbWFnZXMgYW5kIHN0YXJ0aW5nIGNvbnRhaW5lcnMgaXMgdW5kZXJzdGFuZGluZyB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9hJmd0Oy4gQnVpbGRpbmcgRG9ja2VyIGltYWdlcyB1c2luZyB0aGlzIGNvbW1hbmQgc3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIERvY2tlciBpbWFnZXMgdXRpbGl6ZXMgYSBuYW1pbmcgY29udmVudGlvbiBtYWRlIHVwIG9mIHNsYXNoLXNlcGFyYXRlZCBuYW1lIGNvbXBvbmVudHMgdGhhdCBtYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgc2VwYXJhdG9ycy4gQSBzZXBhcmF0b3IgaXMgZGVmaW5lZCBhcyBhIHBlcmlvZCwgb25lIG9yIHR3byB1bmRlcnNjb3Jlcywgb3Igb25lIG9yIG1vcmUgZGFzaGVzLiBBIG5hbWUgY29tcG9uZW50IG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggYSBzZXBhcmF0b3IuIEEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7ZG9ja2VyIHRhZyZsdDsvYSZndDsgbmFtZSBtdXN0IGJlIHZhbGlkIEFTQ0lJIGFuZCBtYXkgY29udGFpbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHVuZGVyc2NvcmVzLCBwZXJpb2RzLCBhbmQgZGFzaGVzLiBBIHRhZyBuYW1lIG1heSBub3Qgc3RhcnQgd2l0aCBhIHBlcmlvZCBvciBhIGRhc2ggYW5kIG1heSBjb250YWluIGEgbWF4aW11bSBvZiAxMjggY2hhcmFjdGVycy4gWW91IGNhbiBncm91cCB5b3VyIGltYWdlcyB0b2dldGhlciB1c2luZyBuYW1lcyBhbmQgdGFncy4gSW4gdGhpcyBwb3N0LCB3ZSB3aWxsIHVzZSB0aGlzIG5hbWluZyBjb252ZW50aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB0aGF0IHdl4oCZdmUgZGlzY3Vzc2VkIG5hbWluZyBjb252ZW50aW9ucyBsZXTigJlzIGJ1aWxkIGEgRG9ja2VyIGltYWdlIGJhc2VkIG9uIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXJmaWxlJmx0Oy9jb2RlJmd0OyBpbiBvdXIgZXhhbXBsZSBhYm92ZS4gSW4gdGhpcyBwb3N0IHdlIGNhbiB1dGlsaXplIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9wdW5rZGF0YS9ub2RlanMtY2lyY2xlY2kmcXVvdDsmZ3Q7cHVua2RhdGEvbm9kZWpzLWNpcmNsZWNpJmx0Oy9hJmd0OyBnaXQgcmVwby4gQ2xvbmUgaXQgbG9jYWxseSBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7JCBjZCZsdDsvY29kZSZndDsgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlbiBydW4gdGhpcyBjb21tYW5kIHRvIGJ1aWxkIGEgbmV3IERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgcHJvamVjdCBzb3VyY2UgY29kZSBhbmQgdGhlIGV4YW1wbGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgYnVpbGQgLXQgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0FmdGVyIHJ1bm5pbmcgdGhpcyBidWlsZCBjb21tYW5kLCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtTZW5kaW5nIGJ1aWxkIGNvbnRleHQgdG8gRG9ja2VyIGRhZW1vbiAgOTguMDdNQgpTdGVwIDEvNyA6IEZST00gbm9kZToxMAogLS0tJmFtcDtndDsgMDFiODE2MDUxZDM0ClN0ZXAgMi83IDogV09SS0RJUiAvdXNyL3NyYy9hcHAKIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyAxMmIyZWRjMmI5N2MKU3RlcCAzLzcgOiBDT1BZIHBhY2thZ2UqLmpzb24gLi8KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyA1M2I1YjhlNGU2NTQKU3RlcCA0LzcgOiBSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyBlZWZkZjU2MGJjNGQKU3RlcCA1LzcgOiBDT1BZIC4gLgogLS0tJmFtcDtndDsgYWE3ZDU0ZTk1NWM2ClN0ZXAgNi83IDogRVhQT1NFIDUwMDAKIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gY2M0MjdkYmFmZGNjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgY2M0MjdkYmFmZGNjCiAtLS0mYW1wO2d0OyA0Y2U5MDg0ZTM5ZWIKU3RlcCA3LzcgOiBDTUQgWyAmcXVvdDtucG0mcXVvdDssICZxdW90O3N0YXJ0JnF1b3Q7IF0KIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gZjZlODU0NTk5ZGRjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgZjZlODU0NTk5ZGRjCiAtLS0mYW1wO2d0OyA3OWE4ZDk0Y2JmNDIKU3VjY2Vzc2Z1bGx5IGJ1aWx0IDc5YThkOTRjYmY0MgpTdWNjZXNzZnVsbHkgdGFnZ2VkIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2VzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgeW91ciBuZXdseSBjcmVhdGVkIERvY2tlciBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDskIGRvY2tlciBpbWFnZXMKClJFUE9TSVRPUlkgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRyAgICAgICAgICAgICAgICAgSU1BR0UgSUQgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNJWkUKdHV0b3JpYWwvY2lyY2xlY2ktbm9kZSAgICAgICAgICAgICAgMTAgICAgICAgICAgICAgICAgICA3OWE4ZDk0Y2JmNDIgICAgICAgIDQgbWludXRlcyBhZ28gICAgICAgMS4wM0dCCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyB5b3UgaGF2ZSBhbiBhd2Vzb21lIERvY2tlciBpbWFnZSBidWlsdCBhbmQgcmVhZHkgdG8gdXNlLiBJbiB0aGUgbmV4dCBzZWN0aW9uIEnigJlsbCBjcmVhdGUgbmV3IGluc3RhbmNlcyBvZiB0aGlzIERvY2tlciBpbWFnZSBpbiB0aGUgZm9ybSBvZiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvY29udGFpbmVyLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXIgY29udGFpbmVycyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBjb250YWluZXJzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IGFyZSBkZXNpZ25lZCB0byBydW4gYXBwbGljYXRpb25zIGluIGlzb2xhdGlvbiBhbmQgYXQgc2NhbGUuICBUaGV5IGFsbG93IGZvciBzdHJlYW1saW5pbmcgdGhlIG1hbmFnZW1lbnQgYW5kIGltcGxlbWVudGF0aW9uIG9mIGFwcGxpY2F0aW9ucy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7QmVmb3JlIHdlIHN0YXJ0IGNyZWF0aW5nIGFuZCBydW5uaW5nIERvY2tlciBjb250YWluZXJzLCBJ4oCZbGwgYWRkIHNvbWUgY29udGV4dC4gRG9ja2VyIGNvbnRhaW5lcnMgYXJlIG9iamVjdHMgdGhhdCBhcmUgYmFzZWQgb24gYW5kIHNwYXduZWQgZnJvbSBEb2NrZXIgaW1hZ2VzLiBEb2NrZXIgaW1hZ2VzIGFyZSB0ZW1wbGF0ZXMuIEkgbGlrZW4gdGhlbSB0byBjb29raWUgY3V0dGVyIG1vbGRzLiBDb29raWUgY3V0dGVyIG1vbGRzIGVuYWJsZSB5b3UgdG8gcXVpY2tseSBhbmQgY29uc2lzdGVudGx5IHByb2R1Y2UgaW5kaXZpZHVhbCBjb29raWVzIGZyb20gZG91Z2guIEkgbGlrZW4gdGhlc2UgY29va2llcyB0byBEb2NrZXIgY29udGFpbmVycyB3aGljaCBhcmUgZGlzdGluZ3Vpc2hlZCBpbiBzaGFwZSBieSB0aGUgdHlwZSBvZiBjb29raWUgbW9sZCwgb3IgRG9ja2VyIGNvbnRhaW5lciwgdXNlZCBpbiB0aGUgY3V0dGluZy9idWlsZGluZyBwcm9jZXNzLiBTbyB1c2luZyBteSBjb29raWUgY3V0dGVyIGFuYWxvZ3ksIERvY2tlciBpbWFnZXMgYXJlIHRoZSBjb29raWUgY3V0dGVyIGFuZCB0aGUgaW5kaXZpZHVhbCBjb29raWVzIGN1dCB1c2luZyB0aGF0IGN1dHRlciBhcmUgZXF1aXZhbGVudCB0byBEb2NrZXIgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCBJ4oCZdmUgcHJvYmFibHkgbWFkZSB5b3UgYSBiaXQgaHVuZ2FyeSBmb3IgY29va2llcywgbGV04oCZcyBzdGFydCBydW5uaW5nIHNvbWUgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBydW5zIGEgY29tbWFuZCBpbiBhIG5ldyBjb250YWluZXIuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY29tbWFuZCBvZiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgc3RhcnRpbmcgRG9ja2VyIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCBhIG5ldyBjb250YWluZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcnVuIC1kIC1wIDUwMDA6NTAwMCAtLW5hbWUgbm9kZXRlc3QwMSB0dXRvcmlhbC9jaXJjbGVjaS1ub2RlOjEwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NvbmdyYXRzISBZb3Ugc2hvdWxkIG5vdyBoYXZlIHRoZSBOb2RlLmpzIGltYWdlIHJ1bm5pbmcgaW4gdGhlIG5ldyBjb250YWluZXIgdGhhdCB5b3UganVzdCBjcmVhdGVkIGF2YWlsYWJsZSBvbiBwb3J0IDUwMDAuIE9wZW4gYSB3ZWIgYnJvd3NlciBhbmQgZ28gdG8gdGhpcyBhZGRyZXNzOiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtodHRwOi8vbG9jYWxob3N0OjUwMDAmbHQ7L2NvZGUmZ3Q7LiBJdCB3aWxsIHRha2UgeW91IHRoZSBzdGF0aWMg4oCcV2VsY29tZSB0byBDSS9DRCAxMDEgdXNpbmcgQ2lyY2xlQ0kh4oCdIHdlYiBwYWdlIHNlcnZlZCBieSB0aGlzIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsc28gdmVyaWZ5IHlvdXIgY29udGFpbmVyIGlzIHJ1bm5pbmcgYnkgZXhlY3V0aW5nIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbC4gV2XigJlsbCBkaXNjdXNzIHRoaXMgaW4gdGhlIG5leHQgc2VjdGlvbi4gQmVmb3JlIHRoYXQsIGxldOKAmXMgc3RhcnQgYW4gb3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGFwcGxpY2F0aW9uIGJ5IHJ1bm5pbmcgYW5vdGhlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnRlZCBvdXIgZmlyc3QgY29udGFpbmVyIHdpdGggdGhlIG5hbWUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDsgYW5kIHNpbmNlIGNvbnRhaW5lciBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgd2XigJlyZSBnb2luZyB0byBuYW1lIG91ciBuZXcgY29udGFpbmVyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7LiBBbm90aGVyIGNoYW5nZSB0aGF0IG11c3QgYmUgbWFkZSBpbiBvdXIgbmV3IGNvbnRhaW5lciBpcyB0aGUgcG9ydCBudW1iZXIuIFdl4oCZbGwgY2hhbmdlIGl0IGZyb20gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMCZsdDsvY29kZSZndDsgdG8gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMSZsdDsvY29kZSZndDsgc2luY2UgYXBwbGljYXRpb25zIGNhbm5vdCBvY2N1cHkgdGhlIHNhbWUgcG9ydCBudW1iZXIgb24gdGhlIHNhbWUgbmV0d29yayBpbnRlcmZhY2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RXhlY3V0ZSB0aGUgZm9sbG93aW5nICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtZCAtcCA1MDAxOjUwMDAgLS1uYW1lIG5vZGV0ZXN0MDIgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISBZb3Ugbm93IGhhdmUgdHdvIGNvbnRhaW5lcnMgcnVubmluZyBvbiB5b3VyIGxvY2FsIG1hY2hpbmUuIFlvdSBjYW4gZ28gdG8gdGhpcyBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMSZsdDsvY29kZSZndDsgaW4gYSBicm93c2VyIGFuZCBzZWUgdGhlIGFwcCBydW5uaW5nIGluIHlvdXIgc2Vjb25kIERvY2tlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaXMgdmVyeSByb2J1c3QgYW5kIGhhcyBtYW55IHByb3BlcnR5IGFuZCBjb25maWd1cmF0aW9uIGZsYWdzIHdoaWNoIEkgd29u4oCZdCBiZSBhYmxlIHRvIGFkZHJlc3Mgb3IgZGVtb25zdHJhdGUgaW4gdGhpcyBwb3N0LiBJIGhpZ2hseSByZWNvbW1lbmQgdGhhdCB5b3UgcmVhZCBhbmQgZmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgbWFueSB3YXlzIHRoYXQgeW91IGNhbiBleGVjdXRlIGFuZCBydW4gRG9ja2VyIGNvbnRhaW5lcnMuIFlvdSBjYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7cmVhZCB1cCBvbiBEb2NrZXIgY29udGFpbmVycyBjb21tYW5kcyBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9wcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbGlzdHMgYWxsIG9mIHRoZSBydW5uaW5nIERvY2tlciBjb250YWluZXJzLiBUaGlzIGNvbW1hbmQgc2VydmVzIGEgc2ltaWxhciBwdXJwb3NlIGFzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2UmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgYW5kIGxpc3RzIGFjdGl2ZWx5IHJ1bm5pbmcgY29udGFpbmVycy4gVXNlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDstYSZsdDsvY29kZSZndDsgZmxhZyB0byBzaG93IGFsbCBvZiB0aGUgcnVubmluZyBhbmQgbm90IHJ1bm5pbmcgY29udGFpbmVycy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoaXMgY29tbWFuZCBpbiBhIHRlcm1pbmFsIGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIGJvdGggb2YgdGhlIHByZXZpb3VzbHkgY3JlYXRlZCBjb250YWluZXJzIHJ1bm5pbmcgaW4gdGhlIHJlc3VsdHM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlIHJlc3VsdHMgd2lsbCBiZSBzaW1pbGFyIHRvIHRoaXMgc2hvd2luZyBib3RoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDEmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcnMgc3RpbGwgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0NPTlRBSU5FUiBJRCAgICAgICAgSU1BR0UgICAgICAgICAgICAgICAgICAgICAgIENPTU1BTkQgICAgICAgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNUQVRVUyAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICAgICAgIE5BTUVTCmRmZDMwMTgxZTE1YyAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAxMiBtaW51dGVzIGFnbyAgICAgIFVwIDEyIG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAxLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAyOCBtaW51dGVzIGFnbyAgICAgIFVwIDI4IG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAwLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7CiAgICAmbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvc3RhcnQvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdGFydHMgYW4gZXhpc3RpbmcgY29udGFpbmVyLiZsdDsvcCZndDsKICAmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsKICAgICZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9zdG9wLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdG9wcyBhbiBleGlzdGluZyBjb250YWluZXIuJmx0Oy9wJmd0OwogICZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgaXMgb25seSB1c2VkIHRvIHN0YXJ0ICZsdDtzdHJvbmcmZ3Q7ZXhpc3RpbmcmbHQ7L3N0cm9uZyZndDsgY29udGFpbmVycyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcnVuJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBVbmxlc3MgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy0tcm09dHJ1ZSZsdDsvY29kZSZndDsgZmxhZyBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgbmV3bHkgY3JlYXRlZCBjb250YWluZXJzIHdpbGwgcGVyc2lzdCBhbmQgY2FuIGJlIHJldXNlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RhcnQmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCZsdDsvY29kZSZndDsgY29tbWFuZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdG9wIHNvbWUgcnVubmluZyBjb250YWluZXJzIGJ5IGV4ZWN1dGluZyB0aGVzZSBjb21tYW5kczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBzdG9wIG5vZGV0ZXN0MDEgbm9kZXRlc3QwMgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBydW5uaW5nIGNvbnRhaW5lcnMgc2hvdWxkIG5vdyBiZSBpbmFjdGl2ZSBhbmQgc3RvcHBlZC4gU2luY2UgdGhleeKAmXJlIHN0b3BwZWQsIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgaW5kaWNhdGluZyBzdG9wcGVkIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtDT05UQUlORVIgSUQgICAgICAgIElNQUdFICAgICAgICAgICAgICAgICAgICAgICBDT01NQU5EICAgICAgICAgICAgICAgICAgQ1JFQVRFRCAgICAgICAgICAgICBTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICBOQU1FUwpkZmQzMDE4MWUxNWMgICAgICAgIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAgICAmcXVvdDtkb2NrZXItZW50cnlwb2ludC5z4oCmJnF1b3Q7ICAgMzEgbWludXRlcyBhZ28gICAgICBFeGl0ZWQgKDApIDM4IHNlY29uZHMgYWdvICAgICAgICAgICAgICAgICAgICAgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICBBYm91dCBhbiBob3VyIGFnbyAgIEV4aXRlZCAoMCkgMzggc2Vjb25kcyBhZ28gICAgICAgICAgICAgICAgICAgICAgIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhvdWdoIHRoZXNlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQgdGhleSB3aWxsIHBlcnNpc3QgYW5kIGNhbiBiZSByZXN0YXJ0ZWQgdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCZsdDsvY29kZSZndDsgY29tbWFuZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXRzIHN0YXJ0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAxJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgc28gd2UgY2FuIGxlYXJuIGhvdyB0byB1c2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBmZWF0dXJlcyBpbiB0aGUgbmV4dCBzZWN0aW9uLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHN0YXJ0IG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Tm93IHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBOb3RpY2UgdGhlIHN0YXR1cyBmb3IgdGhpcyBjb250YWluZXIgcmVhZHMgc2ltaWxhciB0byAgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXAgYWJvdXQgYSAzMCBzZWNvbmRzJmx0Oy9jb2RlJmd0OyBvciBzb21ldGhpbmcgdG8gdGhhdCBlZmZlY3QuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9ncy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ3MmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBmZXRjaGVzIGEgY29udGFpbmVy4oCZcyBsb2dzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIHNlZSBsb2dzIHRoYXQgYXJlIHByZXNlbnQgYXQgdGhlIHRpbWUgb2YgZXhlY3V0aW9uLiBTaW5jZSB5b3VyIGFwcHMgYXJlIHJ1bm5pbmcgaW5zaWRlIHRoZXNlIGNvbnRhaW5lcnMsIHRoZSBsb2dzIGNvbW1hbmQgaXMgdXNlZnVsIGZvciByZWFkaW5nIG91dCBjcml0aWNhbCBhcHAgb3V0cHV0cy4gVGhpcyBoZWxwcyBpbiB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgYXBwIGlzIHBlcmZvcm1pbmcgYW5kIGFueSBkZWJ1Z2dpbmcvdHJvdWJsZXNob290aW5nIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBydW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDEmbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBsb2dzIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIGNvbW1hbmQgeW91IHNob3VsZCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHdoYXTigJlzIHNob3duIGJlbG93LiBJdCBzaG93cyB0aGF0IHRoZSBhcHAgaW5zaWRlIGNvbnRhaW5lciBpcyB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O05vZGUgc2VydmVyIGlzIHJ1bm5pbmcuLgoKJmFtcDtndDsgbm9kZWpzLWNpcmNsZWNpQDAuMC4xIHN0YXJ0IC91c3Ivc3JjL2FwcAomYW1wO2d0OyBub2RlIGFwcC5qcwoKTm9kZSBzZXJ2ZXIgaXMgcnVubmluZy4uCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0gJmFtcDtsdDtjb250YWluZXIgbmFtZSZhbXA7Z3Q7Jmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgZGVsZXRlcyBhIGNvbnRhaW5lciBvciBtdWx0aXBsZSBjb250YWluZXJzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtQZXJzaXN0aW5nIERvY2tlciBjb250YWluZXJzIGNvbnN1bWVzIGRpc2sgc3BhY2UgYW5kIHJlc291cmNlcyBvbiBpdHMgaG9zdC4gT3BlcmF0aW9uYWxseSwgaXQgZG9lc27igJl0IG1ha2UgbXVjaCBzZW5zZSB0byBwZXJzaXN0IGV2ZXJ5IGNvbnRhaW5lciBvbiBkaXNrIHNpbmNlIGluIG1vc3QgY2FzZXMgY29udGFpbmVycyBhcmUgZGlzcG9zYWJsZSBhbmQgc2hvdWxkIGJlIHVzZWQgdGhhdCB3YXkuIFNvIHdoZW4gYSBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpdCBzaG91bGQgYmUgcGVybWFuZW50bHkgZGlzY2FyZGVkIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgcGVybWFuZW50bHkgZGVsZXRlcyBjb250YWluZXJzIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAyJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBzbyBsZXTigJlzIHNhdmUgc29tZSBkaXNrIHNwYWNlIGFuZCBkZWxldGUgaXQuIE5vdGUgdGhpcyBjb21tYW5kIHdpbGwgb25seSBkZWxldGUgaW5hY3RpdmUvc3RvcHBlZCBjb250YWluZXJzIGFuZCB3aWxsIGVycm9yIG91dCBpZiBpdOKAmXMgcnVuIGFnYWluc3QgYW4gYWN0aXZlL3J1bm5pbmcgY29udGFpbmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBybSBub2RldGVzdDAyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm8gbG9uZ2VyIHNlZSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMiZsdDsvY29kZSZndDsgY29udGFpbmVyIG9uIHRoZSBob3N0IGFmdGVyIHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGhhcyBvdGhlciBwcm9wZXJ0aWVzIGFuZCBmbGFncyBhbmQgeW91IHNob3VsZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcm0vJnF1b3Q7Jmd0O2ZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggdGhlbSBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ybWkvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBybWkmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBkZWxldGVzIERvY2tlciBpbWFnZXMgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGFwcGxpZXMgdG8gZGVsZXRpbmcgRG9ja2VyIGltYWdlcyBmcm9tIGEgaG9zdC4gSWYgdGhlcmUgYXJlIGV4aXN0aW5nIGNvbnRhaW5lcnMgb24gdGhlIGhvc3QgdGhhdCBhcmUgYmFzZWQgb24gYSBzcGVjaWZpYyBpbWFnZSwgdGhlbiB0aGlzIGNvbW1hbmQgd2lsbCBub3QgYWxsb3cgdGhlIGRlbGV0aW9uIG9mIHRoZSBjb250YWluZXIgYmFzZWQgb24gdGhlIGltYWdlLiBZb3UgbXVzdCBmaXJzdCBlbnN1cmUgdGhlIGNvbnRhaW5lciBpcyBzdG9wcGVkIGFuZCBkZWxldGVkIGJlZm9yZSB5b3UgY2FuIGRlbGV0ZSBEb2NrZXIgaW1hZ2VzIHVzaW5nIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtaSZsdDsvY29kZSZndDsgY29tbWFuZC4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtaS8mcXVvdDsmZ3Q7UmVhZCB1cCBvbiB0aGUgZG9ja2VyIHJtaSBjb21tYW5kIGhlcmUmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBpbWFnZSBkZXBsb3ltZW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtNYW55IERvY2tlciBpbWFnZXMgYXJlIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgaG9zdGVkIG9uIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2RvY2tlci1odWIvJnF1b3Q7Jmd0O0RvY2tlciBIdWIgUmVnaXN0cnkmbHQ7L2EmZ3Q7IHdoaWNoIGlzIGFuIG9ubGluZSBjZW50cmFsIGhvc3Rpbmcgc29sdXRpb24gZm9yIERvY2tlciBpbWFnZXMuIERvY2tlciBIdWIgZW5hYmxlcyBhbnlvbmUgd2l0aCBhbiBpbnRlcm5ldCBjb25uZWN0aW9uIHRvIHB1bGwgZG93biBwdWJsaWNseSBhdmFpbGFibGUgaW1hZ2VzIGZyb20gdGhlIHJlZ2lzdHJ5IHRvIHRoZWlyIGxvY2FsIG1hY2hpbmVzIG9yIHNlcnZlcnMuIEl0IGFsc28gZW5hYmxlcyByZWdpc3RlcmVkIHVzZXJzIHRvIHVwbG9hZCBhbmQgcHVibGljbHkgc2hhcmUgYW55IG9mIHRoZWlyIGNvbnRhaW5lcnMgc28gdGhhdCBhbnlvbmUgY2FuIHB1bGwgZG93biB0aGF0IGltYWdlIGZyb20gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2h1Yi5kb2NrZXIuY29tLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIEnigJlsbCBicmllZmx5IGRpc2N1c3Mgc29tZSBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItaHViLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0OyByZWxhdGVkIGNvbW1hbmRzLiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3B1bGwvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBwdWxsJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgcHVsbHMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IGZyb20gYSByZWdpc3RyeS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGVuYWJsZXMgeW91IHRvIGRvd25sb2FkIGEgdmFsaWQgRG9ja2VyIGltYWdlIGZyb20gRG9ja2VyIEh1Yi4gUHVibGljbHkgYXZhaWxhYmxlIERvY2tlciBpbWFnZXMgZG8gbm90IHJlcXVpcmUgYXV0aGVudGljYXRpb24uIElmIHRoZSByZWdpc3RyeSBpcyBwcml2YXRlIHlvdSB3aWxsIG5lZWQgdG8gYXV0aGVudGljYXRlIHVzaW5nIGFuIGFzc2lnbmVkIGNyZWRlbnRpYWwgdXN1YWxseSBpbiB0aGUgZm9ybSBvZiBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ2luJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbG9ncyBpbnRvIGEgRG9ja2VyIHJlZ2lzdHJ5LiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyB5b3UgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgYSBEb2NrZXIgUmVnaXN0cnkuIElmIHlvdeKAmXJlIHVzaW5nIHRoaXMgbG9naW4gY29tbWFuZCB5b3Ugc2hvdWxkICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8jcHJvdmlkZS1hLXBhc3N3b3JkLXVzaW5nLXN0ZGluJnF1b3Q7Jmd0O3BvcHVsYXRlIGEgLnR4dCBmaWxlJmx0Oy9hJmd0OyB3aXRoIHlvdXIgRG9ja2VyIEh1YiBhY2NvdW50IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBwcm90ZWN0IHRoZXNlIGNyZWRlbnRpYWxzIGZyb20gZXhwb3N1cmUuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcHVzaC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHB1c2gmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBwdXNoZXMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IHRvIGEgcmVnaXN0cnkuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBlbmFibGVzIHVzZXJzIHRvIHVwbG9hZCBpbWFnZXMgdG8gYSBEb2NrZXIgcmVnaXN0cnkgYW5kIHJlcXVpcmVzIHZhbGlkIGNyZWRlbnRpYWxzLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O1NvIHRoZXJlIHlvdSBoYXZlIGl0LiBJbiB0aGlzIHBvc3QgSSB3ZW50IGEgYml0IGRlZXBlciBpbiBleHBsYWluaW5nIERvY2tlciB0ZXJtaW5vbG9neSBhbmQgY29tbWFuZHMgYXMgd2VsbCBhcyBjb250YWluZXJzIGFuZCB0aGVpciB1c2FnZS4gVGhlIGNvbW1hbmRzIEkgZGlzY3Vzc2VkIGFuZCBkZW1vbnN0cmF0ZWQsIGFyZSB0aGUgbW9zdCB3aWRlbHkgdXNlZCBjb21tYW5kcyBpbiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGxlYXJuaW5nIGEgYml0IG1vcmUgYWJvdXQgdGhlbSBhbmQgdGhlaXIgcHJvcGVydGllcyBhbmQgZmxhZ3Mgd2lsbCBkZWZpbml0ZWx5IGhlbHAgeW91IGxldmVsIHVwIHlvdXIgRG9ja2VyIGFuZCBjb250YWluZXIgc2tpbGxzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZhbWlsaWFyaXppbmcgeW91cnNlbGYgd2l0aCB0aGVzZSBiYXNpYyBjb21tYW5kcyB3aWxsIHJlbW92ZSBvbmUgb2YgdGhlIGxhcmdlciBiYXJyaWVycyB0aGF0IG5ldyB1c2VycyBvZiBDaXJjbGVDSSBlbmNvdW50ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SWYgeW91IHdhbnQgdG8gbGVhcm4gbW9yZSBhYm91dCBDaXJjbGVDSSBjaGVjayBvdXQgdGhlICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wLyZxdW90OyZndDtkb2N1bWVudGF0aW9uIHNpdGUmbHQ7L2EmZ3Q7LCBhbmQgaWYgeW91IHJlYWxseSBnZXQgc3R1Y2sgeW91IGNhbiByZWFjaCBvdXQgdG8gdGhlIENpcmNsZUNJIGNvbW11bml0eSB2aWEgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mbHQ7L2EmZ3Q7IGNvbW11bml0eS9mb3J1bSBzaXRlLiZsdDsvcCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogIDwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:53:16 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:53:18 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"2d6b0d846e690d9a","ot-tracer-traceid":"439b868b2f7b61f2","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889198501:60efd60e7b2
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:08:18 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595d9de248210e02-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce61016b00000e0298377200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:53:18 GMT
+- request:
+ method: head
+ uri: https://medium.com/media/7da74bb30f8a2a82b0acb89b213a018b/href
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 302
+ message: Found
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:53:18 GMT
+ Content-Type:
+ - application/octet-stream
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"66b6bd357d18022b","ot-tracer-traceid":"6d93ea072a3cc965","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889198682:c0bd15f0d22e
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Expires:
+ - Thu, 09 Sep 1999 09:09:09 GMT
+ Pragma:
+ - no-cache
+ Location:
+ - https://www.youtube.com/watch?v=QOCaacO8wus
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595d9de3490a0f82-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce61020d00000f82a5bb7200000001
+ body:
+ encoding: UTF-8
+ string: ''
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:53:18 GMT
+- request:
+ method: head
+ uri: https://www.youtube.com/watch?v=QOCaacO8wus
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Cookie:
+ - __cfduid=da9205c97c18e5c06f8d8c85687b9c5d61589889198; uid=lo_XTA9aucdgNym;
+ sid=1:grPe57zIDdiyTrRzcukusZ0uU3SsLKqE4ai2DQ8J2Fzaz06efbSs7yGDGFQgUeuF; optimizelyEndUserId=lo_XTA9aucdgNym;
+ __cfruid=22b6892743dab473c050ec6fdf2be118ea3258ee-1589889198
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ P3p:
+ - CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=it
+ for more info."
+ X-Frame-Options:
+ - SAMEORIGIN
+ Content-Type:
+ - text/html; charset=utf-8
+ X-Content-Type-Options:
+ - nosniff
+ Strict-Transport-Security:
+ - max-age=31536000
+ Cache-Control:
+ - no-cache
+ Expires:
+ - Tue, 27 Apr 1971 19:44:06 GMT
+ Date:
+ - Tue, 19 May 2020 11:53:19 GMT
+ Server:
+ - YouTube Frontend Proxy
+ X-Xss-Protection:
+ - '0'
+ Transfer-Encoding:
+ - chunked
+ Alt-Svc:
+ - h3-27=":443"; ma=2592000,h3-25=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443";
+ ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443";
+ ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
+ Accept-Ranges:
+ - none
+ Vary:
+ - Accept-Encoding
+ body:
+ encoding: UTF-8
+ string: ''
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:53:19 GMT
+- request:
+ method: post
+ uri: https://api.twitter.com/oauth2/token
+ body:
+ encoding: UTF-8
+ string: grant_type=client_credentials
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Accept:
+ - "*/*"
+ Connection:
+ - close
+ Content-Type:
+ - application/x-www-form-urlencoded
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '153'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Tue, 19 May 2020 11:53:19 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Tue, 19 May 2020 11:53:19 GMT
+ Ml:
+ - A
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Connection-Hash:
+ - 658d93a718c443635878cf32005a6286
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - DENY
+ X-Response-Time:
+ - '121'
+ X-Transaction:
+ - 00f68eab005e6259
+ X-Tsa-Request-Body-Time:
+ - '0'
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Ua-Compatible:
+ - IE=edge,chrome=1
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"token_type":"bearer","access_token":"ACCESS_TOKEN"}'
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:53:19 GMT
+- request:
+ method: get
+ uri: https://api.twitter.com/1.1/statuses/show/948256083352735744.json?tweet_mode=extended
+ body:
+ encoding: UTF-8
+ string: ''
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Connection:
+ - close
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '3878'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Tue, 19 May 2020 11:53:20 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Tue, 19 May 2020 11:53:20 GMT
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Access-Level:
+ - read
+ X-Connection-Hash:
+ - a11ffe8a0a580564367b70bbc197de44
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-Rate-Limit-Limit:
+ - '900'
+ X-Rate-Limit-Remaining:
+ - '899'
+ X-Rate-Limit-Reset:
+ - '1589890100'
+ X-Response-Time:
+ - '124'
+ X-Transaction:
+ - 00a5467500dcb420
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"created_at":"Tue Jan 02 18:14:02 +0000 2018","id":948256083352735744,"id_str":"948256083352735744","full_text":"I''m
+ a full-stack developer https:\/\/t.co\/wvFikfWJ7f","truncated":false,"display_text_range":[0,26],"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[],"media":[{"id":948256051085770752,"id_str":"948256051085770752","indices":[27,50],"media_url":"http:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","url":"https:\/\/t.co\/wvFikfWJ7f","display_url":"pic.twitter.com\/wvFikfWJ7f","expanded_url":"https:\/\/twitter.com\/bendhalpern\/status\/948256083352735744\/photo\/1","type":"photo","sizes":{"large":{"w":1536,"h":2048,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":900,"h":1200,"resize":"fit"},"small":{"w":510,"h":680,"resize":"fit"}}}]},"extended_entities":{"media":[{"id":948256051085770752,"id_str":"948256051085770752","indices":[27,50],"media_url":"http:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","url":"https:\/\/t.co\/wvFikfWJ7f","display_url":"pic.twitter.com\/wvFikfWJ7f","expanded_url":"https:\/\/twitter.com\/bendhalpern\/status\/948256083352735744\/photo\/1","type":"photo","sizes":{"large":{"w":1536,"h":2048,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":900,"h":1200,"resize":"fit"},"small":{"w":510,"h":680,"resize":"fit"}}}]},"source":"\u003ca
+ href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter
+ for iPhone\u003c\/a\u003e","in_reply_to_status_id":948243620846620673,"in_reply_to_status_id_str":"948243620846620673","in_reply_to_user_id":161419043,"in_reply_to_user_id_str":"161419043","in_reply_to_screen_name":"bendhalpern","user":{"id":161419043,"id_str":"161419043","name":"Ben
+ Halpern \ud83e\udd81","screen_name":"bendhalpern","location":"Brooklyn, NY\/Beacon,
+ NY","description":"Creator\/founder\/webmaster of https:\/\/t.co\/lhcCPP1ReQ
+ (@ThePracticalDev). Coder, buddhist, feminist, Batman. He\/Him.","url":"https:\/\/t.co\/qqIzCffhit","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/qqIzCffhit","expanded_url":"http:\/\/dev.to\/ben","display_url":"dev.to\/ben","indices":[0,23]}]},"description":{"urls":[{"url":"https:\/\/t.co\/lhcCPP1ReQ","expanded_url":"http:\/\/dev.to","display_url":"dev.to","indices":[29,52]}]}},"protected":false,"followers_count":39142,"friends_count":2168,"listed_count":689,"created_at":"Wed
+ Jun 30 20:15:57 +0000 2010","favourites_count":35151,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":true,"statuses_count":15326,"lang":null,"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"EDECE9","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme3\/bg.gif","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme3\/bg.gif","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/855590922486136832\/g8m8zpCp_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/855590922486136832\/g8m8zpCp_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/161419043\/1492834234","profile_link_color":"3A1E75","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"E3E2DE","profile_text_color":"634047","profile_use_background_image":true,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":65,"favorite_count":511,"favorited":false,"retweeted":false,"possibly_sensitive":false,"possibly_sensitive_appealable":false,"lang":"en"}'
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:53:20 GMT
+recorded_with: VCR 5.1.0
diff --git a/spec/support/fixtures/vcr_cassettes/rss_reader_fetch_articles_twice.yml b/spec/support/fixtures/vcr_cassettes/rss_reader_fetch_articles_twice.yml
new file mode 100644
index 000000000..29fab33b6
--- /dev/null
+++ b/spec/support/fixtures/vcr_cassettes/rss_reader_fetch_articles_twice.yml
@@ -0,0 +1,946 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:54:31 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"23595c473b01ffa2","ot-tracer-traceid":"735cdc564688a8d0","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889271395:27945df0942
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:09:31 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595d9fa9ca700f82-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce621e1d00000f82ab36b200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDExOjQ4OjUyIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:54:31 GMT
+- request:
+ method: get
+ uri: https://circleci.com/blog/feed.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/xml
+ Date:
+ - Tue, 19 May 2020 11:54:32 GMT
+ Etag:
+ - '"d148e5f0c8f6530989f97099948abd37"'
+ Last-Modified:
+ - Tue, 19 May 2020 02:33:22 GMT
+ Server:
+ - nginx
+ Strict-Transport-Security:
+ - max-age=15724800
+ X-Amz-Id-2:
+ - "+CBgGW8SD/NQM1wc+dDOeQb5IMJ4TBbsVteINUq8CGLZO+5hzRhBZxvhqT5Gh1oO5HUu2Zc5908="
+ X-Amz-Request-Id:
+ - CA27D198FB691089
+ X-Frame-Options:
+ - SAMEORIGIN
+ Content-Length:
+ - '183502'
+ Connection:
+ - keep-alive
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiCiAgeG1sOmJhc2U9Imh0dHBzOi8vY2lyY2xlY2kuY29tLyIKICB4bWxuczphdG9tPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8Y2hhbm5lbD4KICAgIDx0aXRsZT5UaGUgQ2lyY2xlQ0kgQmxvZyBGZWVkIC0gQ2lyY2xlQ0k8L3RpdGxlPgogICAgPGRlc2NyaXB0aW9uPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgbmV3cywgdXBkYXRlcywgYW5kIGhhY2tzIGZyb20gQ2lyY2xlQ0kuPC9kZXNjcmlwdGlvbj4KICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvPC9saW5rPgogICAgPGF0b206bGluayBocmVmPSJodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2ZlZWQueG1sIiByZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Db250aW51b3VzIGludGVncmF0aW9uIGZvciBJb25pYyBhcHBsaWNhdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvY29udGlub3VzLWludGVncmF0aW9uLWZvci1pb25pYy1hcHBzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDE4IE1heSAyMDIwIDE3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbm91cy1pbnRlZ3JhdGlvbi1mb3ItaW9uaWMtYXBwcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5GaWtheW8gQWRlcG9qdTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtJbiB0aGUgd29ybGQgb2YgaHlicmlkIG1vYmlsZSBkZXZlbG9wbWVudCwgbm8gb3RoZXIgZnJhbWV3b3JrIGhhcyBkb25lIG1vcmUgZm9yIHRoZSBpbmR1c3RyeSB0aGFuIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tLyZxdW90OyZndDtJb25pYyBmcmFtZXdvcmsmbHQ7L2EmZ3Q7LiBDcmVhdGVkIGluIDIwMTMgYW5kIG9yaWdpbmFsbHkgYnVpbHQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXJqcy5vcmcvJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7IGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY29yZG92YS5hcGFjaGUub3JnLyZxdW90OyZndDtBcGFjaGUgQ29yZG92YSZsdDsvYSZndDssIElvbmljIGhhcyBncm93biB0byBhIGZ1bGwtZmVhdHVyZWQgYXBwbGljYXRpb24gZnJhbWV3b3JrIGZvciBkZXZlbG9waW5nIG1vYmlsZSwgZGVza3RvcCwgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93ZWIuZGV2L3Byb2dyZXNzaXZlLXdlYi1hcHBzLyZxdW90OyZndDtwcm9ncmVzc2l2ZSB3ZWIgYXBwbGljYXRpb25zJmx0Oy9hJmd0Oy4gSW9uaWMgaGFzIGFsc28gYmVjb21lIGZyYW1ld29yay1hZ25vc3RpYywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byB1c2UgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXIuaW8vJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oywgb3IgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3Z1ZWpzLm9yZy8mcXVvdDsmZ3Q7VnVlLmpzJmx0Oy9hJmd0OyBmb3IgZGV2ZWxvcG1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2Ugd2lsbCBiZSBidWlsZGluZyBhIGhhbmR5IHRhc2sgbWFuYWdlci4gV2Ugd2lsbCB3cml0ZSB0ZXN0cyBmb3IgZmVhdHVyZXMgaW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBzZXQgdXAgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbm91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgKENJKSBwaXBlbGluZSB0byBhdXRvbWF0ZSBvdXIgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFdlIHdpbGwgYmUgZGV2ZWxvcGluZyBvdXIgYXBwbGljYXRpb24gdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9yZWFjdCZxdW90OyZndDtJb25pYyBSZWFjdCZsdDsvYSZndDssIHRoZSBJb25pYyB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgZGV2ZWxvcGluZyB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBmb2xsb3cgdGhpcyBwb3N0LCBhIGZldyB0aGluZ3MgYXJlIHJlcXVpcmVkOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QmFzaWMga25vd2xlZGdlIG9mIFJlYWN0LmpzIChOb3QgYSBkZWFsLWJyZWFrZXIsIHlvdSBvbmx5IGhhdmUgdG8gY29weS1wYXN0ZSB0aGUgY29kZSBzbmlwcGV0cykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbm9kZWpzLm9yZyZxdW90OyZndDtOb2RlLmpzJmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtUaGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2NsaSZxdW90OyZndDtJb25pYyBDTEkmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L29sJmd0OwoKJmx0O2gyJmd0O1NjYWZmb2xkaW5nIHRoZSBJb25pYyBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBiZWdpbiwgbGV04oCZcyBzY2FmZm9sZCBhIG5ldyBJb25pYyBhcHBsaWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2lvbmljIHN0YXJ0IHRhc2stbWFuYWdlciB0YWJzIC0tdHlwZT1yZWFjdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgSW9uaWMgQ0xJIHRvIHNjYWZmb2xkIGEgbmV3IHByb2plY3QgZm9yIHVzIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0YWJzJmx0Oy9jb2RlJmd0OyB0ZW1wbGF0ZSBpbnNpZGUgYSBmb2xkZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGFzay1tYW5hZ2VyJmx0Oy9jb2RlJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1lvdSBtaWdodCBiZSBwcm9tcHRlZCBhdCBzb21lIHBvaW50IHdpdGggJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Q3JlYXRlIGZyZWUgSW9uaWMgYWNjb3VudD8mbHQ7L2NvZGUmZ3Q7LiBIaXQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7biZsdDsvY29kZSZndDsgdG8gZGVjbGluZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYW4gSW9uaWMgYWNjb3VudCBzZWUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9hcHBmbG93JnF1b3Q7Jmd0O2hlcmUmbHQ7L2EmZ3Q7LiZsdDsvaSZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmNlIHRoaXMgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb24gKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIHRhc2stbWFuYWdlciZsdDsvY29kZSZndDspIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHNlcnZlIHRoZSBhcHBsaWNhdGlvbiBpbiB5b3VyIHdlYiBicm93c2VyOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7aW9uaWMgc2VydmUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGlzIGNvbW1hbmQgaGFzIGNvbXBsZXRlZCwgeW91IHdpbGwgc2VlIGFuIGFwcGxpY2F0aW9uIHZpZXcgaW4geW91ciBicm93c2VyIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O0kgYW0gdXNpbmcgYSBtb2JpbGUgcHJldmlldyBhY3RpdmF0ZWQgaW4gQ2hyb21l4oCZcyBkZXZlbG9wbWVudCB0b29scy4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXNjYWZmb2xkLXByZXZpZXcucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtEb27igJl0IGJlIHN1cnByaXNlZCBpZiB5b3VycyBoYXMgYSBibGFjayBiYWNrZ3JvdW5kIGFuZCB3aGl0ZSBmb250LiBJdCB1c2VzIHRoZSBkZWZhdWx0IG1vZGUgb2YgeW91ciBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMiZndDtCdWlsZGluZyB0aGUgVGFzayBNYW5hZ2VyIGFwcGxpY2F0aW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05leHQsIGxldOKAmXMgYmVnaW4gYnVpbGRpbmcgdGhlIG1haW4gYXBwbGljYXRpb24uIEdvIGludG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyIG9mIHlvdXIgYXBwbGljYXRpb24gYW5kIG9wZW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGhvbWUgcGFnZSBmb3IgdGhlIG5ld2x5IHNjYWZmb2xkZWQgYXBwbGljYXRpb24uIFJlbW92ZSBldmVyeXRoaW5nIGluIHRoaXMgZmlsZSBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRzeAoKaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsKICBJb25Db250ZW50LAogIElvbkhlYWRlciwKICBJb25QYWdlLAogIElvblRpdGxlLAogIElvblRvb2xiYXIsCiAgSW9uTGlzdCwKICBJb25JdGVtU2xpZGluZywKICBJb25JdGVtLAogIElvbkxhYmVsLAogIElvbkl0ZW1PcHRpb25zLAogIElvbkl0ZW1PcHRpb24sCiAgSW9uRmFiLAogIElvbkZhYkJ1dHRvbiwKICBJb25JY29uLAogIElvbk1vZGFsLAogIElvbkJ1dHRvbiwKICBJb25DYXJkLAogIElvbkNhcmRDb250ZW50LAogIElvbklucHV0LAp9IGZyb20gJnF1b3Q7QGlvbmljL3JlYWN0JnF1b3Q7OwoKaW1wb3J0IHsgYWRkIH0gZnJvbSAmcXVvdDtpb25pY29ucy9pY29ucyZxdW90OzsKCmltcG9ydCAmcXVvdDsuL1RhYjEuY3NzJnF1b3Q7OwoKaW50ZXJmYWNlIFRhc2sgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwp9Cgpjb25zdCBUYWIxOiBSZWFjdC5GQyA9ICgpID0mYW1wO2d0OyB7CiAgY29uc3QgW3Rhc2tzLCBzZXRUYXNrc10gPSB1c2VTdGF0ZSZhbXA7bHQ7VGFza1tdJmFtcDtndDsoW10pOwogIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7CiAgY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKCiAgZnVuY3Rpb24gYWRkTmV3VGFzaygpIHsKICAgIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogICAgY29uc3QgbmV3VGFzayA9IHsKICAgICAgaWQ6IG5ld19pZCwKICAgICAgbmFtZTogdGFza05hbWUsCiAgICB9OwoKICAgIHRhc2tzLnB1c2gobmV3VGFzayk7CgogICAgc2V0VGFza3ModGFza3MpOwoKICAgIHNldFRhc2tOYW1lKCZxdW90OyZxdW90Oyk7CgogICAgc2V0U2hvd01vZGFsKGZhbHNlKTsKICB9CgogIHJldHVybiAoCiAgICAmYW1wO2x0O0lvblBhZ2UmYW1wO2d0OwogICAgICAmYW1wO2x0O0lvbkhlYWRlciZhbXA7Z3Q7CiAgICAgICAgJmFtcDtsdDtJb25Ub29sYmFyJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uVGl0bGUmYW1wO2d0O1Rhc2sgTWFuYWdlciZhbXA7bHQ7L0lvblRpdGxlJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25Ub29sYmFyJmFtcDtndDsKICAgICAgJmFtcDtsdDsvSW9uSGVhZGVyJmFtcDtndDsKICAgICAgJmFtcDtsdDtJb25Db250ZW50JmFtcDtndDsKICAgICAgICAmYW1wO2x0O0lvbkxpc3QmYW1wO2d0OwogICAgICAgICAge3Rhc2tzLmxlbmd0aCAmYW1wO2d0OyAwID8gKAogICAgICAgICAgICB0YXNrcy5tYXAoKGl0ZW06IFRhc2spID0mYW1wO2d0OyB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbVNsaWRpbmcga2V5PXtpdGVtLmlkfSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbSBjbGFzc05hbWU9JnF1b3Q7dG9kby1pdGVtJnF1b3Q7JmFtcDtndDsKICAgICAgICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDt7aXRlbS5uYW1lfSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbnMgc2lkZT0mcXVvdDtlbmQmcXVvdDsmYW1wO2d0OwogICAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsge319JmFtcDtndDtEb25lJmFtcDtsdDsvSW9uSXRlbU9wdGlvbiZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1PcHRpb25zJmFtcDtndDsKICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1TbGlkaW5nJmFtcDtndDsKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KQogICAgICAgICAgKSA6ICgKICAgICAgICAgICAgJmFtcDtsdDtJb25JdGVtJmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICApfQogICAgICAgICZhbXA7bHQ7L0lvbkxpc3QmYW1wO2d0OwoKICAgICAgICB7LyogTW9kYWwqL30KICAgICAgICAmYW1wO2x0O0lvbk1vZGFsIGlzT3Blbj17c2hvd01vZGFsfSZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkNhcmQmYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICZhbXA7bHQ7SW9uTGFiZWwmYW1wO2d0O0FkZCBOZXcgVGFzayZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAmYW1wO2x0O0lvbkNhcmRDb250ZW50JmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICAgJmFtcDtsdDtJb25JbnB1dAogICAgICAgICAgICAgICAgICB2YWx1ZT17dGFza05hbWV9CiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSZxdW90O0VudGVyIFRhc2sgTmFtZS4uLiZxdW90OwogICAgICAgICAgICAgICAgICBvbklvbkNoYW5nZT17KGUpID0mYW1wO2d0OyBzZXRUYXNrTmFtZShlLmRldGFpbC52YWx1ZSEpfQogICAgICAgICAgICAgICAgJmFtcDtndDsmYW1wO2x0Oy9Jb25JbnB1dCZhbXA7Z3Q7CiAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uCiAgICAgICAgICAgICAgICBleHBhbmQ9JnF1b3Q7ZnVsbCZxdW90OwogICAgICAgICAgICAgICAgY29sb3I9JnF1b3Q7cHJpbWFyeSZxdW90OwogICAgICAgICAgICAgICAgb25DbGljaz17KCkgPSZhbXA7Z3Q7IGFkZE5ld1Rhc2soKX0KICAgICAgICAgICAgICAmYW1wO2d0OwogICAgICAgICAgICAgICAgQWRkIFRhc2sKICAgICAgICAgICAgICAmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkQ29udGVudCZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uIG9uQ2xpY2s9eygpID0mYW1wO2d0OyBzZXRTaG93TW9kYWwoZmFsc2UpfSZhbXA7Z3Q7Q2xvc2UgTW9kYWwmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICZhbXA7bHQ7L0lvbk1vZGFsJmFtcDtndDsKCiAgICAgICAgey8qIEFkZCBUYXNrIEJ1dHRvbiAqL30KICAgICAgICAmYW1wO2x0O0lvbkZhYiB2ZXJ0aWNhbD0mcXVvdDtib3R0b20mcXVvdDsgaG9yaXpvbnRhbD0mcXVvdDtlbmQmcXVvdDsgc2xvdD0mcXVvdDtmaXhlZCZxdW90OyZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkZhYkJ1dHRvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsgc2V0U2hvd01vZGFsKHRydWUpfSZhbXA7Z3Q7CiAgICAgICAgICAgICZhbXA7bHQ7SW9uSWNvbiBpY29uPXthZGR9IC8mYW1wO2d0OwogICAgICAgICAgJmFtcDtsdDsvSW9uRmFiQnV0dG9uJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25GYWImYW1wO2d0OwogICAgICAmYW1wO2x0Oy9Jb25Db250ZW50JmFtcDtndDsKICAgICZhbXA7bHQ7L0lvblBhZ2UmYW1wO2d0OwogICk7Cn07CgpleHBvcnQgZGVmYXVsdCBUYWIxOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyBsZXTigJlzIGdvIHRocm91Z2ggdGhlIGNvZGUgc25pcHBldCBhYm92ZS4gVGhpcyBpcyB0aGUgZW50aXJlIGNvZGUgZm9yIG91ciBUYXNrIE1hbmFnZXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnQgYnkgaW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzIGluY2x1ZGluZyB0aGUgY3NzIGZpbGUgZm9yIG91ciBwYWdlLiBXZSB0aGVuIGRlZmluZSBhbiBpbnRlcmZhY2UgdG8gZGVmaW5lIG91ciB0YXNrIG9iamVjdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtpbnRlcmZhY2UgVGFzayB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7Cn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7TmV4dCwgd2UgY3JlYXRlIG91ciBjb21wb25lbnQgYXMgYSBSZWFjdCBmdW5jdGlvbiBjb21wb25lbnQgdHlwZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtSZWFjdC5GQyZsdDsvY29kZSZndDsgYW5kIGJlZ2luIHRoZSBmdW5jdGlvbiBieSBkZWZpbmluZyB0aGUgZGF0YSB3ZSB3YW50IHRvIGhvbGQgaW4gb3VyIHN0YXRlIHVzaW5nIGhvb2tzOiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tzJmx0Oy9jb2RlJmd0OyBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYXNrJmx0Oy9jb2RlJmd0O3MsIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2hvd01vZGFsJmx0Oy9jb2RlJmd0OyBib29sZWFuIHRvIGNvbnRyb2wgdGhlIG9wZW5pbmcgYW5kIGNsb3Npbmcgb2Ygb3VyIHRhc2sgY3JlYXRpb24gZm9ybSwgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tOYW1lJmx0Oy9jb2RlJmd0OyB3aGljaCBob2xkcyB0aGUgdmFsdWUgb2YgYSBuZXcgdGFzayBpbiB0aGUgcHJvY2VzcyBvZiBjcmVhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IFt0YXNrcywgc2V0VGFza3NdID0gdXNlU3RhdGUmYW1wO2x0O1Rhc2tbXSZhbXA7Z3Q7KFtdKTsKY29uc3QgW3Nob3dNb2RhbCwgc2V0U2hvd01vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTsKY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Rm9sbG93aW5nIHRoZXNlIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdlIGNhbGwgdG8gYWRkIGEgbmV3IHRhc2suIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyB0YXNrIGJ5IHNldHRpbmcgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lkJmx0Oy9jb2RlJmd0OyBiYXNlZCBvbiB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBhbmQgY2xlYXJzIHRoZSBmb3JtIGFmdGVyIGFkZGluZyB0aGUgbmV3IHRhc2sgdG8gb3VyIGV4aXN0aW5nIGxpc3Qgb2YgdGFza3MuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtmdW5jdGlvbiBhZGROZXdUYXNrKCkgewogIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogIGNvbnN0IG5ld1Rhc2sgPSB7CiAgICBpZDogbmV3X2lkLAogICAgbmFtZTogdGFza05hbWUsCiAgfTsKCiAgdGFza3MucHVzaChuZXdUYXNrKTsKCiAgc2V0VGFza3ModGFza3MpOwoKICBzZXRUYXNrTmFtZSgmcXVvdDsmcXVvdDspOwoKICBzZXRTaG93TW9kYWwoZmFsc2UpOwp9CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05leHQsIHdlIHJlbmRlciBvdXIgdGVtcGxhdGUgdG8gZGlzcGxheSBvdXIgbGlzdCBvZiB0YXNrcyBhbmQgYWxzbyBkaXNwbGF5IGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgcmVhZHMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmbHQ7L2NvZGUmZ3Q7IHdoZW4gdGhlIHRhc2sgbGlzdCBpcyBlbXB0eS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtGb2xsb3dpbmcgdGhlIGxpc3QgaXMgYSBtb2RhbCBjb21wb25lbnQgdGhhdCBjb250YWlucyBvdXIgdGFzayBmb3JtIGZvciBhZGRpbmcgbmV3IHRhc2tzLiBCZWxvdyB0aGUgY29tcG9uZW50IGlzIGEgZmxvYXRpbmcgYWN0aW9uIGJ1dHRvbiB0aGF0IHRoZSB1c2VyIGNsaWNrcyB0byBvcGVuIHRoZSBtb2RhbC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWZvcmUgd2UgcHJldmlldyB0aGlzLCBvcGVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEuY3NzJmx0Oy9jb2RlJmd0OyBsb2NhdGVkIGluIHRoZSBzYW1lIGZvbGRlciBhcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRzeCZsdDsvY29kZSZndDsgYW5kIHJlcGxhY2UgaXRzIGNvbnRlbnRzIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Lyogc3JjL3BhZ2VzL1RhYjEuY3NzICovCgoudG9kby1pdGVtIHsKICAtLW1pbi1oZWlnaHQ6IDcwcHg7CiAgZm9udC1zaXplOiAxLjJlbTsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHNpbXBseSBidW1wcyB1cCB0aGUgaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgdGhlIGxpc3QgaXRlbXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm93LCBnbyB0byB5b3VyIGJyb3dzZXIgYW5kIGxvYWQgdGhlIGhvbWVwYWdlIG9mIHlvdXIgYXBwbGljYXRpb24gKFRhYjEpLiBZb3Ugd2lsbCBzZWUgdGhlIHBhZ2UgZGlzcGxheWVkIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1ob21lLW5vLXRhc2tzLnBuZyZxdW90OyAvJmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QmVjYXVzZSB3ZSBoYXZlbuKAmXQgYWRkZWQgYW55IHRhc2tzIHlldCwgd2UgaGF2ZSB0aGUgbWVzc2FnZSAmbHQ7c3Ryb25nJmd0O1lvdSBoYXZlIHlldCB0byBhZGQgdGFza3MgZm9yIHRvZGF5Jmx0Oy9zdHJvbmcmZ3Q7IGRpc3BsYXllZC4gV2UgYWxzbyBoYXZlIG91ciAmbHQ7c3Ryb25nJmd0O0FkZCBUYXNrJmx0Oy9zdHJvbmcmZ3Q7IGJ1dHRvbiBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lciB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwbHVzJmx0Oy9jb2RlJmd0OyBzeW1ib2wuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0FkZGluZyB0YXNrcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBhZGQgYSBuZXcgdGFzaywgY2xpY2sgdGhlIGJvdHRvbS1yaWdodCBibHVlIGJ1dHRvbiB0byBwdWxsIHVwIHRoZSB0YXNrIGNyZWF0aW9uIGZvcm0gYW5kIHR5cGUgaW4gYSB0YXNrIGFzIHNob3duIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtdGFzay5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7QUREIFRBU0smbHQ7L3N0cm9uZyZndDsgdG8gYWRkIHRoZSB0YXNrIGFuZCBnbyBhaGVhZCB0byBhZGQgMiB0byAzIG1vcmUgdGFza3MuIFdlIHNob3VsZCBub3cgaGF2ZSBlbm91Z2ggdGFza3Mgb24gdGhlIHBhZ2UgZm9yIG91ciBhcHBsaWNhdGlvbiB0byBsb29rIGZ1bmN0aW9uYWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXRhc2stbGlzdC5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB3ZSBoYXZlIGEgZnVuY3Rpb25hbCBhcHBsaWNhdGlvbi4gTm90IHByb2R1Y3Rpb24tcmVhZHksIGJ1dCBnb29kIGVub3VnaCB0byBzdGFydCB0ZXN0aW5nLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBZGRpbmcgdGVzdHMgdG8gdGhlIFRhc2sgTWFuYWdlciBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtPbmUgYWR2YW50YWdlIHRoYXQgd2UgaGF2ZSB3aXRoIHRlc3Rpbmcgb3VyIElvbmljIGFwcGxpY2F0aW9ucyBpcyB0aGF0IHdoaWxlIHNjYWZmb2xkaW5nIHRoZSBhcHBsaWNhdGlvbiwgdGhlIElvbmljIENMSSBoYXMgc2V0IHVwIGFsbCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcywgaW4gdGVybXMgb2YgcGFja2FnZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCBmb3IgdGVzdGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUZXN0aW5nIElvbmljIFJlYWN0IGFwcGxpY2F0aW9ucyBpcyBkb25lIHVzaW5nIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vamVzdGpzLmlvLyZxdW90OyZndDtKZXN0Jmx0Oy9hJmd0OyB0ZXN0aW5nIGZyYW1ld29yayB0b2dldGhlciB3aXRoIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdGVzdGluZy1saWJyYXJ5LmNvbS9kb2NzL3JlYWN0LXRlc3RpbmctbGlicmFyeS9pbnRybyZxdW90OyZndDtSZWFjdCBUZXN0aW5nIExpYnJhcnkmbHQ7L2EmZ3Q7IGFuZCB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1yZWFjdC10ZXN0LXV0aWxzJnF1b3Q7Jmd0O0lvbmljIFJlYWN0IFRlc3QgVXRpbHMmbHQ7L2EmZ3Q7IGxpYnJhcnkgd2hpY2ggaXMgYSBzbWFsbCBzdWl0ZSBvZiB1dGlsaXRpZXMgdG8gc2ltdWxhdGUgY29tbW9uIGZlYXR1cmVzIGluIElvbmljIGxpa2UgZmlyaW5nIGN1c3RvbSBJb25pYyBldmVudHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIHByb2plY3QgYWxyZWFkeSBjb21lcyB3aXRoIGEgdGVzdCBmaWxlIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7QXBwLnRzeCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLiBBcyB5b3UgbWF5IGhhdmUgZ3Vlc3NlZCwgdGhlIHRlc3QgZmlsZSBpcyBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtBcHAudGVzdC50c3gmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGZvbGxvd3MgdGhlIGNvbnZlbnRpb24gZm9yIEplc3QgdGVzdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsvLyBzcmMvQXBwLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgQXBwIGZyb20gJnF1b3Q7Li9BcHAmcXVvdDs7Cgp0ZXN0KCZxdW90O3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZyZxdW90OywgKCkgPSZhbXA7Z3Q7IHsKICBjb25zdCB7IGJhc2VFbGVtZW50IH0gPSByZW5kZXIoJmFtcDtsdDtBcHAgLyZhbXA7Z3Q7KTsKICBleHBlY3QoYmFzZUVsZW1lbnQpLnRvQmVEZWZpbmVkKCk7Cn0pOwombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHRlc3Qgc2ltcGx5IGNoZWNrcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiByZW5kZXJzIHByb3Blcmx5IGFuZCBkb2VzIG5vdCBjcmFzaC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBydW4gdGhpcyB0ZXN0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBpbnZva2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2plc3QmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gcnVuIHRoZSB0ZXN0IGRlZmluZWQgaW4gdGhlIGZpbGUuIEFzIGRpcmVjdGVkLCBwcmVzcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDthJmx0Oy9jb2RlJmd0OyB0byBydW4gYWxsIHRlc3RzLiBUaGUgYWJvdmUgY29tbWFuZCBpcyB0aGUgY29tbWFuZCB3ZSB3aWxsIGJlIHVzaW5nIHRvIHJ1biBhbGwgdGVzdHMgaW4gb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgbGV04oCZcyBhZGQgc29tZSB0ZXN0cyBvZiBvdXIgb3duLiBXZSB3aWxsIGJlIGNyZWF0aW5nIGEgdGVzdCBmaWxlIHRvIHRlc3QgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIHdlIGhhdmUgaW4gb3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlIHdoaWNoIGhvdXNlcyBvdXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRlc3QudHN4Jmx0Oy9jb2RlJmd0OyBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyLiBJdOKAmXMgdGhlIHNhbWUgcGxhY2UgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VGFiMS50c3gmbHQ7L2NvZGUmZ3Q7IGZpbGUgaXMgbG9jYXRlZC4gSW5zaWRlIHRoZSBuZXdseSBjcmVhdGVkIGZpbGUsIHBsYWNlIGluIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgVGFiMSBmcm9tICZxdW90Oy4vVGFiMSZxdW90OzsKCnRlc3QoJnF1b3Q7UGFnZSB0aXRsZSBpcyBUYXNrIE1hbmFnZXImcXVvdDssIGFzeW5jICgpID0mYW1wO2d0OyB7CiAgY29uc3QgeyBmaW5kQnlUZXh0IH0gPSByZW5kZXIoJmFtcDtsdDtUYWIxIC8mYW1wO2d0Oyk7CiAgYXdhaXQgZmluZEJ5VGV4dCgmcXVvdDtUYXNrIE1hbmFnZXImcXVvdDspOwp9KTsKCnRlc3QoJnF1b3Q7V2hlbiB0aGVyZSBhcmUgbm8gVGFza3MsIGluZm9ybSB0aGUgdXNlciB0aGF0IG5vIHRhc2tzIGhhdmUgYmVlbiBjcmVhdGVkJnF1b3Q7LCBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IHsgZmluZEJ5VGV4dCB9ID0gcmVuZGVyKCZhbXA7bHQ7VGFiMSAvJmFtcDtndDspOwogIGF3YWl0IGZpbmRCeVRleHQoJnF1b3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmcXVvdDspOwp9KTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBmaWxlLCB3ZSBoYXZlIGFkZGVkIHR3byB0ZXN0cy4gVGhlIGZpcnN0IHRlc3QgY2hlY2tzIGlmIG91ciBwYWdlIGRpc3BsYXlzIHdpdGggdGhlIGNvcnJlY3QgdGl0bGUgd2hpY2ggaXMgJmx0O3N0cm9uZyZndDtUYXNrIE1hbmFnZXImbHQ7L3N0cm9uZyZndDsuIFRoZSBzZWNvbmQgdGVzdCBjaGVja3MgaWYgb3VyIGFwcGxpY2F0aW9uIGluaXRpYWxseSBsb2FkcyB3aXRob3V0IHRhc2tzLCBhbmQgaWYgaXQgZG9lcywgaXQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgJmx0O3N0cm9uZyZndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3csIGxldOKAmXMgcnVuIHRoZXNlIHRlc3RzIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGF0IHRoZSByb290IG9mIG91ciBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSBhIHNjcmVlbiBzaW1pbGFyIHRvIHRoZSBvbmUgYmVsb3cgb24geW91ciBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi10ZXN0cy1sb2NhbC1ydW4ucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIG91ciB0ZXN0cyBydW5uaW5nIGFzIGV4cGVjdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBdXRvbWF0aW5nIG91ciB0ZXN0aW5nJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBmaW5hbCB0YXNrIGlzIHRvIGF1dG9tYXRlIG91ciBjb250aW51b3VzIGludGVncmF0aW9uIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhhdCwgd2Ugd2lsbCBiZSBkb2luZyB0aGUgZm9sbG93aW5nOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QWRkIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgdG8gb3VyIHByb2plY3QgdG8gc2V0IHVwIGEgQ0kgcGlwZWxpbmUgb24gQ2lyY2xlQ0kmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIG91ciBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG9zaXRvcnkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDcmVhdGUgYSBDaXJjbGVDSSBwcm9qZWN0IGZvciBvdXIgYXBwbGljYXRpb24mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtSdW4gdGhlIENJIHBpcGVsaW5lIG9uIENpcmNsZUNJJmx0Oy9saSZndDsKJmx0Oy9vbCZndDsKCiZsdDtwJmd0O0xldOKAmXMgZ2V0IHRvIGl0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZpcnN0LCBsZXTigJlzIGFkZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3Igb3VyIENJIHBpcGVsaW5lIHRvIG91ciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLiBJbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbmZpZy55bWwmbHQ7L2NvZGUmZ3Q7IGZpbGUsIGVudGVyIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpqb2JzOgogIGJ1aWxkOgogICAgd29ya2luZ19kaXJlY3Rvcnk6IH4vcmVwbwogICAgZG9ja2VyOgogICAgICAtIGltYWdlOiBjaW1nL25vZGU6MTIuMTYKICAgIHN0ZXBzOgogICAgICAtIGNoZWNrb3V0CiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdXBkYXRlLW5wbQogICAgICAgICAgY29tbWFuZDogJnF1b3Q7c3VkbyBucG0gaW5zdGFsbCAtZyBucG1ANSZxdW90OwogICAgICAtIHJlc3RvcmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgLSBydW46CiAgICAgICAgICBuYW1lOiBpbnN0YWxsLXBhY2thZ2VzCiAgICAgICAgICBjb21tYW5kOiBucG0gaW5zdGFsbAogICAgICAtIHNhdmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgICAgIHBhdGhzOgogICAgICAgICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdGVzdAogICAgICAgICAgY29tbWFuZDogbnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgY29uZmlndXJhdGlvbiBwdWxscyBpbiBhIE5vZGUuanMgaW1hZ2UgYW5kIGluc3RhbGxzIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGRlZmluZWQgaW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0Oy4gT25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCB0aGUgdGVzdCBzY3JpcHQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bnBtIHJ1biB0ZXN0Jmx0Oy9jb2RlJmd0OyBpcyB0aGVuIGV4ZWN1dGVkIHRvIHJ1biBhbGwgdGhlIHRlc3RzIGluIG91ciBhcHBsaWNhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGdvb2QgdG8gZ28uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY29tbWl0IGFsbCB5b3VyIGNoYW5nZXMgYW5kIHB1c2ggdGhlIHByb2plY3QgdG8gYSBHaXRIdWIgcmVwb3NpdG9yeSBvbiB0aGUgR2l0SHViIGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgQ2lyY2xlQ0kgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIGlzIHRvIHNldCB1cCB0aGUgcmVwb3NpdG9yeSBmb3Igb3VyIHByb2plY3QgYXMgYSBDaXJjbGVDSSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBDaXJjbGVDSSBjb25zb2xlLCBnbyB0byB0aGUgJmx0O3N0cm9uZyZndDtBZGQgUHJvamVjdHMmbHQ7L3N0cm9uZyZndDsgcGFnZSB0byBhZGQgdGhlIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtcHJvamVjdC5wbmcmcXVvdDsgYWx0PSZxdW90O0FkZCBQcm9qZWN0JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0Oy4gVGhpcyB3aWxsIGxvYWQgdGhlIG5leHQgc2NyZWVuLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3N0YXJ0LWJ1aWxkaW5nMS5wbmcmcXVvdDsgYWx0PSZxdW90O1N0YXJ0IEJ1aWxkaW5nIC0gQ29uZmlnIHNhbXBsZSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBzZXR1cCBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7LiBCZWZvcmUgdGhlIGJ1aWxkIHN0YXJ0cywgeW91IGdldCBhIHByb21wdCB0byBlaXRoZXIgZG93bmxvYWQgYW5kIHVzZSB0aGUgcHJvdmlkZWQgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBoYXZlIGl0IG9uIGEgc2VwYXJhdGUgYnJhbmNoIG9yIHNldCB1cCBvbmUgbWFudWFsbHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzIucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIEFkZCBtYW51YWxseSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1NlbGVjdCAmbHQ7c3Ryb25nJmd0O0FkZCBNYW51YWxseSZsdDsvc3Ryb25nJmd0OyB0byBwcm9jZWVkLiBUaGlzIHdpbGwgcHJvbXB0IGFub3RoZXIgZGlhbG9nIHRoYXQgY2hlY2tzIHRvIGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXQgdXAgdG8gYmVnaW4gYnVpbGRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzMucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIENvbmZpcm0gY29uZmlndXJhdGlvbiZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsgdG8gY29tcGxldGUgdGhlIHNldHVwLiBUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgcGlwZWxpbmUgdXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBvdXIgcHJvamVjdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGUgYnVpbGQgaXMgZG9uZSBydW5uaW5nLCB5b3Ugd2lsbCBnZXQgYSBzdWNjZXNzZnVsIGJ1aWxkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtc3VjY2Vzc2Z1bC5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHN1Y2Nlc3NmdWwmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O2J1aWxkJmx0Oy9zdHJvbmcmZ3Q7IHRvIHNlZSB0aGUgYmVoaW5kLXRoZS1zY2VuZXMgcHJvY2VzcyhJIGhhdmUgY29sbGFwc2VkIHRoZSAmbHQ7ZW0mZ3Q7dGVzdCZsdDsvZW0mZ3Q7IHN0ZXApLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtcHJvY2Vzcy5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHByb2Nlc3MmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBzY3JlZW4sIG91ciBwcm9qZWN0IGlzIHByb3Blcmx5IHNldCB1cCBhbmQgYWxsIG91ciB0ZXN0cyBhcmUgcnVubmluZyBmaW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgYXMgeW91IGRldmVsb3AsIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgbW9yZSBmZWF0dXJlcywgYWRkIHRlc3RzIHRvIHRoZW0gYW5kIHB1c2ggdG8gR2l0SHViLiBPbmNlIHlvdSBwdXNoLCB0aGUgQ0kgcGlwZWxpbmUgd2lsbCBydW4gYW5kIGFsbCB5b3VyIHRlc3RzIHdpbGwgYmUgZXhlY3V0ZWQuIElmIGFueSB0ZXN0IGZhaWxzLCB5b3VyIGJ1aWxkIHdpbGwgZmFpbCB3aGljaCB3aWxsIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbiB0byBiZSBmaXhlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW914oCZcmUgbm90IHB1c2hpbmcgYW55IGJ1Z3MgaW50byB5b3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIHRoaXMgYXJ0aWNsZSwgd2UgaGF2ZSBzZXQgdXAgYW4gYXV0b21hdGVkIENJIHBpcGVsaW5lIGZvciBvdXIgSW9uaWMgYXBwbGljYXRpb25zIHRvIGltcHJvdmUgb3VyIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGF1dG9tYXRpbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4gSGF2aW5nIGEgQ0kgcGlwZWxpbmUgdGhhdCBwcm9wZXJseSBydW5zIG91ciB0ZXN0cyBwcm90ZWN0cyB1cyBhZ2FpbnN0IG91cnNlbHZlcyBieSBlbnN1cmluZyB0aGF0IHdlIGRvbuKAmXQgZW5kIHVwIHdpdGggYnJva2VuIGFwcGxpY2F0aW9ucyBvciB0aGF0IHdlIGRvbuKAmXQgcHVzaCBidWdneSBjb2RlIHRvIG91ciB0ZWFt4oCZcyByZXBvc2l0b3J5IHdoaWxlIHdvcmtpbmcgdG9nZXRoZXIgb24gYSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyA6KSZsdDsvcCZndDsKCiZsdDtociAvJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3R3aXR0ZXIuY29tL2NvZGVyb25mbGVlaz9sYW5nPWVuJnF1b3Q7Jmd0O0Zpa2F5byZsdDsvYSZndDsgaXMgYSBmdWxsc3RhY2sgZGV2ZWxvcGVyIGFuZCBhdXRob3Igd2l0aCBvdmVyIGEgZGVjYWRlIG9mIGV4cGVyaWVuY2UgZGV2ZWxvcGluZyB3ZWIgYW5kIG1vYmlsZSBzb2x1dGlvbnMuIEhlIGlzIGN1cnJlbnRseSB0aGUgU29mdHdhcmUgTGVhZCBhdCBUZWNoIFNwZWNpYWxpc3QgQ29uc3VsdGluZyBhbmQgZGV2ZWxvcHMgY291cnNlcyBmb3IgUGFja3QgYW5kIFVkZW15LiBIZSBoYXMgYSBzdHJvbmcgcGFzc2lvbiBmb3IgdGVhY2hpbmcgYW5kIGhvcGVzIHRvIGJlY29tZSBhIGZ1bGwtdGltZSBhdXRob3IuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5EcmF3biBPdXQgQ29udmVyc2F0aW9ucywgZmVhdHVyaW5nIENpcmNsZUNJIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlciwgUGF0IFNoaWVsZHM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZHJhd24tb3V0LWNvbnZlcnNhdGlvbi1mZWF0dXJpbmctY2lyY2xlY2ktcHJpbmNpcGFsLXNvZnR3YXJlLWVuZ2luZWVyLXBhdC1zaGllbGRzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5GcmksIDE1IE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RyYXduLW91dC1jb252ZXJzYXRpb24tZmVhdHVyaW5nLWNpcmNsZWNpLXByaW5jaXBhbC1zb2Z0d2FyZS1lbmdpbmVlci1wYXQtc2hpZWxkcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Db3JleSBMZXdpczwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtPbiB0aGlzIGVwaXNvZGUgb2YgRHJhd24gT3V0IENvbnZlcnNhdGlvbnMsIHdlIHRhbGsgYWJvdXQgc29tZXRoaW5nIG5lYXIgYW5kIGRlYXIgdG8gb3VyIGhlYXJ0cyDigJMgQ2lyY2xlQ0kuIFdlLCBhbG9uZyB3aXRoIGh1bmRyZWQgb2YgdGhvdXNhbmRzIG9mIG90aGVyIGRldmVsb3BlcnMgYXQgY29tcGFuaWVzIGxpa2UgU3BvdGlmeSwgRmFjZWJvb2ssIEZvcmQgYW5kIEFldG5hLCB1c2UgQ2lyY2xlQ0kgZXZlcnkgZGF5IHRvIG1ha2Ugc3VyZSB0aGF0IHdl4oCZcmUgZGVwbG95aW5nIHF1YWxpdHkgY29kZSwgYW5kIGJ1aWxkaW5nIGVmZmljaWVuY2llcyBpbnRvIG91ciBlbmdpbmVlcmluZyBwcm9jZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0LCB3aGF0IGV4YWN0bHkgaXMgdW5kZXJuZWF0aCBvdXIgcGxhdGZvcm3igJlzIGhvb2Q/Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Sm9pbiBvdXIgQ1RPIFJvYiBadWJlciBhcyBoZSBob3N0cyBDaXJjbGVDSeKAmXMgUHJpbmNpcGFsIFNvZnR3YXJlIEVuZ2luZWVyIFBhdCBTaGllbGRzIHRvIGRpc2N1c3MgdGhlIGlubmVyLXdvcmtpbmdzIG9mIG91ciB0ZWNobm9sb2d5IGFuZCBwbGF0Zm9ybS4gVGhleSBkaXNjdXNzIGV2ZXJ5dGhpbmcgZnJvbSBwcm9kdWN0IGZlYXR1cmVzIHRvIGFyY2hpdGVjdHVyZSBhbmQgdGFsayBhYm91dCBob3cgYW5kIHdoeSB0aGUgY29yZSBlbGVtZW50cyBvZiBvdXIgcGxhdGZvcm0gZ290IGJ1aWx0LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3JvYi1wYXQucG5nJnF1b3Q7IGFsdD0mcXVvdDtyb2ItcGF0LnBuZyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1JvYiBldmVuIHRha2VzIGEgdHVybiB3aXRoIHRoZSBtYXJrZXJzIHRvIGRpc2N1c3MgZG9tYWluLWRyaXZlbiBkZXNpZ24sIGF1dGhlbnRpY2F0aW9uIGFuZCBtb3JlLiBMZWFybiBldmVyeXRoaW5nIHlvdSBldmVyIHdhbnRlZCB0byBrbm93IGFib3V0IENpcmNsZUNJIGFuZCBtb3JlIGluIHRvZGF54oCZcyBjb252ZXJzYXRpb24uJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXImcXVvdDsmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3lvdXR1LmJlL1dMOVJRNmZNbGUwJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvY2lyY2xlY2kuZ2lmJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsKICAmbHQ7L2EmZ3Q7CgombHQ7YnIgLyZndDsKCiAgJmx0O3AmZ3Q7CiAgICAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8veW91dHUuYmUvV0w5UlE2Zk1sZTAmcXVvdDsgc3R5bGU9JnF1b3Q7Y29sb3I6IzAwMDBFRTsmcXVvdDsmZ3Q7CiAgICAgIFdhdGNoIHRoZSBmdWxsIHZpZGVvIGhlcmUKICAgICZsdDsvYSZndDsKICAmbHQ7L3AmZ3Q7CiZsdDsvZGl2Jmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZG8gSSB1c2UgSW5mcmFzdHJ1Y3R1cmUgYXMgQ29kZT88L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWRvLWktaWFjLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE1heSAyMDIwIDEyOjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2hvdy1kby1pLWlhYy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5BbmdlbCBSaXZlcmE8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7SW5mcmFzdHJ1Y3R1cmUgYXMgY29kZSAoSWFDKSBpcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBhbmQgcHJvdmlzaW9uaW5nIGNsb3VkIGFuZCBJVCByZXNvdXJjZXMgdmlhIG1hY2hpbmUgcmVhZGFibGUgZGVmaW5pdGlvbiBmaWxlcyBhbmQgaXMgYSBwYXJ0IG9mIG1vZGVybiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lcy4gSWFDIGVuYWJsZXMgb3JnYW5pemF0aW9ucyB0byBwcm92aXNpb24sIG1hbmFnZSwgYW5kIGRlc3Ryb3kgY29tcHV0ZSByZXNvdXJjZXMgdXNpbmcgbW9kZXJuIERldk9wcyB0b29scy4gSWFDIGVuYWJsZXMgdGhpcyBieSBzdGF0aWNhbGx5IGRlZmluaW5nIGFuZCBkZWNsYXJpbmcgdGhlc2UgcmVzb3VyY2VzIGluIGNvZGUsIHRoZW4gZGVwbG95aW5nIGFuZCBkeW5hbWljYWxseSBtYWludGFpbmluZyB0aGVzZSByZXNvdXJjZXMgdmlhIGNvZGUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gcmVjZW50IGludGVyYWN0aW9ucyB3aXRoIGRldmVsb3BlcnMsIEnigJl2ZSByZWFsaXplZCB0aGF0IG1hbnkgYXJlIGVpdGhlciBub3QgYXdhcmUgb2YgSWFDLCBvciBhcmUgYXdhcmUgYnV0IGhhdmUgYWJhbmRvbmVkIHRoZWlyIGluaXRpYWwgZWZmb3J0cyBiZWNhdXNlIHJhbXBpbmcgdXAgd2FzIHRvbyBjdW1iZXJzb21lLiBJbiB0aGlzIHBvc3QsIEkgd2lsbCBkaXNjdXNzIHRoZSBiZW5lZml0cyBvZiBJYUMgYW5kIHNvbWUgb2YgdGhlIHRvb2xpbmcgb3B0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgYWxvbmcgd2l0aCBhIGJyaWVmIGRlbW9uc3RyYXRpb24gb24gaG93IHRvIHVzZSB0aGVtIGluIGhvcGVzIG9mIGVhc2luZyB0aGUgdHJhbnNpdGlvbiB0byB1c2luZyBJYUMuIEkgd2lsbCBmb2N1cyBvbiB0aGUgdHdvIG1vc3QgcG9wdWxhciBJYUMgdG9vbHMgdXNlZCBpbiB0aGUgaW5kdXN0cnkgdG9kYXk6ICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cudGVycmFmb3JtLmlvLyZxdW90OyZndDtIYXNoaUNvcnDigJlzIFRlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtCZWZvcmUgeW91IGdldCBzdGFydGVkLCB5b3XigJlsbCBuZWVkIHRvIGhhdmUgdGhlc2UgdGhpbmdzOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9mcmVlJnF1b3Q7Jmd0O0dvb2dsZSBDbG91ZCZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NyZWF0ZSBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3Jlc291cmNlLW1hbmFnZXIvZG9jcy9jcmVhdGluZy1tYW5hZ2luZy1wcm9qZWN0cyNjcmVhdGluZ19hX3Byb2plY3QmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIHByb2plY3QmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FwcC5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkgQVBJIHRva2VuJmx0Oy9hJmd0OyBhbmQgc2F2ZSBpdCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgbG9jYWwgaW5zdGFsbCBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vc2RrL2RvY3MvcXVpY2tzdGFydHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIFNESyBDTEkmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSBsb2NhbCBpbnN0YWxsIG9mIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaHViLmRvY2tlci5jb20vc2VhcmNoLz90eXBlPWVkaXRpb24mYW1wO2FtcDtvZmZlcmluZz1jb21tdW5pdHkmcXVvdDsmZ3Q7RG9ja2VyIGNsaWVudCZsdDsvYSZndDsmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBHb29nbGUgQ2xvdWQgcHJvamVjdCBjcmVkZW50aWFscyZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDbG91ZFBsYXRmb3JtL2NvbW11bml0eS9ibG9iL21hc3Rlci90dXRvcmlhbHMvZ2V0dGluZy1zdGFydGVkLW9uLWdjcC13aXRoLXRlcnJhZm9ybS9pbmRleC5tZCNnZXR0aW5nLXByb2plY3QtY3JlZGVudGlhbHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIGNyZWRlbnRpYWxzJmx0Oy9hJmd0OyBpbiBvcmRlciB0byBwZXJmb3JtIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgdXNpbmcgSWFDIHRvb2xpbmcuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9hcGlzL2NyZWRlbnRpYWxzL3NlcnZpY2VhY2NvdW50a2V5JnF1b3Q7Jmd0O0NyZWF0ZSBTZXJ2aWNlIEFjY291bnQgS2V5IHBhZ2UmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7U2VsZWN0IHRoZSBkZWZhdWx0IHNlcnZpY2UgYWNjb3VudCBvciBjcmVhdGUgYSBuZXcgb25lLCBzZWxlY3QgSlNPTiBhcyB0aGUga2V5IHR5cGUsIGFuZCBjbGljayAmbHQ7c3Ryb25nJmd0O0NyZWF0ZSZsdDsvc3Ryb25nJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O1NhdmUgdGhpcyBKU09OIGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgYW5kIHJlbmFtZSB0aGUgZmlsZSB0byAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaWNkX2RlbW9fZ2NwX2NyZWRzLmpzb24mbHQ7L2NvZGUmZ3Q7LiBUaGlzIGlzICZsdDtzdHJvbmcmZ3Q7dmVyeSBpbXBvcnRhbnQmbHQ7L3N0cm9uZyZndDsgZm9yIGVuYWJsaW5nIHRoZSBHb29nbGUgQ2xvdWQgQ0xJIGluIHRoZSBjb250YWluZXIgbGF0ZXIgb24mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBhIFB1bHVtaSBBUEkgdG9rZW4mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7WW91IHdpbGwgbmVlZCB0byBnZXQgYSBQdWx1bWkgQVBJIHRva2VuIHRvIHN0b3JlIHlvdXIgcHJvamVjdCBzdGF0ZSBvbiBQdWx1bWnigJlzIGJhY2tlbmQgY2xvdWQuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vYXBwLnB1bHVtaS5jb20vJnF1b3Q7Jmd0O2FwcC5wdWx1bWkuY29tLyZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1NlbGVjdCBhbiBPcmdhbml6YXRpb24mbHQ7L3N0cm9uZyZndDsgb24gdGhlIHVwcGVyIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSBhbmQgc2VsZWN0IHlvdXIgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O0FjY2VzcyBUb2tlbnMmbHQ7L3N0cm9uZyZndDsgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7TmV3IEFjY2VzcyBUb2tlbiZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7Q3JlYXRlJmx0Oy9zdHJvbmcmZ3Q7IGFuZCBzYXZlIHRoZSBuZXcgQVBJIHRva2VuIHRoYXQgd2FzIGNyZWF0ZWQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemUgeW91ciBQdWx1bWkgcHJvamVjdCBsYXRlciZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7aDImZ3Q7RG9ja2VyIHB1bGwgSWFDMTAxIERvY2tlciBpbWFnZSZsdDsvaDImZ3Q7CgombHQ7cCZndDtBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlZCBhbmQgeW914oCZcmUgcmVhZHkgdG8gcHVsbCB0aGUgZG9ja2VyIGltYWdlIGZvciB0aGlzIHdvcmtzaG9wLiBJbiB0ZXJtaW5hbCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBwdWxsIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm93IGhhdmUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2FyaXYzcmEvaWFjMTAxJmx0Oy9jb2RlJmd0OyBkb2NrZXIgaW1hZ2UgbG9jYWxseS4gWW91IGNhbiB2ZXJpZnkgYnV5IHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgYW5kIHlvdSBzaG91bGQgc2VlIHRoZSBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0RvY2tlciBydW4gSWFDMTAxIGNvbnRhaW5lciZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgd2XigJlsbCBjcmVhdGUgYSBuZXcgRG9ja2VyIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YXJpdjNyYS9pYWMxMDEmbHQ7L2NvZGUmZ3Q7IGltYWdlIHdoaWNoIGhhcyBhbGwgdGhlIElhQyB0b29scyBhbmQgY29kZSBwcmUtYmFrZWQuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O01vdW50aW5nIHRoZSAvLmNvbmZpZy9nY2xvdWQvIGRpcmVjdG9yeSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtCZWZvcmUgcnVubmluZyB0aGUgbmV3IGNvbnRhaW5lciB5b3UgbmVlZCB0aGUgYWJzb2x1dGUgcGF0aCB0byB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkuIE9uIG15IE1hY09TIG1hY2hpbmUsIG15IGFic29sdXRlIHBhdGggaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7L1VzZXJzL2FuZ2VsLy5jb25maWcvZ2Nsb3VkLyZsdDsvY29kZSZndDsuIEJlIHN1cmUgdG8gZ2V0IHlvdXIgYWJzb2x1dGUgZmlsZSBwYXRoIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2Nsb3VkJmx0Oy9jb2RlJmd0OyBkaXJlY3Rvcnkgb24geW91ciBsb2NhbCBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtSdW4gSWFDMTAxIGNvbnRhaW5lciB3aXRoIG1vdW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtSdW4gdGhpcyBjb21tYW5kIGluIGEgdGVybWluYWwgcnVuIGJ1dCBiZSBzdXJlIHRvIHJlcGxhY2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0OyZsdDsvY29kZSZndDsgYml0IHdpdGggeW91ciBhY3R1YWwgYWJzb2x1dGUgcGF0aCB0byB5b3VyIGxvY2FsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dsb2N1ZC8mbHQ7L2NvZGUmZ3Q7ZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtaXQgLS1uYW1lIGlhY3Rlc3QgLS1tb3VudCB0eXBlPWJpbmQsc291cmNlPSZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0Oy5jb25maWcvZ2Nsb3VkLyx0YXJnZXQ9L3Jvb3QvLmNvbmZpZy9nY2xvdWQvIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJYUMxMDEgY29udGFpbmVyIGlzIHJ1bm5pbmcmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGUgcHJldmlvdXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgeW91ciBJYUMxMDEgY29udGFpbmVyIHdpbGwgYmUgdXAgYW5kIHJ1bm5pbmcgYW5kIHlvdXIgdGVybWluYWwgc2hlbGwgaGFzIGRyb3BwZWQgeW91IGludG8gdGhlIHJ1bm5pbmcgY29udGFpbmVyLiBFdmVyeSBjb21tYW5kIHlvdSBydW4gaW4geW91ciB0ZXJtaW5hbCBzaGVsbCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBEb2NrZXIgY29udGFpbmVyIGZyb20gbm93IG9uIHVudGlsIHlvdSBtYW51YWxseSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtleGl0Jmx0Oy9jb2RlJmd0OyB0aGUgY29udGFpbmVyLiBUaGUgY29udGFpbmVyIGhhcyB0aGUgVGVycmFmb3JtIGFuZCBQdWx1bWkgQ0xJIHRvb2xzIGluc3RhbGxlZCwgYXMgd2VsbCBhcyBleGFtcGxlIGNvZGUgZm9yIGVhY2ggdGhhdCBjcmVhdGVzIGluZnJhc3RydWN0dXJlIGluIHRoZWlyIHJlc3BlY3RpdmUgdG9vbHMuIFRoZSBjb250YWluZXIgcHJvamVjdHMgZmlsZXMgYXJlIG1hcHBlZCBhcyBmb2xsb3dzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHJvamVjdHMvCnxfIHRlcnJhZm9ybS9nY3AvY29tcHV0ZS8gICAjIENvbnRhaW5zIHRoZSBUZXJyYWZvcm0gY29kZSBmaWxlcwp8XyBwdWx1bWkvZ2NwL2NvbXB1dGUvICAgICAgIyBDb250YWlucyB0aGUgUHVsdW1pIGNvZGUgZmlsZXMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gyJmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2EmZ3Q7IGlzIGEgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgYnVpbGRpbmcsIGNoYW5naW5nLCBhbmQgdmVyc2lvbmluZyBpbmZyYXN0cnVjdHVyZSBzYWZlbHkgYW5kIGVmZmljaWVudGx5LiBUZXJyYWZvcm0gY2FuIG1hbmFnZSBleGlzdGluZyBzZXJ2aWNlIHByb3ZpZGVycyBhcyB3ZWxsIGFzIGN1c3RvbSBpbi1ob3VzZSBzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q29uZmlndXJhdGlvbiBmaWxlcyBkZXNjcmliZSB0aGUgY29tcG9uZW50cyBuZWVkZWQgdG8gcnVuIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yIHlvdXIgZW50aXJlIGRhdGFjZW50ZXIgb24gVGVycmFmb3JtLiBUZXJyYWZvcm0gZ2VuZXJhdGVzIGFuIGV4ZWN1dGlvbiBwbGFuIGRlc2NyaWJpbmcgd2hhdCBpdCB3aWxsIGRvIHRvIHJlYWNoIHRoZSBkZXNpcmVkIHN0YXRlLCBhbmQgdGhlbiBleGVjdXRlcyBpdCB0byBidWlsZCB0aGUgZGVzY3JpYmVkIGluZnJhc3RydWN0dXJlLiBBcyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBUZXJyYWZvcm0gaXMgYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBjaGFuZ2VkIGFuZCBjcmVhdGUgaW5jcmVtZW50YWwgZXhlY3V0aW9uIHBsYW5zIHdoaWNoIGNhbiBiZSBhcHBsaWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZSBpbmZyYXN0cnVjdHVyZSBUZXJyYWZvcm0gY2FuIG1hbmFnZSBpbmNsdWRlcyBsb3ctbGV2ZWwgY29tcG9uZW50cyBzdWNoIGFzIGNvbXB1dGUgaW5zdGFuY2VzLCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZywgYXMgd2VsbCBhcyBoaWdoLWxldmVsIGNvbXBvbmVudHMgc3VjaCBhcyBETlMgZW50cmllcywgU2FhUyBmZWF0dXJlcywgZXRjLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBUZXJyYWZvcm0mbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCB3aXRoIHByb3Zpc2lvbmluZyBzb21lIHJlc291cmNlcyBpbiBHQ1AgdXNpbmcgVGVycmFmb3JtIGNvZGUuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDttYWluLnRmICZsdDsvY29kZSZndDsgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBjb2RlIHRoYXQgaGFzIG91ciBpbmZyYXN0cnVjdHVyZSBkZWZpbmVkLiBJbiB0aGlzIGZpbGUgd2XigJlyZSBjcmVhdGluZyBhIG5ldyBjb21wdXRlIGluc3RhbmNlIHRoYXQgd2lsbCBpbnN0YWxsIGFuZCBydW4gYSBQeXRob24gRmxhc2sgYXBwIHBhY2thZ2VkIGluIGEgRG9ja2VyIGNvbnRhaW5lci4gVGhlIFRlcnJhZm9ybSBjb2RlIHdpbGwgYWxzbyBjcmVhdGUgc29tZSBmaXJld2FsbCBydWxlcyB0aGF0IHdpbGwgYWxsb3cgcHVibGljIGFjY2VzcyB0byB0aGUgYXBwIG92ZXIgcG9ydCA1MDAwLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHByb3Zpc2lvbiB0aGlzLCBydW4gdGhpcyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NkIH4vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJbml0aWFsaXppbmcgVGVycmFmb3JtJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1doaWxlIGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBydW4gdGhpcyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7dGVycmZvcm0gaW5pdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSByZXN1bHRzIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cm9vdEBkOWNlNzIxMjkzZTI6fi9wcm9qZWN0L3RlcnJhZm9ybS9nY3AvY29tcHV0ZSMgdGVycmFmb3JtIGluaXQKCkluaXRpYWxpemluZyB0aGUgYmFja2VuZC4uLgoKSW5pdGlhbGl6aW5nIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBDaGVja2luZyBmb3IgYXZhaWxhYmxlIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBEb3dubG9hZGluZyBwbHVnaW4gZm9yIHByb3ZpZGVyICZxdW90O2dvb2dsZSZxdW90OyAoaGFzaGljb3JwL2dvb2dsZSkgMy4xMC4wLi4uCgoqIHByb3ZpZGVyLmdvb2dsZTogdmVyc2lvbiA9ICZxdW90O34mYW1wO2d0OyAzLjEwJnF1b3Q7CgpUZXJyYWZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7aDMmZ3Q7UHJldmlld2luZyB3aXRoIFRlcnJhZm9ybSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUZXJyYWZvcm0gaGFzIGEgY29tbWFuZCB0aGF0IGFsbG93cyB5b3UgdG8gZHJ5IHJ1biBhbmQgdmFsaWRhdGUgeW91ciBUZXJyYWZvcm0gY29kZSB3aXRob3V0IGFjdHVhbGx5IGV4ZWN1dGluZyBhbnl0aGluZy4gVGhlIGNvbW1hbmQgaXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybSBwbGFuJmx0Oy9jb2RlJmd0OyB3aGljaCBhbHNvIGdyYXBocyBhbGwgdGhlIGFjdGlvbnMgYW5kIGNoYW5nZXMgdGhhdCBUZXJyYWZvcm0gd2lsbCBleGVjdXRlIGFnYWluc3QgeW91ciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS4gSW4gdGhlIHRlcm1pbmFsIHJ1bjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3RlcnJhZm9ybSBwbGFuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSByZXN1bHRzIHNpbWlsYXIgdG8gdGhpcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0FuIGV4ZWN1dGlvbiBwbGFuIGhhcyBiZWVuIGdlbmVyYXRlZCBhbmQgaXMgc2hvd24gYmVsb3cuClJlc291cmNlIGFjdGlvbnMgYXJlIGluZGljYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKICArIGNyZWF0ZQoKVGVycmFmb3JtIHdpbGwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGFjdGlvbnM6CgogICMgZ29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwuaHR0cC01MDAwIHdpbGwgYmUgY3JlYXRlZAogICsgcmVzb3VyY2UgJnF1b3Q7Z29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwmcXVvdDsgJnF1b3Q7aHR0cC01MDAwJnF1b3Q7IHsKICAgICAgKyBjcmVhdGlvbl90aW1lc3RhbXAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVzdGluYXRpb25fcmFuZ2VzID0gKGtub3duIGFmdGVyIGFwcGx5KQogIH0KCiAgICAjIGdvb2dsZV9jb21wdXRlX2luc3RhbmNlLmRlZmF1bHQgd2lsbCBiZSBjcmVhdGVkCiAgKyByZXNvdXJjZSAmcXVvdDtnb29nbGVfY29tcHV0ZV9pbnN0YW5jZSZxdW90OyAmcXVvdDtkZWZhdWx0JnF1b3Q7IHsKICAgICAgKyBjYW5faXBfZm9yd2FyZCAgICAgICA9IGZhbHNlCiAgICAgICsgY3B1X3BsYXRmb3JtICAgICAgICAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVsZXRpb25fcHJvdGVjdGlvbiAgPSBmYWxzZQogICAgICArIGd1ZXN0X2FjY2VsZXJhdG9yICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGlkICAgICAgICAgICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGluc3RhbmNlX2lkICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVsX2ZpbmdlcnByaW50ICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVscyAgICAgICAgICAgICAgID0gewogICAgICAgICAgKyAmcXVvdDtjb250YWluZXItdm0mcXVvdDsgPSAmcXVvdDtjb3Mtc3RhYmxlLTY5LTEwODk1LTYyLTAmcXVvdDsKICAgICAgICB9CiAgICAgICsgbWFjaGluZV90eXBlICAgICAgICAgPSAmcXVvdDtnMS1zbWFsbCZxdW90OwogIH0KICBQbGFuOiAyIHRvIGFkZCwgMCB0byBjaGFuZ2UsIDAgdG8gZGVzdHJveS4KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgeW91IGNhbiBzZWUsIFRlcnJhZm9ybSBpcyBnb2luZyB0byBjcmVhdGUgbmV3IEdDUCByZXNvdXJjZXMgZm9yIHlvdSBiYXNlZCBvbiB0aGUgY29kZSBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bWFpbi50ZiZsdDsvY29kZSZndDsgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGFwcGx5Jmx0Oy9oMyZndDsKCiZsdDtwJmd0O05vdyB5b3XigJlyZSByZWFkeSB0byBjcmVhdGUgdGhlIG5ldyBpbmZyYXN0cnVjdHVyZSBhbmQgZGVwbG95IHRoZSBhcHBsaWNhdGlvbi4gUnVuIHRoaXMgY29tbWFuZCBpbiB0aGUgdGVybWluYWw6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt0ZXJyYWZvcm0gYXBwbHkKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGVycmFmb3JtIHdpbGwgcHJvbXB0IHlvdSB0byBjb25maXJtIHlvdXIgY29tbWFuZC4gVHlwZSB5ZXMgYW5kIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0RvIHlvdSB3YW50IHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucz8KICBUZXJyYWZvcm0gd2lsbCBwZXJmb3JtIHRoZSBhY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KICBPbmx5ICd5ZXMnIHdpbGwgYmUgYWNjZXB0ZWQgdG8gYXBwcm92ZS4KCiAgRW50ZXIgYSB2YWx1ZTogeWVzCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RlcnJhZm9ybSB3aWxsIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgYW5kIHlvdSB3aWxsIGhhdmUgYW4gYXBwbGljYXRpb24gdXAgYW5kIHJ1bm5pbmcgb24gR0NQIHNob3J0bHkgYWZ0ZXIgaXQgY29tcGxldGVzLiBQbGVhc2Ugbm90ZSB0aGF0IGl0IHdpbGwgdGFrZSAzLTUgbWludXRlcyBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbWUgb25saW5lIGFmdGVyIFRlcnJhZm9ybSBjb21wbGV0ZXMuIEl04oCZcyBub3QgYW4gaW5zdGFudCBwcm9jZXNzIGJlY2F1c2UgdGhlIGJhY2tlbmQgc3lzdGVtcyBhcmUgcHJvdmlzaW9uaW5nIGFuZCBicmluZ2luZyB0aGluZ3Mgb25saW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgZG9uZSwgeW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7bGFuZ3VhZ2Utc2hlbGwgaGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7T3V0cHV0czoKClB1YmxpY19JUF9BZGRyZXNzICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgMzQuNzQuNzUuMTcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1B1YmxpY19JUF9BZGRyZXNzJmx0Oy9jb2RlJmd0OyB2YWx1ZSBpcyB0aGUgSVAgQWRkcmVzcyB0aGF0IHlvdXIgYXBwIGlzIHJ1bm5pbmcgb24sIHNvIGlmIHlvdSBnbyB0byBhIGJyb3dzZXIgYW5kIHBsdWcgdGhhdCBudW1iZXIgaW4gcGx1cyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7OjUwMDAmbHQ7L2NvZGUmZ3Q7IHBvcnQgYWRkcmVzcyAoaXQgd291bGQgbG9vayBsaWtlIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7MzQuNzQuNzUuMTc6NTAwMCZsdDsvY29kZSZndDspIHlvdSB3aWxsIHNlZSB5b3VyIGFwcCBydW5uaW5nIGluIEdDUC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Tm93IHRoYXQgeW91IGhhdmUgcHJvb2YgdGhhdCB5b3VyIEdvb2dsZSBDb21wdXRlIGluc3RhbmNlIGFuZCB5b3VyIGFwcGxpY2F0aW9uIHdvcmssIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gZGVzdHJveSB0aGUgYXNzZXRzIHRoYXQgeW91IGNyZWF0ZWQgaW4gdGhpcyB0dXRvcmlhbC4gWW91IGNhbiBsZWF2ZSBpdCB1cCBhbmQgcnVubmluZywgYnV0IGJlIGF3YXJlIHRoYXQgdGhlcmUgaXMgYSBjb3N0IGFzc29jaWF0ZWQgd2l0aCBhbnkgYXNzZXRzIHJ1bm5pbmcgb24gdGhlIEdvb2dsZSBDbG91ZCBQbGF0Zm9ybSBhbmQgeW91IHdpbGwgYmUgbGlhYmxlIGZvciB0aG9zZSBjb3N0cy4gR29vZ2xlIGdpdmVzIGEgZ2VuZXJvdXMgJDMwMCBjcmVkaXQgZm9yIGl0cyBmcmVlIHRyaWFsIHNpZ24tdXAsIGJ1dCB5b3UgY291bGQgZWFzaWx5IGVhdCB0aHJvdWdoIHRoYXQgaWYgeW91IGxlYXZlIGFzc2V0cyBydW5uaW5nLiBJdOKAmXMgdXAgdG8geW91LCBidXQgcnVubmluZyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0ZXJyYWZvcm0gZGVzdHJveSZsdDsvY29kZSZndDsgd2lsbCB0ZXJtaW5hdGUgYW55IHJ1bm5pbmcgYXNzZXRzLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIEnigJlsbCBkZW1vbnN0cmF0ZSBob3cgdG8gcGVyZm9ybSBpbmZyYXN0cnVjdHVyZSBwcm92aXNpb25pbmcgdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtQdWx1bWkgU0RLJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9wcm9kdWN0LyNzZGsmcXVvdDsmZ3Q7UHVsdW1pIFNESyZsdDsvYSZndDsgaXMgYW4gb3BlbiBzb3VyY2UgZnJhbWV3b3JrIGZvciBkZWZpbmluZyBhbmQgZGVwbG95aW5nIGNsb3VkIGFwcHMgYW5kIElhQy4gUHVsdW1pIGVuYWJsZXMgZGV2ZWxvcGVycyB0byB3cml0ZSBjb2RlIGluIHRoZWlyIGZhdm9yaXRlIGxhbmd1YWdlIHN1Y2ggYXMgVHlwZVNjcmlwdCwgSmF2YVNjcmlwdCwgUHl0aG9uLCBhbmQgR28uIFRoaXMgZW5hYmxlcyBtb2Rlcm4gYXBwcm9hY2hlcyB0byBjbG91ZCBhcHBsaWNhdGlvbnMgYW5kIGluZnJhc3RydWN0dXJlIHdpdGhvdXQgbmVlZGluZyB0byBsZWFybiBhbm90aGVyIFlBTUwgb3IgRFNMIGRpYWxlY3QuIFRoaXMgdW5sb2NrcyBhYnN0cmFjdGlvbnMgYW5kIHJldXNlLCBhcyB3ZWxsIGFzIGFjY2VzcyB0byB5b3VyIGZhdm9yaXRlIElERXMsIHJlZmFjdG9yaW5nLCBhbmQgdGVzdGluZyB0b29scy4gTWFzdGVyIG9uZSB0b29sY2hhaW4gYW5kIHNldCBvZiBmcmFtZXdvcmtzIGFuZCBnbyB0byBhbnkgY2xvdWQgKEFXUywgQXp1cmUsIEdDUCwgb3IgS3ViZXJuZXRlcykgd2l0aCBlYXNlLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBQdWx1bWkmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUgZXhwZXJpZW5jZWQgYnVpbGRpbmcgaW5mcmFzdHJ1Y3R1cmUgdXNpbmcgVGVycmFmb3JtLCBub3cgeW914oCZbGwgbGVhcm4gaG93IHRvIHByb3Zpc2lvbiBhbmQgZGVwbG95IG5ldyBpbmZyYXN0cnVjdHVyZSB1c2luZyBQdWx1bWkuIFRoZSBQdWx1bWkgZXhhbXBsZSB3aWxsIGNyZWF0ZSB0aGUgc2FtZSBHQ1AgcmVzb3VyY2VzIHByZXZpb3VzbHkgdXNpbmcgUHVsdW1pIGNvZGUgYW5kIHRvb2xzLiBQdWx1bWkgZW5hYmxlcyB5b3UgdG8gZGVmaW5lIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgaW4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHdoaWNoIHByb3ZpZGVzIGxvdHMgb2YgZmxleGliaWxpdHkuIEluIHRoaXMgZXhhbXBsZSwgd2XigJlyZSB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vd3d3LnB5dGhvbi5vcmcvJnF1b3Q7Jmd0O1B5dGhvbiZsdDsvYSZndDsgYXMgb3VyIGxhbmd1YWdlLiBUaGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7X19tYWluLnB5X18mbHQ7L2NvZGUmZ3Q7IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC9wdWx1bWkvZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgaXMgd2hlcmUgd2VyZSBnb2luZyB0byBkZWZpbmUgb3VyIGluZnJhc3RydWN0dXJlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlIHN1cmUgdG8gaGF2ZSB5b3VyIFB1bHVtaSBBUEkgdG9rZW4gYXZhaWxhYmxlLiBZb3XigJlsbCBuZWVkIGl0IGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIFB1bHVtaSBleGFtcGxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7fi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGRpcmVjdG9yeS4gUnVuIHRoaXMgY29tbWFuZCB0byBjaGFuZ2UgaW50byB0aGUgUHVsdW1pIGV4YW1wbGUgZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2Qgfi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gzJmd0O0luc3RhbGxpbmcgZGVwZW5kaWVuY2llcyBmb3IgUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1NpbmNlIHdl4oCZcmUgZGVmaW5pbmcgb3VyIElhQyBzcGVjcyB1c2luZyBQeXRob24gd2XigJlsbCBuZWVkIHRvIGZpcnN0IGluc3RhbGwgdGhlIFB1bHVtaSBQeXRob24gU0RLIGRlcGVuZGVuY2llcy4gSW4gdGhlIHRlcm1pbmFsIHJ1biB0aGlzIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtwaXAgaW5zdGFsbCAtciAuLi9yZXF1aXJlbWVudHMudHh0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtQcmV2aWV3aW5nIHdpdGggUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1B1bHVtaSBoYXMgYSBkcnktcnVuIGNvbW1hbmQgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBwcmV2aWV3Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRpc3BsYXlzIGEgcHJldmlldyBvZiB0aGUgdXBkYXRlcyB0byBhbiBleGlzdGluZyBzdGFjayB3aG9zZSBzdGF0ZSBpcyByZXByZXNlbnRlZCBieSBhbiBleGlzdGluZyBzdGF0ZSBmaWxlLiBUaGUgbmV3IGRlc2lyZWQgc3RhdGUgaXMgY29tcHV0ZWQgYnkgcnVubmluZyBhIFB1bHVtaSBwcm9ncmFtLCBhbmQgZXh0cmFjdGluZyBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbnMgZnJvbSBpdHMgcmVzdWx0aW5nIG9iamVjdCBncmFwaC4gVGhlc2UgYWxsb2NhdGlvbnMgYXJlIHRoZW4gY29tcGFyZWQgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc3RhdGUgdG8gZGV0ZXJtaW5lIHdoYXQgb3BlcmF0aW9ucyBtdXN0IHRha2UgcGxhY2UgdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZCBzdGF0ZS4gTm8gY2hhbmdlcyB0byB0aGUgc3RhY2sgd2lsbCBhY3R1YWxseSB0YWtlIHBsYWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGlzIGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHByZXZpZXcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHJlc3VsdHMgcHJvbXB0aW5nIHlvdSBmb3IgdGhlIFB1bHVtaSBBUEkgdG9rZW4geW91IGNyZWF0ZWQgZWFybGllci4gUGFzdGUgdGhlIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLiBBZnRlciB5b3UgcGFzdGUgdGhlIHRva2VuIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O01hbmFnZSB5b3VyIFB1bHVtaSBzdGFja3MgYnkgbG9nZ2luZyBpbi4KUnVuIGBwdWx1bWkgbG9naW4gLS1oZWxwYCBmb3IgYWx0ZXJuYXRpdmUgbG9naW4gb3B0aW9ucy4KRW50ZXIgeW91ciBhY2Nlc3MgdG9rZW4gZnJvbSBodHRwczovL2FwcC5wdWx1bWkuY29tL2FjY291bnQvdG9rZW5zCiAgICBvciBoaXQgJmFtcDtsdDtFTlRFUiZhbXA7Z3Q7IHRvIGxvZyBpbiB1c2luZyB5b3VyIGJyb3dzZXIgICAgICAgICAgICAgICAgICAgOgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1doZW4gcGFzdGluZyB0aGUgQVBJIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLCBubyB2YWx1ZXMgd2lsbCBiZSBkaXNwbGF5ZWQuIEl0IHdpbGwgcmVtYWluIGludmlzaWJsZSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuJmx0Oy9pJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBtYXkgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGEgc3RhY2sgaW4gdGhlIHRlcm1pbmFsLiBJZiBzbywgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkZXYmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB0aGVuIGhpdCBlbnRlci4gWW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UHJldmlld2luZyB1cGRhdGUgKGRldik6CiAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICAgICBQbGFuCiArICAgcHVsdW1pOnB1bHVtaTpTdGFjayAgICAgIGNvbXB1dGUtZGV2ICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6TmV0d29yayAgIG5ldHdvcmsgICAgICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6SW5zdGFuY2UgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJTilIAgZ2NwOmNvbXB1dGU6RmlyZXdhbGwgIGZpcmV3YWxsICAgICAgICAgICAgICAgICAgICBjcmVhdGUKClJlc291cmNlczoKICAgICsgNSB0byBjcmVhdGUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUganVzdCBlbmFibGVkIGFjY2VzcyB0byB0aGUgUHVsdW1pIGJhY2tlbmQgY2xvdWQgd2hpY2gga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXRlIG9mIHlvdXIgaW5mcmFzdHJ1Y3R1cmVzLiBOb3cgeW914oCZcmUgcmVhZHkgdG8gcnVuIHNvbWUgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7UHVsdW1pIHVwJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1RvIGV4ZWN1dGUgdGhlIFB1bHVtaSBjb2RlLCB1c2UgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIHVwJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGNyZWF0ZXMgb3IgdXBkYXRlcyByZXNvdXJjZXMgaW4gYSBzdGFjay4gVGhlIG5ldyBkZXNpcmVkIGdvYWwgc3RhdGUgZm9yIHRoZSB0YXJnZXQgc3RhY2sgaXMgY29tcHV0ZWQgYnkgcnVubmluZyB0aGUgY3VycmVudCBQdWx1bWkgcHJvZ3JhbSBhbmQgb2JzZXJ2aW5nIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9ucyB0byBwcm9kdWNlIGEgcmVzb3VyY2UgZ3JhcGguIFRoaXMgZ29hbCBzdGF0ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIGV4aXN0aW5nIHN0YXRlIHRvIGRldGVybWluZSB3aGF0IGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQvb3IgZGVsZXRlIG9wZXJhdGlvbnMgbXVzdCB0YWtlIHBsYWNlIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgZ29hbCBzdGF0ZSBpbiB0aGUgbW9zdCBtaW5pbWFsbHkgZGlzcnVwdGl2ZSB3YXkuIEFmdGVyd2FyZCwgdGhpcyBjb21tYW5kIHJlY29yZHMgYSBmdWxsIHRyYW5zYWN0aW9uYWwgc25hcHNob3Qgb2YgdGhlIHN0YWNr4oCZcyBuZXcgc3RhdGUgc28gdGhhdCB0aGUgc3RhY2sgbWF5IGJlIHVwZGF0ZWQgaW5jcmVtZW50YWxseSBhZ2FpbiBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgdGVybWluYWwgcnVuOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHVwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1NlbGVjdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7eWVzJmx0Oy9jb2RlJmd0OyBvcHRpb24gYW5kIGhpdCBlbnRlci4gVGhlIFB1bHVtaSBhcHAgd2lsbCBleGVjdXRlLCBhbmQgc2hvcnRseSBhZnRlciB5b3XigJlsbCBoYXZlIGEgY29tcGxldGUgc2VydmVyIHJ1bm5pbmcgYW4gYXBwbGljYXRpb24gb24gR0NQLiBZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtVcGRhdGluZyAoZGV2KToKICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cwogKyAgIHB1bHVtaTpwdWx1bWk6U3RhY2sgICAgICBjb21wdXRlLWRldiAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUnOKUgCBnY3A6Y29tcHV0ZTpOZXR3b3JrICAgbmV0d29yayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGVkCiArICAg4pSc4pSAIGdjcDpjb21wdXRlOkZpcmV3YWxsICBmaXJld2FsbCAgICAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUlOKUgCBnY3A6Y29tcHV0ZTpJbnN0YW5jZSAgd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDEgIGNyZWF0ZWQKCk91dHB1dHM6CiAgICBleHRlcm5hbF9pcCAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICBpbnN0YW5jZV9tZXRhX2RhdGE6IHsKICAgICAgICBnY2UtY29udGFpbmVyLWRlY2xhcmF0aW9uOiAmcXVvdDtzcGVjOlxuICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDFcbiAgICAgIGltYWdlOiBhcml2M3JhL3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxOmxhdGVzdFxuICAgICAgc3RkaW46IGZhbHNlXG4gICAgICB0dHk6IGZhbHNlXG4gIHJlc3RhcnRQb2xpY3k6IEFsd2F5c1xuJnF1b3Q7CiAgICB9CiAgICBpbnN0YW5jZV9uYW1lICAgICA6ICZxdW90O3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxJnF1b3Q7CiAgICBpbnN0YW5jZV9uZXR3b3JrICA6IFsKICAgICAgICBbMF06IHsKICAgICAgICAgICAgYWNjZXNzQ29uZmlncyAgICA6IFsKICAgICAgICAgICAgICAgIFswXTogewogICAgICAgICAgICAgICAgICAgIG5hdElwICAgICAgICAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICAgICAgICAgICAgICAgICAgbmV0d29ya190aWVyICAgICAgIDogJnF1b3Q7UFJFTUlVTSZxdW90OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgOiAmcXVvdDtuaWMwJnF1b3Q7CiAgICAgICAgfQogICAgXQoKUmVzb3VyY2VzOgogICAgKyA1IGNyZWF0ZWQKCkR1cmF0aW9uOiA1OHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlc2UgcmVzdWx0cywgeW914oCZbGwgc2VlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXh0ZXJuYWxfaXAmbHQ7L2NvZGUmZ3Q7IGtleS4gSXTigJlzIHZhbHVlIGlzIHRoZSBJUCBBZGRyZXNzIHRvIHRoZSBwdWJsaWMgZmFjaW5nIGFwcGxpY2F0aW9uIGV4cG9zZWQgb24gcG9ydCA1MDAwLiBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIFRlcnJhZm9ybSBleGFtcGxlLCB5b3UgY2FuIGFjY2VzcyB0aGUgYXBwbGljYXRpb24gaW4gYSBicm93c2VyLiBSZW1lbWJlciB0byBhbGxvdyBmb3IgYSBmZXcgbWludXRlcyBzbyB0aGUgYmFja2VuZCBzeXN0ZW0gY2FuIGJyaW5nIGV2ZXJ5dGhpbmcgb25saW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQdWx1bWkgZGVzdHJveSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtQdWx1bWkgaGFzIGEgY29tbWFuZCB0byB0ZXJtaW5hdGUgYWxsIG9mIHRoZSBjbG91ZCByZXNvdXJjZXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBkZXN0cm95Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRlbGV0ZXMgYW4gZW50aXJlIGV4aXN0aW5nIHN0YWNrIGJ5IG5hbWUuIFRoZSBjdXJyZW50IHN0YXRlIGlzIGxvYWRlZCBmcm9tIHRoZSBhc3NvY2lhdGVkIHN0YXRlIGZpbGUgaW4gdGhlIHdvcmtzcGFjZS4gQWZ0ZXIgcnVubmluZyB0byBjb21wbGV0aW9uLCBhbGwgb2YgdGhpcyBzdGFja+KAmXMgcmVzb3VyY2VzIGFuZCBhc3NvY2lhdGVkIHN0YXRlIHdpbGwgYmUgZ29uZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtSdW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGluIHRoZSB0ZXJtaW5hbCBhbmQgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5ZXMmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB3aGVuIHByb21wdGVkIHRvICZsdDtzdHJvbmcmZ3Q7cGVybWFuZW50bHkmbHQ7L3N0cm9uZyZndDsgZGVzdHJveSB0aGUgR0NQIHJlc291cmNlcyBjcmVhdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O0NvbmdyYXR1bGF0aW9ucyEgWW914oCZdmUganVzdCBsZXZlbGVkIHVwIGFuZCBub3cgaGF2ZSBleHBlcmllbmNlIHByb3Zpc2lvbmluZyBhbmQgZGVwbG95aW5nIGFwcGxpY2F0aW9ucyB0byBHQ1AgdXNpbmcgdGhlIG1vZGVybiBJYUMgdG9vbHMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O1RlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4gVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2lsbCBoZWxwIHlvdSBleHBhbmQgeW91ciBrbm93bGVkZ2UgZnJvbSBoZXJlOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9jbGktaW5kZXguaHRtbCZxdW90OyZndDtUZXJyYWZvcm0gR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9kb2NzL2dldC1zdGFydGVkLyZxdW90OyZndDtQdWx1bWkgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS9vcmIvcHVsdW1pL3B1bHVtaSZxdW90OyZndDtQdWx1bWkgb3JiIGZvciBDaXJjbGVDSSZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyZxdW90OyZndDtEb2NrZXIgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm0vY29tbXVuaXR5L2Jsb2IvbWFzdGVyL3R1dG9yaWFscy9nZXR0aW5nLXN0YXJ0ZWQtb24tZ2NwLXdpdGgtdGVycmFmb3JtL2luZGV4Lm1kI2dldHRpbmctcHJvamVjdC1jcmVkZW50aWFscyZxdW90OyZndDtHb29nbGUgQ2xvdWQgUGxhdGZvcm0mbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogICAgICAKICAgICAgPGl0ZW0+CiAgICAgICAgPHRpdGxlPkEgbG9vayBhdCBDaXJjbGVDSeKAmXMgaW5kdXN0cnktbGVhZGluZyBzdXBwb3J0IGZvciB0cmFuc2l0aW9uLXJlbGF0ZWQgbWVkaWNhbCBsZWF2ZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hLWxvb2stYXQtY2lyY2xlY2ktcy1pbmR1c3RyeS1sZWFkaW5nLXN1cHBvcnQtZm9yLXRyYW5zaXRpb24tcmVsYXRlZC1tZWRpY2FsLWxlYXZlLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5XZWQsIDEzIE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2EtbG9vay1hdC1jaXJjbGVjaS1zLWluZHVzdHJ5LWxlYWRpbmctc3VwcG9ydC1mb3ItdHJhbnNpdGlvbi1yZWxhdGVkLW1lZGljYWwtbGVhdmUvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RWxpemFiZXRoIEJlbGw8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7T25lIG9mIHRoZSBncmVhdCB0aGluZ3MgYWJvdXQgd29ya2luZyBhdCBDaXJjbGVDSSBpcyB0aGF0IHRoZSBjb21wYW55IGJlbGlldmVzIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGJlIGFibGUgdG8gYmUgdGhlaXIgd2hvbGUgc2VsZiBhdCB3b3JrLiBJbmNsdXNpdml0eSwgZGVtb25zdHJhdGluZyB0cnVzdCBhbmQgcmVzcGVjdCwgYW5kIG1ha2luZyBzdXJlIGV2ZXJ5b25lIGhhcyB0aGUgdG9vbHMgYW5kIHN1cHBvcnQgdGhleSBuZWVkIGFyZSBhbGwgYnVyaWVkIGRlZXAgaW4gdGhlIGN1bHR1cmUgaGVyZSDigJMgaXQgaXMgYSBiaWcgcGFydCBvZiBob3cgd2UgZGVsaXZlciB0aGUgYmVzdCB2YWx1ZSBmb3Igb3VyIGN1c3RvbWVycy4gV2l0aCB0aGF0IGluIG1pbmQsIHRoZSBjb21wYW55IHJlY2VudGx5IHJvbGxlZCBvdXQgYSBuZXcgaGVhbHRoY2FyZSBwb2xpY3kgZm9yIG91ciB0cmFuc2dlbmRlciBjby13b3JrZXJzLiBJbiBhIGZpcnN0IGZvciBjb21wYW5pZXMgaW4gdGhlIENJL0NEIHNwYWNlLCBDaXJjbGVDSSBub3cgb2ZmZXJzIGZ1bGx5LWNvbXBlbnNhdGVkIHBhaWQgbGVhdmUgZm9yIGVtcGxveWVlcyByZWNvdmVyaW5nIGZyb20gdHJhbnNpdGlvbi1yZWxhdGVkIG1lZGljYWwgcHJvY2VkdXJlcy4gVGhpcyBwb2xpY3kgaXMgYW4gZXh0cmVtZWx5IGltcG9ydGFudCBhZGRpdGlvbiB0byBDaXJjbGVDSeKAmXMgYmVuZWZpdHMgcGFja2FnZSBhbmQgYW5vdGhlciBleGFtcGxlIG9mIHRoZSBjb21wYW554oCZcyBkZWRpY2F0aW9uIHRvIHRoZSB3ZWxsLWJlaW5nIG9mIGFsbCBlbXBsb3llZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VHJhbnNpdGlvbiBpcyBhbiBpbW1lbnNlbHkgc3RyZXNzZnVsIHByb2Nlc3MsIGFuZCB0aGUgbWVkaWNhbCBwcm9jZWR1cmVzIHJlcXVpcmVkIHRvIHRyZWF0IHRoZSBkeXNwaG9yaWEgZXhwZXJpZW5jZWQgYnkgc29tZSB0cmFuc2dlbmRlciBwZW9wbGUgb2Z0ZW4gbmVlZCBhIHZlcnkgY2FyZWZ1bCBhcHByb2FjaCB0byByZWNvdmVyeS4mbHQ7L3AmZ3Q7CgombHQ7YmxvY2txdW90ZSZndDsKICAmbHQ7cCZndDtUaGUgZ29hbCBvZiB0aGUgcG9saWN5IGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRyYW5zZ2VuZGVyIGVtcGxveWVlcyBmZWVsIHN1cHBvcnRlZCBkdXJpbmcgdGhpcyBkaWZmaWN1bHQgdGltZSwgYW5kIGJ5IGVuc3VyaW5nIHRoYXQgdHJhbnNnZW5kZXIgZW1wbG95ZWVzIGhhdmUgYWNjZXNzIHRvIGFwcHJvcHJpYXRlbHkgY29tcGVuc2F0ZWQgbWVkaWNhbCBsZWF2ZSwgdGhlIGNvbXBhbnkgY2FuIHJlbW92ZSBtYWpvciBzb3VyY2VzIG9mIHVubmVjZXNzYXJ5IHN0cmVzcy4gVGhpcyB3YXksIHdlIGNhbiByZXR1cm4gdG8gd29yayBoYXBwaWVyLCBoZWFsdGhpZXIsIGFuZCBiZXR0ZXIgYWJsZSB0byBkbyBvdXIgYmVzdCBmb3Igb3VyIGN1c3RvbWVycyBhbmQgb3VyIGNvbGxlYWd1ZXMuJmx0Oy9wJmd0OwombHQ7L2Jsb2NrcXVvdGUmZ3Q7CgombHQ7aDImZ3Q7SG93IHRoaXMgcG9saWN5IGNhbWUgdG9nZXRoZXImbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgcHVzaCBmb3IgdGhlIGZvcm1hbGl6YXRpb24gb2YgdGhlc2UgYmVuZWZpdHMgZ3JldyBvdXQgb2YgdGhlIGVmZm9ydHMgb2YgbWFueSBpbmRpdmlkdWFscy4gVG9nZXRoZXIsIHRoZSB0cmFucyBlbXBsb3llZXMgYXQgQ2lyY2xlQ0kgZGlzY3Vzc2VkIHRoZSBpc3N1ZSBhbW9uZ3N0IG91cnNlbHZlcywgb3VyIG1hbmFnZXJzLCBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIHdobyBzdXBwb3J0ZWQgdXMgaW4gYnJpbmdpbmcgdGhlIHRvcGljIHRvIG91ciBleGVjdXRpdmUgdGVhbS4gQnkgYnVpbGRpbmcgY29uc2Vuc3VzLCBib3RoIHdpdGhpbiB0aGUgdHJhbnMgcG9wdWxhdGlvbiBhdCB0aGUgY29tcGFueSBhbmQgb3VyIGNpc2dlbmRlciBjb2xsZWFndWVzLCB3ZSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IGFkdm9jYXRlIGZvciBhIGZvcm1hbGl6YXRpb24gb2YsIGFuZCBhIGNvbW1pdG1lbnQgdG8sIHRoaXMgaW5kdXN0cnktbGVhZGluZyB0cmFucyBoZWFsdGhjYXJlIGJlbmVmaXQuIFF1ZWVyU3BoZXJlLCB0aGUgRW1wbG95ZWUgUmVzb3VyY2UgR3JvdXAgaGVyZSBhdCBDaXJjbGVDSSBmb3IgTEdCVFFJQSsgZW1wbG95ZWVzLCBoZWxwZWQgY29vcmRpbmF0ZSB0aGUgZWZmb3J0IHRvIGFkdm9jYXRlLCBhbmQgdGhlIHJlc3VsdCB3YXMgYSBwb2xpY3kgdGhhdCBoZWxwcyBlbnN1cmUgdHJhbnMgZW1wbG95ZWVzIGdldCB0aGUgc3VwcG9ydCB3ZSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uZSBvZiB0aGUgYmVzdCB0aGluZ3MgZm9yIG1lIGFib3V0IHdvcmtpbmcgYXQgQ2lyY2xlQ0kgaXMgaG93IGVtcG93ZXJlZCBJIGZlZWwgdG8gY2FsbCBhdHRlbnRpb24gdG8gaXNzdWVzIG9yIHByYWN0aWNlcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCBhbmQgYnJpbmcgcGVvcGxlIHRvZ2V0aGVyIHRvIHdvcmsgb24gdGhlbSwgdG8gdGhlIGJlbmVmaXQgb2YgYm90aCB0aGUgY29tcGFueSBhcyBhIHdob2xlIGFuZCB1bmRlcnJlcHJlc2VudGVkIG9yIG1hcmdpbmFsaXplZCBlbXBsb3llZXMuIFRyYW5zIHBlb3BsZSBmYWNlIHN5c3RlbWljIGJpYXM6IHRoZXJlIGFyZSBubyBmZWRlcmFsLWxldmVsIHByb3RlY3Rpb25zIGZyb20gZGlzY3JpbWluYXRpb24gb24gdGhlIGJhc2lzIG9mIGdlbmRlciBpZGVudGl0eSBpbiB0aGUgVW5pdGVkIFN0YXRlcywgYW5kIG9mIHRoZSB0cmFucyBwb3B1bGF0aW9uIHN1cnZleWVkIGJ5IHRoZSBOYXRpb25hbCBDZW50ZXIgZm9yIFRyYW5zZ2VuZGVyIEVxdWFsaXR5IGluIDIwMTUsIDgwJSBvZiB0aG9zZSB3aG8gd2VyZSBlbXBsb3llZCByZXBvcnRlZCBleHBlcmllbmNpbmcgaGFyYXNzbWVudCwgbWlzdHJlYXRtZW50LCBvciBoYWQgdG8gdGFrZSBzdGVwcyB0byBhdm9pZCB0aG9zZSBob3N0aWxlIHdvcmtwbGFjZSBiZWhhdmlvcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SSBrbm93IGZpcnN0aGFuZCBob3cgZGlmZmljdWx0IGJlaW5nIG91dCBhdCB3b3JrIGNhbiBiZS4gQXQgYSBwcmV2aW91cyBlbXBsb3llciBlYXJseSBpbiBteSB0cmFuc2l0aW9uLCBJIGZlbHQgYWxpZW5hdGVkIGFuZCBkaXNsaWtlZCBieSBjb2xsZWFndWVzIHdobyBoYWQgcHJldmlvdXNseSBiZWVuIGZyaWVuZGx5IGJlZm9yZSB0aGV5IGtuZXcgSSB3YXMgdHJhbnNnZW5kZXIuIEkgaGF2ZSBoYWQgdG8gbWluaW1pemUgdGhlIGZhY3QgdGhhdCBJ4oCZbSB0cmFucywgdG9sZXJhdGUgYWN0aXZlIGhvc3RpbGl0eSBmcm9tIGNvd29ya2Vycywgb3IgcHJldGVuZCB0aGF0IEkgd2FzIGNpc2dlbmRlciwgaW4gb3JkZXIgdG8gcHJvdGVjdCBteSBqb2IuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgQ2lyY2xlQ0ksIEkgaGF2ZSBmZWx0IHN1cHBvcnRlZCwgcmVzcGVjdGVkLCBhbmQgYWJsZSB0byBjb25maWRlbnRseSBiZSBteXNlbGYuIEkgZmVlbCBleGNlcHRpb25hbGx5IGZvcnR1bmF0ZSB0byBoYXZlIGEgd29uZGVyZnVsIGdyb3VwIG9mIHRyYW5zZ2VuZGVyIGNvbGxlYWd1ZXMgYW5kIGZyaWVuZHMgKHdlIG1ha2UgdXAgNyUgb2YgdGhlIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0ksIGFuZCAzJSBvZiB0aGUgb3JnIGluIHRvdGFsLCBjb21wYXJlZCB0byAwLjYlIG9mIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24pLCBhbmQgdG8gd29yayBzb21ld2hlcmUgd2hlcmUgb3VyIHZpZXdzIGFuZCBleHBlcmllbmNlcyBhcmUgdmFsdWVkIGF0IHRoZSBoaWdoZXN0IGxldmVscyBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0lmIHlvdSBsaWtlIHRoZSBzb3VuZCBvZiB3b3JraW5nIHNvbWV3aGVyZSB3aXRoIGEgcmVtb3RlLWZpcnN0IGN1bHR1cmUgYW5kIGNvbGxhYm9yYXRpbmcgb24gaW50ZXJlc3RpbmcgcHJvYmxlbXMgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIHRyYW5zIGZvbHggYW5kIGFsbGllcywgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9jYXJlZXJzLyZxdW90OyZndDtjaGVjayBvdXQgb3VyIG9wZW5pbmdzIGhlcmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIEdhdHNieSBhcHBzIHRvIEhlcm9rdTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtZ2F0c2J5LWFwcHMtdG8taGVyb2t1LzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDExIE1heSAyMDIwIDA5OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1nYXRzYnktYXBwcy10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9qYW1zdGFjay5vcmcvJnF1b3Q7Jmd0O0pBTVN0YWNrJmx0Oy9hJmd0OyBpcyBxdWlja2x5IGJlY29taW5nIGEgYmlnIGRlYWwgaW4gdGhlIHdvcmxkIG9mIHdlYiBkZXZlbG9wbWVudC4gSkFNU3RhY2ssIHdoaWNoIHN0YW5kcyBmb3IgSmF2YXNjcmlwdCwgQVBJcywgYW5kIEhUTUwgbWFya3VwLCBpcyBhIG1vZGVybiBhcmNoaXRlY3R1cmUgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMgYW5kIG9uZSBvZiBpdHMgbWFqb3IgZmVhdHVyZXMgaXMgdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBhIGRhdGFiYXNlIGFuZCBhIHdlYiBzZXJ2ZXIgaXMgb3B0aW9uYWwuIFRoZSBKQU1TdGFjayBhcmNoaXRlY3R1cmUgaXMgYWltZWQgYXQgZGVjb3VwbGluZyB0aGUgZnJvbnRlbmQgYW5kIHRoZSBiYWNrZW5kIGJ5IGdlbmVyYXRpbmcgYSBmcm9udGVuZCBtYWRlIG9mIEhUTUwsIENTUywgYW5kIEphdmFzY3JpcHQgYW5kIGEgYmFja2VuZCB0aGF0IGlzIHNpbXBseSBhIGNvbnRlbnQgQVBJIHJldHVybmluZyBKU09OIG9yIFhNTC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmUgb2YgdGhlIGxlYWRpbmcgSkFNU3RhY2sgcGxhdGZvcm1zIHRvZGF5IGlzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnLyZxdW90OyZndDtHYXRzYnkuanMmbHQ7L2EmZ3Q7LiBHYXRzYnkuanMgaXMgYSBmcmVlIGFuZCBvcGVuLXNvdXJjZSBmcmFtZXdvcmsgYmFzZWQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3JlYWN0anMub3JnLyZxdW90OyZndDtSZWFjdC5qcyZsdDsvYSZndDsgdGhhdCBoZWxwcyBkZXZlbG9wZXJzIGJ1aWxkIGhpZ2gtc3BlZWQgd2ViIGFwcGxpY2F0aW9ucy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHR1dG9yaWFsLCB3ZSB3aWxsIGJlIGRlbW9uc3RyYXRpbmcgaG93IHRvIGRlcGxveSBhIEdhdHNieS5qcyBzaXRlIHRvIHRoZSBwb3B1bGFyIEhlcm9rdSBwbGF0Zm9ybSBieSBidWlsZGluZyBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmUgZm9yIGl0cyBkZXBsb3ltZW50IHVzaW5nIENpcmNsZUNJLiZsdDsvcCZndDsKCiZsdDtoMiZndDtQcmVyZXF1aXNpdGVzJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIG9yZGVyIHRvIGZvbGxvdyBhbG9uZyB3aXRoIHRoaXMgcG9zdCwgeW91IHdpbGwgbmVlZCBhIGZldyB0aGluZ3MgaW4gcGxhY2U6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7ICZhbXA7Z3Q7PSAxMC4xNiBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZSAtdiZsdDsvY29kZSZndDsgb24geW91ciB0ZXJtaW5hbCB0byBwcmludCBvdXQgeW91ciB2ZXJzaW9uIG9mIE5vZGVKUyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7R2l0Jmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2l0Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsLiBUaGlzIHNob3VsZCBwcmludCBvdXQgYXZhaWxhYmxlIGdpdCBjb21tYW5kcykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuaGVyb2t1LmNvbS8mcXVvdDsmZ3Q7SGVyb2t1Jmx0Oy9hJmd0OyBhY2NvdW50Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O0dpdEh1YiZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7V2l0aCB0aGVzZSwgeW91IGFyZSByZWFkeSB0byBmb2xsb3cgYWxvbmcuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NyZWF0aW5nIGEgR2F0c2J5LmpzIHByb2plY3QmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7VG8gYmVnaW4sIHdlIG5lZWQgdG8gY3JlYXRlIG91ciBHYXRzYnkuanMgcHJvamVjdC4gSW4gYW4gYXBwcm9wcmlhdGUgbG9jYXRpb24gd2l0aGluIHlvdXIgc3lzdGVtLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGdhdHNieSBuZXcgZ2F0c2J5LWhlcm9rdS1kZXBsb3kKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBwYXJ0IG9mIHRoaXMgY29tbWFuZCBpcyB0aGUgZm9sZGVyIG5hbWUgZm9yIG15IHByb2plY3QgdG8gYmUgc2NhZmZvbGRlZCBpbi4gWW91IGNhbiB1c2UgYW55IHByZWZlcnJlZCBuYW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCB3aWxsIGltbWVkaWF0ZWx5IGJlZ2luIHNjYWZmb2xkaW5nIGEgbmV3IEdhdHNieS5qcyBwcm9qZWN0LiBZb3UgbWlnaHQgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGVpdGhlciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5YXJuJmx0Oy9jb2RlJmd0OyBvciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7IGFzIHlvdXIgcGFja2FnZSBtYW5hZ2VyLCBmb3IgdGhpcyB0dXRvcmlhbCwgZ28gd2l0aCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNjYWZmb2xkaW5nIHByb2Nlc3MgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIGdhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OykgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gYm9vdCB1cCBhIHNlcnZlciB0byBzZXJ2ZSB0aGUgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBydW4gZGV2ZWxvcAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgc2VydmUgdGhlIGFwcGxpY2F0aW9uIGF0IHRoZSBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8mbHQ7L2NvZGUmZ3Q7IGFuZCBkaXNwbGF5IHRoZSBwYWdlIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MS5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIGEgZnVuY3Rpb25hbCBHYXRzYnkuanMgc2l0ZSB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7U2V0dGluZyB1cCBhIEhlcm9rdSBBcHAgZm9yIEdhdHNieSZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBzZXQgdXAgYSBIZXJva3UgYXBwIGZvciBvdXIgR2F0c2J5IGFwcGxpY2F0aW9uLCB3ZSBuZWVkIHRvIGxvZyBpbnRvIEhlcm9rdSBhbmQgY3JlYXRlIGEgbmV3IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5Mi5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdlIG5lZWQgdG8gZ2V0IHRoZSBuYW1lIG9mIG91ciBhcHBsaWNhdGlvbiAodGhpcyB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBmb3IgdGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgYWJvdmUpIGFuZCB0aGUgQVBJIGtleSBmb3Igb3VyIEhlcm9rdSBhY2NvdW50LiBUaGUgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIEhlcm9rdSAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXZSB3aWxsIG5lZWQgdGhlc2UgdHdvIHZhbHVlcyAodGhlIGFwcCBuYW1lIGFuZCBBUEkga2V5KSBsYXRlciBvbiB0byBjcmVhdGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9uIG91ciBDaXJjbGVDSSBwcm9qZWN0IGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiBvdXIgSGVyb2t1IGFjY291bnQgaXMgdG8gaW5zdGFsbCBzb21lIG5lY2Vzc2FyeSBidWlsZHBhY2tzLiBCdWlsZHBhY2tzIGFyZSBzY3JpcHRzIHRoYXQgcnVuIHdoZW4geW91ciBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZC4gV2Ugd2lsbCBuZWVkIHR3byBidWlsZCBwYWNrcyBmb3IgdGhpcyBleGVyY2lzZTombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0O2hlcm9rdS9ub2RlanM6IFJlcXVpcmVkIGZvciBhbGwgTm9kZS5qcyBhcHBsaWNhdGlvbnMmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtoZXJva3UvaGVyb2t1LWJ1aWxkcGFjay1zdGF0aWM6IFRoZSBIZXJva3UgQnVpbGRwYWNrIFN0YXRpYyBwYWNrYWdlIChiZWNhdXNlIEdhdHNieS5qc+KAmXMgYnVpbGQgaXMgbWFkZSB1cCBvZiBzdGF0aWMgZmlsZXMsIHRoaXMgd2lsbCBoZWxwIHVzIHNlcnZlIHRoZSBzdGF0aWMgZmlsZXMgb24gdGhlIEhlcm9rdSBwbGF0Zm9ybSkmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7R28gdG8geW91ciBIZXJva3UgYXBwbGljYXRpb27igJlzICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgcGFnZSBhbmQgc2Nyb2xsIGRvd24gdG8gJmx0O3N0cm9uZyZndDtCdWlsZHBhY2tzJmx0Oy9zdHJvbmcmZ3Q7ICh5b3UgbWlnaHQgYWxyZWFkeSBzZWUgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgYnVpbGRwYWNrIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQpLiBDbGljayAmbHQ7c3Ryb25nJmd0O0FkZCBidWlsZHBhY2smbHQ7L3N0cm9uZyZndDsgYW5kIHlvdSB3aWxsIHNlZSBhIGRpYWxvZyBwb3AgdXAgc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnkzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rm9yIGVhY2ggYnVpbGRwYWNrICgmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3Uvbm9kZWpzJmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L2hlcm9rdS1idWlsZHBhY2stc3RhdGljJmx0Oy9jb2RlJmd0OykgZW50ZXIgdGhlIGlkZW50aWZpZXIgaW50byB0aGUgdGV4dCBmaWVsZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTYXZlIENoYW5nZXMmbHQ7L3N0cm9uZyZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtOb3RlOiZsdDsvc3Ryb25nJmd0OyAmbHQ7aSZndDtJZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCwgb25seSBhZGQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2hlcm9rdS9oZXJva3UtYnVpbGRwYWNrLXN0YXRpYyZsdDsvY29kZSZndDsgYnVpbGQgcGFjay4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgZG9pbmcgdGhpcyBmb3IgYm90aCBidWlsZHBhY2tzLCB5b3Ugd2lsbCBzZWUgdGhlIHR3byBidWlsZCBwYWNrcyBub3cgbGlzdGVkIGluICZsdDtzdHJvbmcmZ3Q7QnVpbGRwYWNrcyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGF0IGNvbXBsZXRlcyB0aGUgc2V0IHVwIHJlcXVpcmVkIGZvciBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1NldHRpbmcgdXAgdGhlIEdhdHNieS5qcyBwcm9qZWN0IG9uIENpcmNsZUNJJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBuZXh0IHRhc2sgaXMgdG8gZ2V0IG91ciBHYXRzYnkuanMgcHJvamVjdCBzZXQgdXAgb24gQ2lyY2xlQ0kuIFdlIG5lZWQgdG8gcHVzaCBvdXIgY29kZSB0byBhIEdpdEh1YiByZXBvc2l0b3J5IG9uIHRoZSBhY2NvdW50IHlvdSBoYXZlIGxpbmtlZCB0byB5b3VyIENpcmNsZUNJIGFjY291bnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgZ28gdG8gdGhlICZsdDtzdHJvbmcmZ3Q7QWRkIFByb2plY3RzJmx0Oy9zdHJvbmcmZ3Q7IHBhZ2UgdG8gYWRkIHRoZSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk0LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0OyB0byBiZWdpbiBzZXR0aW5nIHVwIHRoZSBwcm9qZWN0LiBUaGlzIHdpbGwgbG9hZCB0aGUgbmV4dCBzY3JlZW4uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk1LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhlIHNldHVwIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsuIEJlZm9yZSB0aGUgYnVpbGQgc3RhcnRzLCB5b3Ugd2lsbCBnZXQgYSBwcm9tcHQgdG8gZWl0aGVyIGRvd25sb2FkIGFuZCB1c2UgdGhlIHByb3ZpZGVkIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgaGF2ZSBpdCBhZGRlZCBvbiBhIHNlcGFyYXRlIGJyYW5jaCBvciBzZXQgb25lIHVwIG1hbnVhbGx5LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk2LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U2VsZWN0ICZsdDtzdHJvbmcmZ3Q7QWRkIE1hbnVhbGx5Jmx0Oy9zdHJvbmcmZ3Q7IHRvIHByb2NlZWQuIFRoaXMgd2lsbCBwcm9tcHQgYW5vdGhlciBkaWFsb2cgdGhhdCBjaGVja3MgdG8gY29uZmlybSB0aGF0IHlvdSBoYXZlIGEgY29uZmlndXJhdGlvbiBmaWxlIHNldCB1cCB0byBiZWdpbiBidWlsZGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTcucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGNvbXBsZXRlIHRoZSBzZXR1cC4gVGhlIGJ1aWxkIHdpbGwgc3VyZWx5IGZhaWwgYmVjYXVzZSB3ZSBoYXZlIG5vdCBzZXQgdXAgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB5ZXQsIHRoaXMgd2Ugd2lsbCBkbyBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiB0aGUgQ2lyY2xlQ0kgY29uc29sZSBpcyB0byBzZXQgdXAgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZW52LXZhcnMvJnF1b3Q7Jmd0O2Vudmlyb25tZW50IHZhcmlhYmxlcyZsdDsvYSZndDsgZm9yIHRoZSBwcm9qZWN0IHdlIGp1c3QgYWRkZWQuIFRoaXMgd2lsbCBlbmFibGUgaXQgdG8gaGF2ZSBhdXRoZW50aWNhdGVkIGFjY2VzcyB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIGZvciBkZXBsb3ltZW50cy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHbyB0byB5b3VyIHByb2plY3TigJlzIHNldHRpbmdzIGJ5IGNsaWNraW5nICZsdDtzdHJvbmcmZ3Q7UHJvamVjdCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgJmx0O3N0cm9uZyZndDtQaXBlbGluZXMmbHQ7L3N0cm9uZyZndDsgcGFnZSAobWFrZSBzdXJlIHlvdXIgcHJvamVjdCBpcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2plY3QpLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5OC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBuYXZpZ2F0ZSB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBwYWdlLiBPbiB0aGlzIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7RW52aXJvbm1lbnQgVmFyaWFibGVzJmx0Oy9zdHJvbmcmZ3Q7IG9uIHRoZSBzaWRlIG1lbnUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk5LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFnZSwgY2xpY2sgJmx0O3N0cm9uZyZndDtBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUgYnV0dG9uJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTAucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZGQgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Jmx0Oy9wJmd0OwombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDs6IFRoaXMgaXMgdGhlIG5hbWUgb2YgeW91ciBIZXJva3UgYXBwbGljYXRpb24gKGluIHRoaXMgY2FzZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnYXRzYnktaGVyb2t1LWRlcGxveSZsdDsvY29kZSZndDspJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7SEVST0tVX0FQSV9LRVkmbHQ7L2NvZGUmZ3Q7OiBZb3VyIEhlcm9rdSBhY2NvdW50IEFQSSBrZXkgZm91bmQgdW5kZXIgdGhlICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCZsdDsvc3Ryb25nJmd0OyB0YWIgb2YgeW91ciBIZXJva3UgYWNjb3VudCBpbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50IFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O09uY2UgYWRkZWQsIHlvdSB3aWxsIGhhdmUgZXZlcnl0aGluZyBzZXQgdXAgb24geW91ciBDaXJjbGVDSSBjb25zb2xlIGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRoZSBHYXRic3kuanMgc2l0ZSB1c2luZyBvcmJzJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy8mcXVvdDsmZ3Q7T3JicyZsdDsvYSZndDsgYXJlIHJldXNhYmxlIHBhY2thZ2VzIG9mIFlBTUwgY29uZmlndXJhdGlvbiB0aGF0IGNvbmRlbnNlIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoZXkgZW5hYmxlIGRldmVsb3BlcnMgdG8gZWFzaWx5IHVzZSBwb3dlcmZ1bCBwaXBlbGluZSBmdW5jdGlvbmFsaXRpZXMgd2l0aCBhbGwgdGhlIGJvaWxlcnBsYXRlIGFic3RyYWN0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBleGVyY2lzZSwgd2Ugd2lsbCBiZSB1c2luZyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7b3JiIGZvciBIZXJva3UmbHQ7L2EmZ3Q7IHRvIGNvbmZpZ3VyZSBvdXIgcGlwZWxpbmUgdG8gZGVwbG95IG91ciBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0IGJlZm9yZSB0aGF0LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGZpbGUgdG8gaW5zdHJ1Y3Qgb3VyIEhlcm9rdSBCdWlsZHBhY2sgU3RhdGljIHBhY2thZ2Ugb24gaG93IHRvIGRlcGxveSBhbmQgc2VydmUgb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgbmV3IGZpbGUgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3RhdGljLmpzb24mbHQ7L2NvZGUmZ3Q7IGFuZCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGUgaW50byBpdDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3sKICAmcXVvdDtyb290JnF1b3Q7OiAmcXVvdDtwdWJsaWMvJnF1b3Q7LAogICZxdW90O2hlYWRlcnMmcXVvdDs6IHsKICAgICZxdW90Oy8qKiZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJnF1b3Q7CiAgICB9LAogICAgJnF1b3Q7LyoqLmNzcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy8qKi5qcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy9zdGF0aWMvKiomcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0sCiAgICAmcXVvdDsvaWNvbnMvKi5wbmcmcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0KICB9LAogICZxdW90O2h0dHBzX29ubHkmcXVvdDs6IHRydWUsCiAgJnF1b3Q7ZXJyb3JfcGFnZSZxdW90OzogJnF1b3Q7NDA0Lmh0bWwmcXVvdDsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgbW9zdCBpbXBvcnRhbnQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaGVyZSBpcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkuIFdoZW4gR2F0c2J5LmpzIHJ1bnMgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2J1aWxkJmx0Oy9jb2RlJmd0OyBzY3JpcHQgKHRoaXMgaXMgYWxzbyB0aGUgc2NyaXB0IHVzZWQgYnkgSGVyb2t1IHRvIHJ1biB0aGUgYnVpbGQgYmVmb3JlIGRlcGxveW1lbnQpLCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1YmxpYyZsdDsvY29kZSZndDsgZm9sZGVyIGlzIGdlbmVyYXRlZCBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBjb250YWluaW5nIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb2R1Y3Rpb24gdmVyc2lvbiBpcyB3aGF0IHRoZSBob3N0IHNlcnZlcyB0byB1c2Vycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaHVzLCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkgaXMgdXNlZCB0byBwb2ludCB0byB0aGlzIGZvbGRlciBzbyB0aGF0IHRoZSBob3N0IHNlcnZlcyB0aGUgYXBwcm9wcmlhdGUgY29kZS4gT3RoZXIgcGFyYW1ldGVycyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gYXJlIHNpbXBseSBiZXN0LXByYWN0aWNlIGNvbmZpZ3VyYXRpb25zIGZvciBHYXRzYnkuanMgc2l0ZXMuIEZvciBleGFtcGxlLCBjYWNoaW5nIGd1aWRlbGluZXMgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvY2FjaGluZy8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7R29vZCEgTm93IHdlIGNhbiB3cml0ZSBvdXIgZGVwbG95bWVudCBzY3JpcHQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgdGhlIHJvb3Qgb2YgeW91ciBHYXRzYnkuanMgcHJvamVjdCwgY3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgYW5kIGEgZmlsZSB3aXRoaW4gaXQgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0Oy4gSW5zaWRlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGU6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt2ZXJzaW9uOiAyLjEKb3JiczoKICBoZXJva3U6IGNpcmNsZWNpL2hlcm9rdUAwLjAuMTAKd29ya2Zsb3dzOgogIGhlcm9rdV9kZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGhlcm9rdS9kZXBsb3ktdmlhLWdpdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGF04oCZcyBpdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgY29uZmlndXJhdGlvbiBhYm92ZSwgd2UgcHVsbCBpbiB0aGUgSGVyb2t1IG9yYiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaXJjbGVjaS9oZXJva3VAMC4wLjEwJmx0Oy9jb2RlJmd0OyB3aGljaCBhdXRvbWF0aWNhbGx5IGdpdmVzIHVzIGFjY2VzcyB0byBhIHBvd2VyZnVsIHNldCBvZiBIZXJva3Ugam9icyBhbmQgY29tbWFuZHMuIE9uZSBvZiB0aG9zZSBqb2JzIGlzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3UvZGVwbG95LXZpYS1naXQmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGRlcGxveXMgeW91ciBhcHBsaWNhdGlvbiBzdHJhaWdodCBmcm9tIHlvdXIgR2l0SHViIHJlcG8gdG8geW91ciBIZXJva3UgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIGpvYiBhbHJlYWR5IHRha2VzIGNhcmUgb2YgaW5zdGFsbGluZyB0aGUgSGVyb2t1IENMSSwgaW5zdGFsbGluZyBwcm9qZWN0IGRlcGVuZGVuY2llcywgcnVubmluZyB0aGUgYnVpbGQgc2NyaXB0LCBhbmQgZGVwbG95aW5nIHRoZSBhcHBsaWNhdGlvbi4gSXQgYWxzbyBwaWNrcyB1cCBvdXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGggZGVwbG95bWVudCB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgdGhlIG1vbWVudCBvZiB0cnV0aCAoZHJ1bSByb2xsKS4gTGV04oCZcyBjb21taXQgYWxsIHRoZSBjaGFuZ2VzIHdlIGhhdmUgbWFkZSB0byBvdXIgR2F0c2J5LmpzIHByb2plY3QgYW5kIHB1c2ggdG8gb3VyIHJlcG8gdG8gdHJpZ2dlciB0aGUgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTEucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBzZWUgdGhlIGJlaGluZC10aGUtc2NlbmVzIHpjdGlvbiBvZiB0aGUgZGVwbG95bWVudCwgeW91IGNhbiBjbGljayBpbnRvIHRoZSBidWlsZC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTIucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgZm9yIHRoZSBmaW5hbCBjb25maXJtYXRpb24gdGhhdCB0aGUgZGVwbG95bWVudCBvZiBvdXIgR2F0c2J5LmpzIHNpdGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bCwgdmlzaXQgdGhlIGRlZmF1bHQgSGVyb2t1IGFkZHJlc3MgZm9yIHRoZSBzaXRlIGF0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vW0FQUF9OQU1FXS5oZXJva3VhcHAuY29tJmx0Oy9jb2RlJmd0Oy4gSWYgeW91IHVzZWQgdGhlIHNhbWUgbmFtZSBhcyBJIGRpZCBmb3IgdGhpcyBleGVyY2lzZSwgdGhhdCB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vZ2F0c2J5LWhlcm9rdS1kZXBsb3kuaGVyb2t1YXBwLmNvbS8mbHQ7L2NvZGUmZ3Q7LiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93ICh0aGlzIG1pZ2h0IGJlIGRpZmZlcmVudCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IEdhdHNieS5qcyBzdGFydGVyIHRlbXBsYXRlLCBsZWFybiBtb3JlIGFib3V0IHN0YXJ0ZXJzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvcGx1Z2lucy10aGVtZXMtYW5kLXN0YXJ0ZXJzLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OykuJmx0Oy9wJmd0OwoKJmx0O3AgYWxpZ249JnF1b3Q7Y2VudGVyJnF1b3Q7Jmd0OwogICAmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTEzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NvbmNsdXNpb24mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2UgZGVwbG95ZWQgYSBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UgdXNpbmcgQ2lyY2xlQ0kgb3Jicy4gTm93IHdoZW4gd2UgcHVzaCBvdXIgY29kZSwgYWxsIGNoYW5nZXMgd2lsbCBiZSBkZXBsb3llZCBhdXRvbWF0aWNhbGx5LiBUaGlzIHR1dG9yaWFsIGhhcyBhbHNvIGRlbW9uc3RyYXRlZCBob3cgQ2lyY2xlQ0kgb3JicyBtYWtlcyBkZXBsb3ltZW50IGVhc3kuIEluc3RlYWQgb2Ygd3JpdGluZyBtYW55IGxpbmVzIG9mIGNvbmZpZyBuZWVkIHRvIGRlcGxveSB0byBIZXJva3UsIG9yYnMgYWJzdHJhY3QgYWxsIG9mIHRoYXQgaW50byBjb252ZW5pZW50IGNvbW1hbmRzIGZvciB1cyB0byB1c2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2hlY2sgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kgb3JicyByZWdpc3RyeSZsdDsvYSZndDsgZm9yIG9yYnMgdGhhdCBzdWl0IHlvdXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGRlcGxveW1lbnQgZGVzdGluYXRpb24gb2YgY2hvaWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyEmbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5MZXR0aW5nIGNoYW5nZSBhbmQgdW5jZXJ0YWludHkgYWR2YW5jZSB5b3VyIHNvZnR3YXJlIGFyY2hpdGVjdHVyZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VGh1LCAwNyBNYXkgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Sb2IgWnViZXI8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIGZpcnN0IGxpbmVzIG9mIENpcmNsZUNJ4oCZcyBjb2RlYmFzZSB3ZXJlIHdyaXR0ZW4gbmVhcmx5IG5pbmUgeWVhcnMgYWdvLiBMb29raW5nIGJhY2sgb24gd2hhdCB3ZSBoYXZlIGJ1aWx0IHNvIGZhciB3aXRoIHRoZSBjbGFyaXR5IG9mIGhpbmRzaWdodCBleHBvc2VzIHNvbWUgaW50ZXJlc3RpbmcgdGhlbWVzIHRoYXQgY2FuIGJlIGluc3RydWN0aXZlIGluIGlkZW50aWZ5aW5nIGFwcHJvYWNoZXMgdG8gZGVhbGluZyB3aXRoIGNoYW5nZS4gV2hpbGUgdGhleSB3ZXJlbuKAmXQgYWxsIGludGVudGlvbmFsLCBpdCBkb2VzbuKAmXQgbWFrZSB0aGVtIGFueSBsZXNzIHZhbHVhYmxlLiBUaHJlZSBzdWNoIHRoZW1lcyBhcmU6IGRlZmVycmluZyB0aGUgbmVlZCB0byBoYW5kbGUgY2hhbmdlLCB0aGlua2luZyBsaWtlIGEgcHJvZHVjdCBtYW5hZ2VyLCBhbmQga2VlcGluZyB5b3VyIGhlYWQgdXAuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NoYW5nZSBpcyBhIGNvbnN0YW50IGluIHRlY2hub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Q2hhbmdlIG1pZ2h0IGJlIG9uZSBvZiB0aGUgb25seSBjb25zdGFudHMgZW5naW5lZXJzIHdpbGwgZGVhbCB3aXRoIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGVpciBjYXJlZXJzLiBJdCBjZXJ0YWlubHkgZHJpdmVzIG1hbnkgb2Ygb3VyIG1vc3QgaW50ZXJlc3RpbmcgY2hhbGxlbmdlcy4gVGhlIG1hcmtldCBpcyBjaGFuZ2luZywgb3VyIGJ1c2luZXNzIGlzIGV2b2x2aW5nLCBvdXIgY3VzdG9tZXIgYmFzZSBpcyBncm93aW5nLCBhbmQgb3VyIHRlYW0gaXMgc2NhbGluZy4gV2UgbmVlZCB0byBidWlsZCBhIHNvbHV0aW9uIHRoYXQgbWVldHMgdG9kYXnigJlzIG5lZWRzIGJ1dCBzZXRzIHVzIHVwIGZvciB0aGUgZGVtYW5kcyBvZiB0b21vcnJvdy4gSG93IGRvIHdlIGRlc2lnbiBvdXIgc3lzdGVtcyBpbiBhIG1hbm5lciB0aGF0IGNhbiBhZGFwdCBhbmQgY2hhbmdlIHRvIHRoaW5ncyB0aGF0IGRvbuKAmXQgZXZlbiBleGlzdCB3aGVuIHdlIHN0YXJ0IGJ1aWxkaW5nIGl0PyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZXJlIGhhcyBiZWVuIGEgbG90IG9mIHRhbGsgaW4gcmVjZW50IHllYXJzIGFib3V0IGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGV2b2x2ZSBvciBtb3JlIGVhc2lseSBhZGFwdCB0byBjaGFuZ2UuIFRoZW4gd2Ugc3RhcnQgdG8gZGViYXRlIHRoZSBtZXJpdHMgb2YgdGhlc2UgYXJjaGl0ZWN0dXJlcyB1c2luZyBhIGxpbmUgb2YgdGhpbmtpbmcgdGhhdCBzdWdnZXN0cyB5b3UgYXJlIGNob29zaW5nIHRvIGhhdmUgYSDigJxNaWNyb3NlcnZpY2VzIEFyY2hpdGVjdHVyZeKAnSBvciBhbiDigJxFdmVudC1Ecml2ZW4gQXJjaGl0ZWN0dXJl4oCdIG9yIGEg4oCcU2VydmVybGVzcyBBcmNoaXRlY3R1cmUu4oCdIEkgd291bGQgcG9zaXQgdGhhdCB0aGlzIHR5cGUgb2YgZGVzY3JpcHRpb24gY3JlYXRlcyBhIGZhbHNlIHNlbnNlIG9mIGZpbmFsaXR5IHRoYXQgZG9lc27igJl0IGFjdHVhbGx5IGV4aXN0IGluIG1vc3QgcmVhbC13b3JsZCBzeXN0ZW1zLiZsdDsvcCZndDsKCiZsdDtwJmd0O091dHNpZGUgb2YgdGhlIHlvdW5nZXN0IG9mIHByb2plY3RzLCBpdOKAmXMgdW5saWtlbHkgdGhhdCB5b3UgY2FuIGRlc2NyaWJlIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCB5b3UgaGF2ZSB3aXRoIGFueSBzaW1wbGUgb25lLWxpbmVyLiBJdOKAmXMgbW9yZSBsaWtlbHkganVzdCDigJx5b3VyIGFyY2hpdGVjdHVyZSzigJ0gYW5kIGlmIHlvdeKAmXZlIGJlZW4gd29ya2luZyBvbiBpdCBmb3IgYW55IHNpZ25pZmljYW50IGFtb3VudCBvZiB0aW1lLCB5b3UgbWF5IGhhdmUgYXBwbGllZCBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0dGVybnMgYWxvbmcgdGhlIHdheSB0byBzb2x2ZSBzcGVjaWZpYyBwcm9ibGVtcy4gVGhlcmXigJlzIHByb2JhYmx5IGEgbW9ub2xpdGggc29tZXdoZXJlLCBzb21lIG51bWJlciBvZiBtaWNyb3NlcnZpY2VzLCBhIGZldyBldmVudHMsIGFuZCBhIHNlcnZlcmxlc3MgZWxlbWVudCBvciB0d28uIE9uIHRvcCBvZiBhbGwgdGhhdCwgeW91IG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YgdHJhbnNpdGlvbmluZyBzb21lIG9mIHRob3NlIHBpZWNlcyBmcm9tIG9uZSBwYXR0ZXJuIHRvIGFub3RoZXIuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0Rlc2lnbiBhcmNoaXRlY3R1cmUgdG8gc29sdmUgcHJvYmxlbXMmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gb2Z0ZW4gYXNrZWQgYnkgZm9sa3Mgd2hpY2ggYXJjaGl0ZWN0dXJlIHRoZXkgc2hvdWxkIGNob29zZSwgb3Igd2hlbiB0aGV5IHNob3VsZCBzd2l0Y2ggZnJvbSBvbmUgdG8gYW5vdGhlci4gSSBoYXZlIGEgZ3JlYXQgdGVuZGVuY3kgdG8gZGlzYXBwb2ludCB3aXRoIGFuc3dlcnMgbGlrZSDigJx3aGF0IHByb2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gc29sdmU/4oCdJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28sIHdoYXQgJmx0O3N0cm9uZyZndDtzaG91bGQmbHQ7L3N0cm9uZyZndDsgeW91IGJlIHRoaW5raW5nIGFib3V0IGFzIHlvdXIgcHJvZHVjdCBldm9sdmVzIGFuZCB5b3VyIG5lZWRzIGFyZSBjaGFuZ2luZz8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGVyZSBhcmUgYSBsb3Qgb2YgYXBwcm9hY2hlcyB0aGF0IHdlIGNhbiB1c2UgdG8gZGVzaWduIHNvZnR3YXJlIGFuZCBzeXN0ZW1zIHRvIGJlIG1vcmUgcmVzaWxpZW50IHRvIGNoYW5nZS4gVGhlIGFsbHVyZSBvZiBub3QgaGF2aW5nIHRvIGRvIGNvbXBsZXggcmVmYWN0b3Jpbmcgb3IgcmVidWlsZGluZyBkb3duIHRoZSByb2FkIGxlYWRzIHVzIHRvIHdhbnQgdG8gZGVzaWduIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG93IGNvc3Qgb2YgY2hhbmdlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2hpbGUgZ2VuZXJhbGl6ZWQgYWJzdHJhY3Rpb25zIGFuZCByZXVzYWJsZSBjb21wb25lbnRzIGFyZSBhdCB0aGUgY29yZSBvZiByZWR1Y2luZyB0aGUgaW1wYWN0IG9mIGNoYW5nZSwgdGhleSBhcmUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Jsb2cuY29kaW5naG9ycm9yLmNvbS90aGUtZGVsdXNpb24tb2YtcmV1c2UvJnF1b3Q7Jmd0O2hhcmQgdG8gZ2V0IHJpZ2h0IGluIHRoZSBmaXJzdCBwbGFjZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0l04oCZcyBoYXJkIHRvIHByZWRpY3QgdGhlIGZ1dHVyZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtBdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHRlY2huaWNhbCBsYW5kc2NhcGUgaXMgY2hhbmdpbmcsIHlvdXIgYnVzaW5lc3MgYW5kIHlvdXIgb3JnYW5pemF0aW9uIGFyZSBib3RoIGV2b2x2aW5nIGFzIHdlbGwuIFRoZXNlIGJvdGggaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiB5b3VyIGFyY2hpdGVjdHVyYWwgZGVjaXNpb25zLiBUaGUgc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlIHRoYXQgeW91IGFyZSB1bmRlcmdvaW5nIHdpbGwgaW5mbHVlbmNlIHRoZSBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUgYmVzdCBzdWl0ZWQgdG8gYWJzb3JiIHRob3NlIGNoYW5nZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGVhcmx5IGRheXMgb2YgYSBwcm9qZWN0IG9yIGNvbXBhbnksIGl04oCZcyBwb3NzaWJsZSB0byBtYWtlIHN3ZWVwaW5nIGZ1bmRhbWVudGFsIHNoaWZ0cyBpbiB0aGUgb2JqZWN0aXZlLiBFeHRyZW1lLCBidXQgbm90IHVuY29tbW9uLCBleGFtcGxlcyBpbmNsdWRlIFRpbnkgU3BlY2sgYmVjb21pbmcgU2xhY2sgYW5kIE9kZW8gYmVjb21pbmcgVHdpdHRlci4gV2hlbiB0aGUgZG9tYWluIG9mIHlvdXIgYnVzaW5lc3MgY2FuIG1vdmUgdGhhdCBkcmFzdGljYWxseSwgdGhlIGNsZWFuIGJvdW5kYXJpZXMgb2YgeW91ciBEREQgbW9kZWwgYXJlIG91dCB0aGUgd2luZG93LiBJbiBhIHNldCBvZiBtaWNyb3NlcnZpY2VzLCB0aGVzZSBib3VuZGFyaWVzIHdpbGwgYmUgY29kaWZpZWQsIHNvIGlmIHlvdSBoYXZlIHRvIGN1dCB0aHJvdWdoIHRoZW0sIHlvdeKAmWxsIGxpa2VseSBiZSB0aGFua2Z1bCBmb3IgYSBtb3JlIHBsaWFibGUgbW9ub2xpdGguJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB5b3UgZmluZCBwcm9kdWN0IC8gbWFya2V0IGZpdCwgeW91ciBwcmlvcml0aWVzIHdpbGwgc2hpZnQgdG93YXJkcyBzdXBwb3J0aW5nIHlvdXIgcmFwaWQgZ3Jvd3RoLiBXaXRoIHN5c3RlbSBzY2FsZSBhcyBhIGRyaXZlciBvZiBjaGFuZ2UsIHRoZSBhYmlsaXR5IHRvIHJlc3BvbmQgdG8gY2hhbmdlIGlzIG9mdGVuIHRpZWQgdG8gdGhlIGluZGVwZW5kZW5jZSBvZiBzeXN0ZW1zIGJhc2VkIG9uIHRoZWlyIG9wZXJhdGlvbmFsIGNoYXJhY3RlcmlzdGljcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGF0IHNjYWxpbmcgcGhhc2UsIHlvdeKAmWxsIGhhdmUgYSBsYXJnZXIgb3JnYW5pemF0aW9uIGFuZCBmYXIgbW9yZSB0ZWFtcy4gSWYgeW914oCZcmUgbHVja3kgeW914oCZbGwgYmUgYmFjayB0byBzdXN0YWluYWJsZSBwcm9kdWN0IGV2b2x1dGlvbi4gVGhlbiB0aGUgY29zdCBvZiBjaGFuZ2Ugd2lsbCBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIGFtb3VudCBvZiBjcm9zcy10ZWFtIGNvb3JkaW5hdGlvbiByZXF1aXJlZCB0byBtYWtlIGEgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtoMiZndDtEZWZlciByZXNwb25zZSB0byBjaGFuZ2UmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7V2hlbiBhbiBpbmRpdmlkdWFsIG9yIHRlYW0gaGFzIGEgcHJvYmxlbSB0aGV54oCZcmUgdHJ5aW5nIHRvIHNvbHZlLCB0aGV5IGdlbmVyYWxseSBzdGFydCBvZmYgd2l0aCBhIHByZXR0eSBzaW1wbGUgZGlyZWN0aXZlIOKAkyBsZXTigJlzIGJ1aWxkIHRvIHNvbHZlIHRoYXQgcHJvYmxlbS4gV2hhdOKAmXMgdGhlIG1vc3QgZWZmZWN0aXZlIGFyY2hpdGVjdHVyZSB3ZSBjYW4gdXNlIHRvIGJ1aWxkIGEgdmlhYmxlIHByb2R1Y3QgYXQgdGhlIGxvd2VzdCBjb3N0PyBUaGlzIGlzIGdlbmVyYWxseSB0cnVlIHdoZXRoZXIgaXTigJlzIGEgc3RhcnR1cCBvciBhIGh1Z2UgbXVsdGluYXRpb25hbCBjb3Jwb3JhdGlvbi4gQSBuZXcgcHJvamVjdCB3aWxsIGJlIGJ1aWx0IG9uIGEgc3lzdGVtIHRoYXTigJlzIHJlbGF0aXZlbHkgbmV3LCBhbmQgd2lsbCBiZSB1bmxpa2VseSB0byBoYXZlIHByb2R1Y3QtbWFya2V0IGZpdCBiZWNhdXNlIHRoZSBjb21wYW55IHdvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCBpdHMgYnVzaW5lc3MgZG9tYWluIHlldCwgYW5kIHdvbuKAmXQga25vdyB3aGVyZSB0aGUgcHJpbWFyeSBzb3VyY2VzIG9mIGNoYW5nZSB3aWxsIGNvbWUgZnJvbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHNpdHVhdGlvbiwgZGVzaWduaW5nIGZvciBjaGFuZ2UgYmVjb21lcyBhIGxvdCBoYXJkZXIuIElmIGl04oCZcyBhIGxvdCBtb3JlIGV4cGVuc2l2ZSB0byBtYWtlIHRoaW5ncyByZXNpbGllbnQgdG8gY2hhbmdlIGFuZCB5b3UgY2Fu4oCZdCB0ZWxsIHlldCB3aGljaCBwYXJ0cyBvZiB5b3VyIHN5c3RlbSB3aWxsIGNoYW5nZSwgaG93IGRvIHlvdSBtYWtlIHRoZSBkZWNpc2lvbiBhYm91dCB3aGVyZSB0byBtYWtlIHRoYXQgaW52ZXN0bWVudD8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBjb3VudGVyaW50dWl0aXZlIGFzIGl0IG1heSBzb3VuZCwgdGhlIGFuc3dlciBpcyBwcm9iYWJseSBub3doZXJlLiBBdCBsZWFzdCBub3QgeWV0LiBJbnN0ZWFkIHdhdGNoIGNoYW5nZSBjbG9zZWx5IGFuZCBidWlsZCBpbiBhIHdheSB0aGF0IG1pbmltaXplcyB0aGUgY29zdCBvZiBiZWluZyB3cm9uZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiDigJwmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9zaG9wLm9yZWlsbHkuY29tL3Byb2R1Y3QvOTc4MDU5NjUyMjcwNC5kbyZxdW90OyZndDs5NyBUaGluZ3MgRXZlcnkgU29mdHdhcmUgQXJjaGl0ZWN0IFNob3VsZCBLbm93Jmx0Oy9hJmd0O+KAnSBLZXZsaW4gSGVubmV5LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbWVkaXVtLmNvbS9Aa2V2bGluaGVubmV5L2h0dHBzLW1lZGl1bS1jb20ta2V2bGluaGVubmV5LXVzZS11bmNlcnRhaW50eS1hcy1hLWRyaXZlci00OTNlYmViZDU3NWQmcXVvdDsmZ3Q7ZGVzY3JpYmVzIGFuIGltcG9ydGFudCBhcHByb2FjaCB0byB0aGlua2luZyBhYm91dCB1bmNlcnRhaW50eSZsdDsvYSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2Jsb2NrcXVvdGUmZ3Q7CiAgJmx0O3AmZ3Q74oCcVGhlIHByZXNlbmNlIG9mIHR3byBvcHRpb25zIGlzIGFuIGluZGljYXRvciB0aGF0IHlvdSBuZWVkIHRvIGNvbnNpZGVyIHVuY2VydGFpbnR5IGluIHRoZSBkZXNpZ24uIFVzZSB0aGUgdW5jZXJ0YWludHkgYXMgYSBkcml2ZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHlvdSBjYW4gZGVmZXIgY29tbWl0bWVudCB0byBkZXRhaWxzIGFuZCB3aGVyZSB5b3UgY2FuIHBhcnRpdGlvbiBhbmQgYWJzdHJhY3QgdG8gcmVkdWNlIHRoZSBzaWduaWZpY2FuY2Ugb2YgZGVzaWduIGRlY2lzaW9ucy4gSWYgeW91IGhhcmR3aXJlIHRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQsIHlvdeKAmXJlIG1vcmUgbGlrZWx5IHRvIGJlIHN0dWNrIHdpdGggaXQg4oCTIGluY2lkZW50YWwgZGVjaXNpb25zIGJlY29tZSBzaWduaWZpY2FudCBhbmQgdGhlIHNvZnRuZXNzIG9mIHRoZSBzb2Z0d2FyZSBoYXJkZW5zLuKAnSZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7VGhpcyBmcmFtaW5nIGlzIGdyZWF0IGZvciBleHBsaWNpdCBkZWNpc2lvbnMsIGJ1dCB3aGF0IGlmIHlvdSBkb27igJl0IGtub3cgeW914oCZcmUgbWFraW5nIGEgY2hvaWNlPyZsdDsvcCZndDsKCiZsdDtwJmd0O01hbnkgdGltZXMsIHRoZSBjaG9pY2UgaXNu4oCZdCBldmVuIHZpc2libGUgeWV0LCBidXQgd2lsbCByZXZlYWwgaXRzZWxmIGxhdGVyLiBJbiB0aGVzZSBzaXR1YXRpb25zLCB0aGUgYW5zd2VyIGlzIG5vdCB0byBvdmVyIGdlbmVyYWxpemUsIGJ1aWxkaW5nIGFic3RyYWN0aW9ucyBldmVyeXdoZXJlIGp1c3QgaW4gY2FzZS4gSW5zdGVhZCwga2VlcCB0aGluZ3MgYXMgc2ltcGxlIGFzIHBvc3NpYmxlIHNvIHlvdSBjYW4gdW5kZXJzdGFuZCB0aGVtIGxhdGVyIGlmIHlvdSBoYXZlIHRvIG1ha2UgYSBjaGFuZ2UuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O1NpbXBsaWNpdHkgbWFrZXMgaXQgZWFzaWVyIHRvIGFkYXB0IHRvIGNoYW5nZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZWFybHkgZGF5cywgdGhlIENpcmNsZUNJIGFwcGxpY2F0aW9uIHdhcyBhIG1vbm9saXRoIHRoYXQgdG9vayBhIGN1c3RvbWVy4oCZcyBidWlsZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRhdGEgYW5kIHB1c2hlZCBpdCBpbnRvIG9uZSBvZiBzZXZlcmFsIExYQyBjb250YWluZXJzLiBFdmVyeSBjb250YWluZXIgdGhhdCB3ZSBzcHVuIHVwIHdhcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgc2FtZSBpbWFnZSB0aGF0IGNvbnRhaW5lZCBldmVyeXRoaW5nIHRoYXQgd2UgdGhvdWdodCBhbnlvbmUgd291bGQgZXZlciB3YW50IGluIHRoZWlyIHRlc3QgZW52aXJvbm1lbnQuIEluIGhpbmRzaWdodCwgdGhpcyBzb3VuZHMgbGlrZSBhIHRlcnJpYmxlIGlkZWEsIGJ1dCBhdCB0aGUgdGltZSwgaXQgd2FzIGZhbnRhc3RpYy4gSXQgd2FzIHNpbXBsZSB0byBtYWludGFpbiBhbmQgc3VwcG9ydGVkIHRoZSBuZWVkcyBvZiBvdXIgZWFybHkgY3VzdG9tZXJzLCBtYW55IG9mIHdob20gd2VyZSBidWlsZGluZyBSYWlscyBtb25vbGl0aHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXMgdGltZSBwYXNzZWQgYW5kIG91ciBjdXN0b21lciBiYXNlIGdyZXcsIHNvIGRpZCB0aGUgZGl2ZXJzaXR5IG9mIHRoZWlyIG5lZWRzIGluIHRlcm1zIG9mIHRlc3QgZW52aXJvbm1lbnRzLiBVcGdyYWRlZCB2ZXJzaW9ucyBvZiB0aGVpciB1bmRlcmx5aW5nIGRhdGFiYXNlcywgbm92ZWwgbmV3IGRldmVsb3BtZW50IGZyYW1ld29ya3MsIGV2ZW4gbmV3IG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbnMgYmVjYW1lIG5lY2Vzc2FyeS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgb3JpZ2luYWwgY29udGFpbmVyIG1hbmFnZW1lbnQgaW4gQ2lyY2xlQ0kgd2FzbuKAmXQgZGVzaWduZWQgaW4gYSB3YXkgdGhhdCBhbGxvd2VkIHVzIHRvIGFkYXB0IGVhc2lseSB0byB0aGVzZSBjaGFuZ2luZyBuZWVkcy4gQnV0IGl0IHdhcyBmYWlybHkgc2ltcGxlLiBTbyB3aGVuIHdlIHNldCBvdXQgdG8gc29sdmUgdGhlc2UgcHJvYmxlbXMsIHdlIGtuZXcgd2hlcmUgdG8gc3BsaWNlIGluIGEgbmV3IGFwcHJvYWNoIGFuZCBpdCB3YXMgbWluaW1hbCB3b3JrIHRvIGVuYWJsZSB0aGF0IHNwbGljaW5nLiBXZSBhbHNvIGRpZG7igJl0IGhhdmUgdG8gdW5yYXZlbCBhIHBvb3IgZ2VuZXJhbGl6YXRpb24gdGhhdCBkaWRu4oCZdCBzdXBwb3J0IG91ciBuZXcgcHJvYmxlbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3aGlsZSBzZWVtaW5nbHkgc2ltcGxlLCB3ZSB3ZXJlIGZpdmUgeWVhcnMgaW50byBzdWNjZXNzZnVsIGdyb3d0aCBhcyBhIGNvbXBhbnkgbWVldGluZyB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycyBvbiB0aGF0IHNpbXBsZSBzeXN0ZW0gYmVmb3JlIG91ciBmaXJzdCBjdXN0b21lcnMgdGVzdGVkIGl0cyByZXBsYWNlbWVudC4gSW4gdGhvc2UgZml2ZSB5ZWFycywgRG9ja2VyIHdhcyBjcmVhdGVkLCBhcyB3YXMgSGFzaGlDb3Jw4oCZcyBOb21hZC4gQ29tYmluZWQsIHRob3NlIHRvb2xzIGVsaW1pbmF0ZWQgaHVnZSBwb3J0aW9ucyBvZiB0aGUgd29yayBuZWNlc3NhcnkgdG8gZ2V0IHRoZSBmbGV4aWJsZSBhbmQgc2NhbGFibGUgZW52aXJvbm1lbnRzIHRoYXQgd2Ugc3VwcG9ydCBmb3IgY3VzdG9tZXJzIHRvZGF5LiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28sIGFzIHdlIHJldG9vbGVkIHRoZSBzeXN0ZW0gdG8gYWRhcHQgdG8gdGhlIGNoYW5nZWQgbWFya2V0IHdlIHdlcmUgaW4gYSBwb3NpdGlvbiB0byBhc2sg4oCcSG93IGRvIHdlIGRvIHRoaXMgaW4gYSB3YXkgdGhhdCBiZXR0ZXIgcG9zaXRpb25zIHVzIGZvciBpbmNyZW1lbnRhbCBjaGFuZ2U/4oCdIEl0IHdvdWxkIGJlIGRpZmZpY3VsdCB0byBvdmVyc3RhdGUgaG93IG11Y2ggdmFsdWUgdGhhdCBmaXZlIHllYXJzIG9mIGV4cGVyaWVuY2UgcHJvdmlkZWQgd2hlbiBkZXNpZ25pbmcgYSBzb2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdCBzb3VuZHMgd2VpcmQgYW5kIGdyb3NzbHkgdW5mYWlyIHRvIHNheSB0aGlzLCBidXQgbW9zdCBvZiB0aGUgdGltZSB3ZSBkb27igJl0IGV2ZW4ga25vdyB0aGF0IHdl4oCZcmUgbWFraW5nIGEgbW9udW1lbnRhbCBkZXNpZ24gZGVjaXNpb24gYmVjYXVzZSB0aGUgYWx0ZXJuYXRlIHBhdGggaGFzbuKAmXQgc2hvd24gdXAgeWV0LiBIb3cgZG8geW91IGd1YXJkIGFnYWluc3QgdGhpcz8mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7RGVmZXIsIGRlZmVyLCBkZWZlciZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUaGUgY29ycmVjdCBzb2x1dGlvbnMgaGF2ZSBhIGhhYml0IG9mIHJldmVhbGluZyB0aGVtc2VsdmVzIGlmIHlvdSBjYW4gZmluZCBhIHdheSB0byB3YWl0IGxvbmcgZW5vdWdoLiBUZWNobm9sb2d5IGdhaW5zIHRyYWN0aW9uIG9yIGRpZXMuIElmIHlvdSBjaG9zZSBhIGNvbnRhaW5lciBvcmNoZXN0cmF0aW9uIGVuZ2luZSBpbiAyMDE2LCB0aGVyZeKAmXMgYSByb3VnaGx5IDIwJSBjaGFuY2UgdGhhdCB5b3Ugd291bGQgaGF2ZSBjaG9zZW4gS3ViZXJuZXRlcy4gVGhhdCBtZWFucyBieSB0aGUgYmVnaW5uaW5nIG9mIDIwMTgsIGFsbW9zdCA4MCUgb2YgY29tcGFuaWVzIHdlcmUgc3dpdGNoaW5nLiBUaG9zZSBhcmUgbm90IGdyZWF0IG9kZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28gZGVmZXJyaW5nIGNhbiBiZSBnb29kLiBEZWZlcnJpbmcgdG8gdGhlIHBvaW50IG9mIGNyZWF0aW5nIGEgY3Jpc2lzIGlzIG5vdC4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7VGhpbmsgbGlrZSBhIHByb2R1Y3QgbWFuYWdlciZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3VyIGFyY2hpdGVjdHVyZSBpcyBhIGxlYWt5IGFic3RyYWN0aW9uLiBXaGlsZSBDaXJjbGVDSSBpcyBwcm9iYWJseSBhbiBleHRyZW1lIGV4YW1wbGUgb2YgdGhpcyBjYXNlIGR1ZSB0byB0aGUgYWNjZXNzIG91ciBjdXN0b21lcnMgaGF2ZSB0byBzeXN0ZW1zIGluIG91ciBwbGF0Zm9ybSwgdGhlcmUgaXMgYWx3YXlzIHNvbWUgaW1wbGljYXRpb24gZm9yIGN1c3RvbWVycyBvZiB0aGUgZGVjaXNpb25zIHlvdSBtYWtlIGluIGRlZmluaW5nIHlvdXIgYXJjaGl0ZWN0dXJlLiBSZWNvZ25pemluZyB0aGlzIGltcGFjdCBhbmQgYmVpbmcgYWJsZSB0byBjb2hlcmVudGx5IGRpc2N1c3MgYXBwcm9hY2hlcyBhbmQgYWx0ZXJuYXRpdmVzIGlzIGEgaHVnZSBhc3NldCB0aGF0IGFuIGVuZ2luZWVyIGNhbiBicmluZyB0byB0aGVpciBQTSBhbmQgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaGlsZSB3ZSB3ZXJlIHdpdG5lc3NpbmcgYWxsIG9mIHRoaXMgY2hhbmdlIGluIGhvdyBvdXIgY3VzdG9tZXJzIHdlcmUgYnVpbGRpbmcgc29mdHdhcmUsIG9uZSB0aGluZyB3ZSBpZ25vcmVkIGZvciB0b28gbG9uZyB3YXMgdGhlIHJpc2Ugb2YgRG9ja2VyLiBEb2NrZXIgZGlkbuKAmXQgZXZlbiBleGlzdCB3aGVuIENpcmNsZUNJIHN0YXJ0ZWQgaW4gMjAxMSwgdGhlbiBieSAyMDE0IGl0IHdhcyBldmVyeXdoZXJlLiBNYW55IG9mIG91ciBjdXN0b21lcnMgaGFkIHN0YXJ0ZWQgYnVpbGRpbmcgRG9ja2VyIGltYWdlcyBhcyBwYXJ0IG9mIHRoZWlyIGJ1aWxkIHRvIHByZXBhcmUgZm9yIGRlcGxveS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtEb2NrZXIgd2FzIG9yaWdpbmFsbHkgYnVpbHQgb24gdG9wIG9mIExYQywgYW5kIHRoYXQgbWVhbnQgaW4gdGhvc2UgZWFybHkgZGF5cyB3ZSBjb3VsZCBzdXBwb3J0IHRoZSB1c2Ugb2YgRG9ja2VyIGNvbW1hbmRzIHRvIGJ1aWxkIGltYWdlcyBhbmQgcHVzaCB0aGVtIHRvIHJlcG9zaXRvcmllcyBhbGwgaW5zaWRlIG9mIG9uZSBvZiBvdXIgTFhDIGNvbnRhaW5lcnMuIEluIDIwMTQsIERvY2tlciBsYXVuY2hlZCBzb21ldGhpbmcgY2FsbGVkIGxpYmNvbnRhaW5lciBhbmQgdGhleSBwdWxsZWQgYXBhcnQgdGhlIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBzeXN0ZW0gYW5kIGNyZWF0ZWQgZXhlY3V0aW9uIGRyaXZlcnMsIHdoaWNoIHNvb24gbGVkIHRvIHRoZSBkZXByZWNhdGlvbiBvZiB0aGUgTFhDIGRyaXZlci4gRGlzYXBwb2ludGluZywgYnV0IGl0IHN0aWxsIHdvcmtlZC4gVGhlbiBEb2NrZXIgZGVsZXRlZCBhbGwgTFhDIHN1cHBvcnQuIFRoYXQgd2FzIGJhZC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QWx3YXlzIHRoaW5rIGFib3V0IHVzZXJzJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVycyBhbmQgYXJjaGl0ZWN0cywgd2Ugc2F3IHRoaXMgY29taW5nLCBhbmQgZnJhbmtseSwgaXQgd2FzIHVuZGVyIHRoZSByYWRhciBvZiBvdXIgcHJvZHVjdCB0ZWFtLiBPdXIgbm9uLXRlY2huaWNhbCBwcm9kdWN0IGZvbGtzIGRpZG7igJl0IG5lY2Vzc2FyaWx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBidXQgb3VyIGVuZ2luZWVycyB3ZXJlIHRhbGtpbmcgYWJvdXQgaXQgZXZlcnkgZGF5LiBTbyBhcyBhbiBlbmdpbmVlciwgYW4gYXJjaGl0ZWN0LCBvciBhIGxlYWRlciBpbiB0ZWNobm9sb2d5LCB5b3UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBwcm9kdWN0IGFuZCB3b3JraW5nIHdpdGggeW91ciBwcm9kdWN0IG1hbmFnZXJzIHRvIGVuc3VyZSBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGUgaW1wbGljYXRpb25zIG9mIHRlY2huaWNhbCBjaG9pY2VzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0l04oCZcyBpbXBvcnRhbnQgdG8gc2VwYXJhdGUgdGhpcyBkaXNjdXNzaW9uIGZyb20gdGVjaG5pY2FsIGludmVzdG1lbnRzLiBUaGVyZSBpcyBhYnNvbHV0ZWx5IGEgcGxhY2UgZm9yIHRoaXMgdHlwZSBvZiBpbnZlc3RtZW50LCBhbmQsIGFuIGFyZ3VtZW50IHRoYXQgZnJhbWluZyB0aGVzZSBpbnZlc3RtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB5b3UgZnJhbWUgcHJvZHVjdCBpbnZlc3RtZW50cyBtYWtlcyBpdCBtdWNoIGVhc2llciB0byBtYWtlIHRyYWRlb2ZmIGRlY2lzaW9ucy4gSG93ZXZlciwgaWRlbnRpZnlpbmcgdGhlIGRpcmVjdGx5IGN1c3RvbWVyLXZpc2libGUgZmVhdHVyZSBpbXBhY3Qgb2YgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBtb3JlIGNvbW1vbmx5IGRpc2N1c3NlZCBpbXBhY3RzIG9mIGNvc3QsIHBlcmZvcm1hbmNlLCBzZWN1cml0eSwgZXRjLiZsdDsvcCZndDsKCiZsdDtwJmd0O0J1aWxkaW5nIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHlvdXIgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgdmFsdWUgYWNoaWV2ZWQgYnkgeW91ciBjdXN0b21lcnMgd2lsbCBwdXQgeW91IGluIGEgcG9zaXRpb24gdG8gbWFrZSBtb3JlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB3aGF0IGFuZCBob3cgdG8gYnVpbGQgYXMgeW91ciBidXNpbmVzcyBldm9sdmVzLiBUaGVuIHlvdSBjYW4gZm9jdXMgb24gZ2V0dGluZyBhaGVhZCBvZiB0aGF0IGV2b2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7S2VlcCB5b3VyIGhlYWQgdXAmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gQ2FuYWRpYW4gYW5kLCB1bnN1cnByaXNpbmdseSwgSSBncmV3IHVwIHBsYXlpbmcgaWNlIGhvY2tleS4gVGhyb3VnaG91dCBteSBjaGlsZGhvb2QsIEkgc3BlbnQgYW4gZW5kbGVzcyBhbW91bnQgb2YgdGltZSBhdCBwcmFjdGljZSBqdXN0IHNrYXRpbmc6IGZvcndhcmRzLCBiYWNrd2FyZHMsIHR1cm5pbmcsIHN0b3BwaW5nLCBmaWd1cmUgZWlnaHRzIGFyb3VuZCBjb25lcy4gVGhlbiBjYW1lIHN0aWNrIGhhbmRsaW5nLiBUaGUgaWRlYSB3YXMgdG8gaGF2ZSB0aGUgbW92ZW1lbnQgb24gdGhlIGljZSBiZWNvbWUgc2Vjb25kIG5hdHVyZSBzbyBJIGNvdWxkIGZvY3VzIG9uIHdoYXQgcmVhbGx5IG1hdHRlcmVkOiBzZWVpbmcgdGhlIHBsYXkgZGV2ZWxvcCwgZ2V0dGluZyBpbnRvIHNwYWNlLCBhbmQgdHJ5aW5nIHRvIHNjb3JlLiBNYWtlIHRoZSBmdW5kYW1lbnRhbHMgYWxtb3N0IGVmZm9ydGxlc3Mgc28geW91IGNhbiBwdXQgeW91ciBlbmVyZ3kgaW50byB0aGUgbm92ZWwgc3R1ZmYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gc29mdHdhcmUsIHdlIGhhdmUgYSBiYWQgdGVuZGVuY3kgdG8gbWFrZSB0aGUgZnVuZGFtZW50YWxzIGEgbG90IGhhcmRlciB0aGFuIHRoZXkgc2hvdWxkIGJlIGJ5IGFkb3B0aW5nIG5ldyB0ZWNobm9sb2d5IHRoYXQgd2UgdGhpbmsgaXMgZ29pbmcgdG8gYmUgZ2FtZSBjaGFuZ2luZywgYnV0IGVuZHMgdXAgaGF2aW5nIG1vZGVzdCB1cHNpZGUgaWYgYW55LiBUbyBtYWtlIHRoaW5ncyB3b3JzZSwgdGhlIGRvd25zaWRlIGlzIG9mdGVuIHVuYm91bmRlZCBhcyB3ZSBnZXQgb3VyIHRlYW1zIHVwIHRoZSBsZWFybmluZyBjdXJ2ZSwgZmluZCB1bnRlc3RlZCBlZGdlIGNhc2VzIGR1cmluZyBwcm9kdWN0aW9uIGluY2lkZW50cywgYW5kIGludmVudCBvdXIgb3duIOKAnGJlc3QgcHJhY3RpY2VzLuKAnSBBIHdvcmxkIHdoZXJlIFN0YWNrIE92ZXJmbG93IGhhcyBubyBhbnN3ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1doaWxlIHdl4oCZcmUgcHV0dGluZyB0aGlzIGVmZm9ydCBpbnRvIG91ciBub3ZlbCB0ZWNoLCB3ZeKAmXJlIG5vdCBmb2N1c2luZyBvbiBob3cgb3VyIHN5c3RlbXMgbmVlZCB0byBldm9sdmUgdG8gbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QSB0aW1lIHNpbXBsaWNpdHkgd291bGQgaGF2ZSBoZWxwZWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Q2lyY2xlQ0kgaXMgYSBDbG9qdXJlIHNob3AgYW5kLCBpbiBvdXIgZWFybHkgZGF5cywgd2UgZGVjaWRlZCB3ZeKAmWQgYmUgYmV0dGVyIGF0IGZyb250IGVuZCBkZXZlbG9wbWVudCBpZiB3ZSB1c2VkIHRoZSBzYW1lIGxhbmd1YWdlIHRoYXQgd2UgdXNlZCBpbiB0aGUgYmFja2VuZC4gU28gd2UgYWRvcHRlZCBPbSwgYSBDbG9qdXJlU2NyaXB0IHdyYXBwZXIgYXJvdW5kIFJlYWN0LiBBIGZldyB5ZWFycyBsYXRlciwgRGF2aWQgTm9sZW4sIHRoZSBwZXJzb24gd2hvIHN0YXJ0ZWQgT20sIGRlY2lkZWQgaGUgZGlkbuKAmXQgbGlrZSB0aGUgbW9kZWwgc28gaGUgcmVwbGFjZWQgaXQgd2l0aCBzb21ldGhpbmcgaW5jb21wYXRpYmxlIGNhbGxlZCBPbSBOZXh0LiBXZSB0cmllZCB0byBtaWdyYXRlIGluY3JlbWVudGFsbHkgdG8gT20gTmV4dCBhbmQgZW5kZWQgdXAgd2l0aCBhbiBvdmVybHkgY29tcGxleCBmcm9udGVuZCB3aXRoIHR3byBzdGF0ZSBtb2RlbHMgYW5kIG1hc3NpdmUgb3ZlcmhlYWQgdG8gZXZlcnkgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGVuZGVkIHVwIHJld3JpdGluZyBpdCBpbiBSZWFjdC4gSW4gcmV0cm9zcGVjdCwgT20gaGFkIGJvdGggaGlnaCByaXNrIGFuZCBoaWdoIGNvc3QgdG8gY2hhbmdlIGFuZCB3ZSBwYWlkIHRoZSBwcmljZS4gQW5kIHdlIHNwZW50IHRoYXQgdGltZSBsb29raW5nIGF0IG91ciBmZWV0LCBub3QgYWhlYWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm8gY29tcGFueSBoYXMgZXZlciB3b24gYmVjYXVzZSBvZiBhbiBhbWF6aW5nbHkgbm92ZWwgb3IgZXNvdGVyaWMgdGVjaG5vbG9neSBjaG9pY2UuIFRoZXJlIGlzIGFuIGVuZGxlc3MgbGlzdCwgaG93ZXZlciwgb2YgY29tcGFuaWVzIHRoYXQgaGF2ZSB3b24gYmVjYXVzZSB0aGV5IGNhbiBtb3ZlIHF1aWNrbHkgYW5kIHdpdGggYWdpbGl0eSwgYWRhcHRpbmcgdG8gY2hhbmdlIGFzIGl0IGhhcHBlbnMuIFRlY2hub2xvZ3kgc2hvdWxkIGJlIGFuIGFjY2VsZXJhdG9yIGhlbHBpbmcgdXMgbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4gV2VsbC11bmRlcnN0b29kLCBwcm9kdWN0aW9uLXRlc3RlZCB0b29scyBhcmUgZmFyIG1vcmUgbGlrZWx5IHRvIGZpdCB0aGF0IGJpbGwuIEFzIG15IGNvbGxlYWd1ZSBCZWFyIHNheXMsIOKAnElmIGEgdG9vbCBpc27igJl0IGhlbHBpbmcsIGl04oCZcyBub3QgYSB0b29sLCBpdOKAmXMgYSBjaG9yZS4gRHJvcCBpdC7igJ0mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7Q29uY2x1c2lvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtVbmZvcmVzZWVuIGNoYW5nZSBpcyB0b3Atb2YtbWluZCBmb3Igc28gbWFueSBvZiB1cyByaWdodCBub3csIGFuZCBpdOKAmXMgbW9yZSBvYnZpb3VzIHRoYW4gZXZlciB0aGF0LCBpbiBidXNpbmVzcywgbm9ib2R5IGNhbiBwcmVkaWN0IHRoZSBmdXR1cmUuIEl04oCZcyBhIHNhZmUgYmV0IHRoYXQgZm9sa3MgYXQgR00gZGlkbuKAmXQgc3RhcnQgdGhlIHllYXIgdGhpbmtpbmcgYWJvdXQgaG93IHRvIHVzZSB0aGVpciBmYWN0b3JpZXMgdG8gbWFrZSB2ZW50aWxhdG9ycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWluZyBwcmVwYXJlZCB0byBhZGFwdCBpbiB0aGUgZmFjZSBvZiBjaGFuZ2UgcmVxdWlyZXMgdGhpbmtpbmcgYWJvdXQgY2hhbmdlIGFzIGEgZHJpdmVyIGluIGV2ZXJ5dGhpbmcgeW91IGRvLiBXYXRjaCBob3cgeW91ciBtYXJrZXQgaXMgY2hhbmdpbmcgYW5kIHJlZmxlY3Q9IG9uIGhvdyB0aGF0IGltcGFjdHMgeW91ciBhcmNoaXRlY3R1cmUgc28gdGhhdCB5b3UgY2FuIG1ha2UgdGFyZ2V0ZWQsIGluY3JlbWVudGFsIGltcHJvdmVtZW50cyBpbiBpdHMgYWRhcHRhYmlsaXR5LiBUaGlzIHdpbGwgaGVscCBrZWVwIHlvdSBmb2N1c2VkIG9uIGV2b2x1dGlvbiB3aXRob3V0IHdhc3RpbmcgdGltZSBvciBtb25leSBvbiBhcmVhcyB0aGF0IHdvbuKAmXQgbmVlZCBpdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCbGFjayBTd2FuIGV2ZW50cyBhcmUgc28gdW51c3VhbCB0aGF0IHN0dWR5aW5nIHRoZSBzcGVjaWZpY3MgY2FuIGJlIGxvdyB2YWx1ZSwgYnV0IHRoZXkgcmVtaW5kIHVzIGhvdyBmYXIgcmVhbGl0eSBjYW4gYmUgZnJvbSBvdXIgcGxhbnMuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZW5naW5lZXJpbmcgbWFuYWdlcnMgY2FuIGVmZmVjdGl2ZWx5IHN1cHBvcnQgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWVuZ2luZWVyaW5nLW1hbmFnZXJzLWNhbi1lZmZlY3RpdmVseS1zdXBwb3J0LWVuZ2luZWVycy10ZWFtcy1hbmQtb3JnYW5pemF0aW9ucy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+V2VkLCAyOSBBcHIgMjAyMCAxNTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9ob3ctZW5naW5lZXJpbmctbWFuYWdlcnMtY2FuLWVmZmVjdGl2ZWx5LXN1cHBvcnQtZW5naW5lZXJzLXRlYW1zLWFuZC1vcmdhbml6YXRpb25zLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkxlbmEgUmVpbmhhcmQ8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIHR5cGljYWwgam9iIGRlc2NyaXB0aW9uIGZvciBtYW55IGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMgaXMgYWN0aW9uLXBhY2tlZC4gSXQgaXMgYSBtaXggb2YgaGFuZHMtb24gY29kaW5nLCB0ZWNobmljYWwgbGVhZGVyc2hpcCBhbmQgZGVjaXNpb24gbWFraW5nLCBwcm9jZXNzIGFuZCBwcm9qZWN0IG1hbmFnZW1lbnQsIHByb2R1Y3Qgb3ZlcnNpZ2h0LCBwZW9wbGUgbWFuYWdlbWVudCwgZmluZGluZyBhbmQgaGlyaW5nIHRhbGVudCDigKYgdGhlIGxpc3QgZ29lcyBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiBvdXIgd29yaywgd2UgZGVhbCB3aXRoIGJvdGggdGVjaG5pY2FsIGFuZCBwZW9wbGUgc3lzdGVtczogd2Ugc3VwcG9ydCBpbmRpdmlkdWFsIGVuZ2luZWVyc+KAmSBncm93dGg7IGhlbHAgdGVhbXMgYmVjb21lIHN1Y2Nlc3NmdWw7IGFuZCBtYWtlIHRoZSBvcmdhbml6YXRpb24gbW9yZSBwcm9kdWN0aXZlLCBmdW5jdGlvbmFsLCBhbmQgaW5ub3ZhdGl2ZS4gQWJvdmUgYWxsLCBhbiBlbmdpbmVlcmluZyBtYW5hZ2VyIGlzIGEgc2VydmljZSBvciBzdXBwb3J0IHJvbGUgYWNyb3NzIHRoZXNlIHZhcmlvdXMgbGF5ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1BlcmhhcHMgbW9zdCBmYXNjaW5hdGluZyBhbmQgZGlmZmljdWx0IGlzIHRoZSBoaWdoLWxldmVsIG9mIGFtYmlndWl0eSB0aGF0IGNvbWVzIHdpdGggZW5naW5lZXJpbmcgbWFuYWdlbWVudC4gTWFueSBwcm9ibGVtcyBvciBxdWVzdGlvbnMgZG9u4oCZdCBoYXZlIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLiBUaGVyZSBhcmVu4oCZdCBhYnNvbHV0ZSBhbnN3ZXJzIHRvIHdoYXQgaXQgbWVhbnMgdG8gYmUgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgZWl0aGVyLCBidXQgdGhlcmUgYXJlIGNlcnRhaW4gdmFsdWVzIGFuZCBndWlkZXBvc3RzIHRvIGZvbGxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgbG9vayBhdCB3aGF0IGNhbiBzaGFwZSBvdXIgdGhpbmtpbmcgYWJvdXQgb3VyIHJvbGUgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgYW5kIGhvdyB0byBlZmZlY3RpdmVseSBzdXBwb3J0IGluZGl2aWR1YWwgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1doYXQgZG8gZW5naW5lZXJzIG5lZWQgdG8gdGhyaXZlIGF0IHdvcms/Jmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SXQgaGVscHMgdG8gc3RhcnQgc2hhcGluZyBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IHJvbGVzIGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCBlbmdpbmVlcnMgbmVlZCwgYW5kIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGV5IHRocml2ZS4gUmVzZWFyY2ggZnJvbSBwZXJmb3JtYW5jZSBjb2FjaCBhbmQgdHJhaW5lciBQYWxvbWEgTWVkaW5hIGV4cG9zZXMgc2l4IGNvcmUgbmVlZHMgaHVtYW5zIGhhdmUgKGluY2x1ZGluZyBhdCB3b3JrKS4gU2hlIGNhbGxzIHRoaXMgcmVzZWFyY2ggdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGFsb21hbWVkaW5hLmNvbS9iaWNlcHMmcXVvdDsmZ3Q7QklDRVBTIG1vZGVsJmx0Oy9hJmd0OzombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7QmVsb25naW5nLiZsdDsvc3Ryb25nJmd0OyBBcyBodW1hbnMsIHdlIHN0cml2ZSB0byBiZSBwYXJ0IG9mIGEgY29tbXVuaXR5IG9mIGxpa2UtbWluZGVkIHBlb3BsZSB3aGVyZSB3ZSB1bmRlcnN0YW5kIGFuZCBzdXBwb3J0IGVhY2ggb3RoZXIuIFdlIGFsc28gd2FudCB0byBmZWVsIGFzIGlmIHdlIGFyZSBub3QgYmVpbmcgZGlzY3JpbWluYXRlZCBhZ2FpbnN0IG9yIG1hcmdpbmFsaXplZC4gQmVsb25naW5nIGlzIHJlYWxseSBpbXBvcnRhbnQgdG8gbWUgcGVyc29uYWxseTogSSBsb3ZlIHdvcmtpbmcgYXMgcGFydCBvZiBhIGRpc3RyaWJ1dGVkIHRlYW0sIGJ1dCBJIGFsc28gcmVhbGx5IGVuam95IHNlZWluZyBwZW9wbGUgaW4gcGVyc29uIGV2ZXJ5IG9uY2UgaW4gYSB3aGlsZS4gSXQgbWFrZXMgbWUgZmVlbCBtb3JlIGNvbm5lY3RlZCB0byB0aGVtLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7SW1wcm92ZW1lbnQuJmx0Oy9zdHJvbmcmZ3Q7IFdlIGFsc28gc2VlayB0byBjb250aW51b3VzbHkgbGVhcm4sIGltcHJvdmUsIGFuZCBncm93IGluIGFyZWFzIHRoYXQgbWF0dGVyIHRvIHVzLCBhcyB3ZWxsIGFzIHRvIG91ciB0ZWFtIG9yIGNvbXBhbnkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtDaG9pY2UuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8gaGF2ZSBjaG9pY2UsIGNvbnRyb2wsIGFuZCBhdXRvbm9teSBvdmVyIGltcG9ydGFudCBwYXJ0cyBvZiBvdXIgbGl2ZXMuIEluIG9uZSBvZiBteSBwcmV2aW91cyByb2xlcywgSSB0b29rIG9uIGEgbG90IG9mIHdvcmsgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLiBCdXQgdWx0aW1hdGVseSwgdGhlIGNvbnRyb2wgSSBoYWQgb3ZlciBteSBkb21haW4gd2FzIGxpbWl0ZWQgZHVlIHRvIG9yZ2FuaXphdGlvbmFsIGlzc3VlcyDigJMgd2hpY2ggbGVkIG1lIHRvIGxlYXZlIHRoZSBjb21wYW55LiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7RXF1YWxpdHkuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8ga25vdyB0aGF0IG91ciBhY2Nlc3MgdG8gaW5mb3JtYXRpb24sIG1vbmV5LCB0aW1lLCBhbmQgb3RoZXIgcmVzb3VyY2VzIGlzIGZhaXIgYW5kIGVxdWFsIGZvciBldmVyeW9uZSDigJMgbm90IGp1c3QgZm9yIG91cnNlbHZlcywgYnV0IGFsc28gZm9yIHRoZSBwZW9wbGUgYXJvdW5kIHVzLiBFdmVyeW9uZeKAmXMgbmVlZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZXF1YWxseSBpbXBvcnRhbnQuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtQcmVkaWN0YWJpbGl0eS4mbHQ7L3N0cm9uZyZndDsgV2UgbG9vayBmb3IgY2VydGFpbnR5LCBzYWZldHksIGFuZCBzdGFiaWxpdHkgaW4gb3VyIGxpdmVzLiBXZSBhbHNvIHdhbnQgZ29hbHMsIHN0cmF0ZWd5LCBhbmQgZGlyZWN0aW9uIHRvIGJlIGNvbnNpc3RlbnQg4oCTIGFuZCB0byBub3QgY2hhbmdlIHRvbyBxdWlja2x5LiBJ4oCZdmUgYmVlbiBsZWFkaW5nIHRlYW1zIGluIGZhc3QtZ3Jvd2luZyBzdGFydHVwcyBmb3IgdGhlIGxhc3QgY291cGxlIG9mIHllYXJzLCBhbmQgd2hlbiB0aGVyZeKAmXMgYSBsb3Qgb2YgY2hhbmdlIGhhcHBlbmluZywgaXTigJlzIGEgY2hhbGxlbmdlIHRvIGluc3RpbGwgcHJlZGljdGFiaWxpdHkgaW4gdGVhbXMuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtTaWduaWZpY2FuY2UuJmx0Oy9zdHJvbmcmZ3Q7IERlZXAgZG93biwgYWxsIG9mIHVzIHNlZWsgbWVhbmluZywgaW1wb3J0YW5jZSwgYW5kIHN0YXR1cy4gV2UgYWxzbyB3YW50IHRvIGJlIGFwcHJlY2lhdGVkIGZvciBvdXIgd29yayBieSBwZW9wbGUgd2hvc2Ugb3BpbmlvbnMgbWVhbiBzb21ldGhpbmcgdG8gdXMuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0lmIG91ciBjb3JlIG5lZWRzIGFyZSB0aHJlYXRlbmVkLCBwZW9wbGUgcmVzb3J0IHRvIGZpZ2h0LW9yLWZsaWdodCBtb2RlcyBvZiByZWFjdGlvbiwgd2hpY2ggYXJlIHZlcnkgc3RyZXNzZnVsLiBUaGUgZmFpbHVyZSB0byBtZWV0IGNvcmUgbmVlZHMgaGFzIGhpZ2ggY29zdHMgZm9yIG9yZ2FuaXphdGlvbnMgYnkgaGFybWluZyBwZW9wbGUgb24gb3VyIHRlYW1zLiBTbyBob3cgY2FuIGVuZ2luZWVyaW5nIG1hbmFnZXJzIHB1dCB0aGUgQklDRVBTIG1vZGVsIGludG8gYWN0aW9uIHRvIGhlbHAgdGhlaXIgdGVhbXMgdGhyaXZlPyZsdDsvcCZndDsKCiZsdDtoMiZndDtVc2luZyB0cnVzdC1iYXNlZCByZWxhdGlvbnNoaXBzIHRvIGhlbHAgZW5naW5lZXJzIGdyb3cmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgZm91bmRhdGlvbiBvZiBiZWluZyBhIGdvb2QgZW5naW5lZXJpbmcgbWFuYWdlciBpcyBnZXR0aW5nIHRvIGtub3cgb3VyIHRlYW1tYXRlcyBhbmQgdW5kZXJzdGFuZGluZyB3aGF0IGlzIGltcG9ydGFudCB0byB0aGVtLiBIZXJlIGFyZSBhIGZldyBwbGFjZXMgdG8gc3RhcnQgYnVpbGRpbmcgdHJ1c3Qgd2l0aGluIHlvdXIgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0FzayBxdWVzdGlvbnMuJmx0Oy9zdHJvbmcmZ3Q7IE9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCB0b29scyBtYW5hZ2VycyBoYXZlIGlzIGFza2luZyBnb29kIHF1ZXN0aW9ucy4gVGhlIGJhc2lzIGZvciBkb2luZyBvdXIgam9icyB3ZWxsIGlzIGxpc3RlbmluZywgb2JzZXJ2aW5nLCB0YWtpbmcgbm90ZSBvZiB3aGF0IG1vdGl2YXRlcyBvdXIgdGVhbW1hdGVzLCBhbmQgcmVhbGx5IGRpZ2dpbmcgaW50byB0aGVpciByZXNwb25zZXMgdG8gb3VyIHF1ZXN0aW9ucy4gSSB1c3VhbGx5IGdhdGhlciBxdWVzdGlvbnMgYmVmb3JlIEkgbWVldCB3aXRoIG15IHRlYW1tYXRlcyBvbmUtb24tb25lLCBzbyBJIGFtIHByZXBhcmVkIGFuZCBJIGNhbiBndWlkZSB0aGUgY29udmVyc2F0aW9uIHRvd2FyZHMgdW5kZXJzdGFuZGluZyB0aGVtIGJldHRlci4gT3ZlciB0aW1lLCBJIGhhdmUgYnVpbHQgYSBraXQgb2Ygb25lLW9uLW9uZSBxdWVzdGlvbnMgdGhhdCBJIHB1bGwgb3V0IHdoZW4gSSBuZWVkIHNvbWUgaW5zcGlyYXRpb24gZm9yIHRoZXNlIGNvbnZlcnNhdGlvbnMuIEFza2luZyBxdWVzdGlvbnMgaGVscHMgdXMgYWRqdXN0IG91ciBsZWFkZXJzaGlwIHN0eWxlIHRvIHRoZSBwZW9wbGUgd2UgYXJlIGxlYWRpbmcuIEl0IGFsc28gZW5zdXJlcyB0aGF0IHRoZXkgZmVlbCB1bmRlcnN0b29kIGFuZCBoZWFyZCwgd2hpY2ggYXJlIHJlYWxseSBpbXBvcnRhbnQgcGlsbGFycyBvZiBpbmNsdXNpb24gYW5kIGJlbG9uZ2luZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0JlIGN1cmlvdXMuJmx0Oy9zdHJvbmcmZ3Q7IFBlb3BsZSBhcmUgZnVsbCBvZiBzdXJwcmlzZXMsIGFuZCBzb21ldGltZXMgb3VyIHRlYW1tYXRlc+KAmSByZWFjdGlvbnMgbWF5IGJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBleHBlY3RlZC4gSSBvbmNlIHJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIGVuZ2luZWVyIG9uIG15IHRlYW0gd2hvIHdhcyBkZWVwbHkgdXBzZXQgYWJvdXQgdGhlIHNwZWNpZmljIHdvcmRpbmcgdXNlZCBpbiBhIHByb2R1Y3QtcmVsZWFzZSBub3RlIHRvIGN1c3RvbWVycy4gQXQgZmlyc3QgSSBkaWQgbm90IHVuZGVyc3RhbmQgdGhlaXIgc3Ryb25nIHJlYWN0aW9uLiBCdXQgd2hlbiB3ZSB0YWxrZWQsIEkgbGVhcm5lZCB0aGUgZW5naW5lZXIgaGFkIGJlZW4gb3ZlcnJ1bGVkIGJ5IHNvbWVvbmUgd2l0aCBtb3JlIHBvd2VyLCBtYWtpbmcgdGhlbSBmZWVsIGhlbHBsZXNzLCBhbmQgdGhyZWF0ZW5pbmcgdGhlaXIgY29yZSBuZWVkIGZvciBjaG9pY2UgYW5kIGVxdWFsaXR5LiZsdDsvcCZndDsKCiZsdDtwJmd0O1doYXQgbWFuYWdlcnMgbWlnaHQgcGVyY2VpdmUgYXMgbm8gYmlnIGRlYWwgY2FuIGJlIGVub3Jtb3VzIHRocmVhdHMgdG8gb3RoZXIgcGVvcGxlLiBDYXNlcyB3aGVyZSB3ZeKAmXJlIHN1cnByaXNlZCBieSBvdXIgdGVhbW1hdGVz4oCZIHJlYWN0aW9ucyBhcmUgZ29vZCBvcHBvcnR1bml0aWVzIHRvIGZvY3VzIG9uIGh1bWFuLWNlbnRyaWMgcmVzcG9uc2VzLCBsaWtlIGdpdmluZyBwZW9wbGUgdGhlIG9wcG9ydHVuaXR5IHRvIHRhbGsgdGhyb3VnaCB0aGVpciBmZWVsaW5ncy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0Nvbm5lY3QgdG8gdGhlIGJpZ2dlciBwaWN0dXJlLiZsdDsvc3Ryb25nJmd0OyBDcmVhdGluZyBhbiBpbXBhY3QgaXMgYSB2ZXJ5IGdvb2QgbW90aXZhdG9yIGZvciBhbGwgb2YgdXMsIHNvIGhlbHBpbmcgZW5naW5lZXJzIHVuZGVyc3RhbmQgaG93IHRoZWlyIHdvcmsgY29ubmVjdHMgdG8gdGhlIGJpZ2dlciBwaWN0dXJlIChob3cgaXQgaGVscHMgdXNlcnMgb3Igc3VwcG9ydHMgb3RoZXIgdGVhbXMpIGlzIGFuIGV4dHJlbWVseSBpbXBvcnRhbnQgYW5kIHN0cmF0ZWdpYyBza2lsbCBmb3IgbWFuYWdlcnMuIFdoaWxlIGdvYWwtc2V0dGluZyBmcmFtZXdvcmtzIGxpa2UgT0tScyBjYW4gaGVscCwgaXQgaXMgYWxzbyBjcnVjaWFsIHRvIGFsaWduIGVuZ2luZWVyaW5nIGluaXRpYXRpdmVzIHdpdGggaGlnaGVyLWxldmVsIGdvYWxzLCBhbmQgY29ubmVjdCB0aGVtIGNsZWFybHkgd2l0aCB1c2VyIHZhbHVlLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7SW52b2x2ZSBlbmdpbmVlcnMgaW4gZGVjaXNpb24gbWFraW5nLiZsdDsvc3Ryb25nJmd0OyBGZWVsaW5nIHRoYXQgZGVjaXNpb25zIGFyZSBmYWlyIGFuZCBlcXVpdGFibGUgaXMgYW4gaW1wb3J0YW50IGNvbXBvbmVudCBvZiB0aGUgQklDRVBTIG1vZGVsLiBXaGVuIHdlIG1ha2UgZGVjaXNpb25zLCBpdCBpcyBoZWxwZnVsIHRvIGFzayBldmVyeW9uZSBmb3IgdGhlaXIgb3BpbmlvbnMgZmlyc3QsIGFuZCB0YWtlIHRoZWlyIG9waW5pb25zIGludG8gYWNjb3VudC4gSXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBnbyB3aXRoIHdoYXQgZXZlcnlvbmUgd2FudHMuIEJ1dCB3ZSBjYW4gc3RpbGwgZG8gYSBnb29kIGpvYiBhdCBjb250ZXh0dWFsaXppbmcgdGhlIGRlY2lzaW9ucyB3ZSBtYWtlLCBhbmQgaGVscGluZyBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IHRoZWlyIGZlZWRiYWNrIHdhcyBjb25zaWRlcmVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7R2l2ZSBmZWVkYmFjayBmb3IgZ3Jvd3RoLiZsdDsvc3Ryb25nJmd0OyBPbmUgb2YgdGhlIGJlc3QgdGhpbmdzIHdlIGdldCB0byBkbyBhcyBlbmdpbmVlcmluZyBtYW5hZ2VycyBpcyBzdXBwb3J0IGVuZ2luZWVyc+KAmSBncm93dGguIEdpdmUgZmVlZGJhY2sgcmVndWxhcmx5IHRvIGhlbHAgdGhlIHBlb3BsZSBvbiB5b3VyIHRlYW0gdW5kZXJzdGFuZCB3aGVyZSB0aGV5IGFyZSBhdCBhbmQgZ3JvdyDigJMgYnkgY291cnNlLWNvcnJlY3Rpbmcgd2hlcmUgbmVlZGVkLCBhcyB3ZWxsIGFzIGJ5IGRvaW5nIG1vcmUgaW4gdGhlIGFyZWFzIGluIHdoaWNoIHRoZXkgYXJlIGFscmVhZHkgZG9pbmcgZ3JlYXQuIE1hbmFnZXJzIG5lZWQgZmVlZGJhY2sgYXMgd2VsbDogaXTigJlzIGltcG9ydGFudCB0byByZWd1bGFybHkgYXNrIHlvdXIgdGVhbSBmb3IgZmVlZGJhY2sgc28geW91IGNhbiBtYWtlIGFkanVzdG1lbnRzLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Q29hY2ggZW5naW5lZXJzLiZsdDsvc3Ryb25nJmd0OyBDb2FjaGluZyBoZWxwcyBwZW9wbGUgZmluZCBhbnN3ZXJzIHRoZW1zZWx2ZXMsIGltcHJvdmVzIHRoZWlyIHByb2JsZW0tc29sdmluZyBhbmQgbGVhZGVyc2hpcCBza2lsbHMsIGFuZCBpbmNyZWFzZXMgbGVhcm5pbmcsIHJlc2lsaWVuY2UsIGFuZCBzZWxmLW1hbmFnZW1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTcG9uc29yIGVuZ2luZWVycy4mbHQ7L3N0cm9uZyZndDsgVGhpbmsgYmFjayBvbiB5b3VyIGNhcmVlciwgYW5kIHdoZXRoZXIgeW91IGhhdmUgaGFkIGEgbWVudG9yIHdobyBjb25uZWN0ZWQgeW91IHdpdGggc29tZW9uZSwgcHV0IHlvdXIgbmFtZSBmb3J3YXJkLCBhbmQgdXNlZCB0aGVpciBpbmZsdWVuY2UgdG8gbWFrZSBhIGRpZmZlcmVuY2UgaW4geW91ciBjYXJlZXIuIEJlIHRoYXQgcGVyc29uIGZvciBzb21lb25lIGVsc2U6IGludmVzdCBpbiB0aGVpciBncm93dGgsIGxpZnQgdGhlbSB1cCwgYW5kIHB1dCB5b3VyIHdlaWdodCBiZWhpbmQgdGhlaXIgc3VjY2Vzcy4gU3VwcG9ydGluZyB5b3VyIHRlYW3igJlzIHN1Y2Nlc3MgY2FuIG1ha2UgYSByZWFsIGRpZmZlcmVuY2UgZm9yIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhpcyBpcyB0aGUgZm91bmRhdGlvbiBvZiBvdXIgd29yayBhcyBlbmdpbmVlcmluZyBtYW5hZ2Vycy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RHJpdmluZyBhIGN1bHR1cmUgb2YgdHJ1c3QgYW5kIGNvbnRpbnVvdXMgaW1wcm92ZW1lbnQgb24gdGVhbXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgbmV4dCBpbXBvcnRhbnQgYnVpbGRpbmcgYmxvY2sgaW4gb3VyIHdvcmsgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgaXMgdGhlIHRlYW0uIEFjY29yZGluZyB0byByZXNlYXJjaCwgaGlnaC1wZXJmb3JtaW5nIHRlYW1zIG5lZWQgdGhlIGZvbGxvd2luZyBlbGVtZW50cy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7UHN5Y2hvbG9naWNhbCBzYWZldHkuJmx0Oy9zdHJvbmcmZ3Q7IFRoaXMgaXMgYWJvdXQgYmVsaWV2aW5nIHRoYXQgd2Ugd2lsbCBub3QgYmUgcmVqZWN0ZWQsIGFuZCBmZWVsaW5nIGZyZWUgdG8gZXhwcmVzcyBvdXIgd29yay1yZWxhdGVkIHRob3VnaHRzIGFuZCBmZWVsaW5ncyB0byB0aGUgcGVvcGxlIGFyb3VuZCB1cy4gSXQgYWxzbyBtZWFucyBiZWxpZXZpbmcgdGhhdCBvdGhlcnMgd29u4oCZdCB0aGluayBsZXNzIG9mIHVzIGlmIHdlIG1ha2UgYSB3ZWxsLWludGVudGlvbmVkIG1pc3Rha2Ugb3IgYXNrIGZvciBoZWxwLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7U3RydWN0dXJlIGFuZCBjbGFyaXR5LiZsdDsvc3Ryb25nJmd0OyBFdmVyeW9uZSBvbiB0aGUgdGVhbSBzaG91bGQgdW5kZXJzdGFuZCBleHBlY3RhdGlvbnMsIGdvYWxzLCBhbmQgYWNjb3VudGFiaWxpdHkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtNZWFuaW5nIGFuZCBpbXBhY3QuJmx0Oy9zdHJvbmcmZ3Q7IEhpZ2gtcGVyZm9ybWluZyB0ZWFtcyBmaW5kIGEgc2Vuc2Ugb2YgcHVycG9zZSBpbiB0aGVpciB3b3JrLCBhbmQga25vdyB0aGF0IHRoZWlyIHdvcmsgaGFzIGFuIGltcGFjdC4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7THVja2lseSBmb3IgbWFuYWdlcnMsIHRoaXMgcmVzZWFyY2ggbmVhdGx5IGFsaWducyB3aXRoIHRoZSBCSUNFUFMgbW9kZWwuIEFsbCBodW1hbiBjb3JlIG5lZWRzIGFyZSByZXByZXNlbnRlZCBhbmQgaGF2ZSBpbXBhY3QgYXQgdGhlIHRlYW0gbGV2ZWwgYXMgd2VsbC4gQnkgdW5kZXJzdGFuZGluZyBhbmQgcmVzcG9uZGluZyB0byBwZW9wbGXigJlzIG1vdGl2YXRpb25zLCBsZWFkZXJzIGNyZWF0ZSB0aGUgYmFzaXMgZm9yIHRlYW1zICB0byBleHByZXNzIHRoZW1zZWx2ZXMg4oCTIGFuZCBwcm92aWRlIHRoZSBzdHJ1Y3R1cmUsIG1lYW5pbmcsIGFuZCBpbXBhY3QgdGhleSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgdHJ1c3QuJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBmaXJzdCBzdGVwIGluIGNyZWF0aW5nIHN0cnVjdHVyZSBpcyBidWlsZGluZyByZWxhdGlvbnNoaXBzLiBGb3Igb3VyIGRpc3RyaWJ1dGVkIHRlYW1zIGF0IENpcmNsZUNJLCB3ZeKAmXZlIGJ1aWx0IGRpZmZlcmVudCBzdHJ1Y3R1cmVzIHRvIGhlbHAgdGVhbW1hdGVzIGRvIHRoYXQsIHN1Y2ggYXMgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucyBhbmQgZW5naW5lZXJpbmcgdGFsa3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTdHJ1Y3R1cmUgYXJvdW5kIGhvdyB3ZSBjb2xsYWJvcmF0ZS4mbHQ7L3N0cm9uZyZndDsgT3VyIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0kgaGFzIGRvdWJsZWQgaW4gc2l6ZSBmb3IgdGhyZWUgeWVhcnMgaW4gYSByb3cuIE92ZXIgdGhpcyB0aW1lLCB3ZeKAmXZlIG1vdmVkIHRvIGEgbW9yZSBzdHJlYW1saW5lZCBlbmdpbmVlcmluZyBkZWxpdmVyeSBwcm9jZXNzIGZvciBhbGwgdGVhbXMuIEJ1dCB3ZSBzdGlsbCBsZWF2ZSBpdCB0byB0aGUgdGVhbXMgdG8gZGVjaWRlIGhvdyB0byBpbXBsZW1lbnQgdCBkYXktdG8tZGF5IHByb2Nlc3NlcywgaW5jbHVkaW5nIGRhaWx5IHN0YW5kdXAgbWVldGluZ3MsIHBsYW5uaW5nIHNlc3Npb25zLCBvciBjb2xsYWJvcmF0aW9uLiBFdmVyeSB0ZWFtIGhhcyBzcGVjaWZpYyBuZWVkcywgYW5kIHRoZXkga25vdyBiZXN0IGhvdyB0byBhZGRyZXNzIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtSZW1vdmUgYmxvY2tlcnMuJmx0Oy9zdHJvbmcmZ3Q7IFN0cnVjdHVyZXMgY2FuIGFsc28gaGVscCBtaXRpZ2F0ZSB0aGUgaW1wYWN0IG9mIGdldHRpbmcgYmxvY2tlZCBhdCB3b3JrLiBXZSBhbGwga25vdyBob3cgZnJ1c3RyYXRpbmcgaXQgaXMgdG8gYmUgc3R1Y2suIFB1dHRpbmcgdXAgcGF0aHdheXMgdG8gaGVscCBwZW9wbGUgZ2V0IHVuYmxvY2tlZCBjYW4gYmUgcmVhbGx5IGltcG9ydGFudCDigJMgZm9yIGV4YW1wbGUsIHNldHRpbmcgdXAgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucywgaW52ZXN0aW5nIGluIHNlbGYtc2VydmUgaW5mb3JtYXRpb24gYWNjZXNzLCBzdXBwb3J0aW5nIGVhY2ggb3RoZXIgYWNyb3NzIHRlYW1zLCBwdXR0aW5nIHVwIGVzY2FsYXRpb24gcGF0aHMgZm9yIHBlb3BsZSB0byBnZXQgaGVscCB3aGVuIHRoZXkgbmVlZCBpdCwgb3IgaGVscGluZyBwZW9wbGUgc3VwcG9ydCBlYWNoIG90aGVyIHRocm91Z2gga25vd2xlZGdlLXNoYXJpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtDb250aW51b3VzbHkgaW1wcm92ZS4mbHQ7L3N0cm9uZyZndDsgV2UgY2FuIHVzZSByZXRyb3NwZWN0aXZlcyB0byBkaXNjdXNzIGFuZCBpbXByb3ZlIGhvdyB3ZSB3b3JrIHRvZ2V0aGVyLiBCbGFtZWxlc3MgcG9zdG1vcnRlbXMgYXJlIGFsc28gYSBncmVhdCB0b29sIHRvIGhlbHAgdW5kZXJzdGFuZCBwcm9ibGVtcyBhbmQgZHJpdmUgdG93YXJkcyBzb2x1dGlvbnMuIENvZGUgcmV2aWV3cywgbWVudG9yaW5nLCBvciBrbm93bGVkZ2Ugc2hhcmluZyBjYW4gaGVscCB0ZWFtIG1lbWJlcnMgbGVhcm4gZnJvbSBlYWNoIG90aGVyLiBUaGUgd2F5IHdlIHRhbGsgYWJvdXQgbGVhcm5pbmcgbWF0dGVycyDigJMgZXNwZWNpYWxseSB0aGUgd2F5IHdlIGRpc2N1c3MgbWlzdGFrZXMuIFRoZXNlIGRlY2lzaW9ucyB3aWxsIGZ1bmRhbWVudGFsbHkgc2hhcGUgdGhlIGN1bHR1cmUgb2Ygb3VyIHRlYW1zLCBhbmQgZGV0ZXJtaW5lIHdoZXRoZXIgcGVvcGxlIGZlZWwgc2FmZSBvciB0aHJlYXRlbmVkIGluIHRoZWlyIGNvcmUgbmVlZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtEcml2ZSB0b3dhcmQgYWxpZ25tZW50LiZsdDsvc3Ryb25nJmd0OyBDb21tdW5pY2F0ZSBzdHJhdGVneSwgZGlyZWN0aW9uLCBhbmQgcmVsZXZhbnQgdGFjdGljYWwgZGV0YWlscyB0byBvdXIgdGVhbXMg4oCTIGFuZCByZW1lbWJlciBpdOKAmXMgYWxtb3N0IGltcG9zc2libGUgdG8gb3Zlci1jb21tdW5pY2F0ZSB0aGVzZSBkZXRhaWxzLiBBbHdheXMgcmVwZWF0IHdoYXTigJlzIGltcG9ydGFudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBlbmdpbmVlcmluZyBtYW5hZ2Vycywgd2UgYXJlIGxpa2UgbW9ydGFyOiBXZSBjb25uZWN0IHN0cnVjdHVyZXMsIHRlYW1zLCBhbmQgcGVvcGxlLiBXZSBob2xkIHRoZW0gdG9nZXRoZXIsIGJ1dCBhbHNvIGlkZW50aWZ5IGFuZCBmaWxsIGdhcHMgYXMgbmVlZGVkLiBIYW5kbGluZyBhbWJpZ3VpdHkgaXMgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgZGlmZmljdWx0IGFzcGVjdHMgb2YgZW5naW5lZXJpbmcgbWFuYWdlbWVudC4uIEZvciBhIGxvdCBvZiB3b3JrIGluIG91ciBmaWVsZCwgdGhlcmUgYXJlIG5vIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLCBsZXQgYWxvbmUgcmVzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T3VyIHdvcmsgaXNu4oCZdCBzbyBtdWNoIGFib3V0IHVzOyBpdOKAmXMgYWJvdXQgdGhlIHBlb3BsZSwgdGVhbXMsIGFuZCBvcmdhbml6YXRpb25zIHdlIHN1cHBvcnQuIFdlIGJ1aWxkIHN0cnVjdHVyZXMgdG8gaGVscCBvdGhlcnMgc2hpbmUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1N1cHBvcnRpbmcgb3JnYW5pemF0aW9uYWwgY2hhbmdlJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7TGFzdGx5LCBjcmVhdGluZyBlbnZpcm9ubWVudHMgaW4gd2hpY2ggZW5naW5lZXJzIGNhbiB0aHJpdmUgaXMgYWJvdXQgc3VwcG9ydGluZyBvdXIgb3JnYW5pemF0aW9uLiBXZSBuZWVkIHRvIHVzZSBvdXIgcG93ZXIgYXMgbWFuYWdlcnMgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLCBubyBtYXR0ZXIgdGhlIHNpemUgb2Ygb3VyIGJ1c2luZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtBZHZvY2F0ZSBmb3IgY2hhbmdlLiZsdDsvc3Ryb25nJmd0OyBUbyBiZSBlZmZlY3RpdmUgYXMgbWFuYWdlcnMsIHdlIG5lZWQgdG8gcHVzaCBmb3Igb3JnYW5pemF0aW9uYWwgY2hhbmdlIHRvIGltcHJvdmUgdGhlIGxhcmdlciBzdHJ1Y3R1cmVzIGFyb3VuZCB1cy4gRm9yIGV4YW1wbGUsIHdlIG1heSBuZWVkIHRvIGFkdm9jYXRlIGZvciBtb3JlIGNsYXJpdHkgYXJvdW5kIGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMsIGhhdmUgY29udmVyc2F0aW9ucyBhYm91dCB3aGF0IGVuZ2luZWVyaW5nIG1hbmFnZW1lbnQgc2hvdWxkIGJlIGxpa2UgaW4gb3VyIGNvbXBhbnksIGFuZCBkZXRlcm1pbmUgcmVxdWlyZW1lbnRzIGZvciBoaXJpbmcgZW5naW5lZXJpbmcgbWFuYWdlcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtNYW5hZ2UgdXAuJmx0Oy9zdHJvbmcmZ3Q7IE1hbmFnaW5nIG91ciBvd24gbWFuYWdlcnMgaXMgYSB1c2VmdWwgYnV0IGRpZmZpY3VsdCBza2lsbC4gRHJpdmluZyBvcmdhbml6YXRpb25hbCBjaGFuZ2UgYWxzbyBtZWFucyBtYWtpbmcgc3VyZSB0aGF0IG91ciBlbmdpbmVlcnPigJkgY29uY2VybnMgYXJlIGhlYXJkIGF0IHRoZSBoaWdoZXN0IGxldmVscywgYW5kIHRoYXQgd2UgdXNlIG91ciBwb3dlciB0byBtYWtlIHN1cmUgZW5naW5lZXJzIGhhdmUgYSB2b2ljZSBpbiB0aGUgcmVzdCBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgZnJhbWV3b3JrcyBhbmQgc3RhbmRhcmRzLiZsdDsvc3Ryb25nJmd0OyBXaGlsZSBpdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIG1ha2Ugcm9vbSBmb3IgaW5kaXZpZHVhbCBuZWVkcywgc3RydWN0dXJlcyBhbmQgZnJhbWV3b3JrcyBmb3IgbWFuYWdlcnMgaGVscCB1cyBob2xkIGVhY2ggb3RoZXIgYWNjb3VudGFibGUuIFRoZXkgYWxzbyAgaGVscCBsZXZlbCB0aGUgcGxheWluZyBmaWVsZCBhbmQgYnVpbGQgaW4gZXF1YWxpdHkgZm9yIHRoZSBwZW9wbGUgb24gb3VyIHRlYW1zLiBPbiBteSBjdXJyZW50IHRlYW0sIGV2ZXJ5IHF1YXJ0ZXIgd2UgcGljayBzb21lIGhpZ2gtcHJpb3JpdHkgcHJvamVjdHMgIHRvIGltcHJvdmUgaG93IHdlIHdvcmsgYXMgYW4gb3JnYW5pemF0aW9uLiBNb3N0IHJlY2VudGx5LCB3ZeKAmXZlIHdvcmtlZCBvbiBvdXIgaGlyaW5nIHByb2Nlc3MgYW5kIGluY2lkZW50IHJlbWVkaWF0aW9uOyBsYXN0IHllYXIsIHdlIGRldmVsb3BlZCBhbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvd2h5LXdlLXJlLWRlc2lnbmVkLW91ci1lbmdpbmVlcmluZy1jYXJlZXItcGF0aHMtYXQtY2lyY2xlY2kvJnF1b3Q7Jmd0O2ludGVybmFsIGNhcmVlciBncm93dGggZnJhbWV3b3JrIGZvciBlbmdpbmVlcnMmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtHcm93aW5nIGFzIGEgbGVhZGVyJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7QmVpbmcgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgaXNu4oCZdCBhbHdheXMgYSBzdHJhaWdodGZvcndhcmQgcGF0aDsgYSBsb3QgZGVwZW5kcyBvbiB3aGVyZSB3ZSBhcmUgYXQgaW4gb3VyIGNhcmVlcnMgYW5kIHdoZXJlIHdlIGFyZSBsb29raW5nIHRvIGdvLCBhcyB3ZWxsIGFzIHRoZSBncm93dGggc3RhZ2UsIHNpemUsIGFuZCBuZWVkcyBvZiBvdXIgb3JnYW5pemF0aW9ucy4gSW4gb3VyIGRhaWx5IHdvcmssIHdlIGhvbGQgdmFzdCBhbW91bnRzIG9mIHVuY2VydGFpbnR5IHdoaWxlIGFsc28gdHJ5aW5nIHRvIG1ha2UgcHJvZ3Jlc3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QW4gb3ZlcmFyY2hpbmcgdGhlbWUgaW4gbXkgd29yayBpbiBlbmdpbmVlcmluZyBtYW5hZ2VtZW50ICBoYXMgYmVlbiBncm93dGggYW5kIGltcHJvdmVtZW50LiBXZSByYXJlbHkgZGVhbCB3aXRoIGdyZWVuZmllbGQgcHJvamVjdHMgb3IgYXJlIGFibGUgdG8gYnVpbGQgYSB0ZWFtIG9yIGRlcGFydG1lbnQgZnJvbSBzY3JhdGNoLiBFdmVuIHdoZW4gd2UgZG8sIHdlIGJ1aWxkIG9uIGV4aXN0aW5nIHN0cnVjdHVyZXMgaW4gb3VyIG9yZ2FuaXphdGlvbi4gSSBiZWxpZXZlIG91ciBzdXBwb3J0aW5nIHJvbGUgbGFyZ2VseSBtZWFucyBoZWxwaW5nIGVuZ2luZWVycyBncm93LCBzdXBwb3J0aW5nIHRlYW1zIGF0IGNvbnRpbnVvdXNseSBsZWFybmluZywgYW5kIGhlbHBpbmcgb3JnYW5pemF0aW9ucyBiZWNvbWUgYmV0dGVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVyaW5nIG1hbmFnZXJzLCB3ZSBmcmVxdWVudGx5IGZhY2UgcXVlc3Rpb25zIHRoYXQgZG9u4oCZdCBjbGVhciByaWdodCBvciB3cm9uZyBhbnN3ZXJzLiBNYW55IHllYXJzIGFnbywgbXkgbGVhZGVyc2hpcCBjb2FjaCBlbmNvdXJhZ2VkIG1lIHRvIHVzZSB0aG9zZSBraW5kcyBvZiB1bmNlcnRhaW4gc2l0dWF0aW9ucyB0byBhc2sgbXlzZWxmLCDigJxXaGF0IGtpbmQgb2YgbGVhZGVyIGRvIEkgd2FudCB0byBiZT/igJ0mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJIHdhbnQgdG8gbGVhdmUgdGhlIGxhc3QgY2FsbCB0byBncm93dGggYW5kIGltcHJvdmVtZW50IHdpdGggeW91IChhbmQgbWUpOiBObyBtYXR0ZXIgd2hhdCB5b3VyIHJvbGUgb3IgY29tcGFueSBpcyBsaWtlLCB3b3JrIG9uIHNoYXBpbmcgeW91ciBhcHByb2FjaCB0byBlbmdpbmVlcmluZyBtYW5hZ2VtZW50LiBHZXQgdG8ga25vdyB0aGUgcGVvcGxlIHRoYXQgeW91IHdvcmsgd2l0aCwgYW5kIHVzZSBmZWVkYmFjayB0byBoZWxwIHRoZW0gY291cnNlLWNvcnJlY3QuIEJ1aWxkIHRlYW1zIHRoYXQgYXJlIHBzeWNob2xvZ2ljYWxseSBzYWZlIHBsYWNlcywgd2hlcmUgcGVvcGxlIGZpbmQgbWVhbmluZyBpbiBhIHNoYXJlZCBwdXJwb3NlLiBBbmQgdXNlIHlvdXIgcG93ZXIgYW5kIHByaXZpbGVnZSB0byBkcml2ZSBjaGFuZ2UgaW4geW91ciBvcmdhbml6YXRpb24uIE1ha2UgcGVvcGxlIHRoZSBjZW50ZXIgYW5kIGZvY3VzIG9mIHlvdXIgd29yaywgYW5kIGJ1aWxkIG9uIHRoYXQgZm91bmRhdGlvbiB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhleSBjYW4gdGhyaXZlLiAgQWx3YXlzIHB1c2ggdG8gY29udGludW91c2x5IGltcHJvdmUuIExlYWQgd2l0aCBodW1ibGVuZXNzLCBlbXBhdGh5LCBhbmQgbG90cyBvZiBjdXJpb3NpdHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2hhdCBraW5kIG9mIGxlYWRlciBkbyB5b3Ugd2FudCB0byBiZT8mbHQ7L3AmZ3Q7CgombHQ7aHIgLyZndDsKJmx0O3AmZ3Q7SWYgeW914oCZcmUgY3VyaW91cyBhYm91dCBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IGF0IENpcmNsZUNJIGFuZCB3b3JraW5nIHdpdGggdXM6IGpvaW4gdXMhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9ib2FyZHMuZ3JlZW5ob3VzZS5pby9jaXJjbGVjaSZxdW90OyZndDtXZeKAmXJlIGhpcmluZyBlbmdpbmVlcmluZyBtYW5hZ2VycyZsdDsvYSZndDsuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5CdWlsZGluZyBhbmQgZGVwbG95aW5nIEZsdXR0ZXIgYXBwcyB3aXRoIEZhc3RsYW5lPC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RlcGxveS1mbHV0dGVyLWFuZHJvaWQvPC9saW5rPgogICAgICAgIDxwdWJEYXRlPldlZCwgMjkgQXByIDIwMjAgMTA6MDA6MDAgLTA3MDA8L3B1YkRhdGU+CiAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9InRydWUiPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZGVwbG95LWZsdXR0ZXItYW5kcm9pZC88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5HYWJyaWVsIFNpbW1lcjwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvJnF1b3Q7Jmd0O0ZsdXR0ZXImbHQ7L2EmZ3Q7IGlzIGEgdG9vbGtpdCBwcm92aWRlZCBieSBHb29nbGUgZm9yIGJ1aWxkaW5nIGNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9ucywgaW5jbHVkaW5nIEFuZHJvaWQsIGlPUywgYW5kIHdlYiBhcHBzLiBBcyBtb3JlIGFwcHMgYXJlIHdyaXR0ZW4gdXNpbmcgaXQgYW5kIERhcnQgKHRoZSB1bmRlcmx5aW5nIGxhbmd1YWdlKSwgaXTigJlzIGJlY29taW5nIG1vcmUgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyBkZXZlbG9wZXJzIGNhbiBwYWNrYWdlIGFuZCBkZWxpdmVyIHRoZWlyIGNvZGUgdG8gdGhlaXIgdXNlcnMuIExldmVyYWdpbmcgQ2lyY2xlQ0kgYW5kIEZhc3RsYW5lLCB0aGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcHJvY2VzcyB0aGF0IGNhbiBiZSBhdXRvbWF0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbGluZyBGbHV0dGVyIGFuZCBjcmVhdGluZyB5b3VyIGZpcnN0IGFwcCBjYW4gYmUgZG9uZSBieSBmb2xsb3dpbmcgdGhlc2UgZ3VpZGVzOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvZG9jcy9nZXQtc3RhcnRlZC9pbnN0YWxsJnF1b3Q7Jmd0O0luc3RhbGwmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2ZsdXR0ZXIuZGV2L2RvY3MvZ2V0LXN0YXJ0ZWQvY29kZWxhYiZxdW90OyZndDtXcml0ZSB5b3VyIGZpcnN0IGFwcCZsdDsvYSZndDsuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBkZWZhdWx0IOKAnGhlbGxvIHdvcmxk4oCdIGFwcCB3aWxsIHN1ZmZpY2UuIFdlIHdvbuKAmXQgYmUgZGVhbGluZyBtdWNoIHdpdGggdGhlIGFwcGxpY2F0aW9uIGl0c2VsZi4gUHVzaCBpdCB0byBhIHJlcG9zaXRvcnkgb24gR2l0SHViLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Vuc3VyZSB0aGF0IHlvdSBhcmUgc2V0IHVwIHRvIHB1Ymxpc2ggYXBwcyB1c2luZyBHb29nbGUgUGxheSBvciB0aGUgQXBwbGUgQXBwIFN0b3JlIC0gc3RlcHMgZm9yIGVhY2ggd2lsbCB2YXJ5LCBzbyBiZSBzdXJlIHRvIGZvbGxvdyB0aGUgc3RlcHMgb3V0bGluZWQgZm9yIHRoZSByZXNwZWN0aXZlIHByb3ZpZGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBbmRyb2lkJmx0Oy9oMiZndDsKCiZsdDtwJmd0O1doZW4gcHVibGlzaGluZyBBbmRyb2lkIGFwcHMsIHRoZXJlIGFyZSBhIGZldyByZXF1aXJlbWVudHMgdG8gc2F0aXNmeSBiZWZvcmUgaW1wbGVtZW50aW5nIEZhc3RsYW5lLiBBbiDigJx1cGxvYWQga2V54oCdIGlzIHJlcXVpcmVkIHNvIHRoYXQgR29vZ2xlIGNhbiB2ZXJpZnkgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUgYXBwIGJlZm9yZSBhY2NlcHRpbmcgaXQuIFN0ZXBzIGZvciBzZXR0aW5nIHRoaXMgdXAgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9mbHV0dGVyLmRldi9kb2NzL2RlcGxveW1lbnQvYW5kcm9pZCZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oy4gSXTigJlzIHJlY29tbWVuZGVkIHRvIHVzZSBBcHBCdW5kbGVzIHdoZW4gYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBhcyBpdCBhbGxvd3MgR29vZ2xlIHRvIGJ1aWxkIGluZGl2aWR1YWwgQVBLcyBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyB3aGlsZSBrZWVwaW5nIGZpbGVzaXplIGRvd24uIFRha2Ugbm90ZSBvZiB3aGVyZSB5b3Ugc2F2ZSB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5qa3MmbHQ7L2NvZGUmZ3Q7IGZpbGUuIFdoaWxlIGl0IGNhbiBsaXZlIGluIHlvdXIgaG9tZSBkaXJlY3RvcnksIGhhdmluZyBpdCBzYXZlZCB0byBhIGdpdC1pZ25vcmVkIGRpcmVjdG9yeSBpbiB5b3VyIHByb2plY3Qgd2lsbCBjb21lIGluIGhhbmR5IHdoZW4gY29uZmlndXJpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1R3byB0aGluZ3MgZnJvbSB0aGlzIGd1aWRlIHdpbGwgbmVlZCB0byBiZSBhZGRlZCB0byBDaXJjbGVDSSBhcyAmbHQ7YSBocmVmPSZxdW90Oy9kb2NzLzIuMC9lbnYtdmFycy8mcXVvdDsmZ3Q7ZW52aW9ybm1lbnQgdmFyaWFibGVzJmx0Oy9hJmd0OzogdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlIGFuZCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7a2V5LmprcyZsdDsvY29kZSZndDsgZmlsZS4gVGhpcyB3aWxsIGFsbG93IHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBzaWduIHRoZSBhcHBsaWNhdGlvbi4gU2luY2Ugb25lIGZpbGUgcmVxdWlyZXMgbmV3bGluZXMgdG8gYmUgcHJlc2VudCwgYW5kIGFub3RoZXIgaXMgYSBiaW5hcnkgZmlsZSwgaXTigJlzIHJlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgYmFzZTY0LWVuY29kZWQgcHJpb3IgdG8gYWRkaW5nIHRoZW0gYXMgZW52aW9ybm1lbnQgdmFyaWFibGVzIHRvIHByZXNlcnZlIHRoZSBkYXRhLiZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBjYW4gZW5jb2RlIHRoZW0gYnkgcnVpbm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2F0ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7IHwgYmFzZTY0IC13IDAgIyAtdyAwIHdpbGwgZW5zdXJlIG5vIG5ld2xpbmVzIGFyZSBwcmVzZW50LgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBmaWxlcyBjYW4gdGhlbiBiZSByZS1hZGRlZCBkdXJpbmcgdGhlIGpvYiB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2VjaG8gJnF1b3Q7JEVOVl9WQVJJQUJMRV9OQU1FJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIGFsc28gd2FudCB0byBzZXQgdXAgYSBGYXN0bGFuZSBzZXJ2aWNlIGFjY291bnQgd2hpbGUgY3JlYXRpbmcgeW91ciBBbmRyb2lkIHNldHVwLiBZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5mYXN0bGFuZS50b29scy9nZXR0aW5nLXN0YXJ0ZWQvYW5kcm9pZC9zZXR1cC8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuIEJlIHN1cmUgdG8ga2VlcCB5b3VyIFNlcnZpY2UgQWNjb3VudCBKU09OIGZpbGUgaGFuZHkuIFdl4oCZbGwgYmUgYWRkaW5nIHRoYXQgdG8gdGhlIHBpcGVsaW5lIHNob3J0bHkuIEFsc28gbm90ZSB0aGF0IGNvbW1hbmRzIHNob3VsZCBiZSBydW4gZnJvbSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZCZsdDsvY29kZSZndDsgZGlyZWN0b3J5IHVuZGVyIHlvdXIgRmx1dHRlciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IHJlcXVpcmVkIGJ5IEZhc3RsYW5lIGNhbiBiZSBkb25lIGJ5IGFkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IEpTT04gZmlsZSBjb250ZW50cyBhcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IGVudmlvcm5tZW50IHZhcmlhYmxlLiBUaGlzIGlzIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1NVUFBMWV9KU09OX0tFWSZsdDsvY29kZSZndDsgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgYSBmaWxlIHBhdGggdG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0Zhc3RsYW5lJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05vdyB0aGF0IG91ciBlbnZpb3JubWVudCB2YXJpYWJsZXMgYXJlIGluIHBsYWNlIGFuZCB3ZSBjYW4gYnVpbGQgYSBzaWduZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LmFhYiZsdDsvY29kZSZndDsgZmlsZSB1c2luZyBGbHV0dGVyLCBpdOKAmXMgdGltZSB0byB0ZWxsIEZhc3RsYW5lIGhvdyB0byBkbyB0aGlzIGZvciB1cy4gV2XigJlsbCBzdGFydCB3aXRoIEFuZHJvaWQuIE9wZW5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZC9mYXN0bGFuZS9GYXN0ZmlsZSZsdDsvY29kZSZndDsgd2lsbCByZXZlYWwgc29tZSBkZWZhdWx0cyBmb3IgYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBidXQgdGhleSB3b27igJl0IHdvcmsgZm9yIG91ciB1c2UgY2FzZS4gV2XigJlyZSBidWlsZGluZyB3aXRoIEZsdXR0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rmlyc3QsIGxldOKAmXMgZGVmaW5lIGEgbmV3IOKAnGxhbmXigJ0uIFRoaXMgaXMgYSBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgRmFzdGxhbmUgd2lsbCBleGVjdXRlIHdoZW4gY2FsbGVkLiBGb3Igbm93LCB3ZeKAmWxsIGJlIHB1c2hpbmcgb3VyIGFwcCB0byB0aGUg4oCcYmV0YeKAnSBjaGFubmVsLCBub3QgdG8gcHJvZHVjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwoKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgaXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIGxhbmUuIE5leHQsIHdl4oCZbGwgd2FudCB0byBncmFiIGEgYnVpbGQgbnVtYmVyIHdoaWNoIGlzIGFuIGluY3JlbWVudGluZyBudW1iZXIgdXNlZCBhcyBhIHJlZmVyZW5jZSBmb3IgdGhlIHZlcnNpb24gb2YgdGhlIGFwcCAod2hpY2ggZGlmZmVycyBmcm9tIHRoZSB1c2VyLWZhY2luZyBzZW12ZXIpLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHRvIHRoZSBsYW5lOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ICBidWlsZF9udW1iZXIgPSBudW1iZXJfb2ZfY29tbWl0cygpCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgZW5zdXJlcyB0aGF0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZF9udW1iZXImbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0aGF0IGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBHaXQgcmVwb3NpdG9yeS4gVGhpcyBjYW4gYWxzbyBiZSBtYW51YWxseSBpbmNyZW1lbnRlZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVic3BlYy55YW1sJmx0Oy9jb2RlJmd0OyBmaWxlIHRoYXQgRmx1dHRlciB1c2VzIHRvIGJ1aWxkIHRoZSBwYWNrYWdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdl4oCZbGwgZG8gdGhlIGJ1aWxkaW5nLiBXZSBuZWVkIHRvIGdvIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5LCBydW4gYSBmZXcgc2hlbGwgY29tbWFuZHMgdG8gZmV0Y2ggb3VyIHBhY2thZ2VzLCBjbGVhbiB0aGUgcHJldmlvdXMgYnVpbGQgKGlmIGF2YWlsYWJsZSksIHRoZW4gYnVpbGQgdGhlIGFwcGJ1bmRsZSB3aXRoIG91ciBidWlsZCBudW1iZXIuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIERpci5jaGRpciAmcXVvdDsuLi8uLiZxdW90OyBkbwogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7cGFja2FnZXMmcXVvdDssICZxdW90O2dldCZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2NsZWFuJnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7YnVpbGQmcXVvdDssICZxdW90O2FwcGJ1bmRsZSZxdW90OywgJnF1b3Q7LS1idWlsZC1udW1iZXI9I3tidWlsZF9udW1iZXJ9JnF1b3Q7KQogIGVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtGaW5hbGx5LCB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYXBwIHN0b3JlIG9uIHRoZSBiZXRhIGNoYW5uZWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIHVwbG9hZF90b19wbGF5X3N0b3JlKHRyYWNrOiAnYmV0YScsIGFhYjogJy4uL2J1aWxkL2FwcC9vdXRwdXRzL2J1bmRsZS9yZWxlYXNlL2FwcC5hYWInKQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGxhbmUgd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwogIGJ1aWxkX251bWJlciA9IG51bWJlcl9vZl9jb21taXRzKCkKICBEaXIuY2hkaXIgJnF1b3Q7Li4vLi4mcXVvdDsgZG8KICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O3BhY2thZ2VzJnF1b3Q7LCAmcXVvdDtnZXQmcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtjbGVhbiZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2J1aWxkJnF1b3Q7LCAmcXVvdDthcHBidW5kbGUmcXVvdDssICZxdW90Oy0tYnVpbGQtbnVtYmVyPSN7YnVpbGRfbnVtYmVyfSZxdW90OykKICBlbmQKICB1cGxvYWRfdG9fcGxheV9zdG9yZSh0cmFjazogJ2JldGEnLCBhYWI6ICcuLi9idWlsZC9hcHAvb3V0cHV0cy9idW5kbGUvcmVsZWFzZS9hcHAuYWFiJykKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dvIGFoZWFkIGFuZCBzYXZlIHRoZSBmaWxlLCBhbmQgdGhlbiBydW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZmFzdGxhbmUgYmV0YSZsdDsvY29kZSZndDsuIEl0IHdpbGwgcnVuIHRocm91Z2ggdGhlIHN0ZXBzLCBidWlsZGluZyB0aGUgYXBwIGFuZCBwdXNoaW5nIHRoZSBhcHBsaWNhdGlvbiBmb3IgeW91LiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgd2XigJlsbCBkbyB0aGUgc2FtZSBmb3IgaU9TLCBidXQgcmVwbGFjaW5nIHNvbWUgb2YgdGhlIGNvbW1hbmRzIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBpT1MgY29tbWFuZHMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lvcy9GYXN0bGFuZSZsdDsvY29kZSZndDsgZGlyZWN0b3J5LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZGVzYyAmcXVvdDtEZXBsb3kgYSBuZXcgYnVpbGQgdG8gVGVzdGZsaWdodCZxdW90OwpsYW5lIDpiZXRhIGRvCiAgRGlyLmNoZGlyICZxdW90Oy4uLy4uJnF1b3Q7IGRvCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtwYWNrYWdlcyZxdW90OywgJnF1b3Q7Z2V0JnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7Y2xlYW4mcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtidWlsZCZxdW90OywgJnF1b3Q7aW9zJnF1b3Q7LCAmcXVvdDstLXJlbGVhc2UmcXVvdDssICZxdW90Oy0tbm8tY29kZXNpZ24mcXVvdDspCiAgZW5kCiAgYnVpbGRfaW9zX2FwcChzY2hlbWU6ICZxdW90O015QXBwJnF1b3Q7KQogIHVwbG9hZF90b190ZXN0ZmxpZ2h0CmVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhcHAgaXMgYnVpbHQgdHdpY2UuIFRoZSBmaXJzdCBidWlsZCBidWlsZHMgYWdhaW5zdCB0aGUgbGF0ZXN0IEZsdXR0ZXIgdG9vbGNoYWluLCB3aGlsZSB0aGUgc2Vjb25kIGJ1aWxkIGJ1aWxkcyB0aGUgYWN0dWFsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5pcGEmbHQ7L2NvZGUmZ3Q7IGZpbGUgdGhhdCB3aWxsIGJlIHVwbG9hZGVkIHRvIFRlc3RmbGlnaHQuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O05vdywgd2l0aCBDaXJjbGVDSSZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gcGxhY2UsIGl04oCZcyB0aW1lIHRvIGdldCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB3cml0dGVuIHNvIHRoYXQgYSBwdXNoIHRvIGEgYnJhbmNoIGlzIHRyYW5zbGF0ZWQgdG8gYSBuZXcgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7aU9TJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0ZvciBkZXBsb3lpbmcgd2l0aCBpT1MsIENpcmNsZUNJIGFscmVhZHkgaGFzIGRvY3MgdG8gY292ZXIgdGhpcyEgU3RlcHMgZm9yIHNldHRpbmcgdXAgRmFzdGxhbmUgZGVwbG95bWVudCB3aXRoIEZsdXR0ZXIgaXMgc2ltaWxhciB0byB0aGUgc3RlcHMgb3V0bGluZWQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvaW9zLWNvZGVzaWduaW5nLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OyBhbmQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZGVwbG95aW5nLWlvcy8jYXBwLXN0b3JlLWNvbm5lY3QmcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0FuZHJvaWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7V2hlbiBpdCBjb21lcyB0byB0aGUgRG9ja2VyIGltYWdlIHRvIHBpY2ssIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gRWl0aGVyIHlvdSBjYW4gYnVpbGQgYW5kIHB1c2ggdGhlIERvY2tlciBpbWFnZSB1c2VkIGJ5IHRoZSBGbHV0dGVyIHByb2plY3QgZm91bmQgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2Jsb2IvbWFzdGVyL2Rldi9jaS9kb2NrZXJfbGludXgvRG9ja2VyZmlsZSZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oywgb3IgeW91IGNhbiBwdWxsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dtZW1zdHIvZmx1dHRlci1mYXN0bGFuZTpsYXRlc3QmbHQ7L2NvZGUmZ3Q7LCB3aGljaCBpcyBidWlsdCBvbiB0b3Agb2YgYW4gZXhpc3RpbmcgRmx1dHRlciBEb2NrZXIgaW1hZ2UgYW5kIGluc3RhbGxzIEZhc3RsYW5lIGFsb25nc2lkZSBpdCwgYXZvaWRpbmcgYWRkaXRpb25hbCBvdmVyaGVhZCBvZiBpbnN0YWxsaW5nIGl0IGR1cmluZyBydW50aW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28gZW5zdXJlIHRoYXQgdGhlIGVudmlvcm5tZW50IHZhcmlhYmxlcyBtZW50aW9uZWQgZWFybGllciBhcmUgYWRkZWQgdG8geW91ciBwcm9qZWN0LiBOYW1lbHk6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQTEFZX1NUT1JFX1VQTE9BRF9LRVkmbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtrZXkuamtzJmx0Oy9jb2RlJmd0OyBmaWxlJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7UExBWV9TVE9SRV9VUExPQURfS0VZX0lORk8mbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCBmaWxlIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIGFuZCBvdGhlciBpbmZvIHJlZ2FyZGluZyB0aGUgdXBsb2FkIHNpZ25pbmcga2V5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IC0gWW91ciBHb29nbGUgU2VydmljZSBBY2NvdW50IEpTT04gc3RyaW5nIGZvciBhdXRoZW50aWNhdGlvbiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtJbiB5b3VyIHByb2plY3RzIHJvb3QsIGFkZCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLCBhbmQgaW4gdGhhdCBmb2xkZXIgYWRkIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y2lyY2xlY2kueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLiBBZGQgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSBuZXdseSBjcmVhdGVkIGZpbGU6Jmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7JwogIAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgc25pcHBldCBhYm92ZSBkZWZpbmVzIGFuIGV4ZWN1dG9yIHdlIGNhbiByZXVzZSBsYXRlciBpbiBvdXIgY29uZmlndXJhdGlvbiB0aGFua3MgdG8gdGhlIHVzZSBvZiByZXVzYWJsZSBjb25maWd1cmF0aW9uIGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYnMmbHQ7L2EmZ3Q7IGluIENpcmNsZUNJIDIuMS4gSXQgYWxzbyBpbmNsdWRlcyBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBlbnN1cmUgSmF2YSBkb2VzbuKAmXQgY29uc3VtZSBhbGwgb2Ygb3VyIG1lbW9yeSB3aGlsZSBidWlsZGluZyB0aGUgYXBwLiBOZXh0LCB3ZeKAmWxsIGRlZmluZSB0aGUgam9iIHdlIHdhbnQgdG8gcnVuIHRoZSBjb21tYW5kcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2pvYnM6CiAgYmV0YV9kZXBsb3k6CiAgICBleGVjdXRvcjogYW5kcm9pZC1mbHV0dGVyCiAgICBzdGVwczoKICAgICAgLSBjaGVja291dAogICAgICAtIHJ1bjogZWNobyAmcXVvdDskUExBWV9TVE9SRV9VUExPQURfS0VZJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGtleS5qa3MKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWV9JTkZPJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGFuZHJvaWQva2V5LnByb3BlcnRpZXMKICAgICAgLSBydW46IGNkIGFuZHJvaWQgJmFtcDthbXA7JmFtcDthbXA7IGZhc3RsYW5lIGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgd2XigJlsbCBkZWZpbmUgb3VyIHdvcmtmbG93IHdoaWNoIHdpbGwgb25seSBydW4gdGhlIGpvYiB3aGVuIHRoZSBuZXcgY29kZSBpcyBwdXNoZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2JldGEmbHQ7L2NvZGUmZ3Q7IGJyYW5jaC4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3dvcmtmbG93czoKICBkZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGJldGFfZGVwbG95OgogICAgICAgICAgZmlsdGVyczoKICAgICAgICAgICAgYnJhbmNoZXM6CiAgICAgICAgICAgICAgb25seTogYmV0YQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7Jwpqb2JzOgogIGJldGFfZGVwbG95OgogICAgZXhlY3V0b3I6IGFuZHJvaWQtZmx1dHRlcgogICAgc3RlcHM6CiAgICAgIC0gY2hlY2tvdXQKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWSZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBrZXkuamtzCiAgICAgIC0gcnVuOiBlY2hvICZxdW90OyRQTEFZX1NUT1JFX1VQTE9BRF9LRVlfSU5GTyZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBhbmRyb2lkL2tleS5wcm9wZXJ0aWVzCiAgICAgIC0gcnVuOiBjZCBhbmRyb2lkICZhbXA7YW1wOyZhbXA7YW1wOyBmYXN0bGFuZSBiZXRhCgp3b3JrZmxvd3M6CiAgZGVwbG95OgogICAgam9iczoKICAgICAgLSBiZXRhX2RlcGxveToKICAgICAgICAgIGZpbHRlcnM6CiAgICAgICAgICAgIGJyYW5jaGVzOgogICAgICAgICAgICAgIG9ubHk6IGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvcHJvamVjdHMvJnF1b3Q7Jmd0O1NldCB1cCB5b3VyIHByb2plY3Qgb24gQ2lyY2xlQ0kmbHQ7L2EmZ3Q7LiBPbmNlIHlvdSBjbGljayAmbHQ7c3Ryb25nJmd0O1NldCBVcCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7LCB5b3Ugd2lsbCBiZSBicm91Z2h0IHRvIGEgdGV4dCBlZGl0b3IgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBjb3B5IGluIHRoZSBjb25maWcgZnJvbSBhYm92ZS4gQ2xpY2sgJmx0O3N0cm9uZyZndDtTdGFydCBCdWlsZGluZyZsdDsvc3Ryb25nJmd0Oy4gTm93IGV2ZXJ5IG5ldyBjb21taXQgdG8gdGhlIGJldGEgYnJhbmNoIHdpbGwgcmVzdWx0IGluIGEgZGVwbG95LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIGFuIEV4cHJlc3MgR3JhcGhRTCBzZXJ2ZXIgdG8gSGVyb2t1PC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1hbi1leHByZXNzLWdyYXBocWwtc2VydmVyLXRvLWhlcm9rdS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VHVlLCAyOCBBcHIgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtYW4tZXhwcmVzcy1ncmFwaHFsLXNlcnZlci10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dyYXBocWwub3JnLyZxdW90OyZndDtHcmFwaFFMJmx0Oy9hJmd0OyBjb250aW51ZXMgdG8gZ3JvdyBpbiBwb3B1bGFyaXR5IHdpdGggZWFjaCBwYXNzaW5nIGRheSwgc2luY2UgaXRzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9lbmdpbmVlcmluZy5mYi5jb20vY29yZS1kYXRhL2dyYXBocWwtYS1kYXRhLXF1ZXJ5LWxhbmd1YWdlLyZxdW90OyZndDtwdWJsaWMgcmVsZWFzZSBieSBGYWNlYm9vayZsdDsvYSZndDsgaW4gMjAxNS4gVGhlIHRlY2hub2xvZ3kgZW5hYmxlcyBmcm9udCBlbmQgY2xpZW50cyB0byBxdWVyeSBleGFjdGx5IHdoYXQgdGhleSBuZWVkIGZyb20gdGhlIGJhY2tlbmQsIGFuZCBpcyBnYWluaW5nIHdpZGUgcmVjb2duaXRpb24gYW5kIGFkb3B0aW9uIGJ5IHJlcHV0YWJsZSBjb21wYW5pZXMgc3VjaCBhcyBQaW50ZXJlc3QsIENvdXJzZXJhLCBBaXJibmIsIGFuZCBGYWNlYm9vayBpdHNlbGYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBwb3N0LCB3ZSB3aWxsIGxlYXJuIGhvdyB0byBkZXBsb3kgYSBzaW1wbGUgR3JhcGhRTCBzZXJ2ZXIgd3JpdHRlbiBpbiBOb2RlLmpzIHRvIEhlcm9rdSB2aWEgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IChDSSkgcGlwZWxpbmUgdXNpbmcgQ2lyY2xlQ0kuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1ByZXJlcXVpc2l0ZXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUbyBmb2xsb3cgYWxvbmcgd2l0aCB0aGlzIHBvc3QsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhbHJlYWR5IHNldCB1cDombHQ7L3AmZ3Q7CiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL25vZGVqcy5vcmcvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlIC12Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsIHRvIHByaW50IG91dCB5b3VyIHZlcnNpb24gb2YgTm9kZS5qcyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdC1zY20uY29tLyZxdW90OyZndDtHaXQmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnaXQmbHQ7L2NvZGUmZ3Q7IG9uIHlvdXIgdGVybWluYWw7IHRoaXMgc2hvdWxkIHByaW50IG91dCBhdmFpbGFibGUgZ2l0IGNvbW1hbmRzKSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5oZXJva3UuY29tLyZxdW90OyZndDtIZXJva3UmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tLyZxdW90OyZndDtHaXRIdWImbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vc2lnbnVwLyZxdW90OyZndDtDaXJjbGVDSSZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDsjI1NjYWZmb2xkaW5nIHRoZSBHcmFwaFFMIHNlcnZlciBwcm9qZWN0ClRvIGJlZ2luIHNldHRpbmcgdXAgYSBHcmFwaFFMIHNlcnZlciwgY3JlYXRlIGEgbmV3IGZvbGRlciBmb3IgdGhlIHByb2plY3QgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtta2RpciBncmFwaHFsLXRlc3Qtc2VydmVyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7Tm93IGdvIGludG8gdGhlIHJvb3Qgb2YgdGhlIGZvbGRlciBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBzY2FmZm9sZCBhIG5ldyBOb2RlLmpzIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5pdCAteQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDtwJmd0O1RoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsteSZsdDsvY29kZSZndDsgb3B0aW9uYWwgZmxhZyBhbGxvd3MgeW91IHRvIHNraXAgY29uZmlybWluZyB0aGUgZGVmYXVsdCBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwYWNrYWdlLmpzb24mbHQ7L2NvZGUmZ3Q7IGZpbGUgYW5kIGp1c3QgYWNjZXB0cyB0aGVtLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGFyZSBnb2luZyB0byBjcmVhdGUgYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2V4cHJlc3Nqcy5jb20vJnF1b3Q7Jmd0O0V4cHJlc3NKUyZsdDsvYSZndDsgTm9kZS5qcyBhcHBsaWNhdGlvbiBhbmQgYnVpbGQgdGhlIEdyYXBoUUwgc2VydmVyLiBUbyBkbyB0aGlzLCB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIGZvbGxvd2luZyBwYWNrYWdlczombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2V4cHJlc3MmbHQ7L2NvZGUmZ3Q7OiB0byBjcmVhdGUgb3VyIEV4cHJlc3NKUyBOb2RlLmpzIGFwcGxpY2F0aW9uJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z3JhcGhxbCZsdDsvY29kZSZndDs6IHRoZSBHcmFwaFFMIG5wbSBwYWNrYWdlIGZvciBOb2RlLmpzJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OzogRXhwcmVzc0pTIG1pZGRsZXdhcmUgZm9yIEdyYXBoUUwmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbCB0aGVzZSBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBpbnN0YWxsIC0tc2F2ZSBleHByZXNzIGdyYXBocWwgZXhwcmVzcy1ncmFwaHFsCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIHRoZSByZXF1aXJlZCBwYWNrYWdlcyB0byBzdGFydCBwdXR0aW5nIHRvZ2V0aGVyIG91ciBHcmFwaFFMIHNlcnZlci4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgdGhlIEdyYXBoUUwgc2NoZW1hJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7Q3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bWtkaXIgc3JjCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1dpdGhpbiB0aGlzIGZvbGRlciwgY3JlYXRlIGEgbmV3IGZpbGUgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEuanMmbHQ7L2NvZGUmZ3Q7IGFuZCBwYXN0ZSBpbiB0aGUgY29kZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Owpjb25zdCB7IGJ1aWxkU2NoZW1hIH0gPSByZXF1aXJlKCZxdW90O2dyYXBocWwmcXVvdDspOwoKY29uc3Qgc2NoZW1hID0gYnVpbGRTY2hlbWEoYAogICAgdHlwZSBRdWVyeSB7CiAgICAgICAgdXNlcnM6IFtVc2VyIV0hLAogICAgICAgIHVzZXIoaWQ6IEludCEpOiBVc2VyIQogICAgfQoKICAgIHR5cGUgTXV0YXRpb24gewogICAgICAgIGVkaXRVc2VyKGlkOiBJbnQhLCBuYW1lOiBTdHJpbmchLCBlbWFpbDogU3RyaW5nISk6IFVzZXIhCiAgICB9CgogICAgdHlwZSBVc2VyIHsKICAgICAgICBpZDogSUQhCiAgICAgICAgbmFtZTogU3RyaW5nIQogICAgICAgIGVtYWlsOiBTdHJpbmcKICAgICAgICBwb3N0czogW1Bvc3QhXQogICAgfQoKICAgIHR5cGUgUG9zdCB7CiAgICAgICAgaWQ6IElEIQogICAgICAgIHRpdGxlOiBTdHJpbmchCiAgICAgICAgcHVibGlzaGVkOiBCb29sZWFuIQogICAgICAgIGxpbms6IFN0cmluZwogICAgfQpgKTsKCm1vZHVsZS5leHBvcnRzID0gc2NoZW1hOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBhYm92ZSBjb2RlLCB3ZSBoYXZlIGNyZWF0ZWQgZm91ciB0eXBlcywgY29uc2lzdGluZyBvZiB0d28gYnVpbHQtaW4gdHlwZXMgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7KSBhbmQgdHdvIGN1c3RvbSB0eXBlcyAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXNlciZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1Bvc3QmbHQ7L2NvZGUmZ3Q7KS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWdpbm5pbmcgd2l0aCB0aGUgY3VzdG9tIHR5cGVzLCB3ZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmc6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VyJmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHVzZXIgaW4gdGhlIGFwcGxpY2F0aW9uIHdpdGggaXRzIHJlc3BlY3RpdmUgZmllbGRzIGFuZCBhIHJlbGF0aW9uYWwgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cG9zdHMmbHQ7L2NvZGUmZ3Q7IGZpZWxkLCB3aGljaCByZXR1cm5zIGFuIGFycmF5IG9mIHBvc3RzIGNyZWF0ZWQgYnkgdGhlIHVzZXImbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQb3N0Jmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHB1YmxpY2F0aW9uIGNyZWF0ZWQgYnkgYSB1c2VyIGluIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGl0cyByZXNwZWN0aXZlIGZpZWxkcyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OzogaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyB0eXBlLCB3ZSBkZWZpbmVkIHR3byBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgcXVlcmllZCBmcm9tIG91ciBHcmFwaFFMIHNlcnZlciBhcyBmb2xsb3dzOgogICAgJmx0O3VsJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlcnMmbHQ7L2NvZGUmZ3Q7OiBhbiBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VycyZsdDsvY29kZSZndDsmbHQ7L2xpJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlciZsdDsvY29kZSZndDs6IGEgc2luZ2xlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1VzZXImbHQ7L2NvZGUmZ3Q7IHdpdGggdGhlIHNwZWNpZmllZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgaW4gdGhlIGFyZ3VtZW50cyBsaXN0Jmx0Oy9saSZndDsKICAgICZsdDsvdWwmZ3Q7CiAgJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7OiBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7IHR5cGUsIHdlIGRlZmluZWQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VkaXRVc2VyJmx0Oy9jb2RlJmd0OyBtdXRhdGlvbiwgd2hpY2gsIGdpdmVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgb2YgdGhlIHVzZXIsIGNhbiBiZSBjYWxsZWQgdG8gZWRpdCBhIHVzZXIgYW5kIHRoZW4gdXBkYXRlIHRoZSBpbmZvcm1hdGlvbiAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bmFtZSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VtYWlsJmx0Oy9jb2RlJmd0OykmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhlIHNjaGVtYSBpcyBjcmVhdGVkIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZFNjaGVtYSZsdDsvY29kZSZndDsgb2YgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dyYXBocWwmbHQ7L2NvZGUmZ3Q7IHBhY2thZ2UgYW5kIGV4cG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O01vY2tpbmcgZGF0YSZsdDsvaDImZ3Q7CiZsdDtwJmd0O0luIG9yZGVyIHRvIGhhdmUgcmVzdWx0cyBmb3Igb3VyIHF1ZXJpZXMsIHdlIG5lZWQgZGF0YS4gRm9yIHRoaXMgZXhlcmNpc2UsIHdlIHdpbGwgYmUgdXNpbmcgTW9uZ29EQi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIb3dldmVyLCBzaW5jZSB0aGUgZ29hbCBvZiB0aGlzIHBvc3QgaXMgdG8gZGVtb25zdHJhdGUgZGVwbG95aW5nIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyLCB3ZSB3b27igJl0IGJvdGhlciB3aXRoIHNldHRpbmcgdXAgYSBNb25nb0RCIHNlcnZlci4gSW5zdGVhZCwgd2Ugd2lsbCAgdXNlIGEgbW9ja2VkIHZlcnNpb24gdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O21vbmdvZGItbWVtb3J5LXNlcnZlciZsdDsvY29kZSZndDsuIFRoaXMgcGFja2FnZSBhbGxvd3MgdXMgdG8gY3JlYXRlIGFuZCB1c2UgYW4gaW4tbWVtb3J5IE1vbmdvREIgZGF0YWJhc2Ugc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHNldCB0aGlzIHVwLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhdCB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5zdGFsbCAtLXNhdmUgbW9uZ29kYiBtb25nb2RiLW1lbW9yeS1zZXJ2ZXIKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwombHQ7cCZndDtUaGlzIGluc3RhbGxhdGlvbiBtaWdodCB0YWtlIGEgd2hpbGUsIGRlcGVuZGluZyBvbiB5b3VyIGRvd25sb2FkIHNwZWVkLiBNb25nb0RCIHdhcyBhdCBsZWFzdCA2NiBtZWdhYnl0ZXMgaW4gc2l6ZSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhLmpzJmx0Oy9jb2RlJmd0OyBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3JjJmx0Oy9jb2RlJmd0OyBmb2xkZXIuIFRoaXMgZmlsZSB3aWxsIGV4cG9ydCBhbiBhcnJheSBvZiBoYXJkLWNvZGVkIHVzZXIgZGF0YS4gUGFzdGUgdGhlIGZvbGxvd2luZyBjb2RlIGJlbG93IGludG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBVc2VycyA9IFsKICB7CiAgICBpZDogMSwKICAgIG5hbWU6ICZxdW90O0Zpa2F5byBBZGVwb2p1JnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2ZpazRjaHJpc3RAeWFob28uY29tJnF1b3Q7LAogICAgcG9zdHM6IFsKICAgICAgewogICAgICAgIGlkOiAxLAogICAgICAgIHRpdGxlOiAmcXVvdDtDcmVhdGluZyBhbiBFbW9qaSBHYW1lIHdpdGggVnVlLCBBdXRoMCwgYW5kIEdvb2dsZSBWaXNpb24gQVBJJnF1b3Q7LAogICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSwKICAgICAgICBsaW5rOgogICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hdXRoMC5jb20vYmxvZy9jcmVhdGluZy1hbi1lbW9qaS1nYW1lLXdpdGgtdnVlLWF1dGgwLWFuZC1nb29nbGUtdmlzaW9uLWFwaS8mcXVvdDssCiAgICAgICAgYXV0aG9yOiAxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBpZDogMiwKICAgICAgICB0aXRsZTogJnF1b3Q7RWxlY3Ryb24gVHV0b3JpYWw6IEJ1aWxkaW5nIE1vZGVybiBEZXNrdG9wIEFwcHMgd2l0aCBWdWUuanMmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2F1dGgwLmNvbS9ibG9nL2VsZWN0cm9uLXR1dG9yaWFsLWJ1aWxkaW5nLW1vZGVybi1kZXNrdG9wLWFwcHMtd2l0aC12dWUtanMvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDMsCiAgICAgICAgdGl0bGU6ICZxdW90O1N0YXRlIE1hbmFnZW1lbnQgd2l0aCBWdWV4OiBhIFByYWN0aWNhbCBUdXRvcmlhbCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazoKICAgICAgICAgICZxdW90O2h0dHBzOi8vYXV0aDAuY29tL2Jsb2cvc3RhdGUtbWFuYWdlbWVudC13aXRoLXZ1ZXgtYS1wcmFjdGljYWwtdHV0b3JpYWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMiwKICAgIG5hbWU6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2pvaG5AY29tcGFueS5jb20mcXVvdDssCiAgICBwb3N0czogWwogICAgICB7CiAgICAgICAgaWQ6IDQsCiAgICAgICAgdGl0bGU6ICZxdW90O0J1aWxkIGEgQ0kgcG93ZXJlZCBSRVNUZnVsIEFQSSB3aXRoIExhcmF2ZWwmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2J1aWxkLWEtY2ktcG93ZXJlZC1yZXN0ZnVsLWFwaS13aXRoLWxhcmF2ZWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDUsCiAgICAgICAgdGl0bGU6ICZxdW90O0F1dG9tYXRlIHlvdXIgTnV4dC5qcyBhcHAgZGVwbG95bWVudCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazogJnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hdXRvbWF0ZS15b3VyLW51eHQtanMtYXBwLWRlcGxveW1lbnQvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMywKICAgIG5hbWU6ICZxdW90O0phbmUgUGF1bCZxdW90OywKICAgIGVtYWlsOiAmcXVvdDtqYW5lQGNvbXBhbnkuY29tJnF1b3Q7LAogICAgcG9zdHM6IFtdCiAgfQpdOwoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgVXNlcnMKfTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBjb2RlIGFib3ZlLCB3ZSBoYXZlIGFuIGFycmF5IG9mIHVzZXIgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgcG9zdHMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIHNlZWQgb3VyIGluLW1lbW9yeSBkYXRhYmFzZSBvbmNlIGl0IGlzIGluc3RhbnRpYXRlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCB0YXNrIGlzIHRvIHNldCB1cCBvdXIgbW9jayBNb25nb0RCIGRhdGFiYXNlIHNlcnZlci4gSW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhYmFzZS5qcyZsdDsvY29kZSZndDsgYW5kIGluc2VydCB0aGUgZm9sbG93aW5nIGNvZGUgaW50byB0aGUgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O01vbmdvTWVtb3J5U2VydmVyJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtyZXF1aXJlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtzMiZxdW90OyZndDsmcXVvdDttb25nb2RiLW1lbW9yeS1zZXJ2ZXImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O21vbmdvZGImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtjb25zdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bm8mcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90Oy4vZGF0YSZxdW90OyZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0Oyk7Jmx0Oy9zcGFuJmd0OwoKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7bGV0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDtudWxsJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXN5bmMmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7ZnVuY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25mJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoKSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDt7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7bmV3Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtNb25nb01lbW9yeVNlcnZlciZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygpOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtubyZxdW90OyZndDttb25nb0RCVVJMJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXdhaXQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7LiZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtnZXRDb25uZWN0aW9uU3RyaW5nJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3QmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvREJVUkwmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDssJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7CiAgICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDt1c2VOZXdVcmxQYXJzZXImbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs6Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDt0cnVlJmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSk7Jmx0Oy9zcGFuJmd0OwoKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtjMSZxdW90OyZndDsvL1NlZWQgRGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7CiAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtpZiZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7ISZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OykmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsKICAgICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RhdGFiYXNlJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RiJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbGxlY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O3VzZXJzJnF1b3Q7Jmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7aW5zZXJ0TWFueSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7VXNlcnMmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7CgogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7cmV0dXJuJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OzsmbHQ7L3NwYW4mZ3Q7CiZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vZHVsZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZXhwb3J0cyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtzdGFydERhdGFiYXNlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGNvZGUgYWJvdmUsIHdlIGV4cG9ydCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L2NvZGUmZ3Q7IGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBzdGFydHMgYSBuZXcgKG1vY2tlZCkgTW9uZ29EQiBzZXJ2ZXIgaW5zdGFuY2UgYW5kIGdldHMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuIEl0IHRoZW4gY3JlYXRlcyBhIG5ldyBNb25nb0RCIGNsaWVudCBjb25uZWN0aW9uIHVzaW5nIHRoZSBjb25uZWN0aW9uIHN0cmluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwgd2Ugc2VlZCBpdCB3aXRoIG91ciB1c2VyIGRhdGEgZXhwb3J0ZWQgZnJvbSBvdXIgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZGF0YS5qcyZsdDsvY29kZSZndDsgZmlsZS4gQSBjaGVjayBpcyBtYWRlIHRvIHNlZSBpZiB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIGlzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O251bGwmbHQ7L2NvZGUmZ3Q7IGJlZm9yZSBzZWVkaW5nIGl0IHdpdGggZGF0YSwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBmcm9tIGJlaW5nIGVudGVyZWQgaW50byB0aGUgZGF0YWJhc2UgZWFjaCB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdXAuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGRhdGFiYXNlIHJlZmVyZW5jZS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgb3VyIHJlc29sdmVycyZsdDsvaDImZ3Q7CiZsdDtwJmd0O05leHQgdXAsIHdlIG5lZWQgdG8gZGVmaW5lIHJlc29sdmVycyBmb3Igb3VyIEdyYXBoUUwgcXVlcmllcyBpbiBvcmRlciB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGRhdGEgZm9yIGVhY2ggcXVlcnkgb3BlcmF0aW9uLiBXZSB3aWxsIGRlZmluZSByZXNvbHZlcnMgZm9yIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt1c2VycyZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3VzZXImbHQ7L2NvZGUmZ3Q7IHF1ZXJpZXMgYW5kIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtlZGl0VXNlciZsdDsvY29kZSZndDsgbXV0YXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Jlc29sdmVycy5qcyZsdDsvY29kZSZndDsgYW5kIHBhc3RlIGluIHRoZSBmb2xsb3dpbmcgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IHJlc29sdmVycyA9IHsKICB1c2VyczogYXN5bmMgKF8sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIKICAgICAgLmNvbGxlY3Rpb24oJnF1b3Q7dXNlcnMmcXVvdDspCiAgICAgIC5maW5kKCkKICAgICAgLnRvQXJyYXkoKTsKICB9LAogIHVzZXI6IGFzeW5jICh7IGlkIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIuY29sbGVjdGlvbigmcXVvdDt1c2VycyZxdW90OykuZmluZE9uZSh7IGlkIH0pOwogIH0sCiAgLy9NdXRhdGlvbiByZXNvbHZlcnMKICBlZGl0VXNlcjogYXN5bmMgKHsgaWQsIG5hbWUsIGVtYWlsIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CgogICAgcmV0dXJuIGRiCiAgICAgIC5jb2xsZWN0aW9uKCZxdW90O3VzZXJzJnF1b3Q7KQogICAgICAuZmluZE9uZUFuZFVwZGF0ZSgKICAgICAgICB7IGlkIH0sCiAgICAgICAgeyAkc2V0OiB7IG5hbWUsIGVtYWlsIH0gfSwKICAgICAgICB7IHJldHVybk9yaWdpbmFsOiBmYWxzZSB9CiAgICAgICkKICAgICAgLnRoZW4ocmVzcCA9JmFtcDtndDsgcmVzcC52YWx1ZSk7CiAgfSAKfTsKCm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZXJzOwoKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgc2VlbiBhYm92ZSwgd2Ugbm93IGhhdmUgcmVzb2x2ZXJzIGZvciB0aGUgdGhyZWUgR3JhcGhRTCByZXF1ZXN0cyBhdmFpbGFibGUgb24gb3VyIHNlcnZlci4gVGhlc2UgcmVzb2x2ZXJzIGZldGNoIGFuZCB1cGRhdGUgZGF0YSB1c2luZyB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIHdlIGNyZWF0ZWQgZWFybGllciBieSByZWZlcmVuY2luZyBpdCBmcm9tIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb250ZXh0Jmx0Oy9jb2RlJmd0OyBvYmplY3Qgb2YgdGhlIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgcmVmZXJlbmNlIHdpbGwgYmUgYWRkZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbnRleHQmbHQ7L2NvZGUmZ3Q7IG9iamVjdCBvZiBvdXIgR3JhcGhRTCBzZXJ2ZXIgc2V0dXAgaW4gdGhlIG5leHQgc2VjdGlvbiB3aGVuIHdlIHB1dCBldmVyeXRoaW5nIHRvZ2V0aGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTZXR0aW5nIHVwIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O0l0IGlzIHRpbWUgdG8gcHV0IGV2ZXJ5IGNvbXBvbmVudCB3ZSBidWlsdCB0b2dldGhlciB0byBzZXQgdXAgb3VyIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlZm9yZSB3ZSBiZWdpbiwgd2UgbmVlZCB0byBpbnN0YWxsIG9uZSBtb3JlIHBhY2thZ2UuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIGNvbWVzIHdpdGggdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0dyYXBoaVFMJmx0Oy9jb2RlJmd0OyBhcHBsaWNhdGlvbiwgd2hpY2ggYWxsb3dzIHlvdSB0byBxdWVyeSB5b3VyIEdyYXBoUUwgZW5kcG9pbnQsIGJ1dCBsZXTigJlzIGFkZCBhIHRvb2wgdGhhdCBpcyBtb3JlIHJvYnVzdC4gV2Ugd2lsbCBpbnN0YWxsIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIHRvIGdpdmUgdXMgYSBmYW5jaWVyIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgb3VyIEdyYXBoUUwgZW5kcG9pbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSBmb2xsb3dpbmcgY29kZSB0byBpbnN0YWxsIHRoZSBwYWNrYWdlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGluc3RhbGwgLS1zYXZlIGdyYXBocWwtcGxheWdyb3VuZC1taWRkbGV3YXJlLWV4cHJlc3MKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7V2Ugd2lsbCB1c2UgdGhpcyBtaWRkbGV3YXJlIHRvIHNldCB1cCB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kIGZvciBxdWVyeWluZyBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0xldOKAmXMgc2V0IHVwIG91ciBzZXJ2ZXIgYnkgY3JlYXRpbmcgYSBmaWxlIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2luZGV4LmpzJmx0Oy9jb2RlJmd0OyBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBhbmQgcGxhY2luZyB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBleHByZXNzID0gcmVxdWlyZSgmcXVvdDtleHByZXNzJnF1b3Q7KTsKY29uc3QgZ3JhcGhxbEhUVFAgPSByZXF1aXJlKCZxdW90O2V4cHJlc3MtZ3JhcGhxbCZxdW90Oyk7CmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoJnF1b3Q7Li9zcmMvc2NoZW1hJnF1b3Q7KTsKY29uc3QgcmVzb2x2ZXJzID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9yZXNvbHZlcnMmcXVvdDspOwpjb25zdCBzdGFydERhdGFiYXNlID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9kYXRhYmFzZSZxdW90Oyk7CmNvbnN0IGV4cHJlc3NQbGF5Z3JvdW5kID0gcmVxdWlyZSgmcXVvdDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJnF1b3Q7KS5kZWZhdWx0OwoKLy8gQ3JlYXRlIGEgY29udGV4dCBmb3IgaG9sZGluZyBjb250ZXh0dWFsIGRhdGEgCmNvbnN0IGNvbnRleHQgPSBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IGRiID0gYXdhaXQgc3RhcnREYXRhYmFzZSgpOwoKICByZXR1cm4geyBkYiB9Owp9OwoKY29uc3QgYXBwID0gZXhwcmVzcygpOwoKYXBwLnVzZSgKICAmcXVvdDsvZ3JhcGhxbCZxdW90OywKICBncmFwaHFsSFRUUCh7CiAgICBzY2hlbWEsCiAgICByb290VmFsdWU6IHJlc29sdmVycywKICAgIGNvbnRleHQKICB9KQopOwoKLy9HcmFwaHFsIFBsYXlncm91bmQgcm91dGUKYXBwLmdldCgmcXVvdDsvcGxheWdyb3VuZCZxdW90OywgZXhwcmVzc1BsYXlncm91bmQoeyBlbmRwb2ludDogJnF1b3Q7L2dyYXBocWwmcXVvdDsgfSkpOwoKY29uc3QgcG9ydCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgJnF1b3Q7NDAwMCZxdW90OzsKCmFwcC5saXN0ZW4ocG9ydCk7Cgpjb25zb2xlLmxvZyhg8J+agCBTZXJ2ZXIgcmVhZHkgYXQgaHR0cDovL2xvY2FsaG9zdDo0MDAwL2dyYXBocWxgKTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBmaWxlIGFib3ZlLCB3ZSBzdGFydCBieSBpbXBvcnRpbmcgYWxsIG5lY2Vzc2FyeSBtb2R1bGVzLiBUaGVuLCB3ZSBjcmVhdGUgb3VyIEdyYXBoUUwgY29udGV4dCBhbmQgcmV0dXJuIGFuIG9iamVjdCBmcm9tIGl0IGNvbnRhaW5pbmcgdGhlIHJlZmVyZW5jZSB0byBvdXIgTW9uZ29EQiBpbnN0YW5jZS4gTmV4dCwgd2UgY3JlYXRlIG91ciBFeHByZXNzSlMgYXBwbGljYXRpb24gYW5kIHNldCB1cCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OyBtaWRkbGV3YXJlIHdpdGggR3JhcGhRTCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEmbHQ7L2NvZGUmZ3Q7LCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtyZXNvbHZlcnMmbHQ7L2NvZGUmZ3Q7LCBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29udGV4dCZsdDsvY29kZSZndDsuIFdlIHRoZW4gc2V0IHVwIHRoZSBHcmFwaFFMIFBsYXlncm91bmQgYXQgdGhlIHJvdXRlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBsb2FkIG91ciBHcmFwaFFMIGVuZHBvaW50LiBGaW5hbGx5LCB3ZSBzdGFydCBvdXIgRXhwcmVzc0pTIHNlcnZlciB0byBsaXN0ZW4gYXQgcG9ydCA0MDAwIGFuZCBwcmludCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1F1ZXJ5aW5nIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O05vdyB0aGF0IHdlIGhhdmUgb3VyIHNlcnZlciBzZXQgdXAsIGxldOKAmXMgdGFrZSBpdCBmb3IgYSBzcGluLiBGaXJzdCwgbGV04oCZcyBjcmVhdGUgYSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzdGFydCZsdDsvY29kZSZndDsgc2NyaXB0IGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3BhY2thZ2UuanNvbiZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHNjcmlwdCB0byB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2NyaXB0cyZsdDsvY29kZSZndDsgc2VjdGlvbiBvZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Li4uCgrigJxzY3JpcHRz4oCdIDogewoJLi4uLAoJ4oCcc3RhcnTigJ0gOiDigJxub2RlIGluZGV4Lmpz4oCdCn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25wbSBzdGFydCZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCB0aGUgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNlcnZlciBpcyB1cCBhbmQgcnVubmluZywgb3BlbiB1cCB5b3VyIGJyb3dzZXIgYW5kIHZpc2l0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMC9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBvcGVuIHVwIHRoZSBwbGF5Z3JvdW5kLiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDEucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgcGxheWdyb3VuZCBhdXRvbWF0aWNhbGx5IHBvaW50cyB0byBvdXIgR3JhcGhRTCBlbmRwb2ludC4gRnJvbSBoZXJlIHdlIGNhbiB3cml0ZSBxdWVyaWVzIGFnYWluc3Qgb3VyIGVuZHBvaW50IGFuZCBnZXQgdGhlIHJlc3VsdHMuIFBhc3RlIHRoZSBxdWVyeSBiZWxvdyBpbnRvIHRoZSBxdWVyeSBzZWN0aW9uIG9mIHRoZSBwbGF5Z3JvdW5kIGFuZCBoaXQgUGxheSB0byBydW4gaXQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt7CiAgdXNlcnMgewogICAgbmFtZQogICAgZW1haWwKICAgIHBvc3RzIHsKICAgICAgdGl0bGUKICAgICAgcHVibGlzaGVkCiAgICB9CiAgfQp9CgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtSdW5uaW5nIHRoZSBhYm92ZSBxdWVyeSB3aWxsIHByb2R1Y2UgdGhlIHJlc3VsdCBzaG93biBvbiB0aGUgc2NyZWVuIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsMi5wbmcmcXVvdDsgd2lkdGg9JnF1b3Q7ODc1JnF1b3Q7IC8mZ3Q7CiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIHNlZW4gYWJvdmUsIG91ciBHcmFwaFFMIHNlcnZlciBpcyB3b3JraW5nIGZpbmUgYW5kIHJldHVybmluZyB0aGUgZXhwZWN0ZWQgZGF0YS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRvIEhlcm9rdSB3aXRoIENpcmNsZUNJJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7T3VyIGZpbmFsIHRhc2sgaXMgdG8gZGVwbG95IG91ciBHcmFwaFFMIHNlcnZlciB0aHJvdWdoIGEgQ0kgcGlwZWxpbmUgd2l0aCBDaXJjbGVDSSBvbiB0aGUgSGVyb2t1IGhvc3RpbmcgcGxhdGZvcm0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2UgYXJlIGdvaW5nIHRvIHRha2UgdGhlIGZvbGxvd2luZyBzdGVwcyB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7UHVzaCB0aGUgcHJvamVjdCB0byBhIEdpdEh1YiByZXBvc2l0b3J5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgbmV3IEhlcm9rdSBhcHAgYW5kIGdldCB0aGUgSGVyb2t1IEFQSSBrZXkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgYSBuZXcgcHJvamVjdCB0byBvdXIgQ2lyY2xlQ0kgYWNjb3VudCBhbmQgY29ubmVjdCBpdCB0byB0aGUgR2l0SHViIHJlcG8mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgb3VyIEhlcm9rdSBhcHAgbmFtZSBhbmQgQVBJIGtleSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gb3VyIG5ldyBwcm9qZWN0Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7V3JpdGUgb3VyIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgZGVwbG95bWVudCB0byBIZXJva3UmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIHRoZSBjb25maWd1cmF0aW9uIHRvIG91ciBHaXRIdWIgcmVwbyB0byBkZXBsb3kgdG8gSGVyb2t1Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0xldOKAmXMgYmVnaW4uIEZpcnN0LCBwdXNoIHRoZSBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG8uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY3JlYXRlIGEgSGVyb2t1IGFwcGxpY2F0aW9uIGFzIHNob3duIGJlbG93LiBUaGUgbmFtZSB5b3UgZW50ZXIgaXMgdGhlIG5hbWUgeW91IHdpbGwgc2F2ZSBhcyB5b3VyIEhlcm9rdSBhcHAgbmFtZSBvbiBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWwzLnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7WW91IGNhbiBnZXQgeW91ciBIZXJva3UgQVBJIGtleSBieSBnb2luZyB0byAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgYW5kIHNjcm9sbGluZyBkb3duIHRvIHRoZSAmbHQ7c3Ryb25nJmd0O0FQSSBLZXkmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIHRvIGRlcGxveWluZyBvdXIgYXBwbGljYXRpb24gdG8gSGVyb2t1IGlzIHRvIGNvbm5lY3QgdGhlIGFwcGxpY2F0aW9uIG9uIG91ciBHaXRIdWIgcmVwb3NpdG9yeSB0byBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIZWFkIHRvIHlvdXIgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9kYXNoYm9hcmQmcXVvdDsmZ3Q7Q2lyY2xlQ0kgZGFzaGJvYXJkJmx0Oy9hJmd0OyBhbmQgYWRkIHRoZSBwcm9qZWN0IGluIHRoZSAmbHQ7c3Ryb25nJmd0O0FkZCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7IHNlY3Rpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsNC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCAoaW4gdGhpcyBjYXNlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NpbXBsZS1ncmFwaHFsLW5vZGUtc2VydmVyJmx0Oy9jb2RlJmd0OyksIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0IFVwIFByb2plY3QmbHQ7L3N0cm9uZyZndDsuIFRoaXMgd2lsbCBicmluZyB5b3UgdG8gYSBwYWdlIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDUucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IGJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIHByb2plY3QuIFRoaXMgd2lsbCBpbW1lZGlhdGVseSBnaXZlIHVzIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCBhIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIHByb2plY3QuIFRoaXMgaXMgdW5kZXJzdGFuZGFibGUsIGFzIHdlIGFyZSB5ZXQgdG8gaW5jbHVkZSBvdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlLiBXZSB3aWxsIGJlIGRvaW5nIHRoYXQgbGF0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIG5leHQgc3RlcCBpcyB0byBhZGQgb3VyIEhlcm9rdSBkZXRhaWxzIGFzICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wL2Vudi12YXJzLyZxdW90OyZndDtlbnZpcm9ubWVudCB2YXJpYWJsZXMmbHQ7L2EmZ3Q7IHRvIHRoZSBuZXdseSBzZXQgdXAgcHJvamVjdC4KSW4gb3JkZXIgdG8gcHVzaCBvdXIgcHJvamVjdCB0byBIZXJva3UgZnJvbSBDaXJjbGVDSSwgd2UgbmVlZCB0byBjb25maWd1cmUgYW4gYXV0aGVudGljYXRlZCBoYW5kc2hha2UgYmV0d2VlbiBDaXJjbGVDSSBhbmQgSGVyb2t1LiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcgdHdvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgc2V0dGluZ3MgZm9yIHlvdXIgQ2lyY2xlQ0kgcHJvamVjdC4gVGhlIHR3byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtIRVJPS1VfQVBQX05BTUUmbHQ7L2NvZGUmZ3Q7OiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIChpbiB0aGlzIGNhc2UgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2ltcGxlLWdyYXBocWwtbm9kZS1zZXJ2ZXImbHQ7L2NvZGUmZ3Q7KSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OzogWW91ciBIZXJva3UgYWNjb3VudCBBUEkga2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBvbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50Jmx0Oy9zdHJvbmcmZ3Q7IHRhYiBvZiB5b3VyIEhlcm9rdSBhY2NvdW50IHVuZGVyICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VG8gYWRkIHRoZXNlIGRldGFpbHMsIGhlYWQgb3ZlciB0byB5b3VyIENpcmNsZUNJIGRhc2hib2FyZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBmb3IgeW91ciBwcm9qZWN0LiBPbiB0aGUgc2lkZWJhciBtZW51IG9uIHRoZSBzZXR0aW5ncyBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O0Vudmlyb25tZW50IFZhcmlhYmxlcyZsdDsvc3Ryb25nJmd0OyB1bmRlciAmbHQ7c3Ryb25nJmd0O0J1aWxkIFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDYucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIHBhZ2UsIGNyZWF0ZSB0d28gdmFyaWFibGVzIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OyBhbmQgYWRkIHRoZSByZXNwZWN0aXZlIHZhbHVlcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZXNlIGluIHBsYWNlLCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBjYW4gdXNlIHRoZW0gdG8gbWFrZSBhdXRoZW50aWNhdGVkIGRlcGxveW1lbnRzIHRvIHRoZSBIZXJva3UgcGxhdGZvcm0uCk5vdywgbGV04oCZcyB3cml0ZSBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyIHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtDcmVhdGUgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsuY2lyY2xlY2kmbHQ7L2NvZGUmZ3Q7IGF0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCBhbmQgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgaXQuIEFkZCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uJmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpvcmJzOgogIGhlcm9rdTogY2lyY2xlY2kvaGVyb2t1QDAuMC4xMAp3b3JrZmxvd3M6CiAgaGVyb2t1X2RlcGxveToKICAgIGpvYnM6CiAgICAgIC0gaGVyb2t1L2RlcGxveS12aWEtZ2l0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7VGhlIGNvZGUgYWJvdmUgdXNlcyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7SGVyb2t1IG9yYiZsdDsvYSZndDsgdG8gcGVyZm9ybSBhIHNlYW1sZXNzIGRlcGxveW1lbnQgdG8gSGVyb2t1LiBBbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYiZsdDsvYSZndDsgaXMgYSByZXVzYWJsZSBwYWNrYWdlIG9mIGEgWUFNTCBjb25maWd1cmF0aW9uIHRoYXQgY29uZGVuc2VzIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoaXMgb25lIG1ha2VzIGl0IHZlcnkgZWFzeSB0byBkZXBsb3kgdG8gSGVyb2t1IHdpdGhvdXQgd3JpdGluZyBhIHNvcGhpc3RpY2F0ZWQgY29uZmlnIHlvdXJzZWxmLiZsdDsvcCZndDsKCiZsdDtwJmd0O1NhdmUgdGhpcyBmaWxlIGFuZCBwdXNoIHlvdXIgY2hhbmdlcyB0byB0aGUgR2l0SHViIHJlcG9zaXRvcnkuIFRoZW4gd2F0Y2ggeW91ciBDaXJjbGVDSSBkYXNoYm9hcmQgdHJpZ2dlciBhIGRlcGxveW1lbnQgYWZ0ZXIgdGhlIHN1Y2Nlc3NmdWwgcHVzaC4gWW91IHdpbGwgc2VlIGEgc3VjY2Vzc2Z1bCBkZXBsb3ltZW50IG9uIHlvdXIgZGFzaGJvYXJkIHNpbWlsYXIgdG8gdGhlIHNjcmVlbiBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWw3LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXdlc29tZSEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXTigJlzIG5vdyB2aXNpdCBvdXIgUGxheWdyb3VuZCBvbiB0aGUgbGl2ZSBhcHBsaWNhdGlvbiB0byBjb25maXJtIHRoYXQgb3VyIGRlcGxveW1lbnQgaXMgZmluZS4gVmlzaXQgdGhlIGxpbmsgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9ZT1VSX0hFUk9LVV9BUFBfTkFNRS5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7LiBGb3Igb3VyIGV4ZXJjaXNlLCB0aGlzIHdpbGwgYmUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9zaW1wbGUtZ3JhcGhxbC1ub2RlLXNlcnZlci5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7IGFzIHNlZW4gYmVsb3cuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsOC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SW4gdGhpcyBhcnRpY2xlLCB3ZSBoYXZlIGJlZW4gYWJsZSB0byBzdWNjZXNzZnVsbHkgcHV0IHRvZ2V0aGVyIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyIGFuZCBhdXRvbWF0ZSBpdHMgZGVwbG95bWVudCB1c2luZyBDaXJjbGVDSS4gR3JhcGhRTCBpcyBoZXJlIHRvIHN0YXkgYW5kIGlzIGV4cGVjdGVkIHRvIGdhaW4gbW9yZSBhZG9wdGlvbiwgc2luY2UgaXRzIG1hbnkgYmVuZWZpdHMgbWFrZSBpdCB3b3J0aHkgb2YgaW5jcmVhc2VkIHVzZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIYXBweSBjb2RpbmchJmx0Oy9wJmd0OwoKJmx0O2hyIC8mZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Eb2NrZXIgYW5kIENJL0NEIHR1dG9yaWFsOiBhIGRlZXAgZGl2ZSBpbnRvIGNvbnRhaW5lcnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZG9ja2VyLWFuZC1jaWNkLXR1dG9yaWFsLWEtZGVlcC1kaXZlLWludG8tY29udGFpbmVycy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+RnJpLCAyNCBBcHIgMjAyMCAxMjowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9kb2NrZXItYW5kLWNpY2QtdHV0b3JpYWwtYS1kZWVwLWRpdmUtaW50by1jb250YWluZXJzLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkFuZ2VsIFJpdmVyYTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtUaGlzIGlzIGEgZm9sbG93LXVwIHRvIGEgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7IHRoYXQgSSB3cm90ZSBhZnRlciBDaXJjbGVDSSAyLjAgd2FzIHJlbGVhc2VkLiBUaGlzIHJlbGVhc2UgaW1wbGVtZW50ZWQgYnVpbGQgc3VwcG9ydCB1c2luZyBEb2NrZXIgZXhlY3V0b3JzLiBBZnRlciB0aGUgcmVsZWFzZSwgd2UgcmVhbGl6ZWQgdGhhdCBvbmUgb2YgdGhlIGJpZ2dlc3QgYmFycmllcnMgdGhhdCBDaXJjbGVDSSB1c2VycyBlbmNvdW50ZXJlZCB3YXMgYSBsYWNrIG9mIGV4cGVyaWVuY2Ugd2l0aCBEb2NrZXIuIFRoaXMgd2FzIGNvbmZpcm1lZCB0aHJvdWdoIG15IGNvbnZlcnNhdGlvbnMgd2l0aCBudW1lcm91cyBkZXZlbG9wZXJzLCBpbiB0aGUgY29tbXVuaXR5IGFuZCBhdCBldmVudHMsIGFib3V0IHRoZWlyIHVzZSBvZiBjb250YWluZXIgdGVjaG5vbG9naWVzIGluIHRoZWlyICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmVzLiBUaGVzZSBjb252ZXJzYXRpb25zIGhhdmUgaGlnaGxpZ2h0ZWQgdGhhdCBtYW55IGRldmVsb3BlcnMgZG9u4oCZdCBoYXZlIGEgZnVsbCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byB1c2UgY29udGFpbmVyIHRlY2hub2xvZ2llcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgd2lsbCBleHBhbmQgb24gYW5kIGRlbW9uc3RyYXRlIHNvbWUgb2YgdGhlIG1vcmUgdXNlZnVsIERvY2tlciBjb21tYW5kcyBkaXNjdXNzZWQgaW4gbXkgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtXaGF0IGlzIERvY2tlcj8mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZSBpcyB0aGUgc2ltcGxpZmllZCBkZWZpbml0aW9uIG9mIERvY2tlciB0aGF0IEkgdXNlZCBpbiBteSBwcmV2aW91cyBwb3N0OiZsdDsvcCZndDsKCiZsdDtibG9ja3F1b3RlJmd0OwogICZsdDtwJmd0O0RvY2tlciBpcyBhIHBsYXRmb3JtIGZvciBkZXZlbG9wZXJzIGFuZCBzeXNhZG1pbnMgdG8gZGV2ZWxvcCwgZGVwbG95LCBhbmQgcnVuIGFwcGxpY2F0aW9ucyB1c2luZyBjb250YWluZXJzLiZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7RG9ja2VyIGlzIGFsc28gcmVmZXJyZWQgdG8gYXMgYW4gYXBwbGljYXRpb24gcGFja2FnaW5nIHRvb2wgdGhhdCBlbmFibGVzIGFwcGxpY2F0aW9ucyB0byBiZSBjb25maWd1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZC8jaW1hZ2VzLWFuZC1jb250YWluZXJzJnF1b3Q7Jmd0O0RvY2tlciBpbWFnZSZsdDsvYSZndDsgdGhhdCBjYW4gYmUgdXNlZCB0byBzcGF3biAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyNpbWFnZXMtYW5kLWNvbnRhaW5lcnMmcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IHRoYXQgcnVuIGluc3RhbmNlcyBvZiB0aGUgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIG1hbnkgYmVuZWZpdHMgaW5jbHVkaW5nIHJ1bnRpbWUgZW52aXJvbm1lbnQgaXNvbGF0aW9uLCBjb25zaXN0ZW5jeSB2aWEgY29kZSwgYW5kIHBvcnRhYmlsaXR5LiBEb2NrZXIgY29udGFpbmVycyBjYW4gcnVuIG9uIGFueSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgc3VwcG9ydHMgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZW5naW5lJnF1b3Q7Jmd0O0RvY2tlciBFbmdpbmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtCYXNpYyBEb2NrZXIgdGVybWlub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZeKAmXMgYSBsaXN0IG9mIGJhc2ljIERvY2tlciBjb21tYW5kcyBhbmQgdGVybXMgd2l0aCBsaW5rcyB0byBtb3JlIGluZm9ybWF0aW9uLiBUaGVzZSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgRG9ja2VyIGFuZCBjb250cm9sIHRoZSBleGVjdXRvci4gVGhlIGNvbW1hbmRzIGNhbiBiZSBydW4gbG9jYWxseSBvbiBhbnkgY29tcHV0ZXIgdGhhdCBoYXMgdGhlIERvY2tlciBlbmdpbmUgaW5zdGFsbGVkLiZsdDsvcCZndDsKCiZsdDtoMyZndDtCdWlsZGluZyBEb2NrZXIgaW1hZ2VzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBhIHRleHQgZG9jdW1lbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNvbW1hbmRzIGEgdXNlciBjb3VsZCBjYWxsIG9uIHRoZSBjb21tYW5kIGxpbmUgdG8gYXNzZW1ibGUgYW4gaW1hZ2UuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBEb2NrZXJmaWxlIGlzIGEgYmx1ZXByaW50IGZvciBidWlsZGluZyBEb2NrZXIgaW1hZ2VzLiBEb2NrZXJmaWxlIHRlbXBsYXRlcyBob2xkIGVsZW1lbnRzIHN1Y2ggYXMgdGhlIGJhc2Ugb3BlcmF0aW5nIHN5c3RlbSBpbWFnZSB1c2VkIGFzIGEgZm91bmRhdGlvbiwgZXhlY3V0aW9uIGNvbW1hbmRzIHRoYXQgaW5zdGFsbC9jb25maWd1cmUgZGVwZW5kZW5jaWVzLCBhbmQgY29weSBjb21tYW5kcyB0aGF0IHB1c2ggbG9jYWwgc291cmNlIGNvZGUgb3IgYXJ0aWZhY3RzIGludG8gdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBEb2NrZXJmaWxlIGZvciBhIHNpbXBsZSBOb2RlLmpzIGFwcGxpY2F0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7RlJPTSBub2RlOjEwCgojIENyZWF0ZSBhcHAgZGlyZWN0b3J5CldPUktESVIgL3Vzci9zcmMvYXBwCgojIEluc3RhbGwgYXBwIGRlcGVuZGVuY2llcwojIEEgd2lsZGNhcmQgaXMgdXNlZCB0byBlbnN1cmUgYm90aCBwYWNrYWdlLmpzb24gQU5EIHBhY2thZ2UtbG9jay5qc29uIGFyZSBjb3BpZWQKIyB3aGVyZSBhdmFpbGFibGUgKG5wbUA1KykKQ09QWSBwYWNrYWdlKi5qc29uIC4vCgpSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIyBJZiB5b3UgYXJlIGJ1aWxkaW5nIHlvdXIgY29kZSBmb3IgcHJvZHVjdGlvbgojIFJVTiBucG0gaW5zdGFsbCAtLW9ubHk9cHJvZHVjdGlvbgoKIyBCdW5kbGUgYXBwIHNvdXJjZQpDT1BZIC4gLgoKRVhQT1NFIDUwMDAKQ01EIFsgJnF1b3Q7bnBtJnF1b3Q7LCAmcXVvdDtzdGFydCZxdW90OyBdCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2ltYWdlcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7IGxpc3RzIERvY2tlciBpbWFnZXMgZm91bmQgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gbGlzdCBhbGwgb2YgdGhlIERvY2tlciBpbWFnZXMgYW5kIHJlbGF0ZWQgZGF0YSB0aGF0IGN1cnJlbnRseSBleGlzdCBvbiB0aGUgbG9jYWwgbWFjaGluZS4gSXTigJlzIGNvbXBhcmFibGUgdG8gYSBsaW51eCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtscyZsdDsvY29kZSZndDsgb3Igd2luZG93cyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkaXImbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdXNlZCB0byBzaG93IHRoZSBjb250ZW50cyBvZiBkaXJlY3RvcmllcyBpbiBhIHRlcm1pbmFsLiBUaGlzIGNvbW1hbmQgaXMgdmVyeSB1c2VmdWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRvIG1hbmFnZSwgbWFpbnRhaW4sIGFuZCBidWlsZCBEb2NrZXIgaW1hZ2VzIGxvY2FsbHkuIEJlbG93IGlzIGFuIGV4YW1wbGUgcmVzdWx0IG9mIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgZXhlY3V0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UkVQT1NJVE9SWSAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHICAgICAgICAgICAgICAgICBJTUFHRSBJRCAgICAgICAgICAgIENSRUFURUQgICAgICAgICAgICAgU0laRQphcml2M3JhL25vZGVqcy1jaXJjbGVjaSAgICAgICAgICAgICBsYXRlc3QgICAgICAgICAgICAgIGY0MTllNGE2YjFiOCAgICAgICAgMTEgZGF5cyBhZ28gICAgICAgICA5NDNNQgpub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAgICAgICAgICAgICAgICAgIDAxYjgxNjA1MWQzNCAgICAgICAgMiB3ZWVrcyBhZ28gICAgICAgICA5MTFNQgpjaXJjbGVjaS9weXRob24gICAgICAgICAgICAgICAgICAgICAzLjcuNiAgICAgICAgICAgICAgIDBkMjk3NTg5NmM3MyAgICAgICAgNSB3ZWVrcyBhZ28gICAgICAgICAxLjQzR0IKYXJpdjNyYS9pbmZyYXN0cnVjdHVyZS1hcy1jb2RlMTAxICAgbGF0ZXN0ICAgICAgICAgICAgICBjYjIxYTM2YTI5NzMgICAgICAgIDggd2Vla3MgYWdvICAgICAgICAgOTI5TUIKcHl0aG9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43LjYgICAgICAgICAgICAgICA4NzkxNjU1MzVhNTQgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgOTE5TUIKY2lyY2xlY2kvcnVzdCAgICAgICAgICAgICAgICAgICAgICAgMS1idXN0ZXIgICAgICAgICAgICAyMTgzMjliOTI5Y2YgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgMS42OEdCCnJ1c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtYnVzdGVyICAgICAgICAgICAgZjVmZGUwOTJhMWNkICAgICAgICAyIG1vbnRocyBhZ28gICAgICAgIDEuMTlHQgpweXRob24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcuNCAgICAgICAgICAgICAgIDlmYTU2ZDBhZGRhZSAgICAgICAgNiBtb250aHMgYWdvICAgICAgICA5MThNQgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGJ1aWxkIC10ICZhbXA7bHQ7aW1hZ2UgbmFtZSZhbXA7Z3Q7IC4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBjcmVhdGVzIGEgRG9ja2VyIGltYWdlIHdpdGggYSB0YWcgdXNpbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LXQmbHQ7L2NvZGUmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhYm92ZSBjb21tYW5kLCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgdmFsaWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDssIGJ1aWxkcyBhIERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgZXhlY3V0aW9uIGNvbW1hbmRzIGRlZmluZWQgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7LiBPbmUgY3JpdGljYWwgZWxlbWVudCB0byBidWlsZGluZyBpbWFnZXMgYW5kIHN0YXJ0aW5nIGNvbnRhaW5lcnMgaXMgdW5kZXJzdGFuZGluZyB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9hJmd0Oy4gQnVpbGRpbmcgRG9ja2VyIGltYWdlcyB1c2luZyB0aGlzIGNvbW1hbmQgc3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIERvY2tlciBpbWFnZXMgdXRpbGl6ZXMgYSBuYW1pbmcgY29udmVudGlvbiBtYWRlIHVwIG9mIHNsYXNoLXNlcGFyYXRlZCBuYW1lIGNvbXBvbmVudHMgdGhhdCBtYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgc2VwYXJhdG9ycy4gQSBzZXBhcmF0b3IgaXMgZGVmaW5lZCBhcyBhIHBlcmlvZCwgb25lIG9yIHR3byB1bmRlcnNjb3Jlcywgb3Igb25lIG9yIG1vcmUgZGFzaGVzLiBBIG5hbWUgY29tcG9uZW50IG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggYSBzZXBhcmF0b3IuIEEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7ZG9ja2VyIHRhZyZsdDsvYSZndDsgbmFtZSBtdXN0IGJlIHZhbGlkIEFTQ0lJIGFuZCBtYXkgY29udGFpbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHVuZGVyc2NvcmVzLCBwZXJpb2RzLCBhbmQgZGFzaGVzLiBBIHRhZyBuYW1lIG1heSBub3Qgc3RhcnQgd2l0aCBhIHBlcmlvZCBvciBhIGRhc2ggYW5kIG1heSBjb250YWluIGEgbWF4aW11bSBvZiAxMjggY2hhcmFjdGVycy4gWW91IGNhbiBncm91cCB5b3VyIGltYWdlcyB0b2dldGhlciB1c2luZyBuYW1lcyBhbmQgdGFncy4gSW4gdGhpcyBwb3N0LCB3ZSB3aWxsIHVzZSB0aGlzIG5hbWluZyBjb252ZW50aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB0aGF0IHdl4oCZdmUgZGlzY3Vzc2VkIG5hbWluZyBjb252ZW50aW9ucyBsZXTigJlzIGJ1aWxkIGEgRG9ja2VyIGltYWdlIGJhc2VkIG9uIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXJmaWxlJmx0Oy9jb2RlJmd0OyBpbiBvdXIgZXhhbXBsZSBhYm92ZS4gSW4gdGhpcyBwb3N0IHdlIGNhbiB1dGlsaXplIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9wdW5rZGF0YS9ub2RlanMtY2lyY2xlY2kmcXVvdDsmZ3Q7cHVua2RhdGEvbm9kZWpzLWNpcmNsZWNpJmx0Oy9hJmd0OyBnaXQgcmVwby4gQ2xvbmUgaXQgbG9jYWxseSBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7JCBjZCZsdDsvY29kZSZndDsgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlbiBydW4gdGhpcyBjb21tYW5kIHRvIGJ1aWxkIGEgbmV3IERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgcHJvamVjdCBzb3VyY2UgY29kZSBhbmQgdGhlIGV4YW1wbGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgYnVpbGQgLXQgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0FmdGVyIHJ1bm5pbmcgdGhpcyBidWlsZCBjb21tYW5kLCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtTZW5kaW5nIGJ1aWxkIGNvbnRleHQgdG8gRG9ja2VyIGRhZW1vbiAgOTguMDdNQgpTdGVwIDEvNyA6IEZST00gbm9kZToxMAogLS0tJmFtcDtndDsgMDFiODE2MDUxZDM0ClN0ZXAgMi83IDogV09SS0RJUiAvdXNyL3NyYy9hcHAKIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyAxMmIyZWRjMmI5N2MKU3RlcCAzLzcgOiBDT1BZIHBhY2thZ2UqLmpzb24gLi8KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyA1M2I1YjhlNGU2NTQKU3RlcCA0LzcgOiBSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyBlZWZkZjU2MGJjNGQKU3RlcCA1LzcgOiBDT1BZIC4gLgogLS0tJmFtcDtndDsgYWE3ZDU0ZTk1NWM2ClN0ZXAgNi83IDogRVhQT1NFIDUwMDAKIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gY2M0MjdkYmFmZGNjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgY2M0MjdkYmFmZGNjCiAtLS0mYW1wO2d0OyA0Y2U5MDg0ZTM5ZWIKU3RlcCA3LzcgOiBDTUQgWyAmcXVvdDtucG0mcXVvdDssICZxdW90O3N0YXJ0JnF1b3Q7IF0KIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gZjZlODU0NTk5ZGRjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgZjZlODU0NTk5ZGRjCiAtLS0mYW1wO2d0OyA3OWE4ZDk0Y2JmNDIKU3VjY2Vzc2Z1bGx5IGJ1aWx0IDc5YThkOTRjYmY0MgpTdWNjZXNzZnVsbHkgdGFnZ2VkIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2VzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgeW91ciBuZXdseSBjcmVhdGVkIERvY2tlciBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDskIGRvY2tlciBpbWFnZXMKClJFUE9TSVRPUlkgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRyAgICAgICAgICAgICAgICAgSU1BR0UgSUQgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNJWkUKdHV0b3JpYWwvY2lyY2xlY2ktbm9kZSAgICAgICAgICAgICAgMTAgICAgICAgICAgICAgICAgICA3OWE4ZDk0Y2JmNDIgICAgICAgIDQgbWludXRlcyBhZ28gICAgICAgMS4wM0dCCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyB5b3UgaGF2ZSBhbiBhd2Vzb21lIERvY2tlciBpbWFnZSBidWlsdCBhbmQgcmVhZHkgdG8gdXNlLiBJbiB0aGUgbmV4dCBzZWN0aW9uIEnigJlsbCBjcmVhdGUgbmV3IGluc3RhbmNlcyBvZiB0aGlzIERvY2tlciBpbWFnZSBpbiB0aGUgZm9ybSBvZiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvY29udGFpbmVyLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXIgY29udGFpbmVycyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBjb250YWluZXJzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IGFyZSBkZXNpZ25lZCB0byBydW4gYXBwbGljYXRpb25zIGluIGlzb2xhdGlvbiBhbmQgYXQgc2NhbGUuICBUaGV5IGFsbG93IGZvciBzdHJlYW1saW5pbmcgdGhlIG1hbmFnZW1lbnQgYW5kIGltcGxlbWVudGF0aW9uIG9mIGFwcGxpY2F0aW9ucy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7QmVmb3JlIHdlIHN0YXJ0IGNyZWF0aW5nIGFuZCBydW5uaW5nIERvY2tlciBjb250YWluZXJzLCBJ4oCZbGwgYWRkIHNvbWUgY29udGV4dC4gRG9ja2VyIGNvbnRhaW5lcnMgYXJlIG9iamVjdHMgdGhhdCBhcmUgYmFzZWQgb24gYW5kIHNwYXduZWQgZnJvbSBEb2NrZXIgaW1hZ2VzLiBEb2NrZXIgaW1hZ2VzIGFyZSB0ZW1wbGF0ZXMuIEkgbGlrZW4gdGhlbSB0byBjb29raWUgY3V0dGVyIG1vbGRzLiBDb29raWUgY3V0dGVyIG1vbGRzIGVuYWJsZSB5b3UgdG8gcXVpY2tseSBhbmQgY29uc2lzdGVudGx5IHByb2R1Y2UgaW5kaXZpZHVhbCBjb29raWVzIGZyb20gZG91Z2guIEkgbGlrZW4gdGhlc2UgY29va2llcyB0byBEb2NrZXIgY29udGFpbmVycyB3aGljaCBhcmUgZGlzdGluZ3Vpc2hlZCBpbiBzaGFwZSBieSB0aGUgdHlwZSBvZiBjb29raWUgbW9sZCwgb3IgRG9ja2VyIGNvbnRhaW5lciwgdXNlZCBpbiB0aGUgY3V0dGluZy9idWlsZGluZyBwcm9jZXNzLiBTbyB1c2luZyBteSBjb29raWUgY3V0dGVyIGFuYWxvZ3ksIERvY2tlciBpbWFnZXMgYXJlIHRoZSBjb29raWUgY3V0dGVyIGFuZCB0aGUgaW5kaXZpZHVhbCBjb29raWVzIGN1dCB1c2luZyB0aGF0IGN1dHRlciBhcmUgZXF1aXZhbGVudCB0byBEb2NrZXIgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCBJ4oCZdmUgcHJvYmFibHkgbWFkZSB5b3UgYSBiaXQgaHVuZ2FyeSBmb3IgY29va2llcywgbGV04oCZcyBzdGFydCBydW5uaW5nIHNvbWUgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBydW5zIGEgY29tbWFuZCBpbiBhIG5ldyBjb250YWluZXIuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY29tbWFuZCBvZiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgc3RhcnRpbmcgRG9ja2VyIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCBhIG5ldyBjb250YWluZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcnVuIC1kIC1wIDUwMDA6NTAwMCAtLW5hbWUgbm9kZXRlc3QwMSB0dXRvcmlhbC9jaXJjbGVjaS1ub2RlOjEwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NvbmdyYXRzISBZb3Ugc2hvdWxkIG5vdyBoYXZlIHRoZSBOb2RlLmpzIGltYWdlIHJ1bm5pbmcgaW4gdGhlIG5ldyBjb250YWluZXIgdGhhdCB5b3UganVzdCBjcmVhdGVkIGF2YWlsYWJsZSBvbiBwb3J0IDUwMDAuIE9wZW4gYSB3ZWIgYnJvd3NlciBhbmQgZ28gdG8gdGhpcyBhZGRyZXNzOiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtodHRwOi8vbG9jYWxob3N0OjUwMDAmbHQ7L2NvZGUmZ3Q7LiBJdCB3aWxsIHRha2UgeW91IHRoZSBzdGF0aWMg4oCcV2VsY29tZSB0byBDSS9DRCAxMDEgdXNpbmcgQ2lyY2xlQ0kh4oCdIHdlYiBwYWdlIHNlcnZlZCBieSB0aGlzIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsc28gdmVyaWZ5IHlvdXIgY29udGFpbmVyIGlzIHJ1bm5pbmcgYnkgZXhlY3V0aW5nIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbC4gV2XigJlsbCBkaXNjdXNzIHRoaXMgaW4gdGhlIG5leHQgc2VjdGlvbi4gQmVmb3JlIHRoYXQsIGxldOKAmXMgc3RhcnQgYW4gb3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGFwcGxpY2F0aW9uIGJ5IHJ1bm5pbmcgYW5vdGhlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnRlZCBvdXIgZmlyc3QgY29udGFpbmVyIHdpdGggdGhlIG5hbWUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDsgYW5kIHNpbmNlIGNvbnRhaW5lciBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgd2XigJlyZSBnb2luZyB0byBuYW1lIG91ciBuZXcgY29udGFpbmVyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7LiBBbm90aGVyIGNoYW5nZSB0aGF0IG11c3QgYmUgbWFkZSBpbiBvdXIgbmV3IGNvbnRhaW5lciBpcyB0aGUgcG9ydCBudW1iZXIuIFdl4oCZbGwgY2hhbmdlIGl0IGZyb20gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMCZsdDsvY29kZSZndDsgdG8gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMSZsdDsvY29kZSZndDsgc2luY2UgYXBwbGljYXRpb25zIGNhbm5vdCBvY2N1cHkgdGhlIHNhbWUgcG9ydCBudW1iZXIgb24gdGhlIHNhbWUgbmV0d29yayBpbnRlcmZhY2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RXhlY3V0ZSB0aGUgZm9sbG93aW5nICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtZCAtcCA1MDAxOjUwMDAgLS1uYW1lIG5vZGV0ZXN0MDIgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISBZb3Ugbm93IGhhdmUgdHdvIGNvbnRhaW5lcnMgcnVubmluZyBvbiB5b3VyIGxvY2FsIG1hY2hpbmUuIFlvdSBjYW4gZ28gdG8gdGhpcyBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMSZsdDsvY29kZSZndDsgaW4gYSBicm93c2VyIGFuZCBzZWUgdGhlIGFwcCBydW5uaW5nIGluIHlvdXIgc2Vjb25kIERvY2tlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaXMgdmVyeSByb2J1c3QgYW5kIGhhcyBtYW55IHByb3BlcnR5IGFuZCBjb25maWd1cmF0aW9uIGZsYWdzIHdoaWNoIEkgd29u4oCZdCBiZSBhYmxlIHRvIGFkZHJlc3Mgb3IgZGVtb25zdHJhdGUgaW4gdGhpcyBwb3N0LiBJIGhpZ2hseSByZWNvbW1lbmQgdGhhdCB5b3UgcmVhZCBhbmQgZmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgbWFueSB3YXlzIHRoYXQgeW91IGNhbiBleGVjdXRlIGFuZCBydW4gRG9ja2VyIGNvbnRhaW5lcnMuIFlvdSBjYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7cmVhZCB1cCBvbiBEb2NrZXIgY29udGFpbmVycyBjb21tYW5kcyBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9wcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbGlzdHMgYWxsIG9mIHRoZSBydW5uaW5nIERvY2tlciBjb250YWluZXJzLiBUaGlzIGNvbW1hbmQgc2VydmVzIGEgc2ltaWxhciBwdXJwb3NlIGFzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2UmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgYW5kIGxpc3RzIGFjdGl2ZWx5IHJ1bm5pbmcgY29udGFpbmVycy4gVXNlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDstYSZsdDsvY29kZSZndDsgZmxhZyB0byBzaG93IGFsbCBvZiB0aGUgcnVubmluZyBhbmQgbm90IHJ1bm5pbmcgY29udGFpbmVycy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoaXMgY29tbWFuZCBpbiBhIHRlcm1pbmFsIGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIGJvdGggb2YgdGhlIHByZXZpb3VzbHkgY3JlYXRlZCBjb250YWluZXJzIHJ1bm5pbmcgaW4gdGhlIHJlc3VsdHM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlIHJlc3VsdHMgd2lsbCBiZSBzaW1pbGFyIHRvIHRoaXMgc2hvd2luZyBib3RoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDEmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcnMgc3RpbGwgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0NPTlRBSU5FUiBJRCAgICAgICAgSU1BR0UgICAgICAgICAgICAgICAgICAgICAgIENPTU1BTkQgICAgICAgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNUQVRVUyAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICAgICAgIE5BTUVTCmRmZDMwMTgxZTE1YyAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAxMiBtaW51dGVzIGFnbyAgICAgIFVwIDEyIG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAxLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAyOCBtaW51dGVzIGFnbyAgICAgIFVwIDI4IG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAwLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7CiAgICAmbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvc3RhcnQvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdGFydHMgYW4gZXhpc3RpbmcgY29udGFpbmVyLiZsdDsvcCZndDsKICAmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsKICAgICZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9zdG9wLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdG9wcyBhbiBleGlzdGluZyBjb250YWluZXIuJmx0Oy9wJmd0OwogICZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgaXMgb25seSB1c2VkIHRvIHN0YXJ0ICZsdDtzdHJvbmcmZ3Q7ZXhpc3RpbmcmbHQ7L3N0cm9uZyZndDsgY29udGFpbmVycyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcnVuJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBVbmxlc3MgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy0tcm09dHJ1ZSZsdDsvY29kZSZndDsgZmxhZyBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgbmV3bHkgY3JlYXRlZCBjb250YWluZXJzIHdpbGwgcGVyc2lzdCBhbmQgY2FuIGJlIHJldXNlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RhcnQmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCZsdDsvY29kZSZndDsgY29tbWFuZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdG9wIHNvbWUgcnVubmluZyBjb250YWluZXJzIGJ5IGV4ZWN1dGluZyB0aGVzZSBjb21tYW5kczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBzdG9wIG5vZGV0ZXN0MDEgbm9kZXRlc3QwMgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBydW5uaW5nIGNvbnRhaW5lcnMgc2hvdWxkIG5vdyBiZSBpbmFjdGl2ZSBhbmQgc3RvcHBlZC4gU2luY2UgdGhleeKAmXJlIHN0b3BwZWQsIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgaW5kaWNhdGluZyBzdG9wcGVkIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtDT05UQUlORVIgSUQgICAgICAgIElNQUdFICAgICAgICAgICAgICAgICAgICAgICBDT01NQU5EICAgICAgICAgICAgICAgICAgQ1JFQVRFRCAgICAgICAgICAgICBTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICBOQU1FUwpkZmQzMDE4MWUxNWMgICAgICAgIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAgICAmcXVvdDtkb2NrZXItZW50cnlwb2ludC5z4oCmJnF1b3Q7ICAgMzEgbWludXRlcyBhZ28gICAgICBFeGl0ZWQgKDApIDM4IHNlY29uZHMgYWdvICAgICAgICAgICAgICAgICAgICAgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICBBYm91dCBhbiBob3VyIGFnbyAgIEV4aXRlZCAoMCkgMzggc2Vjb25kcyBhZ28gICAgICAgICAgICAgICAgICAgICAgIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhvdWdoIHRoZXNlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQgdGhleSB3aWxsIHBlcnNpc3QgYW5kIGNhbiBiZSByZXN0YXJ0ZWQgdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCZsdDsvY29kZSZndDsgY29tbWFuZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXRzIHN0YXJ0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAxJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgc28gd2UgY2FuIGxlYXJuIGhvdyB0byB1c2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBmZWF0dXJlcyBpbiB0aGUgbmV4dCBzZWN0aW9uLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHN0YXJ0IG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Tm93IHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBOb3RpY2UgdGhlIHN0YXR1cyBmb3IgdGhpcyBjb250YWluZXIgcmVhZHMgc2ltaWxhciB0byAgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXAgYWJvdXQgYSAzMCBzZWNvbmRzJmx0Oy9jb2RlJmd0OyBvciBzb21ldGhpbmcgdG8gdGhhdCBlZmZlY3QuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9ncy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ3MmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBmZXRjaGVzIGEgY29udGFpbmVy4oCZcyBsb2dzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIHNlZSBsb2dzIHRoYXQgYXJlIHByZXNlbnQgYXQgdGhlIHRpbWUgb2YgZXhlY3V0aW9uLiBTaW5jZSB5b3VyIGFwcHMgYXJlIHJ1bm5pbmcgaW5zaWRlIHRoZXNlIGNvbnRhaW5lcnMsIHRoZSBsb2dzIGNvbW1hbmQgaXMgdXNlZnVsIGZvciByZWFkaW5nIG91dCBjcml0aWNhbCBhcHAgb3V0cHV0cy4gVGhpcyBoZWxwcyBpbiB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgYXBwIGlzIHBlcmZvcm1pbmcgYW5kIGFueSBkZWJ1Z2dpbmcvdHJvdWJsZXNob290aW5nIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBydW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDEmbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBsb2dzIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIGNvbW1hbmQgeW91IHNob3VsZCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHdoYXTigJlzIHNob3duIGJlbG93LiBJdCBzaG93cyB0aGF0IHRoZSBhcHAgaW5zaWRlIGNvbnRhaW5lciBpcyB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O05vZGUgc2VydmVyIGlzIHJ1bm5pbmcuLgoKJmFtcDtndDsgbm9kZWpzLWNpcmNsZWNpQDAuMC4xIHN0YXJ0IC91c3Ivc3JjL2FwcAomYW1wO2d0OyBub2RlIGFwcC5qcwoKTm9kZSBzZXJ2ZXIgaXMgcnVubmluZy4uCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0gJmFtcDtsdDtjb250YWluZXIgbmFtZSZhbXA7Z3Q7Jmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgZGVsZXRlcyBhIGNvbnRhaW5lciBvciBtdWx0aXBsZSBjb250YWluZXJzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtQZXJzaXN0aW5nIERvY2tlciBjb250YWluZXJzIGNvbnN1bWVzIGRpc2sgc3BhY2UgYW5kIHJlc291cmNlcyBvbiBpdHMgaG9zdC4gT3BlcmF0aW9uYWxseSwgaXQgZG9lc27igJl0IG1ha2UgbXVjaCBzZW5zZSB0byBwZXJzaXN0IGV2ZXJ5IGNvbnRhaW5lciBvbiBkaXNrIHNpbmNlIGluIG1vc3QgY2FzZXMgY29udGFpbmVycyBhcmUgZGlzcG9zYWJsZSBhbmQgc2hvdWxkIGJlIHVzZWQgdGhhdCB3YXkuIFNvIHdoZW4gYSBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpdCBzaG91bGQgYmUgcGVybWFuZW50bHkgZGlzY2FyZGVkIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgcGVybWFuZW50bHkgZGVsZXRlcyBjb250YWluZXJzIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAyJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBzbyBsZXTigJlzIHNhdmUgc29tZSBkaXNrIHNwYWNlIGFuZCBkZWxldGUgaXQuIE5vdGUgdGhpcyBjb21tYW5kIHdpbGwgb25seSBkZWxldGUgaW5hY3RpdmUvc3RvcHBlZCBjb250YWluZXJzIGFuZCB3aWxsIGVycm9yIG91dCBpZiBpdOKAmXMgcnVuIGFnYWluc3QgYW4gYWN0aXZlL3J1bm5pbmcgY29udGFpbmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBybSBub2RldGVzdDAyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm8gbG9uZ2VyIHNlZSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMiZsdDsvY29kZSZndDsgY29udGFpbmVyIG9uIHRoZSBob3N0IGFmdGVyIHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGhhcyBvdGhlciBwcm9wZXJ0aWVzIGFuZCBmbGFncyBhbmQgeW91IHNob3VsZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcm0vJnF1b3Q7Jmd0O2ZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggdGhlbSBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ybWkvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBybWkmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBkZWxldGVzIERvY2tlciBpbWFnZXMgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGFwcGxpZXMgdG8gZGVsZXRpbmcgRG9ja2VyIGltYWdlcyBmcm9tIGEgaG9zdC4gSWYgdGhlcmUgYXJlIGV4aXN0aW5nIGNvbnRhaW5lcnMgb24gdGhlIGhvc3QgdGhhdCBhcmUgYmFzZWQgb24gYSBzcGVjaWZpYyBpbWFnZSwgdGhlbiB0aGlzIGNvbW1hbmQgd2lsbCBub3QgYWxsb3cgdGhlIGRlbGV0aW9uIG9mIHRoZSBjb250YWluZXIgYmFzZWQgb24gdGhlIGltYWdlLiBZb3UgbXVzdCBmaXJzdCBlbnN1cmUgdGhlIGNvbnRhaW5lciBpcyBzdG9wcGVkIGFuZCBkZWxldGVkIGJlZm9yZSB5b3UgY2FuIGRlbGV0ZSBEb2NrZXIgaW1hZ2VzIHVzaW5nIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtaSZsdDsvY29kZSZndDsgY29tbWFuZC4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtaS8mcXVvdDsmZ3Q7UmVhZCB1cCBvbiB0aGUgZG9ja2VyIHJtaSBjb21tYW5kIGhlcmUmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBpbWFnZSBkZXBsb3ltZW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtNYW55IERvY2tlciBpbWFnZXMgYXJlIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgaG9zdGVkIG9uIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2RvY2tlci1odWIvJnF1b3Q7Jmd0O0RvY2tlciBIdWIgUmVnaXN0cnkmbHQ7L2EmZ3Q7IHdoaWNoIGlzIGFuIG9ubGluZSBjZW50cmFsIGhvc3Rpbmcgc29sdXRpb24gZm9yIERvY2tlciBpbWFnZXMuIERvY2tlciBIdWIgZW5hYmxlcyBhbnlvbmUgd2l0aCBhbiBpbnRlcm5ldCBjb25uZWN0aW9uIHRvIHB1bGwgZG93biBwdWJsaWNseSBhdmFpbGFibGUgaW1hZ2VzIGZyb20gdGhlIHJlZ2lzdHJ5IHRvIHRoZWlyIGxvY2FsIG1hY2hpbmVzIG9yIHNlcnZlcnMuIEl0IGFsc28gZW5hYmxlcyByZWdpc3RlcmVkIHVzZXJzIHRvIHVwbG9hZCBhbmQgcHVibGljbHkgc2hhcmUgYW55IG9mIHRoZWlyIGNvbnRhaW5lcnMgc28gdGhhdCBhbnlvbmUgY2FuIHB1bGwgZG93biB0aGF0IGltYWdlIGZyb20gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2h1Yi5kb2NrZXIuY29tLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIEnigJlsbCBicmllZmx5IGRpc2N1c3Mgc29tZSBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItaHViLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0OyByZWxhdGVkIGNvbW1hbmRzLiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3B1bGwvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBwdWxsJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgcHVsbHMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IGZyb20gYSByZWdpc3RyeS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGVuYWJsZXMgeW91IHRvIGRvd25sb2FkIGEgdmFsaWQgRG9ja2VyIGltYWdlIGZyb20gRG9ja2VyIEh1Yi4gUHVibGljbHkgYXZhaWxhYmxlIERvY2tlciBpbWFnZXMgZG8gbm90IHJlcXVpcmUgYXV0aGVudGljYXRpb24uIElmIHRoZSByZWdpc3RyeSBpcyBwcml2YXRlIHlvdSB3aWxsIG5lZWQgdG8gYXV0aGVudGljYXRlIHVzaW5nIGFuIGFzc2lnbmVkIGNyZWRlbnRpYWwgdXN1YWxseSBpbiB0aGUgZm9ybSBvZiBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ2luJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbG9ncyBpbnRvIGEgRG9ja2VyIHJlZ2lzdHJ5LiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyB5b3UgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgYSBEb2NrZXIgUmVnaXN0cnkuIElmIHlvdeKAmXJlIHVzaW5nIHRoaXMgbG9naW4gY29tbWFuZCB5b3Ugc2hvdWxkICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8jcHJvdmlkZS1hLXBhc3N3b3JkLXVzaW5nLXN0ZGluJnF1b3Q7Jmd0O3BvcHVsYXRlIGEgLnR4dCBmaWxlJmx0Oy9hJmd0OyB3aXRoIHlvdXIgRG9ja2VyIEh1YiBhY2NvdW50IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBwcm90ZWN0IHRoZXNlIGNyZWRlbnRpYWxzIGZyb20gZXhwb3N1cmUuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcHVzaC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHB1c2gmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBwdXNoZXMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IHRvIGEgcmVnaXN0cnkuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBlbmFibGVzIHVzZXJzIHRvIHVwbG9hZCBpbWFnZXMgdG8gYSBEb2NrZXIgcmVnaXN0cnkgYW5kIHJlcXVpcmVzIHZhbGlkIGNyZWRlbnRpYWxzLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O1NvIHRoZXJlIHlvdSBoYXZlIGl0LiBJbiB0aGlzIHBvc3QgSSB3ZW50IGEgYml0IGRlZXBlciBpbiBleHBsYWluaW5nIERvY2tlciB0ZXJtaW5vbG9neSBhbmQgY29tbWFuZHMgYXMgd2VsbCBhcyBjb250YWluZXJzIGFuZCB0aGVpciB1c2FnZS4gVGhlIGNvbW1hbmRzIEkgZGlzY3Vzc2VkIGFuZCBkZW1vbnN0cmF0ZWQsIGFyZSB0aGUgbW9zdCB3aWRlbHkgdXNlZCBjb21tYW5kcyBpbiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGxlYXJuaW5nIGEgYml0IG1vcmUgYWJvdXQgdGhlbSBhbmQgdGhlaXIgcHJvcGVydGllcyBhbmQgZmxhZ3Mgd2lsbCBkZWZpbml0ZWx5IGhlbHAgeW91IGxldmVsIHVwIHlvdXIgRG9ja2VyIGFuZCBjb250YWluZXIgc2tpbGxzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZhbWlsaWFyaXppbmcgeW91cnNlbGYgd2l0aCB0aGVzZSBiYXNpYyBjb21tYW5kcyB3aWxsIHJlbW92ZSBvbmUgb2YgdGhlIGxhcmdlciBiYXJyaWVycyB0aGF0IG5ldyB1c2VycyBvZiBDaXJjbGVDSSBlbmNvdW50ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SWYgeW91IHdhbnQgdG8gbGVhcm4gbW9yZSBhYm91dCBDaXJjbGVDSSBjaGVjayBvdXQgdGhlICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wLyZxdW90OyZndDtkb2N1bWVudGF0aW9uIHNpdGUmbHQ7L2EmZ3Q7LCBhbmQgaWYgeW91IHJlYWxseSBnZXQgc3R1Y2sgeW91IGNhbiByZWFjaCBvdXQgdG8gdGhlIENpcmNsZUNJIGNvbW11bml0eSB2aWEgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mbHQ7L2EmZ3Q7IGNvbW11bml0eS9mb3J1bSBzaXRlLiZsdDsvcCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogIDwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:54:32 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:54:32 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"1f5ac44a0ee90dec","ot-tracer-traceid":"15cba8a01890c606","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889272840:fc80847699c4
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:09:32 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595d9fb0e899d61c-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce62228e0000d61cea086200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:54:32 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:54:33 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"094180f452c2b942","ot-tracer-traceid":"51abc74f550fab0f","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889273060:b4b8566704a1
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:09:33 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595d9fb43f86f91b-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce6224a20000f91bd1a60200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDExOjQ4OjUyIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:54:33 GMT
+- request:
+ method: get
+ uri: https://circleci.com/blog/feed.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/xml
+ Date:
+ - Tue, 19 May 2020 11:54:35 GMT
+ Etag:
+ - '"d148e5f0c8f6530989f97099948abd37"'
+ Last-Modified:
+ - Tue, 19 May 2020 02:33:22 GMT
+ Server:
+ - nginx
+ Strict-Transport-Security:
+ - max-age=15724800
+ X-Amz-Id-2:
+ - "/dFFTWQ/VJ1c+PUhRqiH1v9XOtHjwxQ86ZzMG2a7vbsleFVsKtt0npdbJg2klI3iHprjz51Jwk4="
+ X-Amz-Request-Id:
+ - 1145713DBF4E59E1
+ X-Frame-Options:
+ - SAMEORIGIN
+ Content-Length:
+ - '183502'
+ Connection:
+ - keep-alive
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiCiAgeG1sOmJhc2U9Imh0dHBzOi8vY2lyY2xlY2kuY29tLyIKICB4bWxuczphdG9tPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8Y2hhbm5lbD4KICAgIDx0aXRsZT5UaGUgQ2lyY2xlQ0kgQmxvZyBGZWVkIC0gQ2lyY2xlQ0k8L3RpdGxlPgogICAgPGRlc2NyaXB0aW9uPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgbmV3cywgdXBkYXRlcywgYW5kIGhhY2tzIGZyb20gQ2lyY2xlQ0kuPC9kZXNjcmlwdGlvbj4KICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvPC9saW5rPgogICAgPGF0b206bGluayBocmVmPSJodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2ZlZWQueG1sIiByZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Db250aW51b3VzIGludGVncmF0aW9uIGZvciBJb25pYyBhcHBsaWNhdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvY29udGlub3VzLWludGVncmF0aW9uLWZvci1pb25pYy1hcHBzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDE4IE1heSAyMDIwIDE3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbm91cy1pbnRlZ3JhdGlvbi1mb3ItaW9uaWMtYXBwcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5GaWtheW8gQWRlcG9qdTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtJbiB0aGUgd29ybGQgb2YgaHlicmlkIG1vYmlsZSBkZXZlbG9wbWVudCwgbm8gb3RoZXIgZnJhbWV3b3JrIGhhcyBkb25lIG1vcmUgZm9yIHRoZSBpbmR1c3RyeSB0aGFuIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tLyZxdW90OyZndDtJb25pYyBmcmFtZXdvcmsmbHQ7L2EmZ3Q7LiBDcmVhdGVkIGluIDIwMTMgYW5kIG9yaWdpbmFsbHkgYnVpbHQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXJqcy5vcmcvJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7IGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY29yZG92YS5hcGFjaGUub3JnLyZxdW90OyZndDtBcGFjaGUgQ29yZG92YSZsdDsvYSZndDssIElvbmljIGhhcyBncm93biB0byBhIGZ1bGwtZmVhdHVyZWQgYXBwbGljYXRpb24gZnJhbWV3b3JrIGZvciBkZXZlbG9waW5nIG1vYmlsZSwgZGVza3RvcCwgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93ZWIuZGV2L3Byb2dyZXNzaXZlLXdlYi1hcHBzLyZxdW90OyZndDtwcm9ncmVzc2l2ZSB3ZWIgYXBwbGljYXRpb25zJmx0Oy9hJmd0Oy4gSW9uaWMgaGFzIGFsc28gYmVjb21lIGZyYW1ld29yay1hZ25vc3RpYywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byB1c2UgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXIuaW8vJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oywgb3IgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3Z1ZWpzLm9yZy8mcXVvdDsmZ3Q7VnVlLmpzJmx0Oy9hJmd0OyBmb3IgZGV2ZWxvcG1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2Ugd2lsbCBiZSBidWlsZGluZyBhIGhhbmR5IHRhc2sgbWFuYWdlci4gV2Ugd2lsbCB3cml0ZSB0ZXN0cyBmb3IgZmVhdHVyZXMgaW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBzZXQgdXAgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbm91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgKENJKSBwaXBlbGluZSB0byBhdXRvbWF0ZSBvdXIgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFdlIHdpbGwgYmUgZGV2ZWxvcGluZyBvdXIgYXBwbGljYXRpb24gdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9yZWFjdCZxdW90OyZndDtJb25pYyBSZWFjdCZsdDsvYSZndDssIHRoZSBJb25pYyB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgZGV2ZWxvcGluZyB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBmb2xsb3cgdGhpcyBwb3N0LCBhIGZldyB0aGluZ3MgYXJlIHJlcXVpcmVkOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QmFzaWMga25vd2xlZGdlIG9mIFJlYWN0LmpzIChOb3QgYSBkZWFsLWJyZWFrZXIsIHlvdSBvbmx5IGhhdmUgdG8gY29weS1wYXN0ZSB0aGUgY29kZSBzbmlwcGV0cykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbm9kZWpzLm9yZyZxdW90OyZndDtOb2RlLmpzJmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtUaGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2NsaSZxdW90OyZndDtJb25pYyBDTEkmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L29sJmd0OwoKJmx0O2gyJmd0O1NjYWZmb2xkaW5nIHRoZSBJb25pYyBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBiZWdpbiwgbGV04oCZcyBzY2FmZm9sZCBhIG5ldyBJb25pYyBhcHBsaWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2lvbmljIHN0YXJ0IHRhc2stbWFuYWdlciB0YWJzIC0tdHlwZT1yZWFjdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgSW9uaWMgQ0xJIHRvIHNjYWZmb2xkIGEgbmV3IHByb2plY3QgZm9yIHVzIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0YWJzJmx0Oy9jb2RlJmd0OyB0ZW1wbGF0ZSBpbnNpZGUgYSBmb2xkZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGFzay1tYW5hZ2VyJmx0Oy9jb2RlJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1lvdSBtaWdodCBiZSBwcm9tcHRlZCBhdCBzb21lIHBvaW50IHdpdGggJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Q3JlYXRlIGZyZWUgSW9uaWMgYWNjb3VudD8mbHQ7L2NvZGUmZ3Q7LiBIaXQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7biZsdDsvY29kZSZndDsgdG8gZGVjbGluZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYW4gSW9uaWMgYWNjb3VudCBzZWUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9hcHBmbG93JnF1b3Q7Jmd0O2hlcmUmbHQ7L2EmZ3Q7LiZsdDsvaSZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmNlIHRoaXMgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb24gKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIHRhc2stbWFuYWdlciZsdDsvY29kZSZndDspIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHNlcnZlIHRoZSBhcHBsaWNhdGlvbiBpbiB5b3VyIHdlYiBicm93c2VyOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7aW9uaWMgc2VydmUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGlzIGNvbW1hbmQgaGFzIGNvbXBsZXRlZCwgeW91IHdpbGwgc2VlIGFuIGFwcGxpY2F0aW9uIHZpZXcgaW4geW91ciBicm93c2VyIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O0kgYW0gdXNpbmcgYSBtb2JpbGUgcHJldmlldyBhY3RpdmF0ZWQgaW4gQ2hyb21l4oCZcyBkZXZlbG9wbWVudCB0b29scy4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXNjYWZmb2xkLXByZXZpZXcucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtEb27igJl0IGJlIHN1cnByaXNlZCBpZiB5b3VycyBoYXMgYSBibGFjayBiYWNrZ3JvdW5kIGFuZCB3aGl0ZSBmb250LiBJdCB1c2VzIHRoZSBkZWZhdWx0IG1vZGUgb2YgeW91ciBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMiZndDtCdWlsZGluZyB0aGUgVGFzayBNYW5hZ2VyIGFwcGxpY2F0aW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05leHQsIGxldOKAmXMgYmVnaW4gYnVpbGRpbmcgdGhlIG1haW4gYXBwbGljYXRpb24uIEdvIGludG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyIG9mIHlvdXIgYXBwbGljYXRpb24gYW5kIG9wZW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGhvbWUgcGFnZSBmb3IgdGhlIG5ld2x5IHNjYWZmb2xkZWQgYXBwbGljYXRpb24uIFJlbW92ZSBldmVyeXRoaW5nIGluIHRoaXMgZmlsZSBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRzeAoKaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsKICBJb25Db250ZW50LAogIElvbkhlYWRlciwKICBJb25QYWdlLAogIElvblRpdGxlLAogIElvblRvb2xiYXIsCiAgSW9uTGlzdCwKICBJb25JdGVtU2xpZGluZywKICBJb25JdGVtLAogIElvbkxhYmVsLAogIElvbkl0ZW1PcHRpb25zLAogIElvbkl0ZW1PcHRpb24sCiAgSW9uRmFiLAogIElvbkZhYkJ1dHRvbiwKICBJb25JY29uLAogIElvbk1vZGFsLAogIElvbkJ1dHRvbiwKICBJb25DYXJkLAogIElvbkNhcmRDb250ZW50LAogIElvbklucHV0LAp9IGZyb20gJnF1b3Q7QGlvbmljL3JlYWN0JnF1b3Q7OwoKaW1wb3J0IHsgYWRkIH0gZnJvbSAmcXVvdDtpb25pY29ucy9pY29ucyZxdW90OzsKCmltcG9ydCAmcXVvdDsuL1RhYjEuY3NzJnF1b3Q7OwoKaW50ZXJmYWNlIFRhc2sgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwp9Cgpjb25zdCBUYWIxOiBSZWFjdC5GQyA9ICgpID0mYW1wO2d0OyB7CiAgY29uc3QgW3Rhc2tzLCBzZXRUYXNrc10gPSB1c2VTdGF0ZSZhbXA7bHQ7VGFza1tdJmFtcDtndDsoW10pOwogIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7CiAgY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKCiAgZnVuY3Rpb24gYWRkTmV3VGFzaygpIHsKICAgIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogICAgY29uc3QgbmV3VGFzayA9IHsKICAgICAgaWQ6IG5ld19pZCwKICAgICAgbmFtZTogdGFza05hbWUsCiAgICB9OwoKICAgIHRhc2tzLnB1c2gobmV3VGFzayk7CgogICAgc2V0VGFza3ModGFza3MpOwoKICAgIHNldFRhc2tOYW1lKCZxdW90OyZxdW90Oyk7CgogICAgc2V0U2hvd01vZGFsKGZhbHNlKTsKICB9CgogIHJldHVybiAoCiAgICAmYW1wO2x0O0lvblBhZ2UmYW1wO2d0OwogICAgICAmYW1wO2x0O0lvbkhlYWRlciZhbXA7Z3Q7CiAgICAgICAgJmFtcDtsdDtJb25Ub29sYmFyJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uVGl0bGUmYW1wO2d0O1Rhc2sgTWFuYWdlciZhbXA7bHQ7L0lvblRpdGxlJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25Ub29sYmFyJmFtcDtndDsKICAgICAgJmFtcDtsdDsvSW9uSGVhZGVyJmFtcDtndDsKICAgICAgJmFtcDtsdDtJb25Db250ZW50JmFtcDtndDsKICAgICAgICAmYW1wO2x0O0lvbkxpc3QmYW1wO2d0OwogICAgICAgICAge3Rhc2tzLmxlbmd0aCAmYW1wO2d0OyAwID8gKAogICAgICAgICAgICB0YXNrcy5tYXAoKGl0ZW06IFRhc2spID0mYW1wO2d0OyB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbVNsaWRpbmcga2V5PXtpdGVtLmlkfSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbSBjbGFzc05hbWU9JnF1b3Q7dG9kby1pdGVtJnF1b3Q7JmFtcDtndDsKICAgICAgICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDt7aXRlbS5uYW1lfSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbnMgc2lkZT0mcXVvdDtlbmQmcXVvdDsmYW1wO2d0OwogICAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsge319JmFtcDtndDtEb25lJmFtcDtsdDsvSW9uSXRlbU9wdGlvbiZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1PcHRpb25zJmFtcDtndDsKICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1TbGlkaW5nJmFtcDtndDsKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KQogICAgICAgICAgKSA6ICgKICAgICAgICAgICAgJmFtcDtsdDtJb25JdGVtJmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICApfQogICAgICAgICZhbXA7bHQ7L0lvbkxpc3QmYW1wO2d0OwoKICAgICAgICB7LyogTW9kYWwqL30KICAgICAgICAmYW1wO2x0O0lvbk1vZGFsIGlzT3Blbj17c2hvd01vZGFsfSZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkNhcmQmYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICZhbXA7bHQ7SW9uTGFiZWwmYW1wO2d0O0FkZCBOZXcgVGFzayZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAmYW1wO2x0O0lvbkNhcmRDb250ZW50JmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICAgJmFtcDtsdDtJb25JbnB1dAogICAgICAgICAgICAgICAgICB2YWx1ZT17dGFza05hbWV9CiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSZxdW90O0VudGVyIFRhc2sgTmFtZS4uLiZxdW90OwogICAgICAgICAgICAgICAgICBvbklvbkNoYW5nZT17KGUpID0mYW1wO2d0OyBzZXRUYXNrTmFtZShlLmRldGFpbC52YWx1ZSEpfQogICAgICAgICAgICAgICAgJmFtcDtndDsmYW1wO2x0Oy9Jb25JbnB1dCZhbXA7Z3Q7CiAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uCiAgICAgICAgICAgICAgICBleHBhbmQ9JnF1b3Q7ZnVsbCZxdW90OwogICAgICAgICAgICAgICAgY29sb3I9JnF1b3Q7cHJpbWFyeSZxdW90OwogICAgICAgICAgICAgICAgb25DbGljaz17KCkgPSZhbXA7Z3Q7IGFkZE5ld1Rhc2soKX0KICAgICAgICAgICAgICAmYW1wO2d0OwogICAgICAgICAgICAgICAgQWRkIFRhc2sKICAgICAgICAgICAgICAmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkQ29udGVudCZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uIG9uQ2xpY2s9eygpID0mYW1wO2d0OyBzZXRTaG93TW9kYWwoZmFsc2UpfSZhbXA7Z3Q7Q2xvc2UgTW9kYWwmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICZhbXA7bHQ7L0lvbk1vZGFsJmFtcDtndDsKCiAgICAgICAgey8qIEFkZCBUYXNrIEJ1dHRvbiAqL30KICAgICAgICAmYW1wO2x0O0lvbkZhYiB2ZXJ0aWNhbD0mcXVvdDtib3R0b20mcXVvdDsgaG9yaXpvbnRhbD0mcXVvdDtlbmQmcXVvdDsgc2xvdD0mcXVvdDtmaXhlZCZxdW90OyZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkZhYkJ1dHRvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsgc2V0U2hvd01vZGFsKHRydWUpfSZhbXA7Z3Q7CiAgICAgICAgICAgICZhbXA7bHQ7SW9uSWNvbiBpY29uPXthZGR9IC8mYW1wO2d0OwogICAgICAgICAgJmFtcDtsdDsvSW9uRmFiQnV0dG9uJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25GYWImYW1wO2d0OwogICAgICAmYW1wO2x0Oy9Jb25Db250ZW50JmFtcDtndDsKICAgICZhbXA7bHQ7L0lvblBhZ2UmYW1wO2d0OwogICk7Cn07CgpleHBvcnQgZGVmYXVsdCBUYWIxOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyBsZXTigJlzIGdvIHRocm91Z2ggdGhlIGNvZGUgc25pcHBldCBhYm92ZS4gVGhpcyBpcyB0aGUgZW50aXJlIGNvZGUgZm9yIG91ciBUYXNrIE1hbmFnZXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnQgYnkgaW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzIGluY2x1ZGluZyB0aGUgY3NzIGZpbGUgZm9yIG91ciBwYWdlLiBXZSB0aGVuIGRlZmluZSBhbiBpbnRlcmZhY2UgdG8gZGVmaW5lIG91ciB0YXNrIG9iamVjdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtpbnRlcmZhY2UgVGFzayB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7Cn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7TmV4dCwgd2UgY3JlYXRlIG91ciBjb21wb25lbnQgYXMgYSBSZWFjdCBmdW5jdGlvbiBjb21wb25lbnQgdHlwZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtSZWFjdC5GQyZsdDsvY29kZSZndDsgYW5kIGJlZ2luIHRoZSBmdW5jdGlvbiBieSBkZWZpbmluZyB0aGUgZGF0YSB3ZSB3YW50IHRvIGhvbGQgaW4gb3VyIHN0YXRlIHVzaW5nIGhvb2tzOiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tzJmx0Oy9jb2RlJmd0OyBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYXNrJmx0Oy9jb2RlJmd0O3MsIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2hvd01vZGFsJmx0Oy9jb2RlJmd0OyBib29sZWFuIHRvIGNvbnRyb2wgdGhlIG9wZW5pbmcgYW5kIGNsb3Npbmcgb2Ygb3VyIHRhc2sgY3JlYXRpb24gZm9ybSwgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tOYW1lJmx0Oy9jb2RlJmd0OyB3aGljaCBob2xkcyB0aGUgdmFsdWUgb2YgYSBuZXcgdGFzayBpbiB0aGUgcHJvY2VzcyBvZiBjcmVhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IFt0YXNrcywgc2V0VGFza3NdID0gdXNlU3RhdGUmYW1wO2x0O1Rhc2tbXSZhbXA7Z3Q7KFtdKTsKY29uc3QgW3Nob3dNb2RhbCwgc2V0U2hvd01vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTsKY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Rm9sbG93aW5nIHRoZXNlIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdlIGNhbGwgdG8gYWRkIGEgbmV3IHRhc2suIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyB0YXNrIGJ5IHNldHRpbmcgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lkJmx0Oy9jb2RlJmd0OyBiYXNlZCBvbiB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBhbmQgY2xlYXJzIHRoZSBmb3JtIGFmdGVyIGFkZGluZyB0aGUgbmV3IHRhc2sgdG8gb3VyIGV4aXN0aW5nIGxpc3Qgb2YgdGFza3MuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtmdW5jdGlvbiBhZGROZXdUYXNrKCkgewogIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogIGNvbnN0IG5ld1Rhc2sgPSB7CiAgICBpZDogbmV3X2lkLAogICAgbmFtZTogdGFza05hbWUsCiAgfTsKCiAgdGFza3MucHVzaChuZXdUYXNrKTsKCiAgc2V0VGFza3ModGFza3MpOwoKICBzZXRUYXNrTmFtZSgmcXVvdDsmcXVvdDspOwoKICBzZXRTaG93TW9kYWwoZmFsc2UpOwp9CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05leHQsIHdlIHJlbmRlciBvdXIgdGVtcGxhdGUgdG8gZGlzcGxheSBvdXIgbGlzdCBvZiB0YXNrcyBhbmQgYWxzbyBkaXNwbGF5IGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgcmVhZHMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmbHQ7L2NvZGUmZ3Q7IHdoZW4gdGhlIHRhc2sgbGlzdCBpcyBlbXB0eS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtGb2xsb3dpbmcgdGhlIGxpc3QgaXMgYSBtb2RhbCBjb21wb25lbnQgdGhhdCBjb250YWlucyBvdXIgdGFzayBmb3JtIGZvciBhZGRpbmcgbmV3IHRhc2tzLiBCZWxvdyB0aGUgY29tcG9uZW50IGlzIGEgZmxvYXRpbmcgYWN0aW9uIGJ1dHRvbiB0aGF0IHRoZSB1c2VyIGNsaWNrcyB0byBvcGVuIHRoZSBtb2RhbC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWZvcmUgd2UgcHJldmlldyB0aGlzLCBvcGVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEuY3NzJmx0Oy9jb2RlJmd0OyBsb2NhdGVkIGluIHRoZSBzYW1lIGZvbGRlciBhcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRzeCZsdDsvY29kZSZndDsgYW5kIHJlcGxhY2UgaXRzIGNvbnRlbnRzIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Lyogc3JjL3BhZ2VzL1RhYjEuY3NzICovCgoudG9kby1pdGVtIHsKICAtLW1pbi1oZWlnaHQ6IDcwcHg7CiAgZm9udC1zaXplOiAxLjJlbTsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHNpbXBseSBidW1wcyB1cCB0aGUgaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgdGhlIGxpc3QgaXRlbXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm93LCBnbyB0byB5b3VyIGJyb3dzZXIgYW5kIGxvYWQgdGhlIGhvbWVwYWdlIG9mIHlvdXIgYXBwbGljYXRpb24gKFRhYjEpLiBZb3Ugd2lsbCBzZWUgdGhlIHBhZ2UgZGlzcGxheWVkIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1ob21lLW5vLXRhc2tzLnBuZyZxdW90OyAvJmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QmVjYXVzZSB3ZSBoYXZlbuKAmXQgYWRkZWQgYW55IHRhc2tzIHlldCwgd2UgaGF2ZSB0aGUgbWVzc2FnZSAmbHQ7c3Ryb25nJmd0O1lvdSBoYXZlIHlldCB0byBhZGQgdGFza3MgZm9yIHRvZGF5Jmx0Oy9zdHJvbmcmZ3Q7IGRpc3BsYXllZC4gV2UgYWxzbyBoYXZlIG91ciAmbHQ7c3Ryb25nJmd0O0FkZCBUYXNrJmx0Oy9zdHJvbmcmZ3Q7IGJ1dHRvbiBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lciB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwbHVzJmx0Oy9jb2RlJmd0OyBzeW1ib2wuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0FkZGluZyB0YXNrcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBhZGQgYSBuZXcgdGFzaywgY2xpY2sgdGhlIGJvdHRvbS1yaWdodCBibHVlIGJ1dHRvbiB0byBwdWxsIHVwIHRoZSB0YXNrIGNyZWF0aW9uIGZvcm0gYW5kIHR5cGUgaW4gYSB0YXNrIGFzIHNob3duIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtdGFzay5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7QUREIFRBU0smbHQ7L3N0cm9uZyZndDsgdG8gYWRkIHRoZSB0YXNrIGFuZCBnbyBhaGVhZCB0byBhZGQgMiB0byAzIG1vcmUgdGFza3MuIFdlIHNob3VsZCBub3cgaGF2ZSBlbm91Z2ggdGFza3Mgb24gdGhlIHBhZ2UgZm9yIG91ciBhcHBsaWNhdGlvbiB0byBsb29rIGZ1bmN0aW9uYWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXRhc2stbGlzdC5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB3ZSBoYXZlIGEgZnVuY3Rpb25hbCBhcHBsaWNhdGlvbi4gTm90IHByb2R1Y3Rpb24tcmVhZHksIGJ1dCBnb29kIGVub3VnaCB0byBzdGFydCB0ZXN0aW5nLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBZGRpbmcgdGVzdHMgdG8gdGhlIFRhc2sgTWFuYWdlciBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtPbmUgYWR2YW50YWdlIHRoYXQgd2UgaGF2ZSB3aXRoIHRlc3Rpbmcgb3VyIElvbmljIGFwcGxpY2F0aW9ucyBpcyB0aGF0IHdoaWxlIHNjYWZmb2xkaW5nIHRoZSBhcHBsaWNhdGlvbiwgdGhlIElvbmljIENMSSBoYXMgc2V0IHVwIGFsbCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcywgaW4gdGVybXMgb2YgcGFja2FnZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCBmb3IgdGVzdGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUZXN0aW5nIElvbmljIFJlYWN0IGFwcGxpY2F0aW9ucyBpcyBkb25lIHVzaW5nIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vamVzdGpzLmlvLyZxdW90OyZndDtKZXN0Jmx0Oy9hJmd0OyB0ZXN0aW5nIGZyYW1ld29yayB0b2dldGhlciB3aXRoIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdGVzdGluZy1saWJyYXJ5LmNvbS9kb2NzL3JlYWN0LXRlc3RpbmctbGlicmFyeS9pbnRybyZxdW90OyZndDtSZWFjdCBUZXN0aW5nIExpYnJhcnkmbHQ7L2EmZ3Q7IGFuZCB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1yZWFjdC10ZXN0LXV0aWxzJnF1b3Q7Jmd0O0lvbmljIFJlYWN0IFRlc3QgVXRpbHMmbHQ7L2EmZ3Q7IGxpYnJhcnkgd2hpY2ggaXMgYSBzbWFsbCBzdWl0ZSBvZiB1dGlsaXRpZXMgdG8gc2ltdWxhdGUgY29tbW9uIGZlYXR1cmVzIGluIElvbmljIGxpa2UgZmlyaW5nIGN1c3RvbSBJb25pYyBldmVudHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIHByb2plY3QgYWxyZWFkeSBjb21lcyB3aXRoIGEgdGVzdCBmaWxlIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7QXBwLnRzeCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLiBBcyB5b3UgbWF5IGhhdmUgZ3Vlc3NlZCwgdGhlIHRlc3QgZmlsZSBpcyBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtBcHAudGVzdC50c3gmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGZvbGxvd3MgdGhlIGNvbnZlbnRpb24gZm9yIEplc3QgdGVzdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsvLyBzcmMvQXBwLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgQXBwIGZyb20gJnF1b3Q7Li9BcHAmcXVvdDs7Cgp0ZXN0KCZxdW90O3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZyZxdW90OywgKCkgPSZhbXA7Z3Q7IHsKICBjb25zdCB7IGJhc2VFbGVtZW50IH0gPSByZW5kZXIoJmFtcDtsdDtBcHAgLyZhbXA7Z3Q7KTsKICBleHBlY3QoYmFzZUVsZW1lbnQpLnRvQmVEZWZpbmVkKCk7Cn0pOwombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHRlc3Qgc2ltcGx5IGNoZWNrcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiByZW5kZXJzIHByb3Blcmx5IGFuZCBkb2VzIG5vdCBjcmFzaC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBydW4gdGhpcyB0ZXN0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBpbnZva2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2plc3QmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gcnVuIHRoZSB0ZXN0IGRlZmluZWQgaW4gdGhlIGZpbGUuIEFzIGRpcmVjdGVkLCBwcmVzcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDthJmx0Oy9jb2RlJmd0OyB0byBydW4gYWxsIHRlc3RzLiBUaGUgYWJvdmUgY29tbWFuZCBpcyB0aGUgY29tbWFuZCB3ZSB3aWxsIGJlIHVzaW5nIHRvIHJ1biBhbGwgdGVzdHMgaW4gb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgbGV04oCZcyBhZGQgc29tZSB0ZXN0cyBvZiBvdXIgb3duLiBXZSB3aWxsIGJlIGNyZWF0aW5nIGEgdGVzdCBmaWxlIHRvIHRlc3QgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIHdlIGhhdmUgaW4gb3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlIHdoaWNoIGhvdXNlcyBvdXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRlc3QudHN4Jmx0Oy9jb2RlJmd0OyBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyLiBJdOKAmXMgdGhlIHNhbWUgcGxhY2UgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VGFiMS50c3gmbHQ7L2NvZGUmZ3Q7IGZpbGUgaXMgbG9jYXRlZC4gSW5zaWRlIHRoZSBuZXdseSBjcmVhdGVkIGZpbGUsIHBsYWNlIGluIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgVGFiMSBmcm9tICZxdW90Oy4vVGFiMSZxdW90OzsKCnRlc3QoJnF1b3Q7UGFnZSB0aXRsZSBpcyBUYXNrIE1hbmFnZXImcXVvdDssIGFzeW5jICgpID0mYW1wO2d0OyB7CiAgY29uc3QgeyBmaW5kQnlUZXh0IH0gPSByZW5kZXIoJmFtcDtsdDtUYWIxIC8mYW1wO2d0Oyk7CiAgYXdhaXQgZmluZEJ5VGV4dCgmcXVvdDtUYXNrIE1hbmFnZXImcXVvdDspOwp9KTsKCnRlc3QoJnF1b3Q7V2hlbiB0aGVyZSBhcmUgbm8gVGFza3MsIGluZm9ybSB0aGUgdXNlciB0aGF0IG5vIHRhc2tzIGhhdmUgYmVlbiBjcmVhdGVkJnF1b3Q7LCBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IHsgZmluZEJ5VGV4dCB9ID0gcmVuZGVyKCZhbXA7bHQ7VGFiMSAvJmFtcDtndDspOwogIGF3YWl0IGZpbmRCeVRleHQoJnF1b3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmcXVvdDspOwp9KTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBmaWxlLCB3ZSBoYXZlIGFkZGVkIHR3byB0ZXN0cy4gVGhlIGZpcnN0IHRlc3QgY2hlY2tzIGlmIG91ciBwYWdlIGRpc3BsYXlzIHdpdGggdGhlIGNvcnJlY3QgdGl0bGUgd2hpY2ggaXMgJmx0O3N0cm9uZyZndDtUYXNrIE1hbmFnZXImbHQ7L3N0cm9uZyZndDsuIFRoZSBzZWNvbmQgdGVzdCBjaGVja3MgaWYgb3VyIGFwcGxpY2F0aW9uIGluaXRpYWxseSBsb2FkcyB3aXRob3V0IHRhc2tzLCBhbmQgaWYgaXQgZG9lcywgaXQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgJmx0O3N0cm9uZyZndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3csIGxldOKAmXMgcnVuIHRoZXNlIHRlc3RzIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGF0IHRoZSByb290IG9mIG91ciBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSBhIHNjcmVlbiBzaW1pbGFyIHRvIHRoZSBvbmUgYmVsb3cgb24geW91ciBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi10ZXN0cy1sb2NhbC1ydW4ucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIG91ciB0ZXN0cyBydW5uaW5nIGFzIGV4cGVjdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBdXRvbWF0aW5nIG91ciB0ZXN0aW5nJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBmaW5hbCB0YXNrIGlzIHRvIGF1dG9tYXRlIG91ciBjb250aW51b3VzIGludGVncmF0aW9uIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhhdCwgd2Ugd2lsbCBiZSBkb2luZyB0aGUgZm9sbG93aW5nOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QWRkIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgdG8gb3VyIHByb2plY3QgdG8gc2V0IHVwIGEgQ0kgcGlwZWxpbmUgb24gQ2lyY2xlQ0kmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIG91ciBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG9zaXRvcnkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDcmVhdGUgYSBDaXJjbGVDSSBwcm9qZWN0IGZvciBvdXIgYXBwbGljYXRpb24mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtSdW4gdGhlIENJIHBpcGVsaW5lIG9uIENpcmNsZUNJJmx0Oy9saSZndDsKJmx0Oy9vbCZndDsKCiZsdDtwJmd0O0xldOKAmXMgZ2V0IHRvIGl0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZpcnN0LCBsZXTigJlzIGFkZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3Igb3VyIENJIHBpcGVsaW5lIHRvIG91ciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLiBJbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbmZpZy55bWwmbHQ7L2NvZGUmZ3Q7IGZpbGUsIGVudGVyIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpqb2JzOgogIGJ1aWxkOgogICAgd29ya2luZ19kaXJlY3Rvcnk6IH4vcmVwbwogICAgZG9ja2VyOgogICAgICAtIGltYWdlOiBjaW1nL25vZGU6MTIuMTYKICAgIHN0ZXBzOgogICAgICAtIGNoZWNrb3V0CiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdXBkYXRlLW5wbQogICAgICAgICAgY29tbWFuZDogJnF1b3Q7c3VkbyBucG0gaW5zdGFsbCAtZyBucG1ANSZxdW90OwogICAgICAtIHJlc3RvcmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgLSBydW46CiAgICAgICAgICBuYW1lOiBpbnN0YWxsLXBhY2thZ2VzCiAgICAgICAgICBjb21tYW5kOiBucG0gaW5zdGFsbAogICAgICAtIHNhdmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgICAgIHBhdGhzOgogICAgICAgICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdGVzdAogICAgICAgICAgY29tbWFuZDogbnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgY29uZmlndXJhdGlvbiBwdWxscyBpbiBhIE5vZGUuanMgaW1hZ2UgYW5kIGluc3RhbGxzIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGRlZmluZWQgaW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0Oy4gT25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCB0aGUgdGVzdCBzY3JpcHQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bnBtIHJ1biB0ZXN0Jmx0Oy9jb2RlJmd0OyBpcyB0aGVuIGV4ZWN1dGVkIHRvIHJ1biBhbGwgdGhlIHRlc3RzIGluIG91ciBhcHBsaWNhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGdvb2QgdG8gZ28uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY29tbWl0IGFsbCB5b3VyIGNoYW5nZXMgYW5kIHB1c2ggdGhlIHByb2plY3QgdG8gYSBHaXRIdWIgcmVwb3NpdG9yeSBvbiB0aGUgR2l0SHViIGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgQ2lyY2xlQ0kgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIGlzIHRvIHNldCB1cCB0aGUgcmVwb3NpdG9yeSBmb3Igb3VyIHByb2plY3QgYXMgYSBDaXJjbGVDSSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBDaXJjbGVDSSBjb25zb2xlLCBnbyB0byB0aGUgJmx0O3N0cm9uZyZndDtBZGQgUHJvamVjdHMmbHQ7L3N0cm9uZyZndDsgcGFnZSB0byBhZGQgdGhlIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtcHJvamVjdC5wbmcmcXVvdDsgYWx0PSZxdW90O0FkZCBQcm9qZWN0JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0Oy4gVGhpcyB3aWxsIGxvYWQgdGhlIG5leHQgc2NyZWVuLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3N0YXJ0LWJ1aWxkaW5nMS5wbmcmcXVvdDsgYWx0PSZxdW90O1N0YXJ0IEJ1aWxkaW5nIC0gQ29uZmlnIHNhbXBsZSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBzZXR1cCBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7LiBCZWZvcmUgdGhlIGJ1aWxkIHN0YXJ0cywgeW91IGdldCBhIHByb21wdCB0byBlaXRoZXIgZG93bmxvYWQgYW5kIHVzZSB0aGUgcHJvdmlkZWQgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBoYXZlIGl0IG9uIGEgc2VwYXJhdGUgYnJhbmNoIG9yIHNldCB1cCBvbmUgbWFudWFsbHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzIucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIEFkZCBtYW51YWxseSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1NlbGVjdCAmbHQ7c3Ryb25nJmd0O0FkZCBNYW51YWxseSZsdDsvc3Ryb25nJmd0OyB0byBwcm9jZWVkLiBUaGlzIHdpbGwgcHJvbXB0IGFub3RoZXIgZGlhbG9nIHRoYXQgY2hlY2tzIHRvIGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXQgdXAgdG8gYmVnaW4gYnVpbGRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzMucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIENvbmZpcm0gY29uZmlndXJhdGlvbiZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsgdG8gY29tcGxldGUgdGhlIHNldHVwLiBUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgcGlwZWxpbmUgdXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBvdXIgcHJvamVjdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGUgYnVpbGQgaXMgZG9uZSBydW5uaW5nLCB5b3Ugd2lsbCBnZXQgYSBzdWNjZXNzZnVsIGJ1aWxkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtc3VjY2Vzc2Z1bC5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHN1Y2Nlc3NmdWwmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O2J1aWxkJmx0Oy9zdHJvbmcmZ3Q7IHRvIHNlZSB0aGUgYmVoaW5kLXRoZS1zY2VuZXMgcHJvY2VzcyhJIGhhdmUgY29sbGFwc2VkIHRoZSAmbHQ7ZW0mZ3Q7dGVzdCZsdDsvZW0mZ3Q7IHN0ZXApLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtcHJvY2Vzcy5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHByb2Nlc3MmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBzY3JlZW4sIG91ciBwcm9qZWN0IGlzIHByb3Blcmx5IHNldCB1cCBhbmQgYWxsIG91ciB0ZXN0cyBhcmUgcnVubmluZyBmaW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgYXMgeW91IGRldmVsb3AsIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgbW9yZSBmZWF0dXJlcywgYWRkIHRlc3RzIHRvIHRoZW0gYW5kIHB1c2ggdG8gR2l0SHViLiBPbmNlIHlvdSBwdXNoLCB0aGUgQ0kgcGlwZWxpbmUgd2lsbCBydW4gYW5kIGFsbCB5b3VyIHRlc3RzIHdpbGwgYmUgZXhlY3V0ZWQuIElmIGFueSB0ZXN0IGZhaWxzLCB5b3VyIGJ1aWxkIHdpbGwgZmFpbCB3aGljaCB3aWxsIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbiB0byBiZSBmaXhlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW914oCZcmUgbm90IHB1c2hpbmcgYW55IGJ1Z3MgaW50byB5b3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIHRoaXMgYXJ0aWNsZSwgd2UgaGF2ZSBzZXQgdXAgYW4gYXV0b21hdGVkIENJIHBpcGVsaW5lIGZvciBvdXIgSW9uaWMgYXBwbGljYXRpb25zIHRvIGltcHJvdmUgb3VyIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGF1dG9tYXRpbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4gSGF2aW5nIGEgQ0kgcGlwZWxpbmUgdGhhdCBwcm9wZXJseSBydW5zIG91ciB0ZXN0cyBwcm90ZWN0cyB1cyBhZ2FpbnN0IG91cnNlbHZlcyBieSBlbnN1cmluZyB0aGF0IHdlIGRvbuKAmXQgZW5kIHVwIHdpdGggYnJva2VuIGFwcGxpY2F0aW9ucyBvciB0aGF0IHdlIGRvbuKAmXQgcHVzaCBidWdneSBjb2RlIHRvIG91ciB0ZWFt4oCZcyByZXBvc2l0b3J5IHdoaWxlIHdvcmtpbmcgdG9nZXRoZXIgb24gYSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyA6KSZsdDsvcCZndDsKCiZsdDtociAvJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3R3aXR0ZXIuY29tL2NvZGVyb25mbGVlaz9sYW5nPWVuJnF1b3Q7Jmd0O0Zpa2F5byZsdDsvYSZndDsgaXMgYSBmdWxsc3RhY2sgZGV2ZWxvcGVyIGFuZCBhdXRob3Igd2l0aCBvdmVyIGEgZGVjYWRlIG9mIGV4cGVyaWVuY2UgZGV2ZWxvcGluZyB3ZWIgYW5kIG1vYmlsZSBzb2x1dGlvbnMuIEhlIGlzIGN1cnJlbnRseSB0aGUgU29mdHdhcmUgTGVhZCBhdCBUZWNoIFNwZWNpYWxpc3QgQ29uc3VsdGluZyBhbmQgZGV2ZWxvcHMgY291cnNlcyBmb3IgUGFja3QgYW5kIFVkZW15LiBIZSBoYXMgYSBzdHJvbmcgcGFzc2lvbiBmb3IgdGVhY2hpbmcgYW5kIGhvcGVzIHRvIGJlY29tZSBhIGZ1bGwtdGltZSBhdXRob3IuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5EcmF3biBPdXQgQ29udmVyc2F0aW9ucywgZmVhdHVyaW5nIENpcmNsZUNJIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlciwgUGF0IFNoaWVsZHM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZHJhd24tb3V0LWNvbnZlcnNhdGlvbi1mZWF0dXJpbmctY2lyY2xlY2ktcHJpbmNpcGFsLXNvZnR3YXJlLWVuZ2luZWVyLXBhdC1zaGllbGRzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5GcmksIDE1IE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RyYXduLW91dC1jb252ZXJzYXRpb24tZmVhdHVyaW5nLWNpcmNsZWNpLXByaW5jaXBhbC1zb2Z0d2FyZS1lbmdpbmVlci1wYXQtc2hpZWxkcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Db3JleSBMZXdpczwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtPbiB0aGlzIGVwaXNvZGUgb2YgRHJhd24gT3V0IENvbnZlcnNhdGlvbnMsIHdlIHRhbGsgYWJvdXQgc29tZXRoaW5nIG5lYXIgYW5kIGRlYXIgdG8gb3VyIGhlYXJ0cyDigJMgQ2lyY2xlQ0kuIFdlLCBhbG9uZyB3aXRoIGh1bmRyZWQgb2YgdGhvdXNhbmRzIG9mIG90aGVyIGRldmVsb3BlcnMgYXQgY29tcGFuaWVzIGxpa2UgU3BvdGlmeSwgRmFjZWJvb2ssIEZvcmQgYW5kIEFldG5hLCB1c2UgQ2lyY2xlQ0kgZXZlcnkgZGF5IHRvIG1ha2Ugc3VyZSB0aGF0IHdl4oCZcmUgZGVwbG95aW5nIHF1YWxpdHkgY29kZSwgYW5kIGJ1aWxkaW5nIGVmZmljaWVuY2llcyBpbnRvIG91ciBlbmdpbmVlcmluZyBwcm9jZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0LCB3aGF0IGV4YWN0bHkgaXMgdW5kZXJuZWF0aCBvdXIgcGxhdGZvcm3igJlzIGhvb2Q/Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Sm9pbiBvdXIgQ1RPIFJvYiBadWJlciBhcyBoZSBob3N0cyBDaXJjbGVDSeKAmXMgUHJpbmNpcGFsIFNvZnR3YXJlIEVuZ2luZWVyIFBhdCBTaGllbGRzIHRvIGRpc2N1c3MgdGhlIGlubmVyLXdvcmtpbmdzIG9mIG91ciB0ZWNobm9sb2d5IGFuZCBwbGF0Zm9ybS4gVGhleSBkaXNjdXNzIGV2ZXJ5dGhpbmcgZnJvbSBwcm9kdWN0IGZlYXR1cmVzIHRvIGFyY2hpdGVjdHVyZSBhbmQgdGFsayBhYm91dCBob3cgYW5kIHdoeSB0aGUgY29yZSBlbGVtZW50cyBvZiBvdXIgcGxhdGZvcm0gZ290IGJ1aWx0LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3JvYi1wYXQucG5nJnF1b3Q7IGFsdD0mcXVvdDtyb2ItcGF0LnBuZyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1JvYiBldmVuIHRha2VzIGEgdHVybiB3aXRoIHRoZSBtYXJrZXJzIHRvIGRpc2N1c3MgZG9tYWluLWRyaXZlbiBkZXNpZ24sIGF1dGhlbnRpY2F0aW9uIGFuZCBtb3JlLiBMZWFybiBldmVyeXRoaW5nIHlvdSBldmVyIHdhbnRlZCB0byBrbm93IGFib3V0IENpcmNsZUNJIGFuZCBtb3JlIGluIHRvZGF54oCZcyBjb252ZXJzYXRpb24uJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXImcXVvdDsmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3lvdXR1LmJlL1dMOVJRNmZNbGUwJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvY2lyY2xlY2kuZ2lmJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsKICAmbHQ7L2EmZ3Q7CgombHQ7YnIgLyZndDsKCiAgJmx0O3AmZ3Q7CiAgICAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8veW91dHUuYmUvV0w5UlE2Zk1sZTAmcXVvdDsgc3R5bGU9JnF1b3Q7Y29sb3I6IzAwMDBFRTsmcXVvdDsmZ3Q7CiAgICAgIFdhdGNoIHRoZSBmdWxsIHZpZGVvIGhlcmUKICAgICZsdDsvYSZndDsKICAmbHQ7L3AmZ3Q7CiZsdDsvZGl2Jmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZG8gSSB1c2UgSW5mcmFzdHJ1Y3R1cmUgYXMgQ29kZT88L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWRvLWktaWFjLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE1heSAyMDIwIDEyOjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2hvdy1kby1pLWlhYy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5BbmdlbCBSaXZlcmE8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7SW5mcmFzdHJ1Y3R1cmUgYXMgY29kZSAoSWFDKSBpcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBhbmQgcHJvdmlzaW9uaW5nIGNsb3VkIGFuZCBJVCByZXNvdXJjZXMgdmlhIG1hY2hpbmUgcmVhZGFibGUgZGVmaW5pdGlvbiBmaWxlcyBhbmQgaXMgYSBwYXJ0IG9mIG1vZGVybiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lcy4gSWFDIGVuYWJsZXMgb3JnYW5pemF0aW9ucyB0byBwcm92aXNpb24sIG1hbmFnZSwgYW5kIGRlc3Ryb3kgY29tcHV0ZSByZXNvdXJjZXMgdXNpbmcgbW9kZXJuIERldk9wcyB0b29scy4gSWFDIGVuYWJsZXMgdGhpcyBieSBzdGF0aWNhbGx5IGRlZmluaW5nIGFuZCBkZWNsYXJpbmcgdGhlc2UgcmVzb3VyY2VzIGluIGNvZGUsIHRoZW4gZGVwbG95aW5nIGFuZCBkeW5hbWljYWxseSBtYWludGFpbmluZyB0aGVzZSByZXNvdXJjZXMgdmlhIGNvZGUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gcmVjZW50IGludGVyYWN0aW9ucyB3aXRoIGRldmVsb3BlcnMsIEnigJl2ZSByZWFsaXplZCB0aGF0IG1hbnkgYXJlIGVpdGhlciBub3QgYXdhcmUgb2YgSWFDLCBvciBhcmUgYXdhcmUgYnV0IGhhdmUgYWJhbmRvbmVkIHRoZWlyIGluaXRpYWwgZWZmb3J0cyBiZWNhdXNlIHJhbXBpbmcgdXAgd2FzIHRvbyBjdW1iZXJzb21lLiBJbiB0aGlzIHBvc3QsIEkgd2lsbCBkaXNjdXNzIHRoZSBiZW5lZml0cyBvZiBJYUMgYW5kIHNvbWUgb2YgdGhlIHRvb2xpbmcgb3B0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgYWxvbmcgd2l0aCBhIGJyaWVmIGRlbW9uc3RyYXRpb24gb24gaG93IHRvIHVzZSB0aGVtIGluIGhvcGVzIG9mIGVhc2luZyB0aGUgdHJhbnNpdGlvbiB0byB1c2luZyBJYUMuIEkgd2lsbCBmb2N1cyBvbiB0aGUgdHdvIG1vc3QgcG9wdWxhciBJYUMgdG9vbHMgdXNlZCBpbiB0aGUgaW5kdXN0cnkgdG9kYXk6ICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cudGVycmFmb3JtLmlvLyZxdW90OyZndDtIYXNoaUNvcnDigJlzIFRlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtCZWZvcmUgeW91IGdldCBzdGFydGVkLCB5b3XigJlsbCBuZWVkIHRvIGhhdmUgdGhlc2UgdGhpbmdzOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9mcmVlJnF1b3Q7Jmd0O0dvb2dsZSBDbG91ZCZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NyZWF0ZSBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3Jlc291cmNlLW1hbmFnZXIvZG9jcy9jcmVhdGluZy1tYW5hZ2luZy1wcm9qZWN0cyNjcmVhdGluZ19hX3Byb2plY3QmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIHByb2plY3QmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FwcC5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkgQVBJIHRva2VuJmx0Oy9hJmd0OyBhbmQgc2F2ZSBpdCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgbG9jYWwgaW5zdGFsbCBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vc2RrL2RvY3MvcXVpY2tzdGFydHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIFNESyBDTEkmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSBsb2NhbCBpbnN0YWxsIG9mIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaHViLmRvY2tlci5jb20vc2VhcmNoLz90eXBlPWVkaXRpb24mYW1wO2FtcDtvZmZlcmluZz1jb21tdW5pdHkmcXVvdDsmZ3Q7RG9ja2VyIGNsaWVudCZsdDsvYSZndDsmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBHb29nbGUgQ2xvdWQgcHJvamVjdCBjcmVkZW50aWFscyZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDbG91ZFBsYXRmb3JtL2NvbW11bml0eS9ibG9iL21hc3Rlci90dXRvcmlhbHMvZ2V0dGluZy1zdGFydGVkLW9uLWdjcC13aXRoLXRlcnJhZm9ybS9pbmRleC5tZCNnZXR0aW5nLXByb2plY3QtY3JlZGVudGlhbHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIGNyZWRlbnRpYWxzJmx0Oy9hJmd0OyBpbiBvcmRlciB0byBwZXJmb3JtIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgdXNpbmcgSWFDIHRvb2xpbmcuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9hcGlzL2NyZWRlbnRpYWxzL3NlcnZpY2VhY2NvdW50a2V5JnF1b3Q7Jmd0O0NyZWF0ZSBTZXJ2aWNlIEFjY291bnQgS2V5IHBhZ2UmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7U2VsZWN0IHRoZSBkZWZhdWx0IHNlcnZpY2UgYWNjb3VudCBvciBjcmVhdGUgYSBuZXcgb25lLCBzZWxlY3QgSlNPTiBhcyB0aGUga2V5IHR5cGUsIGFuZCBjbGljayAmbHQ7c3Ryb25nJmd0O0NyZWF0ZSZsdDsvc3Ryb25nJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O1NhdmUgdGhpcyBKU09OIGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgYW5kIHJlbmFtZSB0aGUgZmlsZSB0byAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaWNkX2RlbW9fZ2NwX2NyZWRzLmpzb24mbHQ7L2NvZGUmZ3Q7LiBUaGlzIGlzICZsdDtzdHJvbmcmZ3Q7dmVyeSBpbXBvcnRhbnQmbHQ7L3N0cm9uZyZndDsgZm9yIGVuYWJsaW5nIHRoZSBHb29nbGUgQ2xvdWQgQ0xJIGluIHRoZSBjb250YWluZXIgbGF0ZXIgb24mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBhIFB1bHVtaSBBUEkgdG9rZW4mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7WW91IHdpbGwgbmVlZCB0byBnZXQgYSBQdWx1bWkgQVBJIHRva2VuIHRvIHN0b3JlIHlvdXIgcHJvamVjdCBzdGF0ZSBvbiBQdWx1bWnigJlzIGJhY2tlbmQgY2xvdWQuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vYXBwLnB1bHVtaS5jb20vJnF1b3Q7Jmd0O2FwcC5wdWx1bWkuY29tLyZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1NlbGVjdCBhbiBPcmdhbml6YXRpb24mbHQ7L3N0cm9uZyZndDsgb24gdGhlIHVwcGVyIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSBhbmQgc2VsZWN0IHlvdXIgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O0FjY2VzcyBUb2tlbnMmbHQ7L3N0cm9uZyZndDsgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7TmV3IEFjY2VzcyBUb2tlbiZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7Q3JlYXRlJmx0Oy9zdHJvbmcmZ3Q7IGFuZCBzYXZlIHRoZSBuZXcgQVBJIHRva2VuIHRoYXQgd2FzIGNyZWF0ZWQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemUgeW91ciBQdWx1bWkgcHJvamVjdCBsYXRlciZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7aDImZ3Q7RG9ja2VyIHB1bGwgSWFDMTAxIERvY2tlciBpbWFnZSZsdDsvaDImZ3Q7CgombHQ7cCZndDtBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlZCBhbmQgeW914oCZcmUgcmVhZHkgdG8gcHVsbCB0aGUgZG9ja2VyIGltYWdlIGZvciB0aGlzIHdvcmtzaG9wLiBJbiB0ZXJtaW5hbCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBwdWxsIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm93IGhhdmUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2FyaXYzcmEvaWFjMTAxJmx0Oy9jb2RlJmd0OyBkb2NrZXIgaW1hZ2UgbG9jYWxseS4gWW91IGNhbiB2ZXJpZnkgYnV5IHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgYW5kIHlvdSBzaG91bGQgc2VlIHRoZSBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0RvY2tlciBydW4gSWFDMTAxIGNvbnRhaW5lciZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgd2XigJlsbCBjcmVhdGUgYSBuZXcgRG9ja2VyIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YXJpdjNyYS9pYWMxMDEmbHQ7L2NvZGUmZ3Q7IGltYWdlIHdoaWNoIGhhcyBhbGwgdGhlIElhQyB0b29scyBhbmQgY29kZSBwcmUtYmFrZWQuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O01vdW50aW5nIHRoZSAvLmNvbmZpZy9nY2xvdWQvIGRpcmVjdG9yeSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtCZWZvcmUgcnVubmluZyB0aGUgbmV3IGNvbnRhaW5lciB5b3UgbmVlZCB0aGUgYWJzb2x1dGUgcGF0aCB0byB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkuIE9uIG15IE1hY09TIG1hY2hpbmUsIG15IGFic29sdXRlIHBhdGggaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7L1VzZXJzL2FuZ2VsLy5jb25maWcvZ2Nsb3VkLyZsdDsvY29kZSZndDsuIEJlIHN1cmUgdG8gZ2V0IHlvdXIgYWJzb2x1dGUgZmlsZSBwYXRoIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2Nsb3VkJmx0Oy9jb2RlJmd0OyBkaXJlY3Rvcnkgb24geW91ciBsb2NhbCBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtSdW4gSWFDMTAxIGNvbnRhaW5lciB3aXRoIG1vdW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtSdW4gdGhpcyBjb21tYW5kIGluIGEgdGVybWluYWwgcnVuIGJ1dCBiZSBzdXJlIHRvIHJlcGxhY2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0OyZsdDsvY29kZSZndDsgYml0IHdpdGggeW91ciBhY3R1YWwgYWJzb2x1dGUgcGF0aCB0byB5b3VyIGxvY2FsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dsb2N1ZC8mbHQ7L2NvZGUmZ3Q7ZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtaXQgLS1uYW1lIGlhY3Rlc3QgLS1tb3VudCB0eXBlPWJpbmQsc291cmNlPSZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0Oy5jb25maWcvZ2Nsb3VkLyx0YXJnZXQ9L3Jvb3QvLmNvbmZpZy9nY2xvdWQvIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJYUMxMDEgY29udGFpbmVyIGlzIHJ1bm5pbmcmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGUgcHJldmlvdXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgeW91ciBJYUMxMDEgY29udGFpbmVyIHdpbGwgYmUgdXAgYW5kIHJ1bm5pbmcgYW5kIHlvdXIgdGVybWluYWwgc2hlbGwgaGFzIGRyb3BwZWQgeW91IGludG8gdGhlIHJ1bm5pbmcgY29udGFpbmVyLiBFdmVyeSBjb21tYW5kIHlvdSBydW4gaW4geW91ciB0ZXJtaW5hbCBzaGVsbCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBEb2NrZXIgY29udGFpbmVyIGZyb20gbm93IG9uIHVudGlsIHlvdSBtYW51YWxseSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtleGl0Jmx0Oy9jb2RlJmd0OyB0aGUgY29udGFpbmVyLiBUaGUgY29udGFpbmVyIGhhcyB0aGUgVGVycmFmb3JtIGFuZCBQdWx1bWkgQ0xJIHRvb2xzIGluc3RhbGxlZCwgYXMgd2VsbCBhcyBleGFtcGxlIGNvZGUgZm9yIGVhY2ggdGhhdCBjcmVhdGVzIGluZnJhc3RydWN0dXJlIGluIHRoZWlyIHJlc3BlY3RpdmUgdG9vbHMuIFRoZSBjb250YWluZXIgcHJvamVjdHMgZmlsZXMgYXJlIG1hcHBlZCBhcyBmb2xsb3dzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHJvamVjdHMvCnxfIHRlcnJhZm9ybS9nY3AvY29tcHV0ZS8gICAjIENvbnRhaW5zIHRoZSBUZXJyYWZvcm0gY29kZSBmaWxlcwp8XyBwdWx1bWkvZ2NwL2NvbXB1dGUvICAgICAgIyBDb250YWlucyB0aGUgUHVsdW1pIGNvZGUgZmlsZXMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gyJmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2EmZ3Q7IGlzIGEgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgYnVpbGRpbmcsIGNoYW5naW5nLCBhbmQgdmVyc2lvbmluZyBpbmZyYXN0cnVjdHVyZSBzYWZlbHkgYW5kIGVmZmljaWVudGx5LiBUZXJyYWZvcm0gY2FuIG1hbmFnZSBleGlzdGluZyBzZXJ2aWNlIHByb3ZpZGVycyBhcyB3ZWxsIGFzIGN1c3RvbSBpbi1ob3VzZSBzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q29uZmlndXJhdGlvbiBmaWxlcyBkZXNjcmliZSB0aGUgY29tcG9uZW50cyBuZWVkZWQgdG8gcnVuIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yIHlvdXIgZW50aXJlIGRhdGFjZW50ZXIgb24gVGVycmFmb3JtLiBUZXJyYWZvcm0gZ2VuZXJhdGVzIGFuIGV4ZWN1dGlvbiBwbGFuIGRlc2NyaWJpbmcgd2hhdCBpdCB3aWxsIGRvIHRvIHJlYWNoIHRoZSBkZXNpcmVkIHN0YXRlLCBhbmQgdGhlbiBleGVjdXRlcyBpdCB0byBidWlsZCB0aGUgZGVzY3JpYmVkIGluZnJhc3RydWN0dXJlLiBBcyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBUZXJyYWZvcm0gaXMgYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBjaGFuZ2VkIGFuZCBjcmVhdGUgaW5jcmVtZW50YWwgZXhlY3V0aW9uIHBsYW5zIHdoaWNoIGNhbiBiZSBhcHBsaWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZSBpbmZyYXN0cnVjdHVyZSBUZXJyYWZvcm0gY2FuIG1hbmFnZSBpbmNsdWRlcyBsb3ctbGV2ZWwgY29tcG9uZW50cyBzdWNoIGFzIGNvbXB1dGUgaW5zdGFuY2VzLCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZywgYXMgd2VsbCBhcyBoaWdoLWxldmVsIGNvbXBvbmVudHMgc3VjaCBhcyBETlMgZW50cmllcywgU2FhUyBmZWF0dXJlcywgZXRjLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBUZXJyYWZvcm0mbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCB3aXRoIHByb3Zpc2lvbmluZyBzb21lIHJlc291cmNlcyBpbiBHQ1AgdXNpbmcgVGVycmFmb3JtIGNvZGUuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDttYWluLnRmICZsdDsvY29kZSZndDsgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBjb2RlIHRoYXQgaGFzIG91ciBpbmZyYXN0cnVjdHVyZSBkZWZpbmVkLiBJbiB0aGlzIGZpbGUgd2XigJlyZSBjcmVhdGluZyBhIG5ldyBjb21wdXRlIGluc3RhbmNlIHRoYXQgd2lsbCBpbnN0YWxsIGFuZCBydW4gYSBQeXRob24gRmxhc2sgYXBwIHBhY2thZ2VkIGluIGEgRG9ja2VyIGNvbnRhaW5lci4gVGhlIFRlcnJhZm9ybSBjb2RlIHdpbGwgYWxzbyBjcmVhdGUgc29tZSBmaXJld2FsbCBydWxlcyB0aGF0IHdpbGwgYWxsb3cgcHVibGljIGFjY2VzcyB0byB0aGUgYXBwIG92ZXIgcG9ydCA1MDAwLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHByb3Zpc2lvbiB0aGlzLCBydW4gdGhpcyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NkIH4vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJbml0aWFsaXppbmcgVGVycmFmb3JtJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1doaWxlIGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBydW4gdGhpcyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7dGVycmZvcm0gaW5pdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSByZXN1bHRzIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cm9vdEBkOWNlNzIxMjkzZTI6fi9wcm9qZWN0L3RlcnJhZm9ybS9nY3AvY29tcHV0ZSMgdGVycmFmb3JtIGluaXQKCkluaXRpYWxpemluZyB0aGUgYmFja2VuZC4uLgoKSW5pdGlhbGl6aW5nIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBDaGVja2luZyBmb3IgYXZhaWxhYmxlIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBEb3dubG9hZGluZyBwbHVnaW4gZm9yIHByb3ZpZGVyICZxdW90O2dvb2dsZSZxdW90OyAoaGFzaGljb3JwL2dvb2dsZSkgMy4xMC4wLi4uCgoqIHByb3ZpZGVyLmdvb2dsZTogdmVyc2lvbiA9ICZxdW90O34mYW1wO2d0OyAzLjEwJnF1b3Q7CgpUZXJyYWZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7aDMmZ3Q7UHJldmlld2luZyB3aXRoIFRlcnJhZm9ybSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUZXJyYWZvcm0gaGFzIGEgY29tbWFuZCB0aGF0IGFsbG93cyB5b3UgdG8gZHJ5IHJ1biBhbmQgdmFsaWRhdGUgeW91ciBUZXJyYWZvcm0gY29kZSB3aXRob3V0IGFjdHVhbGx5IGV4ZWN1dGluZyBhbnl0aGluZy4gVGhlIGNvbW1hbmQgaXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybSBwbGFuJmx0Oy9jb2RlJmd0OyB3aGljaCBhbHNvIGdyYXBocyBhbGwgdGhlIGFjdGlvbnMgYW5kIGNoYW5nZXMgdGhhdCBUZXJyYWZvcm0gd2lsbCBleGVjdXRlIGFnYWluc3QgeW91ciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS4gSW4gdGhlIHRlcm1pbmFsIHJ1bjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3RlcnJhZm9ybSBwbGFuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSByZXN1bHRzIHNpbWlsYXIgdG8gdGhpcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0FuIGV4ZWN1dGlvbiBwbGFuIGhhcyBiZWVuIGdlbmVyYXRlZCBhbmQgaXMgc2hvd24gYmVsb3cuClJlc291cmNlIGFjdGlvbnMgYXJlIGluZGljYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKICArIGNyZWF0ZQoKVGVycmFmb3JtIHdpbGwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGFjdGlvbnM6CgogICMgZ29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwuaHR0cC01MDAwIHdpbGwgYmUgY3JlYXRlZAogICsgcmVzb3VyY2UgJnF1b3Q7Z29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwmcXVvdDsgJnF1b3Q7aHR0cC01MDAwJnF1b3Q7IHsKICAgICAgKyBjcmVhdGlvbl90aW1lc3RhbXAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVzdGluYXRpb25fcmFuZ2VzID0gKGtub3duIGFmdGVyIGFwcGx5KQogIH0KCiAgICAjIGdvb2dsZV9jb21wdXRlX2luc3RhbmNlLmRlZmF1bHQgd2lsbCBiZSBjcmVhdGVkCiAgKyByZXNvdXJjZSAmcXVvdDtnb29nbGVfY29tcHV0ZV9pbnN0YW5jZSZxdW90OyAmcXVvdDtkZWZhdWx0JnF1b3Q7IHsKICAgICAgKyBjYW5faXBfZm9yd2FyZCAgICAgICA9IGZhbHNlCiAgICAgICsgY3B1X3BsYXRmb3JtICAgICAgICAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVsZXRpb25fcHJvdGVjdGlvbiAgPSBmYWxzZQogICAgICArIGd1ZXN0X2FjY2VsZXJhdG9yICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGlkICAgICAgICAgICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGluc3RhbmNlX2lkICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVsX2ZpbmdlcnByaW50ICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVscyAgICAgICAgICAgICAgID0gewogICAgICAgICAgKyAmcXVvdDtjb250YWluZXItdm0mcXVvdDsgPSAmcXVvdDtjb3Mtc3RhYmxlLTY5LTEwODk1LTYyLTAmcXVvdDsKICAgICAgICB9CiAgICAgICsgbWFjaGluZV90eXBlICAgICAgICAgPSAmcXVvdDtnMS1zbWFsbCZxdW90OwogIH0KICBQbGFuOiAyIHRvIGFkZCwgMCB0byBjaGFuZ2UsIDAgdG8gZGVzdHJveS4KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgeW91IGNhbiBzZWUsIFRlcnJhZm9ybSBpcyBnb2luZyB0byBjcmVhdGUgbmV3IEdDUCByZXNvdXJjZXMgZm9yIHlvdSBiYXNlZCBvbiB0aGUgY29kZSBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bWFpbi50ZiZsdDsvY29kZSZndDsgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGFwcGx5Jmx0Oy9oMyZndDsKCiZsdDtwJmd0O05vdyB5b3XigJlyZSByZWFkeSB0byBjcmVhdGUgdGhlIG5ldyBpbmZyYXN0cnVjdHVyZSBhbmQgZGVwbG95IHRoZSBhcHBsaWNhdGlvbi4gUnVuIHRoaXMgY29tbWFuZCBpbiB0aGUgdGVybWluYWw6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt0ZXJyYWZvcm0gYXBwbHkKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGVycmFmb3JtIHdpbGwgcHJvbXB0IHlvdSB0byBjb25maXJtIHlvdXIgY29tbWFuZC4gVHlwZSB5ZXMgYW5kIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0RvIHlvdSB3YW50IHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucz8KICBUZXJyYWZvcm0gd2lsbCBwZXJmb3JtIHRoZSBhY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KICBPbmx5ICd5ZXMnIHdpbGwgYmUgYWNjZXB0ZWQgdG8gYXBwcm92ZS4KCiAgRW50ZXIgYSB2YWx1ZTogeWVzCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RlcnJhZm9ybSB3aWxsIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgYW5kIHlvdSB3aWxsIGhhdmUgYW4gYXBwbGljYXRpb24gdXAgYW5kIHJ1bm5pbmcgb24gR0NQIHNob3J0bHkgYWZ0ZXIgaXQgY29tcGxldGVzLiBQbGVhc2Ugbm90ZSB0aGF0IGl0IHdpbGwgdGFrZSAzLTUgbWludXRlcyBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbWUgb25saW5lIGFmdGVyIFRlcnJhZm9ybSBjb21wbGV0ZXMuIEl04oCZcyBub3QgYW4gaW5zdGFudCBwcm9jZXNzIGJlY2F1c2UgdGhlIGJhY2tlbmQgc3lzdGVtcyBhcmUgcHJvdmlzaW9uaW5nIGFuZCBicmluZ2luZyB0aGluZ3Mgb25saW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgZG9uZSwgeW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7bGFuZ3VhZ2Utc2hlbGwgaGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7T3V0cHV0czoKClB1YmxpY19JUF9BZGRyZXNzICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgMzQuNzQuNzUuMTcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1B1YmxpY19JUF9BZGRyZXNzJmx0Oy9jb2RlJmd0OyB2YWx1ZSBpcyB0aGUgSVAgQWRkcmVzcyB0aGF0IHlvdXIgYXBwIGlzIHJ1bm5pbmcgb24sIHNvIGlmIHlvdSBnbyB0byBhIGJyb3dzZXIgYW5kIHBsdWcgdGhhdCBudW1iZXIgaW4gcGx1cyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7OjUwMDAmbHQ7L2NvZGUmZ3Q7IHBvcnQgYWRkcmVzcyAoaXQgd291bGQgbG9vayBsaWtlIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7MzQuNzQuNzUuMTc6NTAwMCZsdDsvY29kZSZndDspIHlvdSB3aWxsIHNlZSB5b3VyIGFwcCBydW5uaW5nIGluIEdDUC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Tm93IHRoYXQgeW91IGhhdmUgcHJvb2YgdGhhdCB5b3VyIEdvb2dsZSBDb21wdXRlIGluc3RhbmNlIGFuZCB5b3VyIGFwcGxpY2F0aW9uIHdvcmssIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gZGVzdHJveSB0aGUgYXNzZXRzIHRoYXQgeW91IGNyZWF0ZWQgaW4gdGhpcyB0dXRvcmlhbC4gWW91IGNhbiBsZWF2ZSBpdCB1cCBhbmQgcnVubmluZywgYnV0IGJlIGF3YXJlIHRoYXQgdGhlcmUgaXMgYSBjb3N0IGFzc29jaWF0ZWQgd2l0aCBhbnkgYXNzZXRzIHJ1bm5pbmcgb24gdGhlIEdvb2dsZSBDbG91ZCBQbGF0Zm9ybSBhbmQgeW91IHdpbGwgYmUgbGlhYmxlIGZvciB0aG9zZSBjb3N0cy4gR29vZ2xlIGdpdmVzIGEgZ2VuZXJvdXMgJDMwMCBjcmVkaXQgZm9yIGl0cyBmcmVlIHRyaWFsIHNpZ24tdXAsIGJ1dCB5b3UgY291bGQgZWFzaWx5IGVhdCB0aHJvdWdoIHRoYXQgaWYgeW91IGxlYXZlIGFzc2V0cyBydW5uaW5nLiBJdOKAmXMgdXAgdG8geW91LCBidXQgcnVubmluZyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0ZXJyYWZvcm0gZGVzdHJveSZsdDsvY29kZSZndDsgd2lsbCB0ZXJtaW5hdGUgYW55IHJ1bm5pbmcgYXNzZXRzLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIEnigJlsbCBkZW1vbnN0cmF0ZSBob3cgdG8gcGVyZm9ybSBpbmZyYXN0cnVjdHVyZSBwcm92aXNpb25pbmcgdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtQdWx1bWkgU0RLJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9wcm9kdWN0LyNzZGsmcXVvdDsmZ3Q7UHVsdW1pIFNESyZsdDsvYSZndDsgaXMgYW4gb3BlbiBzb3VyY2UgZnJhbWV3b3JrIGZvciBkZWZpbmluZyBhbmQgZGVwbG95aW5nIGNsb3VkIGFwcHMgYW5kIElhQy4gUHVsdW1pIGVuYWJsZXMgZGV2ZWxvcGVycyB0byB3cml0ZSBjb2RlIGluIHRoZWlyIGZhdm9yaXRlIGxhbmd1YWdlIHN1Y2ggYXMgVHlwZVNjcmlwdCwgSmF2YVNjcmlwdCwgUHl0aG9uLCBhbmQgR28uIFRoaXMgZW5hYmxlcyBtb2Rlcm4gYXBwcm9hY2hlcyB0byBjbG91ZCBhcHBsaWNhdGlvbnMgYW5kIGluZnJhc3RydWN0dXJlIHdpdGhvdXQgbmVlZGluZyB0byBsZWFybiBhbm90aGVyIFlBTUwgb3IgRFNMIGRpYWxlY3QuIFRoaXMgdW5sb2NrcyBhYnN0cmFjdGlvbnMgYW5kIHJldXNlLCBhcyB3ZWxsIGFzIGFjY2VzcyB0byB5b3VyIGZhdm9yaXRlIElERXMsIHJlZmFjdG9yaW5nLCBhbmQgdGVzdGluZyB0b29scy4gTWFzdGVyIG9uZSB0b29sY2hhaW4gYW5kIHNldCBvZiBmcmFtZXdvcmtzIGFuZCBnbyB0byBhbnkgY2xvdWQgKEFXUywgQXp1cmUsIEdDUCwgb3IgS3ViZXJuZXRlcykgd2l0aCBlYXNlLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBQdWx1bWkmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUgZXhwZXJpZW5jZWQgYnVpbGRpbmcgaW5mcmFzdHJ1Y3R1cmUgdXNpbmcgVGVycmFmb3JtLCBub3cgeW914oCZbGwgbGVhcm4gaG93IHRvIHByb3Zpc2lvbiBhbmQgZGVwbG95IG5ldyBpbmZyYXN0cnVjdHVyZSB1c2luZyBQdWx1bWkuIFRoZSBQdWx1bWkgZXhhbXBsZSB3aWxsIGNyZWF0ZSB0aGUgc2FtZSBHQ1AgcmVzb3VyY2VzIHByZXZpb3VzbHkgdXNpbmcgUHVsdW1pIGNvZGUgYW5kIHRvb2xzLiBQdWx1bWkgZW5hYmxlcyB5b3UgdG8gZGVmaW5lIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgaW4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHdoaWNoIHByb3ZpZGVzIGxvdHMgb2YgZmxleGliaWxpdHkuIEluIHRoaXMgZXhhbXBsZSwgd2XigJlyZSB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vd3d3LnB5dGhvbi5vcmcvJnF1b3Q7Jmd0O1B5dGhvbiZsdDsvYSZndDsgYXMgb3VyIGxhbmd1YWdlLiBUaGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7X19tYWluLnB5X18mbHQ7L2NvZGUmZ3Q7IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC9wdWx1bWkvZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgaXMgd2hlcmUgd2VyZSBnb2luZyB0byBkZWZpbmUgb3VyIGluZnJhc3RydWN0dXJlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlIHN1cmUgdG8gaGF2ZSB5b3VyIFB1bHVtaSBBUEkgdG9rZW4gYXZhaWxhYmxlLiBZb3XigJlsbCBuZWVkIGl0IGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIFB1bHVtaSBleGFtcGxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7fi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGRpcmVjdG9yeS4gUnVuIHRoaXMgY29tbWFuZCB0byBjaGFuZ2UgaW50byB0aGUgUHVsdW1pIGV4YW1wbGUgZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2Qgfi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gzJmd0O0luc3RhbGxpbmcgZGVwZW5kaWVuY2llcyBmb3IgUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1NpbmNlIHdl4oCZcmUgZGVmaW5pbmcgb3VyIElhQyBzcGVjcyB1c2luZyBQeXRob24gd2XigJlsbCBuZWVkIHRvIGZpcnN0IGluc3RhbGwgdGhlIFB1bHVtaSBQeXRob24gU0RLIGRlcGVuZGVuY2llcy4gSW4gdGhlIHRlcm1pbmFsIHJ1biB0aGlzIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtwaXAgaW5zdGFsbCAtciAuLi9yZXF1aXJlbWVudHMudHh0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtQcmV2aWV3aW5nIHdpdGggUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1B1bHVtaSBoYXMgYSBkcnktcnVuIGNvbW1hbmQgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBwcmV2aWV3Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRpc3BsYXlzIGEgcHJldmlldyBvZiB0aGUgdXBkYXRlcyB0byBhbiBleGlzdGluZyBzdGFjayB3aG9zZSBzdGF0ZSBpcyByZXByZXNlbnRlZCBieSBhbiBleGlzdGluZyBzdGF0ZSBmaWxlLiBUaGUgbmV3IGRlc2lyZWQgc3RhdGUgaXMgY29tcHV0ZWQgYnkgcnVubmluZyBhIFB1bHVtaSBwcm9ncmFtLCBhbmQgZXh0cmFjdGluZyBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbnMgZnJvbSBpdHMgcmVzdWx0aW5nIG9iamVjdCBncmFwaC4gVGhlc2UgYWxsb2NhdGlvbnMgYXJlIHRoZW4gY29tcGFyZWQgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc3RhdGUgdG8gZGV0ZXJtaW5lIHdoYXQgb3BlcmF0aW9ucyBtdXN0IHRha2UgcGxhY2UgdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZCBzdGF0ZS4gTm8gY2hhbmdlcyB0byB0aGUgc3RhY2sgd2lsbCBhY3R1YWxseSB0YWtlIHBsYWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGlzIGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHByZXZpZXcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHJlc3VsdHMgcHJvbXB0aW5nIHlvdSBmb3IgdGhlIFB1bHVtaSBBUEkgdG9rZW4geW91IGNyZWF0ZWQgZWFybGllci4gUGFzdGUgdGhlIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLiBBZnRlciB5b3UgcGFzdGUgdGhlIHRva2VuIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O01hbmFnZSB5b3VyIFB1bHVtaSBzdGFja3MgYnkgbG9nZ2luZyBpbi4KUnVuIGBwdWx1bWkgbG9naW4gLS1oZWxwYCBmb3IgYWx0ZXJuYXRpdmUgbG9naW4gb3B0aW9ucy4KRW50ZXIgeW91ciBhY2Nlc3MgdG9rZW4gZnJvbSBodHRwczovL2FwcC5wdWx1bWkuY29tL2FjY291bnQvdG9rZW5zCiAgICBvciBoaXQgJmFtcDtsdDtFTlRFUiZhbXA7Z3Q7IHRvIGxvZyBpbiB1c2luZyB5b3VyIGJyb3dzZXIgICAgICAgICAgICAgICAgICAgOgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1doZW4gcGFzdGluZyB0aGUgQVBJIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLCBubyB2YWx1ZXMgd2lsbCBiZSBkaXNwbGF5ZWQuIEl0IHdpbGwgcmVtYWluIGludmlzaWJsZSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuJmx0Oy9pJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBtYXkgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGEgc3RhY2sgaW4gdGhlIHRlcm1pbmFsLiBJZiBzbywgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkZXYmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB0aGVuIGhpdCBlbnRlci4gWW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UHJldmlld2luZyB1cGRhdGUgKGRldik6CiAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICAgICBQbGFuCiArICAgcHVsdW1pOnB1bHVtaTpTdGFjayAgICAgIGNvbXB1dGUtZGV2ICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6TmV0d29yayAgIG5ldHdvcmsgICAgICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6SW5zdGFuY2UgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJTilIAgZ2NwOmNvbXB1dGU6RmlyZXdhbGwgIGZpcmV3YWxsICAgICAgICAgICAgICAgICAgICBjcmVhdGUKClJlc291cmNlczoKICAgICsgNSB0byBjcmVhdGUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUganVzdCBlbmFibGVkIGFjY2VzcyB0byB0aGUgUHVsdW1pIGJhY2tlbmQgY2xvdWQgd2hpY2gga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXRlIG9mIHlvdXIgaW5mcmFzdHJ1Y3R1cmVzLiBOb3cgeW914oCZcmUgcmVhZHkgdG8gcnVuIHNvbWUgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7UHVsdW1pIHVwJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1RvIGV4ZWN1dGUgdGhlIFB1bHVtaSBjb2RlLCB1c2UgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIHVwJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGNyZWF0ZXMgb3IgdXBkYXRlcyByZXNvdXJjZXMgaW4gYSBzdGFjay4gVGhlIG5ldyBkZXNpcmVkIGdvYWwgc3RhdGUgZm9yIHRoZSB0YXJnZXQgc3RhY2sgaXMgY29tcHV0ZWQgYnkgcnVubmluZyB0aGUgY3VycmVudCBQdWx1bWkgcHJvZ3JhbSBhbmQgb2JzZXJ2aW5nIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9ucyB0byBwcm9kdWNlIGEgcmVzb3VyY2UgZ3JhcGguIFRoaXMgZ29hbCBzdGF0ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIGV4aXN0aW5nIHN0YXRlIHRvIGRldGVybWluZSB3aGF0IGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQvb3IgZGVsZXRlIG9wZXJhdGlvbnMgbXVzdCB0YWtlIHBsYWNlIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgZ29hbCBzdGF0ZSBpbiB0aGUgbW9zdCBtaW5pbWFsbHkgZGlzcnVwdGl2ZSB3YXkuIEFmdGVyd2FyZCwgdGhpcyBjb21tYW5kIHJlY29yZHMgYSBmdWxsIHRyYW5zYWN0aW9uYWwgc25hcHNob3Qgb2YgdGhlIHN0YWNr4oCZcyBuZXcgc3RhdGUgc28gdGhhdCB0aGUgc3RhY2sgbWF5IGJlIHVwZGF0ZWQgaW5jcmVtZW50YWxseSBhZ2FpbiBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgdGVybWluYWwgcnVuOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHVwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1NlbGVjdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7eWVzJmx0Oy9jb2RlJmd0OyBvcHRpb24gYW5kIGhpdCBlbnRlci4gVGhlIFB1bHVtaSBhcHAgd2lsbCBleGVjdXRlLCBhbmQgc2hvcnRseSBhZnRlciB5b3XigJlsbCBoYXZlIGEgY29tcGxldGUgc2VydmVyIHJ1bm5pbmcgYW4gYXBwbGljYXRpb24gb24gR0NQLiBZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtVcGRhdGluZyAoZGV2KToKICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cwogKyAgIHB1bHVtaTpwdWx1bWk6U3RhY2sgICAgICBjb21wdXRlLWRldiAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUnOKUgCBnY3A6Y29tcHV0ZTpOZXR3b3JrICAgbmV0d29yayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGVkCiArICAg4pSc4pSAIGdjcDpjb21wdXRlOkZpcmV3YWxsICBmaXJld2FsbCAgICAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUlOKUgCBnY3A6Y29tcHV0ZTpJbnN0YW5jZSAgd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDEgIGNyZWF0ZWQKCk91dHB1dHM6CiAgICBleHRlcm5hbF9pcCAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICBpbnN0YW5jZV9tZXRhX2RhdGE6IHsKICAgICAgICBnY2UtY29udGFpbmVyLWRlY2xhcmF0aW9uOiAmcXVvdDtzcGVjOlxuICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDFcbiAgICAgIGltYWdlOiBhcml2M3JhL3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxOmxhdGVzdFxuICAgICAgc3RkaW46IGZhbHNlXG4gICAgICB0dHk6IGZhbHNlXG4gIHJlc3RhcnRQb2xpY3k6IEFsd2F5c1xuJnF1b3Q7CiAgICB9CiAgICBpbnN0YW5jZV9uYW1lICAgICA6ICZxdW90O3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxJnF1b3Q7CiAgICBpbnN0YW5jZV9uZXR3b3JrICA6IFsKICAgICAgICBbMF06IHsKICAgICAgICAgICAgYWNjZXNzQ29uZmlncyAgICA6IFsKICAgICAgICAgICAgICAgIFswXTogewogICAgICAgICAgICAgICAgICAgIG5hdElwICAgICAgICAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICAgICAgICAgICAgICAgICAgbmV0d29ya190aWVyICAgICAgIDogJnF1b3Q7UFJFTUlVTSZxdW90OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgOiAmcXVvdDtuaWMwJnF1b3Q7CiAgICAgICAgfQogICAgXQoKUmVzb3VyY2VzOgogICAgKyA1IGNyZWF0ZWQKCkR1cmF0aW9uOiA1OHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlc2UgcmVzdWx0cywgeW914oCZbGwgc2VlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXh0ZXJuYWxfaXAmbHQ7L2NvZGUmZ3Q7IGtleS4gSXTigJlzIHZhbHVlIGlzIHRoZSBJUCBBZGRyZXNzIHRvIHRoZSBwdWJsaWMgZmFjaW5nIGFwcGxpY2F0aW9uIGV4cG9zZWQgb24gcG9ydCA1MDAwLiBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIFRlcnJhZm9ybSBleGFtcGxlLCB5b3UgY2FuIGFjY2VzcyB0aGUgYXBwbGljYXRpb24gaW4gYSBicm93c2VyLiBSZW1lbWJlciB0byBhbGxvdyBmb3IgYSBmZXcgbWludXRlcyBzbyB0aGUgYmFja2VuZCBzeXN0ZW0gY2FuIGJyaW5nIGV2ZXJ5dGhpbmcgb25saW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQdWx1bWkgZGVzdHJveSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtQdWx1bWkgaGFzIGEgY29tbWFuZCB0byB0ZXJtaW5hdGUgYWxsIG9mIHRoZSBjbG91ZCByZXNvdXJjZXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBkZXN0cm95Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRlbGV0ZXMgYW4gZW50aXJlIGV4aXN0aW5nIHN0YWNrIGJ5IG5hbWUuIFRoZSBjdXJyZW50IHN0YXRlIGlzIGxvYWRlZCBmcm9tIHRoZSBhc3NvY2lhdGVkIHN0YXRlIGZpbGUgaW4gdGhlIHdvcmtzcGFjZS4gQWZ0ZXIgcnVubmluZyB0byBjb21wbGV0aW9uLCBhbGwgb2YgdGhpcyBzdGFja+KAmXMgcmVzb3VyY2VzIGFuZCBhc3NvY2lhdGVkIHN0YXRlIHdpbGwgYmUgZ29uZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtSdW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGluIHRoZSB0ZXJtaW5hbCBhbmQgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5ZXMmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB3aGVuIHByb21wdGVkIHRvICZsdDtzdHJvbmcmZ3Q7cGVybWFuZW50bHkmbHQ7L3N0cm9uZyZndDsgZGVzdHJveSB0aGUgR0NQIHJlc291cmNlcyBjcmVhdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O0NvbmdyYXR1bGF0aW9ucyEgWW914oCZdmUganVzdCBsZXZlbGVkIHVwIGFuZCBub3cgaGF2ZSBleHBlcmllbmNlIHByb3Zpc2lvbmluZyBhbmQgZGVwbG95aW5nIGFwcGxpY2F0aW9ucyB0byBHQ1AgdXNpbmcgdGhlIG1vZGVybiBJYUMgdG9vbHMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O1RlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4gVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2lsbCBoZWxwIHlvdSBleHBhbmQgeW91ciBrbm93bGVkZ2UgZnJvbSBoZXJlOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9jbGktaW5kZXguaHRtbCZxdW90OyZndDtUZXJyYWZvcm0gR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9kb2NzL2dldC1zdGFydGVkLyZxdW90OyZndDtQdWx1bWkgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS9vcmIvcHVsdW1pL3B1bHVtaSZxdW90OyZndDtQdWx1bWkgb3JiIGZvciBDaXJjbGVDSSZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyZxdW90OyZndDtEb2NrZXIgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm0vY29tbXVuaXR5L2Jsb2IvbWFzdGVyL3R1dG9yaWFscy9nZXR0aW5nLXN0YXJ0ZWQtb24tZ2NwLXdpdGgtdGVycmFmb3JtL2luZGV4Lm1kI2dldHRpbmctcHJvamVjdC1jcmVkZW50aWFscyZxdW90OyZndDtHb29nbGUgQ2xvdWQgUGxhdGZvcm0mbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogICAgICAKICAgICAgPGl0ZW0+CiAgICAgICAgPHRpdGxlPkEgbG9vayBhdCBDaXJjbGVDSeKAmXMgaW5kdXN0cnktbGVhZGluZyBzdXBwb3J0IGZvciB0cmFuc2l0aW9uLXJlbGF0ZWQgbWVkaWNhbCBsZWF2ZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hLWxvb2stYXQtY2lyY2xlY2ktcy1pbmR1c3RyeS1sZWFkaW5nLXN1cHBvcnQtZm9yLXRyYW5zaXRpb24tcmVsYXRlZC1tZWRpY2FsLWxlYXZlLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5XZWQsIDEzIE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2EtbG9vay1hdC1jaXJjbGVjaS1zLWluZHVzdHJ5LWxlYWRpbmctc3VwcG9ydC1mb3ItdHJhbnNpdGlvbi1yZWxhdGVkLW1lZGljYWwtbGVhdmUvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RWxpemFiZXRoIEJlbGw8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7T25lIG9mIHRoZSBncmVhdCB0aGluZ3MgYWJvdXQgd29ya2luZyBhdCBDaXJjbGVDSSBpcyB0aGF0IHRoZSBjb21wYW55IGJlbGlldmVzIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGJlIGFibGUgdG8gYmUgdGhlaXIgd2hvbGUgc2VsZiBhdCB3b3JrLiBJbmNsdXNpdml0eSwgZGVtb25zdHJhdGluZyB0cnVzdCBhbmQgcmVzcGVjdCwgYW5kIG1ha2luZyBzdXJlIGV2ZXJ5b25lIGhhcyB0aGUgdG9vbHMgYW5kIHN1cHBvcnQgdGhleSBuZWVkIGFyZSBhbGwgYnVyaWVkIGRlZXAgaW4gdGhlIGN1bHR1cmUgaGVyZSDigJMgaXQgaXMgYSBiaWcgcGFydCBvZiBob3cgd2UgZGVsaXZlciB0aGUgYmVzdCB2YWx1ZSBmb3Igb3VyIGN1c3RvbWVycy4gV2l0aCB0aGF0IGluIG1pbmQsIHRoZSBjb21wYW55IHJlY2VudGx5IHJvbGxlZCBvdXQgYSBuZXcgaGVhbHRoY2FyZSBwb2xpY3kgZm9yIG91ciB0cmFuc2dlbmRlciBjby13b3JrZXJzLiBJbiBhIGZpcnN0IGZvciBjb21wYW5pZXMgaW4gdGhlIENJL0NEIHNwYWNlLCBDaXJjbGVDSSBub3cgb2ZmZXJzIGZ1bGx5LWNvbXBlbnNhdGVkIHBhaWQgbGVhdmUgZm9yIGVtcGxveWVlcyByZWNvdmVyaW5nIGZyb20gdHJhbnNpdGlvbi1yZWxhdGVkIG1lZGljYWwgcHJvY2VkdXJlcy4gVGhpcyBwb2xpY3kgaXMgYW4gZXh0cmVtZWx5IGltcG9ydGFudCBhZGRpdGlvbiB0byBDaXJjbGVDSeKAmXMgYmVuZWZpdHMgcGFja2FnZSBhbmQgYW5vdGhlciBleGFtcGxlIG9mIHRoZSBjb21wYW554oCZcyBkZWRpY2F0aW9uIHRvIHRoZSB3ZWxsLWJlaW5nIG9mIGFsbCBlbXBsb3llZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VHJhbnNpdGlvbiBpcyBhbiBpbW1lbnNlbHkgc3RyZXNzZnVsIHByb2Nlc3MsIGFuZCB0aGUgbWVkaWNhbCBwcm9jZWR1cmVzIHJlcXVpcmVkIHRvIHRyZWF0IHRoZSBkeXNwaG9yaWEgZXhwZXJpZW5jZWQgYnkgc29tZSB0cmFuc2dlbmRlciBwZW9wbGUgb2Z0ZW4gbmVlZCBhIHZlcnkgY2FyZWZ1bCBhcHByb2FjaCB0byByZWNvdmVyeS4mbHQ7L3AmZ3Q7CgombHQ7YmxvY2txdW90ZSZndDsKICAmbHQ7cCZndDtUaGUgZ29hbCBvZiB0aGUgcG9saWN5IGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRyYW5zZ2VuZGVyIGVtcGxveWVlcyBmZWVsIHN1cHBvcnRlZCBkdXJpbmcgdGhpcyBkaWZmaWN1bHQgdGltZSwgYW5kIGJ5IGVuc3VyaW5nIHRoYXQgdHJhbnNnZW5kZXIgZW1wbG95ZWVzIGhhdmUgYWNjZXNzIHRvIGFwcHJvcHJpYXRlbHkgY29tcGVuc2F0ZWQgbWVkaWNhbCBsZWF2ZSwgdGhlIGNvbXBhbnkgY2FuIHJlbW92ZSBtYWpvciBzb3VyY2VzIG9mIHVubmVjZXNzYXJ5IHN0cmVzcy4gVGhpcyB3YXksIHdlIGNhbiByZXR1cm4gdG8gd29yayBoYXBwaWVyLCBoZWFsdGhpZXIsIGFuZCBiZXR0ZXIgYWJsZSB0byBkbyBvdXIgYmVzdCBmb3Igb3VyIGN1c3RvbWVycyBhbmQgb3VyIGNvbGxlYWd1ZXMuJmx0Oy9wJmd0OwombHQ7L2Jsb2NrcXVvdGUmZ3Q7CgombHQ7aDImZ3Q7SG93IHRoaXMgcG9saWN5IGNhbWUgdG9nZXRoZXImbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgcHVzaCBmb3IgdGhlIGZvcm1hbGl6YXRpb24gb2YgdGhlc2UgYmVuZWZpdHMgZ3JldyBvdXQgb2YgdGhlIGVmZm9ydHMgb2YgbWFueSBpbmRpdmlkdWFscy4gVG9nZXRoZXIsIHRoZSB0cmFucyBlbXBsb3llZXMgYXQgQ2lyY2xlQ0kgZGlzY3Vzc2VkIHRoZSBpc3N1ZSBhbW9uZ3N0IG91cnNlbHZlcywgb3VyIG1hbmFnZXJzLCBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIHdobyBzdXBwb3J0ZWQgdXMgaW4gYnJpbmdpbmcgdGhlIHRvcGljIHRvIG91ciBleGVjdXRpdmUgdGVhbS4gQnkgYnVpbGRpbmcgY29uc2Vuc3VzLCBib3RoIHdpdGhpbiB0aGUgdHJhbnMgcG9wdWxhdGlvbiBhdCB0aGUgY29tcGFueSBhbmQgb3VyIGNpc2dlbmRlciBjb2xsZWFndWVzLCB3ZSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IGFkdm9jYXRlIGZvciBhIGZvcm1hbGl6YXRpb24gb2YsIGFuZCBhIGNvbW1pdG1lbnQgdG8sIHRoaXMgaW5kdXN0cnktbGVhZGluZyB0cmFucyBoZWFsdGhjYXJlIGJlbmVmaXQuIFF1ZWVyU3BoZXJlLCB0aGUgRW1wbG95ZWUgUmVzb3VyY2UgR3JvdXAgaGVyZSBhdCBDaXJjbGVDSSBmb3IgTEdCVFFJQSsgZW1wbG95ZWVzLCBoZWxwZWQgY29vcmRpbmF0ZSB0aGUgZWZmb3J0IHRvIGFkdm9jYXRlLCBhbmQgdGhlIHJlc3VsdCB3YXMgYSBwb2xpY3kgdGhhdCBoZWxwcyBlbnN1cmUgdHJhbnMgZW1wbG95ZWVzIGdldCB0aGUgc3VwcG9ydCB3ZSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uZSBvZiB0aGUgYmVzdCB0aGluZ3MgZm9yIG1lIGFib3V0IHdvcmtpbmcgYXQgQ2lyY2xlQ0kgaXMgaG93IGVtcG93ZXJlZCBJIGZlZWwgdG8gY2FsbCBhdHRlbnRpb24gdG8gaXNzdWVzIG9yIHByYWN0aWNlcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCBhbmQgYnJpbmcgcGVvcGxlIHRvZ2V0aGVyIHRvIHdvcmsgb24gdGhlbSwgdG8gdGhlIGJlbmVmaXQgb2YgYm90aCB0aGUgY29tcGFueSBhcyBhIHdob2xlIGFuZCB1bmRlcnJlcHJlc2VudGVkIG9yIG1hcmdpbmFsaXplZCBlbXBsb3llZXMuIFRyYW5zIHBlb3BsZSBmYWNlIHN5c3RlbWljIGJpYXM6IHRoZXJlIGFyZSBubyBmZWRlcmFsLWxldmVsIHByb3RlY3Rpb25zIGZyb20gZGlzY3JpbWluYXRpb24gb24gdGhlIGJhc2lzIG9mIGdlbmRlciBpZGVudGl0eSBpbiB0aGUgVW5pdGVkIFN0YXRlcywgYW5kIG9mIHRoZSB0cmFucyBwb3B1bGF0aW9uIHN1cnZleWVkIGJ5IHRoZSBOYXRpb25hbCBDZW50ZXIgZm9yIFRyYW5zZ2VuZGVyIEVxdWFsaXR5IGluIDIwMTUsIDgwJSBvZiB0aG9zZSB3aG8gd2VyZSBlbXBsb3llZCByZXBvcnRlZCBleHBlcmllbmNpbmcgaGFyYXNzbWVudCwgbWlzdHJlYXRtZW50LCBvciBoYWQgdG8gdGFrZSBzdGVwcyB0byBhdm9pZCB0aG9zZSBob3N0aWxlIHdvcmtwbGFjZSBiZWhhdmlvcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SSBrbm93IGZpcnN0aGFuZCBob3cgZGlmZmljdWx0IGJlaW5nIG91dCBhdCB3b3JrIGNhbiBiZS4gQXQgYSBwcmV2aW91cyBlbXBsb3llciBlYXJseSBpbiBteSB0cmFuc2l0aW9uLCBJIGZlbHQgYWxpZW5hdGVkIGFuZCBkaXNsaWtlZCBieSBjb2xsZWFndWVzIHdobyBoYWQgcHJldmlvdXNseSBiZWVuIGZyaWVuZGx5IGJlZm9yZSB0aGV5IGtuZXcgSSB3YXMgdHJhbnNnZW5kZXIuIEkgaGF2ZSBoYWQgdG8gbWluaW1pemUgdGhlIGZhY3QgdGhhdCBJ4oCZbSB0cmFucywgdG9sZXJhdGUgYWN0aXZlIGhvc3RpbGl0eSBmcm9tIGNvd29ya2Vycywgb3IgcHJldGVuZCB0aGF0IEkgd2FzIGNpc2dlbmRlciwgaW4gb3JkZXIgdG8gcHJvdGVjdCBteSBqb2IuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgQ2lyY2xlQ0ksIEkgaGF2ZSBmZWx0IHN1cHBvcnRlZCwgcmVzcGVjdGVkLCBhbmQgYWJsZSB0byBjb25maWRlbnRseSBiZSBteXNlbGYuIEkgZmVlbCBleGNlcHRpb25hbGx5IGZvcnR1bmF0ZSB0byBoYXZlIGEgd29uZGVyZnVsIGdyb3VwIG9mIHRyYW5zZ2VuZGVyIGNvbGxlYWd1ZXMgYW5kIGZyaWVuZHMgKHdlIG1ha2UgdXAgNyUgb2YgdGhlIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0ksIGFuZCAzJSBvZiB0aGUgb3JnIGluIHRvdGFsLCBjb21wYXJlZCB0byAwLjYlIG9mIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24pLCBhbmQgdG8gd29yayBzb21ld2hlcmUgd2hlcmUgb3VyIHZpZXdzIGFuZCBleHBlcmllbmNlcyBhcmUgdmFsdWVkIGF0IHRoZSBoaWdoZXN0IGxldmVscyBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0lmIHlvdSBsaWtlIHRoZSBzb3VuZCBvZiB3b3JraW5nIHNvbWV3aGVyZSB3aXRoIGEgcmVtb3RlLWZpcnN0IGN1bHR1cmUgYW5kIGNvbGxhYm9yYXRpbmcgb24gaW50ZXJlc3RpbmcgcHJvYmxlbXMgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIHRyYW5zIGZvbHggYW5kIGFsbGllcywgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9jYXJlZXJzLyZxdW90OyZndDtjaGVjayBvdXQgb3VyIG9wZW5pbmdzIGhlcmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIEdhdHNieSBhcHBzIHRvIEhlcm9rdTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtZ2F0c2J5LWFwcHMtdG8taGVyb2t1LzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDExIE1heSAyMDIwIDA5OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1nYXRzYnktYXBwcy10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9qYW1zdGFjay5vcmcvJnF1b3Q7Jmd0O0pBTVN0YWNrJmx0Oy9hJmd0OyBpcyBxdWlja2x5IGJlY29taW5nIGEgYmlnIGRlYWwgaW4gdGhlIHdvcmxkIG9mIHdlYiBkZXZlbG9wbWVudC4gSkFNU3RhY2ssIHdoaWNoIHN0YW5kcyBmb3IgSmF2YXNjcmlwdCwgQVBJcywgYW5kIEhUTUwgbWFya3VwLCBpcyBhIG1vZGVybiBhcmNoaXRlY3R1cmUgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMgYW5kIG9uZSBvZiBpdHMgbWFqb3IgZmVhdHVyZXMgaXMgdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBhIGRhdGFiYXNlIGFuZCBhIHdlYiBzZXJ2ZXIgaXMgb3B0aW9uYWwuIFRoZSBKQU1TdGFjayBhcmNoaXRlY3R1cmUgaXMgYWltZWQgYXQgZGVjb3VwbGluZyB0aGUgZnJvbnRlbmQgYW5kIHRoZSBiYWNrZW5kIGJ5IGdlbmVyYXRpbmcgYSBmcm9udGVuZCBtYWRlIG9mIEhUTUwsIENTUywgYW5kIEphdmFzY3JpcHQgYW5kIGEgYmFja2VuZCB0aGF0IGlzIHNpbXBseSBhIGNvbnRlbnQgQVBJIHJldHVybmluZyBKU09OIG9yIFhNTC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmUgb2YgdGhlIGxlYWRpbmcgSkFNU3RhY2sgcGxhdGZvcm1zIHRvZGF5IGlzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnLyZxdW90OyZndDtHYXRzYnkuanMmbHQ7L2EmZ3Q7LiBHYXRzYnkuanMgaXMgYSBmcmVlIGFuZCBvcGVuLXNvdXJjZSBmcmFtZXdvcmsgYmFzZWQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3JlYWN0anMub3JnLyZxdW90OyZndDtSZWFjdC5qcyZsdDsvYSZndDsgdGhhdCBoZWxwcyBkZXZlbG9wZXJzIGJ1aWxkIGhpZ2gtc3BlZWQgd2ViIGFwcGxpY2F0aW9ucy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHR1dG9yaWFsLCB3ZSB3aWxsIGJlIGRlbW9uc3RyYXRpbmcgaG93IHRvIGRlcGxveSBhIEdhdHNieS5qcyBzaXRlIHRvIHRoZSBwb3B1bGFyIEhlcm9rdSBwbGF0Zm9ybSBieSBidWlsZGluZyBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmUgZm9yIGl0cyBkZXBsb3ltZW50IHVzaW5nIENpcmNsZUNJLiZsdDsvcCZndDsKCiZsdDtoMiZndDtQcmVyZXF1aXNpdGVzJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIG9yZGVyIHRvIGZvbGxvdyBhbG9uZyB3aXRoIHRoaXMgcG9zdCwgeW91IHdpbGwgbmVlZCBhIGZldyB0aGluZ3MgaW4gcGxhY2U6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7ICZhbXA7Z3Q7PSAxMC4xNiBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZSAtdiZsdDsvY29kZSZndDsgb24geW91ciB0ZXJtaW5hbCB0byBwcmludCBvdXQgeW91ciB2ZXJzaW9uIG9mIE5vZGVKUyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7R2l0Jmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2l0Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsLiBUaGlzIHNob3VsZCBwcmludCBvdXQgYXZhaWxhYmxlIGdpdCBjb21tYW5kcykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuaGVyb2t1LmNvbS8mcXVvdDsmZ3Q7SGVyb2t1Jmx0Oy9hJmd0OyBhY2NvdW50Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O0dpdEh1YiZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7V2l0aCB0aGVzZSwgeW91IGFyZSByZWFkeSB0byBmb2xsb3cgYWxvbmcuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NyZWF0aW5nIGEgR2F0c2J5LmpzIHByb2plY3QmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7VG8gYmVnaW4sIHdlIG5lZWQgdG8gY3JlYXRlIG91ciBHYXRzYnkuanMgcHJvamVjdC4gSW4gYW4gYXBwcm9wcmlhdGUgbG9jYXRpb24gd2l0aGluIHlvdXIgc3lzdGVtLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGdhdHNieSBuZXcgZ2F0c2J5LWhlcm9rdS1kZXBsb3kKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBwYXJ0IG9mIHRoaXMgY29tbWFuZCBpcyB0aGUgZm9sZGVyIG5hbWUgZm9yIG15IHByb2plY3QgdG8gYmUgc2NhZmZvbGRlZCBpbi4gWW91IGNhbiB1c2UgYW55IHByZWZlcnJlZCBuYW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCB3aWxsIGltbWVkaWF0ZWx5IGJlZ2luIHNjYWZmb2xkaW5nIGEgbmV3IEdhdHNieS5qcyBwcm9qZWN0LiBZb3UgbWlnaHQgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGVpdGhlciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5YXJuJmx0Oy9jb2RlJmd0OyBvciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7IGFzIHlvdXIgcGFja2FnZSBtYW5hZ2VyLCBmb3IgdGhpcyB0dXRvcmlhbCwgZ28gd2l0aCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNjYWZmb2xkaW5nIHByb2Nlc3MgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIGdhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OykgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gYm9vdCB1cCBhIHNlcnZlciB0byBzZXJ2ZSB0aGUgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBydW4gZGV2ZWxvcAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgc2VydmUgdGhlIGFwcGxpY2F0aW9uIGF0IHRoZSBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8mbHQ7L2NvZGUmZ3Q7IGFuZCBkaXNwbGF5IHRoZSBwYWdlIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MS5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIGEgZnVuY3Rpb25hbCBHYXRzYnkuanMgc2l0ZSB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7U2V0dGluZyB1cCBhIEhlcm9rdSBBcHAgZm9yIEdhdHNieSZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBzZXQgdXAgYSBIZXJva3UgYXBwIGZvciBvdXIgR2F0c2J5IGFwcGxpY2F0aW9uLCB3ZSBuZWVkIHRvIGxvZyBpbnRvIEhlcm9rdSBhbmQgY3JlYXRlIGEgbmV3IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5Mi5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdlIG5lZWQgdG8gZ2V0IHRoZSBuYW1lIG9mIG91ciBhcHBsaWNhdGlvbiAodGhpcyB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBmb3IgdGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgYWJvdmUpIGFuZCB0aGUgQVBJIGtleSBmb3Igb3VyIEhlcm9rdSBhY2NvdW50LiBUaGUgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIEhlcm9rdSAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXZSB3aWxsIG5lZWQgdGhlc2UgdHdvIHZhbHVlcyAodGhlIGFwcCBuYW1lIGFuZCBBUEkga2V5KSBsYXRlciBvbiB0byBjcmVhdGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9uIG91ciBDaXJjbGVDSSBwcm9qZWN0IGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiBvdXIgSGVyb2t1IGFjY291bnQgaXMgdG8gaW5zdGFsbCBzb21lIG5lY2Vzc2FyeSBidWlsZHBhY2tzLiBCdWlsZHBhY2tzIGFyZSBzY3JpcHRzIHRoYXQgcnVuIHdoZW4geW91ciBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZC4gV2Ugd2lsbCBuZWVkIHR3byBidWlsZCBwYWNrcyBmb3IgdGhpcyBleGVyY2lzZTombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0O2hlcm9rdS9ub2RlanM6IFJlcXVpcmVkIGZvciBhbGwgTm9kZS5qcyBhcHBsaWNhdGlvbnMmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtoZXJva3UvaGVyb2t1LWJ1aWxkcGFjay1zdGF0aWM6IFRoZSBIZXJva3UgQnVpbGRwYWNrIFN0YXRpYyBwYWNrYWdlIChiZWNhdXNlIEdhdHNieS5qc+KAmXMgYnVpbGQgaXMgbWFkZSB1cCBvZiBzdGF0aWMgZmlsZXMsIHRoaXMgd2lsbCBoZWxwIHVzIHNlcnZlIHRoZSBzdGF0aWMgZmlsZXMgb24gdGhlIEhlcm9rdSBwbGF0Zm9ybSkmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7R28gdG8geW91ciBIZXJva3UgYXBwbGljYXRpb27igJlzICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgcGFnZSBhbmQgc2Nyb2xsIGRvd24gdG8gJmx0O3N0cm9uZyZndDtCdWlsZHBhY2tzJmx0Oy9zdHJvbmcmZ3Q7ICh5b3UgbWlnaHQgYWxyZWFkeSBzZWUgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgYnVpbGRwYWNrIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQpLiBDbGljayAmbHQ7c3Ryb25nJmd0O0FkZCBidWlsZHBhY2smbHQ7L3N0cm9uZyZndDsgYW5kIHlvdSB3aWxsIHNlZSBhIGRpYWxvZyBwb3AgdXAgc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnkzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rm9yIGVhY2ggYnVpbGRwYWNrICgmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3Uvbm9kZWpzJmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L2hlcm9rdS1idWlsZHBhY2stc3RhdGljJmx0Oy9jb2RlJmd0OykgZW50ZXIgdGhlIGlkZW50aWZpZXIgaW50byB0aGUgdGV4dCBmaWVsZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTYXZlIENoYW5nZXMmbHQ7L3N0cm9uZyZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtOb3RlOiZsdDsvc3Ryb25nJmd0OyAmbHQ7aSZndDtJZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCwgb25seSBhZGQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2hlcm9rdS9oZXJva3UtYnVpbGRwYWNrLXN0YXRpYyZsdDsvY29kZSZndDsgYnVpbGQgcGFjay4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgZG9pbmcgdGhpcyBmb3IgYm90aCBidWlsZHBhY2tzLCB5b3Ugd2lsbCBzZWUgdGhlIHR3byBidWlsZCBwYWNrcyBub3cgbGlzdGVkIGluICZsdDtzdHJvbmcmZ3Q7QnVpbGRwYWNrcyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGF0IGNvbXBsZXRlcyB0aGUgc2V0IHVwIHJlcXVpcmVkIGZvciBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1NldHRpbmcgdXAgdGhlIEdhdHNieS5qcyBwcm9qZWN0IG9uIENpcmNsZUNJJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBuZXh0IHRhc2sgaXMgdG8gZ2V0IG91ciBHYXRzYnkuanMgcHJvamVjdCBzZXQgdXAgb24gQ2lyY2xlQ0kuIFdlIG5lZWQgdG8gcHVzaCBvdXIgY29kZSB0byBhIEdpdEh1YiByZXBvc2l0b3J5IG9uIHRoZSBhY2NvdW50IHlvdSBoYXZlIGxpbmtlZCB0byB5b3VyIENpcmNsZUNJIGFjY291bnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgZ28gdG8gdGhlICZsdDtzdHJvbmcmZ3Q7QWRkIFByb2plY3RzJmx0Oy9zdHJvbmcmZ3Q7IHBhZ2UgdG8gYWRkIHRoZSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk0LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0OyB0byBiZWdpbiBzZXR0aW5nIHVwIHRoZSBwcm9qZWN0LiBUaGlzIHdpbGwgbG9hZCB0aGUgbmV4dCBzY3JlZW4uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk1LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhlIHNldHVwIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsuIEJlZm9yZSB0aGUgYnVpbGQgc3RhcnRzLCB5b3Ugd2lsbCBnZXQgYSBwcm9tcHQgdG8gZWl0aGVyIGRvd25sb2FkIGFuZCB1c2UgdGhlIHByb3ZpZGVkIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgaGF2ZSBpdCBhZGRlZCBvbiBhIHNlcGFyYXRlIGJyYW5jaCBvciBzZXQgb25lIHVwIG1hbnVhbGx5LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk2LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U2VsZWN0ICZsdDtzdHJvbmcmZ3Q7QWRkIE1hbnVhbGx5Jmx0Oy9zdHJvbmcmZ3Q7IHRvIHByb2NlZWQuIFRoaXMgd2lsbCBwcm9tcHQgYW5vdGhlciBkaWFsb2cgdGhhdCBjaGVja3MgdG8gY29uZmlybSB0aGF0IHlvdSBoYXZlIGEgY29uZmlndXJhdGlvbiBmaWxlIHNldCB1cCB0byBiZWdpbiBidWlsZGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTcucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGNvbXBsZXRlIHRoZSBzZXR1cC4gVGhlIGJ1aWxkIHdpbGwgc3VyZWx5IGZhaWwgYmVjYXVzZSB3ZSBoYXZlIG5vdCBzZXQgdXAgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB5ZXQsIHRoaXMgd2Ugd2lsbCBkbyBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiB0aGUgQ2lyY2xlQ0kgY29uc29sZSBpcyB0byBzZXQgdXAgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZW52LXZhcnMvJnF1b3Q7Jmd0O2Vudmlyb25tZW50IHZhcmlhYmxlcyZsdDsvYSZndDsgZm9yIHRoZSBwcm9qZWN0IHdlIGp1c3QgYWRkZWQuIFRoaXMgd2lsbCBlbmFibGUgaXQgdG8gaGF2ZSBhdXRoZW50aWNhdGVkIGFjY2VzcyB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIGZvciBkZXBsb3ltZW50cy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHbyB0byB5b3VyIHByb2plY3TigJlzIHNldHRpbmdzIGJ5IGNsaWNraW5nICZsdDtzdHJvbmcmZ3Q7UHJvamVjdCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgJmx0O3N0cm9uZyZndDtQaXBlbGluZXMmbHQ7L3N0cm9uZyZndDsgcGFnZSAobWFrZSBzdXJlIHlvdXIgcHJvamVjdCBpcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2plY3QpLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5OC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBuYXZpZ2F0ZSB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBwYWdlLiBPbiB0aGlzIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7RW52aXJvbm1lbnQgVmFyaWFibGVzJmx0Oy9zdHJvbmcmZ3Q7IG9uIHRoZSBzaWRlIG1lbnUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk5LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFnZSwgY2xpY2sgJmx0O3N0cm9uZyZndDtBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUgYnV0dG9uJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTAucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZGQgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Jmx0Oy9wJmd0OwombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDs6IFRoaXMgaXMgdGhlIG5hbWUgb2YgeW91ciBIZXJva3UgYXBwbGljYXRpb24gKGluIHRoaXMgY2FzZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnYXRzYnktaGVyb2t1LWRlcGxveSZsdDsvY29kZSZndDspJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7SEVST0tVX0FQSV9LRVkmbHQ7L2NvZGUmZ3Q7OiBZb3VyIEhlcm9rdSBhY2NvdW50IEFQSSBrZXkgZm91bmQgdW5kZXIgdGhlICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCZsdDsvc3Ryb25nJmd0OyB0YWIgb2YgeW91ciBIZXJva3UgYWNjb3VudCBpbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50IFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O09uY2UgYWRkZWQsIHlvdSB3aWxsIGhhdmUgZXZlcnl0aGluZyBzZXQgdXAgb24geW91ciBDaXJjbGVDSSBjb25zb2xlIGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRoZSBHYXRic3kuanMgc2l0ZSB1c2luZyBvcmJzJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy8mcXVvdDsmZ3Q7T3JicyZsdDsvYSZndDsgYXJlIHJldXNhYmxlIHBhY2thZ2VzIG9mIFlBTUwgY29uZmlndXJhdGlvbiB0aGF0IGNvbmRlbnNlIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoZXkgZW5hYmxlIGRldmVsb3BlcnMgdG8gZWFzaWx5IHVzZSBwb3dlcmZ1bCBwaXBlbGluZSBmdW5jdGlvbmFsaXRpZXMgd2l0aCBhbGwgdGhlIGJvaWxlcnBsYXRlIGFic3RyYWN0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBleGVyY2lzZSwgd2Ugd2lsbCBiZSB1c2luZyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7b3JiIGZvciBIZXJva3UmbHQ7L2EmZ3Q7IHRvIGNvbmZpZ3VyZSBvdXIgcGlwZWxpbmUgdG8gZGVwbG95IG91ciBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0IGJlZm9yZSB0aGF0LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGZpbGUgdG8gaW5zdHJ1Y3Qgb3VyIEhlcm9rdSBCdWlsZHBhY2sgU3RhdGljIHBhY2thZ2Ugb24gaG93IHRvIGRlcGxveSBhbmQgc2VydmUgb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgbmV3IGZpbGUgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3RhdGljLmpzb24mbHQ7L2NvZGUmZ3Q7IGFuZCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGUgaW50byBpdDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3sKICAmcXVvdDtyb290JnF1b3Q7OiAmcXVvdDtwdWJsaWMvJnF1b3Q7LAogICZxdW90O2hlYWRlcnMmcXVvdDs6IHsKICAgICZxdW90Oy8qKiZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJnF1b3Q7CiAgICB9LAogICAgJnF1b3Q7LyoqLmNzcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy8qKi5qcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy9zdGF0aWMvKiomcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0sCiAgICAmcXVvdDsvaWNvbnMvKi5wbmcmcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0KICB9LAogICZxdW90O2h0dHBzX29ubHkmcXVvdDs6IHRydWUsCiAgJnF1b3Q7ZXJyb3JfcGFnZSZxdW90OzogJnF1b3Q7NDA0Lmh0bWwmcXVvdDsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgbW9zdCBpbXBvcnRhbnQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaGVyZSBpcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkuIFdoZW4gR2F0c2J5LmpzIHJ1bnMgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2J1aWxkJmx0Oy9jb2RlJmd0OyBzY3JpcHQgKHRoaXMgaXMgYWxzbyB0aGUgc2NyaXB0IHVzZWQgYnkgSGVyb2t1IHRvIHJ1biB0aGUgYnVpbGQgYmVmb3JlIGRlcGxveW1lbnQpLCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1YmxpYyZsdDsvY29kZSZndDsgZm9sZGVyIGlzIGdlbmVyYXRlZCBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBjb250YWluaW5nIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb2R1Y3Rpb24gdmVyc2lvbiBpcyB3aGF0IHRoZSBob3N0IHNlcnZlcyB0byB1c2Vycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaHVzLCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkgaXMgdXNlZCB0byBwb2ludCB0byB0aGlzIGZvbGRlciBzbyB0aGF0IHRoZSBob3N0IHNlcnZlcyB0aGUgYXBwcm9wcmlhdGUgY29kZS4gT3RoZXIgcGFyYW1ldGVycyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gYXJlIHNpbXBseSBiZXN0LXByYWN0aWNlIGNvbmZpZ3VyYXRpb25zIGZvciBHYXRzYnkuanMgc2l0ZXMuIEZvciBleGFtcGxlLCBjYWNoaW5nIGd1aWRlbGluZXMgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvY2FjaGluZy8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7R29vZCEgTm93IHdlIGNhbiB3cml0ZSBvdXIgZGVwbG95bWVudCBzY3JpcHQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgdGhlIHJvb3Qgb2YgeW91ciBHYXRzYnkuanMgcHJvamVjdCwgY3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgYW5kIGEgZmlsZSB3aXRoaW4gaXQgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0Oy4gSW5zaWRlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGU6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt2ZXJzaW9uOiAyLjEKb3JiczoKICBoZXJva3U6IGNpcmNsZWNpL2hlcm9rdUAwLjAuMTAKd29ya2Zsb3dzOgogIGhlcm9rdV9kZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGhlcm9rdS9kZXBsb3ktdmlhLWdpdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGF04oCZcyBpdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgY29uZmlndXJhdGlvbiBhYm92ZSwgd2UgcHVsbCBpbiB0aGUgSGVyb2t1IG9yYiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaXJjbGVjaS9oZXJva3VAMC4wLjEwJmx0Oy9jb2RlJmd0OyB3aGljaCBhdXRvbWF0aWNhbGx5IGdpdmVzIHVzIGFjY2VzcyB0byBhIHBvd2VyZnVsIHNldCBvZiBIZXJva3Ugam9icyBhbmQgY29tbWFuZHMuIE9uZSBvZiB0aG9zZSBqb2JzIGlzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3UvZGVwbG95LXZpYS1naXQmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGRlcGxveXMgeW91ciBhcHBsaWNhdGlvbiBzdHJhaWdodCBmcm9tIHlvdXIgR2l0SHViIHJlcG8gdG8geW91ciBIZXJva3UgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIGpvYiBhbHJlYWR5IHRha2VzIGNhcmUgb2YgaW5zdGFsbGluZyB0aGUgSGVyb2t1IENMSSwgaW5zdGFsbGluZyBwcm9qZWN0IGRlcGVuZGVuY2llcywgcnVubmluZyB0aGUgYnVpbGQgc2NyaXB0LCBhbmQgZGVwbG95aW5nIHRoZSBhcHBsaWNhdGlvbi4gSXQgYWxzbyBwaWNrcyB1cCBvdXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGggZGVwbG95bWVudCB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgdGhlIG1vbWVudCBvZiB0cnV0aCAoZHJ1bSByb2xsKS4gTGV04oCZcyBjb21taXQgYWxsIHRoZSBjaGFuZ2VzIHdlIGhhdmUgbWFkZSB0byBvdXIgR2F0c2J5LmpzIHByb2plY3QgYW5kIHB1c2ggdG8gb3VyIHJlcG8gdG8gdHJpZ2dlciB0aGUgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTEucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBzZWUgdGhlIGJlaGluZC10aGUtc2NlbmVzIHpjdGlvbiBvZiB0aGUgZGVwbG95bWVudCwgeW91IGNhbiBjbGljayBpbnRvIHRoZSBidWlsZC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTIucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgZm9yIHRoZSBmaW5hbCBjb25maXJtYXRpb24gdGhhdCB0aGUgZGVwbG95bWVudCBvZiBvdXIgR2F0c2J5LmpzIHNpdGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bCwgdmlzaXQgdGhlIGRlZmF1bHQgSGVyb2t1IGFkZHJlc3MgZm9yIHRoZSBzaXRlIGF0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vW0FQUF9OQU1FXS5oZXJva3VhcHAuY29tJmx0Oy9jb2RlJmd0Oy4gSWYgeW91IHVzZWQgdGhlIHNhbWUgbmFtZSBhcyBJIGRpZCBmb3IgdGhpcyBleGVyY2lzZSwgdGhhdCB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vZ2F0c2J5LWhlcm9rdS1kZXBsb3kuaGVyb2t1YXBwLmNvbS8mbHQ7L2NvZGUmZ3Q7LiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93ICh0aGlzIG1pZ2h0IGJlIGRpZmZlcmVudCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IEdhdHNieS5qcyBzdGFydGVyIHRlbXBsYXRlLCBsZWFybiBtb3JlIGFib3V0IHN0YXJ0ZXJzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvcGx1Z2lucy10aGVtZXMtYW5kLXN0YXJ0ZXJzLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OykuJmx0Oy9wJmd0OwoKJmx0O3AgYWxpZ249JnF1b3Q7Y2VudGVyJnF1b3Q7Jmd0OwogICAmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTEzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NvbmNsdXNpb24mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2UgZGVwbG95ZWQgYSBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UgdXNpbmcgQ2lyY2xlQ0kgb3Jicy4gTm93IHdoZW4gd2UgcHVzaCBvdXIgY29kZSwgYWxsIGNoYW5nZXMgd2lsbCBiZSBkZXBsb3llZCBhdXRvbWF0aWNhbGx5LiBUaGlzIHR1dG9yaWFsIGhhcyBhbHNvIGRlbW9uc3RyYXRlZCBob3cgQ2lyY2xlQ0kgb3JicyBtYWtlcyBkZXBsb3ltZW50IGVhc3kuIEluc3RlYWQgb2Ygd3JpdGluZyBtYW55IGxpbmVzIG9mIGNvbmZpZyBuZWVkIHRvIGRlcGxveSB0byBIZXJva3UsIG9yYnMgYWJzdHJhY3QgYWxsIG9mIHRoYXQgaW50byBjb252ZW5pZW50IGNvbW1hbmRzIGZvciB1cyB0byB1c2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2hlY2sgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kgb3JicyByZWdpc3RyeSZsdDsvYSZndDsgZm9yIG9yYnMgdGhhdCBzdWl0IHlvdXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGRlcGxveW1lbnQgZGVzdGluYXRpb24gb2YgY2hvaWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyEmbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5MZXR0aW5nIGNoYW5nZSBhbmQgdW5jZXJ0YWludHkgYWR2YW5jZSB5b3VyIHNvZnR3YXJlIGFyY2hpdGVjdHVyZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VGh1LCAwNyBNYXkgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Sb2IgWnViZXI8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIGZpcnN0IGxpbmVzIG9mIENpcmNsZUNJ4oCZcyBjb2RlYmFzZSB3ZXJlIHdyaXR0ZW4gbmVhcmx5IG5pbmUgeWVhcnMgYWdvLiBMb29raW5nIGJhY2sgb24gd2hhdCB3ZSBoYXZlIGJ1aWx0IHNvIGZhciB3aXRoIHRoZSBjbGFyaXR5IG9mIGhpbmRzaWdodCBleHBvc2VzIHNvbWUgaW50ZXJlc3RpbmcgdGhlbWVzIHRoYXQgY2FuIGJlIGluc3RydWN0aXZlIGluIGlkZW50aWZ5aW5nIGFwcHJvYWNoZXMgdG8gZGVhbGluZyB3aXRoIGNoYW5nZS4gV2hpbGUgdGhleSB3ZXJlbuKAmXQgYWxsIGludGVudGlvbmFsLCBpdCBkb2VzbuKAmXQgbWFrZSB0aGVtIGFueSBsZXNzIHZhbHVhYmxlLiBUaHJlZSBzdWNoIHRoZW1lcyBhcmU6IGRlZmVycmluZyB0aGUgbmVlZCB0byBoYW5kbGUgY2hhbmdlLCB0aGlua2luZyBsaWtlIGEgcHJvZHVjdCBtYW5hZ2VyLCBhbmQga2VlcGluZyB5b3VyIGhlYWQgdXAuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NoYW5nZSBpcyBhIGNvbnN0YW50IGluIHRlY2hub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Q2hhbmdlIG1pZ2h0IGJlIG9uZSBvZiB0aGUgb25seSBjb25zdGFudHMgZW5naW5lZXJzIHdpbGwgZGVhbCB3aXRoIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGVpciBjYXJlZXJzLiBJdCBjZXJ0YWlubHkgZHJpdmVzIG1hbnkgb2Ygb3VyIG1vc3QgaW50ZXJlc3RpbmcgY2hhbGxlbmdlcy4gVGhlIG1hcmtldCBpcyBjaGFuZ2luZywgb3VyIGJ1c2luZXNzIGlzIGV2b2x2aW5nLCBvdXIgY3VzdG9tZXIgYmFzZSBpcyBncm93aW5nLCBhbmQgb3VyIHRlYW0gaXMgc2NhbGluZy4gV2UgbmVlZCB0byBidWlsZCBhIHNvbHV0aW9uIHRoYXQgbWVldHMgdG9kYXnigJlzIG5lZWRzIGJ1dCBzZXRzIHVzIHVwIGZvciB0aGUgZGVtYW5kcyBvZiB0b21vcnJvdy4gSG93IGRvIHdlIGRlc2lnbiBvdXIgc3lzdGVtcyBpbiBhIG1hbm5lciB0aGF0IGNhbiBhZGFwdCBhbmQgY2hhbmdlIHRvIHRoaW5ncyB0aGF0IGRvbuKAmXQgZXZlbiBleGlzdCB3aGVuIHdlIHN0YXJ0IGJ1aWxkaW5nIGl0PyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZXJlIGhhcyBiZWVuIGEgbG90IG9mIHRhbGsgaW4gcmVjZW50IHllYXJzIGFib3V0IGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGV2b2x2ZSBvciBtb3JlIGVhc2lseSBhZGFwdCB0byBjaGFuZ2UuIFRoZW4gd2Ugc3RhcnQgdG8gZGViYXRlIHRoZSBtZXJpdHMgb2YgdGhlc2UgYXJjaGl0ZWN0dXJlcyB1c2luZyBhIGxpbmUgb2YgdGhpbmtpbmcgdGhhdCBzdWdnZXN0cyB5b3UgYXJlIGNob29zaW5nIHRvIGhhdmUgYSDigJxNaWNyb3NlcnZpY2VzIEFyY2hpdGVjdHVyZeKAnSBvciBhbiDigJxFdmVudC1Ecml2ZW4gQXJjaGl0ZWN0dXJl4oCdIG9yIGEg4oCcU2VydmVybGVzcyBBcmNoaXRlY3R1cmUu4oCdIEkgd291bGQgcG9zaXQgdGhhdCB0aGlzIHR5cGUgb2YgZGVzY3JpcHRpb24gY3JlYXRlcyBhIGZhbHNlIHNlbnNlIG9mIGZpbmFsaXR5IHRoYXQgZG9lc27igJl0IGFjdHVhbGx5IGV4aXN0IGluIG1vc3QgcmVhbC13b3JsZCBzeXN0ZW1zLiZsdDsvcCZndDsKCiZsdDtwJmd0O091dHNpZGUgb2YgdGhlIHlvdW5nZXN0IG9mIHByb2plY3RzLCBpdOKAmXMgdW5saWtlbHkgdGhhdCB5b3UgY2FuIGRlc2NyaWJlIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCB5b3UgaGF2ZSB3aXRoIGFueSBzaW1wbGUgb25lLWxpbmVyLiBJdOKAmXMgbW9yZSBsaWtlbHkganVzdCDigJx5b3VyIGFyY2hpdGVjdHVyZSzigJ0gYW5kIGlmIHlvdeKAmXZlIGJlZW4gd29ya2luZyBvbiBpdCBmb3IgYW55IHNpZ25pZmljYW50IGFtb3VudCBvZiB0aW1lLCB5b3UgbWF5IGhhdmUgYXBwbGllZCBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0dGVybnMgYWxvbmcgdGhlIHdheSB0byBzb2x2ZSBzcGVjaWZpYyBwcm9ibGVtcy4gVGhlcmXigJlzIHByb2JhYmx5IGEgbW9ub2xpdGggc29tZXdoZXJlLCBzb21lIG51bWJlciBvZiBtaWNyb3NlcnZpY2VzLCBhIGZldyBldmVudHMsIGFuZCBhIHNlcnZlcmxlc3MgZWxlbWVudCBvciB0d28uIE9uIHRvcCBvZiBhbGwgdGhhdCwgeW91IG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YgdHJhbnNpdGlvbmluZyBzb21lIG9mIHRob3NlIHBpZWNlcyBmcm9tIG9uZSBwYXR0ZXJuIHRvIGFub3RoZXIuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0Rlc2lnbiBhcmNoaXRlY3R1cmUgdG8gc29sdmUgcHJvYmxlbXMmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gb2Z0ZW4gYXNrZWQgYnkgZm9sa3Mgd2hpY2ggYXJjaGl0ZWN0dXJlIHRoZXkgc2hvdWxkIGNob29zZSwgb3Igd2hlbiB0aGV5IHNob3VsZCBzd2l0Y2ggZnJvbSBvbmUgdG8gYW5vdGhlci4gSSBoYXZlIGEgZ3JlYXQgdGVuZGVuY3kgdG8gZGlzYXBwb2ludCB3aXRoIGFuc3dlcnMgbGlrZSDigJx3aGF0IHByb2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gc29sdmU/4oCdJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28sIHdoYXQgJmx0O3N0cm9uZyZndDtzaG91bGQmbHQ7L3N0cm9uZyZndDsgeW91IGJlIHRoaW5raW5nIGFib3V0IGFzIHlvdXIgcHJvZHVjdCBldm9sdmVzIGFuZCB5b3VyIG5lZWRzIGFyZSBjaGFuZ2luZz8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGVyZSBhcmUgYSBsb3Qgb2YgYXBwcm9hY2hlcyB0aGF0IHdlIGNhbiB1c2UgdG8gZGVzaWduIHNvZnR3YXJlIGFuZCBzeXN0ZW1zIHRvIGJlIG1vcmUgcmVzaWxpZW50IHRvIGNoYW5nZS4gVGhlIGFsbHVyZSBvZiBub3QgaGF2aW5nIHRvIGRvIGNvbXBsZXggcmVmYWN0b3Jpbmcgb3IgcmVidWlsZGluZyBkb3duIHRoZSByb2FkIGxlYWRzIHVzIHRvIHdhbnQgdG8gZGVzaWduIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG93IGNvc3Qgb2YgY2hhbmdlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2hpbGUgZ2VuZXJhbGl6ZWQgYWJzdHJhY3Rpb25zIGFuZCByZXVzYWJsZSBjb21wb25lbnRzIGFyZSBhdCB0aGUgY29yZSBvZiByZWR1Y2luZyB0aGUgaW1wYWN0IG9mIGNoYW5nZSwgdGhleSBhcmUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Jsb2cuY29kaW5naG9ycm9yLmNvbS90aGUtZGVsdXNpb24tb2YtcmV1c2UvJnF1b3Q7Jmd0O2hhcmQgdG8gZ2V0IHJpZ2h0IGluIHRoZSBmaXJzdCBwbGFjZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0l04oCZcyBoYXJkIHRvIHByZWRpY3QgdGhlIGZ1dHVyZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtBdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHRlY2huaWNhbCBsYW5kc2NhcGUgaXMgY2hhbmdpbmcsIHlvdXIgYnVzaW5lc3MgYW5kIHlvdXIgb3JnYW5pemF0aW9uIGFyZSBib3RoIGV2b2x2aW5nIGFzIHdlbGwuIFRoZXNlIGJvdGggaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiB5b3VyIGFyY2hpdGVjdHVyYWwgZGVjaXNpb25zLiBUaGUgc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlIHRoYXQgeW91IGFyZSB1bmRlcmdvaW5nIHdpbGwgaW5mbHVlbmNlIHRoZSBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUgYmVzdCBzdWl0ZWQgdG8gYWJzb3JiIHRob3NlIGNoYW5nZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGVhcmx5IGRheXMgb2YgYSBwcm9qZWN0IG9yIGNvbXBhbnksIGl04oCZcyBwb3NzaWJsZSB0byBtYWtlIHN3ZWVwaW5nIGZ1bmRhbWVudGFsIHNoaWZ0cyBpbiB0aGUgb2JqZWN0aXZlLiBFeHRyZW1lLCBidXQgbm90IHVuY29tbW9uLCBleGFtcGxlcyBpbmNsdWRlIFRpbnkgU3BlY2sgYmVjb21pbmcgU2xhY2sgYW5kIE9kZW8gYmVjb21pbmcgVHdpdHRlci4gV2hlbiB0aGUgZG9tYWluIG9mIHlvdXIgYnVzaW5lc3MgY2FuIG1vdmUgdGhhdCBkcmFzdGljYWxseSwgdGhlIGNsZWFuIGJvdW5kYXJpZXMgb2YgeW91ciBEREQgbW9kZWwgYXJlIG91dCB0aGUgd2luZG93LiBJbiBhIHNldCBvZiBtaWNyb3NlcnZpY2VzLCB0aGVzZSBib3VuZGFyaWVzIHdpbGwgYmUgY29kaWZpZWQsIHNvIGlmIHlvdSBoYXZlIHRvIGN1dCB0aHJvdWdoIHRoZW0sIHlvdeKAmWxsIGxpa2VseSBiZSB0aGFua2Z1bCBmb3IgYSBtb3JlIHBsaWFibGUgbW9ub2xpdGguJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB5b3UgZmluZCBwcm9kdWN0IC8gbWFya2V0IGZpdCwgeW91ciBwcmlvcml0aWVzIHdpbGwgc2hpZnQgdG93YXJkcyBzdXBwb3J0aW5nIHlvdXIgcmFwaWQgZ3Jvd3RoLiBXaXRoIHN5c3RlbSBzY2FsZSBhcyBhIGRyaXZlciBvZiBjaGFuZ2UsIHRoZSBhYmlsaXR5IHRvIHJlc3BvbmQgdG8gY2hhbmdlIGlzIG9mdGVuIHRpZWQgdG8gdGhlIGluZGVwZW5kZW5jZSBvZiBzeXN0ZW1zIGJhc2VkIG9uIHRoZWlyIG9wZXJhdGlvbmFsIGNoYXJhY3RlcmlzdGljcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGF0IHNjYWxpbmcgcGhhc2UsIHlvdeKAmWxsIGhhdmUgYSBsYXJnZXIgb3JnYW5pemF0aW9uIGFuZCBmYXIgbW9yZSB0ZWFtcy4gSWYgeW914oCZcmUgbHVja3kgeW914oCZbGwgYmUgYmFjayB0byBzdXN0YWluYWJsZSBwcm9kdWN0IGV2b2x1dGlvbi4gVGhlbiB0aGUgY29zdCBvZiBjaGFuZ2Ugd2lsbCBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIGFtb3VudCBvZiBjcm9zcy10ZWFtIGNvb3JkaW5hdGlvbiByZXF1aXJlZCB0byBtYWtlIGEgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtoMiZndDtEZWZlciByZXNwb25zZSB0byBjaGFuZ2UmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7V2hlbiBhbiBpbmRpdmlkdWFsIG9yIHRlYW0gaGFzIGEgcHJvYmxlbSB0aGV54oCZcmUgdHJ5aW5nIHRvIHNvbHZlLCB0aGV5IGdlbmVyYWxseSBzdGFydCBvZmYgd2l0aCBhIHByZXR0eSBzaW1wbGUgZGlyZWN0aXZlIOKAkyBsZXTigJlzIGJ1aWxkIHRvIHNvbHZlIHRoYXQgcHJvYmxlbS4gV2hhdOKAmXMgdGhlIG1vc3QgZWZmZWN0aXZlIGFyY2hpdGVjdHVyZSB3ZSBjYW4gdXNlIHRvIGJ1aWxkIGEgdmlhYmxlIHByb2R1Y3QgYXQgdGhlIGxvd2VzdCBjb3N0PyBUaGlzIGlzIGdlbmVyYWxseSB0cnVlIHdoZXRoZXIgaXTigJlzIGEgc3RhcnR1cCBvciBhIGh1Z2UgbXVsdGluYXRpb25hbCBjb3Jwb3JhdGlvbi4gQSBuZXcgcHJvamVjdCB3aWxsIGJlIGJ1aWx0IG9uIGEgc3lzdGVtIHRoYXTigJlzIHJlbGF0aXZlbHkgbmV3LCBhbmQgd2lsbCBiZSB1bmxpa2VseSB0byBoYXZlIHByb2R1Y3QtbWFya2V0IGZpdCBiZWNhdXNlIHRoZSBjb21wYW55IHdvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCBpdHMgYnVzaW5lc3MgZG9tYWluIHlldCwgYW5kIHdvbuKAmXQga25vdyB3aGVyZSB0aGUgcHJpbWFyeSBzb3VyY2VzIG9mIGNoYW5nZSB3aWxsIGNvbWUgZnJvbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHNpdHVhdGlvbiwgZGVzaWduaW5nIGZvciBjaGFuZ2UgYmVjb21lcyBhIGxvdCBoYXJkZXIuIElmIGl04oCZcyBhIGxvdCBtb3JlIGV4cGVuc2l2ZSB0byBtYWtlIHRoaW5ncyByZXNpbGllbnQgdG8gY2hhbmdlIGFuZCB5b3UgY2Fu4oCZdCB0ZWxsIHlldCB3aGljaCBwYXJ0cyBvZiB5b3VyIHN5c3RlbSB3aWxsIGNoYW5nZSwgaG93IGRvIHlvdSBtYWtlIHRoZSBkZWNpc2lvbiBhYm91dCB3aGVyZSB0byBtYWtlIHRoYXQgaW52ZXN0bWVudD8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBjb3VudGVyaW50dWl0aXZlIGFzIGl0IG1heSBzb3VuZCwgdGhlIGFuc3dlciBpcyBwcm9iYWJseSBub3doZXJlLiBBdCBsZWFzdCBub3QgeWV0LiBJbnN0ZWFkIHdhdGNoIGNoYW5nZSBjbG9zZWx5IGFuZCBidWlsZCBpbiBhIHdheSB0aGF0IG1pbmltaXplcyB0aGUgY29zdCBvZiBiZWluZyB3cm9uZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiDigJwmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9zaG9wLm9yZWlsbHkuY29tL3Byb2R1Y3QvOTc4MDU5NjUyMjcwNC5kbyZxdW90OyZndDs5NyBUaGluZ3MgRXZlcnkgU29mdHdhcmUgQXJjaGl0ZWN0IFNob3VsZCBLbm93Jmx0Oy9hJmd0O+KAnSBLZXZsaW4gSGVubmV5LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbWVkaXVtLmNvbS9Aa2V2bGluaGVubmV5L2h0dHBzLW1lZGl1bS1jb20ta2V2bGluaGVubmV5LXVzZS11bmNlcnRhaW50eS1hcy1hLWRyaXZlci00OTNlYmViZDU3NWQmcXVvdDsmZ3Q7ZGVzY3JpYmVzIGFuIGltcG9ydGFudCBhcHByb2FjaCB0byB0aGlua2luZyBhYm91dCB1bmNlcnRhaW50eSZsdDsvYSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2Jsb2NrcXVvdGUmZ3Q7CiAgJmx0O3AmZ3Q74oCcVGhlIHByZXNlbmNlIG9mIHR3byBvcHRpb25zIGlzIGFuIGluZGljYXRvciB0aGF0IHlvdSBuZWVkIHRvIGNvbnNpZGVyIHVuY2VydGFpbnR5IGluIHRoZSBkZXNpZ24uIFVzZSB0aGUgdW5jZXJ0YWludHkgYXMgYSBkcml2ZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHlvdSBjYW4gZGVmZXIgY29tbWl0bWVudCB0byBkZXRhaWxzIGFuZCB3aGVyZSB5b3UgY2FuIHBhcnRpdGlvbiBhbmQgYWJzdHJhY3QgdG8gcmVkdWNlIHRoZSBzaWduaWZpY2FuY2Ugb2YgZGVzaWduIGRlY2lzaW9ucy4gSWYgeW91IGhhcmR3aXJlIHRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQsIHlvdeKAmXJlIG1vcmUgbGlrZWx5IHRvIGJlIHN0dWNrIHdpdGggaXQg4oCTIGluY2lkZW50YWwgZGVjaXNpb25zIGJlY29tZSBzaWduaWZpY2FudCBhbmQgdGhlIHNvZnRuZXNzIG9mIHRoZSBzb2Z0d2FyZSBoYXJkZW5zLuKAnSZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7VGhpcyBmcmFtaW5nIGlzIGdyZWF0IGZvciBleHBsaWNpdCBkZWNpc2lvbnMsIGJ1dCB3aGF0IGlmIHlvdSBkb27igJl0IGtub3cgeW914oCZcmUgbWFraW5nIGEgY2hvaWNlPyZsdDsvcCZndDsKCiZsdDtwJmd0O01hbnkgdGltZXMsIHRoZSBjaG9pY2UgaXNu4oCZdCBldmVuIHZpc2libGUgeWV0LCBidXQgd2lsbCByZXZlYWwgaXRzZWxmIGxhdGVyLiBJbiB0aGVzZSBzaXR1YXRpb25zLCB0aGUgYW5zd2VyIGlzIG5vdCB0byBvdmVyIGdlbmVyYWxpemUsIGJ1aWxkaW5nIGFic3RyYWN0aW9ucyBldmVyeXdoZXJlIGp1c3QgaW4gY2FzZS4gSW5zdGVhZCwga2VlcCB0aGluZ3MgYXMgc2ltcGxlIGFzIHBvc3NpYmxlIHNvIHlvdSBjYW4gdW5kZXJzdGFuZCB0aGVtIGxhdGVyIGlmIHlvdSBoYXZlIHRvIG1ha2UgYSBjaGFuZ2UuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O1NpbXBsaWNpdHkgbWFrZXMgaXQgZWFzaWVyIHRvIGFkYXB0IHRvIGNoYW5nZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZWFybHkgZGF5cywgdGhlIENpcmNsZUNJIGFwcGxpY2F0aW9uIHdhcyBhIG1vbm9saXRoIHRoYXQgdG9vayBhIGN1c3RvbWVy4oCZcyBidWlsZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRhdGEgYW5kIHB1c2hlZCBpdCBpbnRvIG9uZSBvZiBzZXZlcmFsIExYQyBjb250YWluZXJzLiBFdmVyeSBjb250YWluZXIgdGhhdCB3ZSBzcHVuIHVwIHdhcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgc2FtZSBpbWFnZSB0aGF0IGNvbnRhaW5lZCBldmVyeXRoaW5nIHRoYXQgd2UgdGhvdWdodCBhbnlvbmUgd291bGQgZXZlciB3YW50IGluIHRoZWlyIHRlc3QgZW52aXJvbm1lbnQuIEluIGhpbmRzaWdodCwgdGhpcyBzb3VuZHMgbGlrZSBhIHRlcnJpYmxlIGlkZWEsIGJ1dCBhdCB0aGUgdGltZSwgaXQgd2FzIGZhbnRhc3RpYy4gSXQgd2FzIHNpbXBsZSB0byBtYWludGFpbiBhbmQgc3VwcG9ydGVkIHRoZSBuZWVkcyBvZiBvdXIgZWFybHkgY3VzdG9tZXJzLCBtYW55IG9mIHdob20gd2VyZSBidWlsZGluZyBSYWlscyBtb25vbGl0aHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXMgdGltZSBwYXNzZWQgYW5kIG91ciBjdXN0b21lciBiYXNlIGdyZXcsIHNvIGRpZCB0aGUgZGl2ZXJzaXR5IG9mIHRoZWlyIG5lZWRzIGluIHRlcm1zIG9mIHRlc3QgZW52aXJvbm1lbnRzLiBVcGdyYWRlZCB2ZXJzaW9ucyBvZiB0aGVpciB1bmRlcmx5aW5nIGRhdGFiYXNlcywgbm92ZWwgbmV3IGRldmVsb3BtZW50IGZyYW1ld29ya3MsIGV2ZW4gbmV3IG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbnMgYmVjYW1lIG5lY2Vzc2FyeS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgb3JpZ2luYWwgY29udGFpbmVyIG1hbmFnZW1lbnQgaW4gQ2lyY2xlQ0kgd2FzbuKAmXQgZGVzaWduZWQgaW4gYSB3YXkgdGhhdCBhbGxvd2VkIHVzIHRvIGFkYXB0IGVhc2lseSB0byB0aGVzZSBjaGFuZ2luZyBuZWVkcy4gQnV0IGl0IHdhcyBmYWlybHkgc2ltcGxlLiBTbyB3aGVuIHdlIHNldCBvdXQgdG8gc29sdmUgdGhlc2UgcHJvYmxlbXMsIHdlIGtuZXcgd2hlcmUgdG8gc3BsaWNlIGluIGEgbmV3IGFwcHJvYWNoIGFuZCBpdCB3YXMgbWluaW1hbCB3b3JrIHRvIGVuYWJsZSB0aGF0IHNwbGljaW5nLiBXZSBhbHNvIGRpZG7igJl0IGhhdmUgdG8gdW5yYXZlbCBhIHBvb3IgZ2VuZXJhbGl6YXRpb24gdGhhdCBkaWRu4oCZdCBzdXBwb3J0IG91ciBuZXcgcHJvYmxlbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3aGlsZSBzZWVtaW5nbHkgc2ltcGxlLCB3ZSB3ZXJlIGZpdmUgeWVhcnMgaW50byBzdWNjZXNzZnVsIGdyb3d0aCBhcyBhIGNvbXBhbnkgbWVldGluZyB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycyBvbiB0aGF0IHNpbXBsZSBzeXN0ZW0gYmVmb3JlIG91ciBmaXJzdCBjdXN0b21lcnMgdGVzdGVkIGl0cyByZXBsYWNlbWVudC4gSW4gdGhvc2UgZml2ZSB5ZWFycywgRG9ja2VyIHdhcyBjcmVhdGVkLCBhcyB3YXMgSGFzaGlDb3Jw4oCZcyBOb21hZC4gQ29tYmluZWQsIHRob3NlIHRvb2xzIGVsaW1pbmF0ZWQgaHVnZSBwb3J0aW9ucyBvZiB0aGUgd29yayBuZWNlc3NhcnkgdG8gZ2V0IHRoZSBmbGV4aWJsZSBhbmQgc2NhbGFibGUgZW52aXJvbm1lbnRzIHRoYXQgd2Ugc3VwcG9ydCBmb3IgY3VzdG9tZXJzIHRvZGF5LiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28sIGFzIHdlIHJldG9vbGVkIHRoZSBzeXN0ZW0gdG8gYWRhcHQgdG8gdGhlIGNoYW5nZWQgbWFya2V0IHdlIHdlcmUgaW4gYSBwb3NpdGlvbiB0byBhc2sg4oCcSG93IGRvIHdlIGRvIHRoaXMgaW4gYSB3YXkgdGhhdCBiZXR0ZXIgcG9zaXRpb25zIHVzIGZvciBpbmNyZW1lbnRhbCBjaGFuZ2U/4oCdIEl0IHdvdWxkIGJlIGRpZmZpY3VsdCB0byBvdmVyc3RhdGUgaG93IG11Y2ggdmFsdWUgdGhhdCBmaXZlIHllYXJzIG9mIGV4cGVyaWVuY2UgcHJvdmlkZWQgd2hlbiBkZXNpZ25pbmcgYSBzb2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdCBzb3VuZHMgd2VpcmQgYW5kIGdyb3NzbHkgdW5mYWlyIHRvIHNheSB0aGlzLCBidXQgbW9zdCBvZiB0aGUgdGltZSB3ZSBkb27igJl0IGV2ZW4ga25vdyB0aGF0IHdl4oCZcmUgbWFraW5nIGEgbW9udW1lbnRhbCBkZXNpZ24gZGVjaXNpb24gYmVjYXVzZSB0aGUgYWx0ZXJuYXRlIHBhdGggaGFzbuKAmXQgc2hvd24gdXAgeWV0LiBIb3cgZG8geW91IGd1YXJkIGFnYWluc3QgdGhpcz8mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7RGVmZXIsIGRlZmVyLCBkZWZlciZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUaGUgY29ycmVjdCBzb2x1dGlvbnMgaGF2ZSBhIGhhYml0IG9mIHJldmVhbGluZyB0aGVtc2VsdmVzIGlmIHlvdSBjYW4gZmluZCBhIHdheSB0byB3YWl0IGxvbmcgZW5vdWdoLiBUZWNobm9sb2d5IGdhaW5zIHRyYWN0aW9uIG9yIGRpZXMuIElmIHlvdSBjaG9zZSBhIGNvbnRhaW5lciBvcmNoZXN0cmF0aW9uIGVuZ2luZSBpbiAyMDE2LCB0aGVyZeKAmXMgYSByb3VnaGx5IDIwJSBjaGFuY2UgdGhhdCB5b3Ugd291bGQgaGF2ZSBjaG9zZW4gS3ViZXJuZXRlcy4gVGhhdCBtZWFucyBieSB0aGUgYmVnaW5uaW5nIG9mIDIwMTgsIGFsbW9zdCA4MCUgb2YgY29tcGFuaWVzIHdlcmUgc3dpdGNoaW5nLiBUaG9zZSBhcmUgbm90IGdyZWF0IG9kZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28gZGVmZXJyaW5nIGNhbiBiZSBnb29kLiBEZWZlcnJpbmcgdG8gdGhlIHBvaW50IG9mIGNyZWF0aW5nIGEgY3Jpc2lzIGlzIG5vdC4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7VGhpbmsgbGlrZSBhIHByb2R1Y3QgbWFuYWdlciZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3VyIGFyY2hpdGVjdHVyZSBpcyBhIGxlYWt5IGFic3RyYWN0aW9uLiBXaGlsZSBDaXJjbGVDSSBpcyBwcm9iYWJseSBhbiBleHRyZW1lIGV4YW1wbGUgb2YgdGhpcyBjYXNlIGR1ZSB0byB0aGUgYWNjZXNzIG91ciBjdXN0b21lcnMgaGF2ZSB0byBzeXN0ZW1zIGluIG91ciBwbGF0Zm9ybSwgdGhlcmUgaXMgYWx3YXlzIHNvbWUgaW1wbGljYXRpb24gZm9yIGN1c3RvbWVycyBvZiB0aGUgZGVjaXNpb25zIHlvdSBtYWtlIGluIGRlZmluaW5nIHlvdXIgYXJjaGl0ZWN0dXJlLiBSZWNvZ25pemluZyB0aGlzIGltcGFjdCBhbmQgYmVpbmcgYWJsZSB0byBjb2hlcmVudGx5IGRpc2N1c3MgYXBwcm9hY2hlcyBhbmQgYWx0ZXJuYXRpdmVzIGlzIGEgaHVnZSBhc3NldCB0aGF0IGFuIGVuZ2luZWVyIGNhbiBicmluZyB0byB0aGVpciBQTSBhbmQgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaGlsZSB3ZSB3ZXJlIHdpdG5lc3NpbmcgYWxsIG9mIHRoaXMgY2hhbmdlIGluIGhvdyBvdXIgY3VzdG9tZXJzIHdlcmUgYnVpbGRpbmcgc29mdHdhcmUsIG9uZSB0aGluZyB3ZSBpZ25vcmVkIGZvciB0b28gbG9uZyB3YXMgdGhlIHJpc2Ugb2YgRG9ja2VyLiBEb2NrZXIgZGlkbuKAmXQgZXZlbiBleGlzdCB3aGVuIENpcmNsZUNJIHN0YXJ0ZWQgaW4gMjAxMSwgdGhlbiBieSAyMDE0IGl0IHdhcyBldmVyeXdoZXJlLiBNYW55IG9mIG91ciBjdXN0b21lcnMgaGFkIHN0YXJ0ZWQgYnVpbGRpbmcgRG9ja2VyIGltYWdlcyBhcyBwYXJ0IG9mIHRoZWlyIGJ1aWxkIHRvIHByZXBhcmUgZm9yIGRlcGxveS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtEb2NrZXIgd2FzIG9yaWdpbmFsbHkgYnVpbHQgb24gdG9wIG9mIExYQywgYW5kIHRoYXQgbWVhbnQgaW4gdGhvc2UgZWFybHkgZGF5cyB3ZSBjb3VsZCBzdXBwb3J0IHRoZSB1c2Ugb2YgRG9ja2VyIGNvbW1hbmRzIHRvIGJ1aWxkIGltYWdlcyBhbmQgcHVzaCB0aGVtIHRvIHJlcG9zaXRvcmllcyBhbGwgaW5zaWRlIG9mIG9uZSBvZiBvdXIgTFhDIGNvbnRhaW5lcnMuIEluIDIwMTQsIERvY2tlciBsYXVuY2hlZCBzb21ldGhpbmcgY2FsbGVkIGxpYmNvbnRhaW5lciBhbmQgdGhleSBwdWxsZWQgYXBhcnQgdGhlIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBzeXN0ZW0gYW5kIGNyZWF0ZWQgZXhlY3V0aW9uIGRyaXZlcnMsIHdoaWNoIHNvb24gbGVkIHRvIHRoZSBkZXByZWNhdGlvbiBvZiB0aGUgTFhDIGRyaXZlci4gRGlzYXBwb2ludGluZywgYnV0IGl0IHN0aWxsIHdvcmtlZC4gVGhlbiBEb2NrZXIgZGVsZXRlZCBhbGwgTFhDIHN1cHBvcnQuIFRoYXQgd2FzIGJhZC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QWx3YXlzIHRoaW5rIGFib3V0IHVzZXJzJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVycyBhbmQgYXJjaGl0ZWN0cywgd2Ugc2F3IHRoaXMgY29taW5nLCBhbmQgZnJhbmtseSwgaXQgd2FzIHVuZGVyIHRoZSByYWRhciBvZiBvdXIgcHJvZHVjdCB0ZWFtLiBPdXIgbm9uLXRlY2huaWNhbCBwcm9kdWN0IGZvbGtzIGRpZG7igJl0IG5lY2Vzc2FyaWx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBidXQgb3VyIGVuZ2luZWVycyB3ZXJlIHRhbGtpbmcgYWJvdXQgaXQgZXZlcnkgZGF5LiBTbyBhcyBhbiBlbmdpbmVlciwgYW4gYXJjaGl0ZWN0LCBvciBhIGxlYWRlciBpbiB0ZWNobm9sb2d5LCB5b3UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBwcm9kdWN0IGFuZCB3b3JraW5nIHdpdGggeW91ciBwcm9kdWN0IG1hbmFnZXJzIHRvIGVuc3VyZSBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGUgaW1wbGljYXRpb25zIG9mIHRlY2huaWNhbCBjaG9pY2VzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0l04oCZcyBpbXBvcnRhbnQgdG8gc2VwYXJhdGUgdGhpcyBkaXNjdXNzaW9uIGZyb20gdGVjaG5pY2FsIGludmVzdG1lbnRzLiBUaGVyZSBpcyBhYnNvbHV0ZWx5IGEgcGxhY2UgZm9yIHRoaXMgdHlwZSBvZiBpbnZlc3RtZW50LCBhbmQsIGFuIGFyZ3VtZW50IHRoYXQgZnJhbWluZyB0aGVzZSBpbnZlc3RtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB5b3UgZnJhbWUgcHJvZHVjdCBpbnZlc3RtZW50cyBtYWtlcyBpdCBtdWNoIGVhc2llciB0byBtYWtlIHRyYWRlb2ZmIGRlY2lzaW9ucy4gSG93ZXZlciwgaWRlbnRpZnlpbmcgdGhlIGRpcmVjdGx5IGN1c3RvbWVyLXZpc2libGUgZmVhdHVyZSBpbXBhY3Qgb2YgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBtb3JlIGNvbW1vbmx5IGRpc2N1c3NlZCBpbXBhY3RzIG9mIGNvc3QsIHBlcmZvcm1hbmNlLCBzZWN1cml0eSwgZXRjLiZsdDsvcCZndDsKCiZsdDtwJmd0O0J1aWxkaW5nIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHlvdXIgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgdmFsdWUgYWNoaWV2ZWQgYnkgeW91ciBjdXN0b21lcnMgd2lsbCBwdXQgeW91IGluIGEgcG9zaXRpb24gdG8gbWFrZSBtb3JlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB3aGF0IGFuZCBob3cgdG8gYnVpbGQgYXMgeW91ciBidXNpbmVzcyBldm9sdmVzLiBUaGVuIHlvdSBjYW4gZm9jdXMgb24gZ2V0dGluZyBhaGVhZCBvZiB0aGF0IGV2b2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7S2VlcCB5b3VyIGhlYWQgdXAmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gQ2FuYWRpYW4gYW5kLCB1bnN1cnByaXNpbmdseSwgSSBncmV3IHVwIHBsYXlpbmcgaWNlIGhvY2tleS4gVGhyb3VnaG91dCBteSBjaGlsZGhvb2QsIEkgc3BlbnQgYW4gZW5kbGVzcyBhbW91bnQgb2YgdGltZSBhdCBwcmFjdGljZSBqdXN0IHNrYXRpbmc6IGZvcndhcmRzLCBiYWNrd2FyZHMsIHR1cm5pbmcsIHN0b3BwaW5nLCBmaWd1cmUgZWlnaHRzIGFyb3VuZCBjb25lcy4gVGhlbiBjYW1lIHN0aWNrIGhhbmRsaW5nLiBUaGUgaWRlYSB3YXMgdG8gaGF2ZSB0aGUgbW92ZW1lbnQgb24gdGhlIGljZSBiZWNvbWUgc2Vjb25kIG5hdHVyZSBzbyBJIGNvdWxkIGZvY3VzIG9uIHdoYXQgcmVhbGx5IG1hdHRlcmVkOiBzZWVpbmcgdGhlIHBsYXkgZGV2ZWxvcCwgZ2V0dGluZyBpbnRvIHNwYWNlLCBhbmQgdHJ5aW5nIHRvIHNjb3JlLiBNYWtlIHRoZSBmdW5kYW1lbnRhbHMgYWxtb3N0IGVmZm9ydGxlc3Mgc28geW91IGNhbiBwdXQgeW91ciBlbmVyZ3kgaW50byB0aGUgbm92ZWwgc3R1ZmYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gc29mdHdhcmUsIHdlIGhhdmUgYSBiYWQgdGVuZGVuY3kgdG8gbWFrZSB0aGUgZnVuZGFtZW50YWxzIGEgbG90IGhhcmRlciB0aGFuIHRoZXkgc2hvdWxkIGJlIGJ5IGFkb3B0aW5nIG5ldyB0ZWNobm9sb2d5IHRoYXQgd2UgdGhpbmsgaXMgZ29pbmcgdG8gYmUgZ2FtZSBjaGFuZ2luZywgYnV0IGVuZHMgdXAgaGF2aW5nIG1vZGVzdCB1cHNpZGUgaWYgYW55LiBUbyBtYWtlIHRoaW5ncyB3b3JzZSwgdGhlIGRvd25zaWRlIGlzIG9mdGVuIHVuYm91bmRlZCBhcyB3ZSBnZXQgb3VyIHRlYW1zIHVwIHRoZSBsZWFybmluZyBjdXJ2ZSwgZmluZCB1bnRlc3RlZCBlZGdlIGNhc2VzIGR1cmluZyBwcm9kdWN0aW9uIGluY2lkZW50cywgYW5kIGludmVudCBvdXIgb3duIOKAnGJlc3QgcHJhY3RpY2VzLuKAnSBBIHdvcmxkIHdoZXJlIFN0YWNrIE92ZXJmbG93IGhhcyBubyBhbnN3ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1doaWxlIHdl4oCZcmUgcHV0dGluZyB0aGlzIGVmZm9ydCBpbnRvIG91ciBub3ZlbCB0ZWNoLCB3ZeKAmXJlIG5vdCBmb2N1c2luZyBvbiBob3cgb3VyIHN5c3RlbXMgbmVlZCB0byBldm9sdmUgdG8gbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QSB0aW1lIHNpbXBsaWNpdHkgd291bGQgaGF2ZSBoZWxwZWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Q2lyY2xlQ0kgaXMgYSBDbG9qdXJlIHNob3AgYW5kLCBpbiBvdXIgZWFybHkgZGF5cywgd2UgZGVjaWRlZCB3ZeKAmWQgYmUgYmV0dGVyIGF0IGZyb250IGVuZCBkZXZlbG9wbWVudCBpZiB3ZSB1c2VkIHRoZSBzYW1lIGxhbmd1YWdlIHRoYXQgd2UgdXNlZCBpbiB0aGUgYmFja2VuZC4gU28gd2UgYWRvcHRlZCBPbSwgYSBDbG9qdXJlU2NyaXB0IHdyYXBwZXIgYXJvdW5kIFJlYWN0LiBBIGZldyB5ZWFycyBsYXRlciwgRGF2aWQgTm9sZW4sIHRoZSBwZXJzb24gd2hvIHN0YXJ0ZWQgT20sIGRlY2lkZWQgaGUgZGlkbuKAmXQgbGlrZSB0aGUgbW9kZWwgc28gaGUgcmVwbGFjZWQgaXQgd2l0aCBzb21ldGhpbmcgaW5jb21wYXRpYmxlIGNhbGxlZCBPbSBOZXh0LiBXZSB0cmllZCB0byBtaWdyYXRlIGluY3JlbWVudGFsbHkgdG8gT20gTmV4dCBhbmQgZW5kZWQgdXAgd2l0aCBhbiBvdmVybHkgY29tcGxleCBmcm9udGVuZCB3aXRoIHR3byBzdGF0ZSBtb2RlbHMgYW5kIG1hc3NpdmUgb3ZlcmhlYWQgdG8gZXZlcnkgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGVuZGVkIHVwIHJld3JpdGluZyBpdCBpbiBSZWFjdC4gSW4gcmV0cm9zcGVjdCwgT20gaGFkIGJvdGggaGlnaCByaXNrIGFuZCBoaWdoIGNvc3QgdG8gY2hhbmdlIGFuZCB3ZSBwYWlkIHRoZSBwcmljZS4gQW5kIHdlIHNwZW50IHRoYXQgdGltZSBsb29raW5nIGF0IG91ciBmZWV0LCBub3QgYWhlYWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm8gY29tcGFueSBoYXMgZXZlciB3b24gYmVjYXVzZSBvZiBhbiBhbWF6aW5nbHkgbm92ZWwgb3IgZXNvdGVyaWMgdGVjaG5vbG9neSBjaG9pY2UuIFRoZXJlIGlzIGFuIGVuZGxlc3MgbGlzdCwgaG93ZXZlciwgb2YgY29tcGFuaWVzIHRoYXQgaGF2ZSB3b24gYmVjYXVzZSB0aGV5IGNhbiBtb3ZlIHF1aWNrbHkgYW5kIHdpdGggYWdpbGl0eSwgYWRhcHRpbmcgdG8gY2hhbmdlIGFzIGl0IGhhcHBlbnMuIFRlY2hub2xvZ3kgc2hvdWxkIGJlIGFuIGFjY2VsZXJhdG9yIGhlbHBpbmcgdXMgbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4gV2VsbC11bmRlcnN0b29kLCBwcm9kdWN0aW9uLXRlc3RlZCB0b29scyBhcmUgZmFyIG1vcmUgbGlrZWx5IHRvIGZpdCB0aGF0IGJpbGwuIEFzIG15IGNvbGxlYWd1ZSBCZWFyIHNheXMsIOKAnElmIGEgdG9vbCBpc27igJl0IGhlbHBpbmcsIGl04oCZcyBub3QgYSB0b29sLCBpdOKAmXMgYSBjaG9yZS4gRHJvcCBpdC7igJ0mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7Q29uY2x1c2lvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtVbmZvcmVzZWVuIGNoYW5nZSBpcyB0b3Atb2YtbWluZCBmb3Igc28gbWFueSBvZiB1cyByaWdodCBub3csIGFuZCBpdOKAmXMgbW9yZSBvYnZpb3VzIHRoYW4gZXZlciB0aGF0LCBpbiBidXNpbmVzcywgbm9ib2R5IGNhbiBwcmVkaWN0IHRoZSBmdXR1cmUuIEl04oCZcyBhIHNhZmUgYmV0IHRoYXQgZm9sa3MgYXQgR00gZGlkbuKAmXQgc3RhcnQgdGhlIHllYXIgdGhpbmtpbmcgYWJvdXQgaG93IHRvIHVzZSB0aGVpciBmYWN0b3JpZXMgdG8gbWFrZSB2ZW50aWxhdG9ycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWluZyBwcmVwYXJlZCB0byBhZGFwdCBpbiB0aGUgZmFjZSBvZiBjaGFuZ2UgcmVxdWlyZXMgdGhpbmtpbmcgYWJvdXQgY2hhbmdlIGFzIGEgZHJpdmVyIGluIGV2ZXJ5dGhpbmcgeW91IGRvLiBXYXRjaCBob3cgeW91ciBtYXJrZXQgaXMgY2hhbmdpbmcgYW5kIHJlZmxlY3Q9IG9uIGhvdyB0aGF0IGltcGFjdHMgeW91ciBhcmNoaXRlY3R1cmUgc28gdGhhdCB5b3UgY2FuIG1ha2UgdGFyZ2V0ZWQsIGluY3JlbWVudGFsIGltcHJvdmVtZW50cyBpbiBpdHMgYWRhcHRhYmlsaXR5LiBUaGlzIHdpbGwgaGVscCBrZWVwIHlvdSBmb2N1c2VkIG9uIGV2b2x1dGlvbiB3aXRob3V0IHdhc3RpbmcgdGltZSBvciBtb25leSBvbiBhcmVhcyB0aGF0IHdvbuKAmXQgbmVlZCBpdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCbGFjayBTd2FuIGV2ZW50cyBhcmUgc28gdW51c3VhbCB0aGF0IHN0dWR5aW5nIHRoZSBzcGVjaWZpY3MgY2FuIGJlIGxvdyB2YWx1ZSwgYnV0IHRoZXkgcmVtaW5kIHVzIGhvdyBmYXIgcmVhbGl0eSBjYW4gYmUgZnJvbSBvdXIgcGxhbnMuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZW5naW5lZXJpbmcgbWFuYWdlcnMgY2FuIGVmZmVjdGl2ZWx5IHN1cHBvcnQgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWVuZ2luZWVyaW5nLW1hbmFnZXJzLWNhbi1lZmZlY3RpdmVseS1zdXBwb3J0LWVuZ2luZWVycy10ZWFtcy1hbmQtb3JnYW5pemF0aW9ucy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+V2VkLCAyOSBBcHIgMjAyMCAxNTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9ob3ctZW5naW5lZXJpbmctbWFuYWdlcnMtY2FuLWVmZmVjdGl2ZWx5LXN1cHBvcnQtZW5naW5lZXJzLXRlYW1zLWFuZC1vcmdhbml6YXRpb25zLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkxlbmEgUmVpbmhhcmQ8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIHR5cGljYWwgam9iIGRlc2NyaXB0aW9uIGZvciBtYW55IGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMgaXMgYWN0aW9uLXBhY2tlZC4gSXQgaXMgYSBtaXggb2YgaGFuZHMtb24gY29kaW5nLCB0ZWNobmljYWwgbGVhZGVyc2hpcCBhbmQgZGVjaXNpb24gbWFraW5nLCBwcm9jZXNzIGFuZCBwcm9qZWN0IG1hbmFnZW1lbnQsIHByb2R1Y3Qgb3ZlcnNpZ2h0LCBwZW9wbGUgbWFuYWdlbWVudCwgZmluZGluZyBhbmQgaGlyaW5nIHRhbGVudCDigKYgdGhlIGxpc3QgZ29lcyBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiBvdXIgd29yaywgd2UgZGVhbCB3aXRoIGJvdGggdGVjaG5pY2FsIGFuZCBwZW9wbGUgc3lzdGVtczogd2Ugc3VwcG9ydCBpbmRpdmlkdWFsIGVuZ2luZWVyc+KAmSBncm93dGg7IGhlbHAgdGVhbXMgYmVjb21lIHN1Y2Nlc3NmdWw7IGFuZCBtYWtlIHRoZSBvcmdhbml6YXRpb24gbW9yZSBwcm9kdWN0aXZlLCBmdW5jdGlvbmFsLCBhbmQgaW5ub3ZhdGl2ZS4gQWJvdmUgYWxsLCBhbiBlbmdpbmVlcmluZyBtYW5hZ2VyIGlzIGEgc2VydmljZSBvciBzdXBwb3J0IHJvbGUgYWNyb3NzIHRoZXNlIHZhcmlvdXMgbGF5ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1BlcmhhcHMgbW9zdCBmYXNjaW5hdGluZyBhbmQgZGlmZmljdWx0IGlzIHRoZSBoaWdoLWxldmVsIG9mIGFtYmlndWl0eSB0aGF0IGNvbWVzIHdpdGggZW5naW5lZXJpbmcgbWFuYWdlbWVudC4gTWFueSBwcm9ibGVtcyBvciBxdWVzdGlvbnMgZG9u4oCZdCBoYXZlIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLiBUaGVyZSBhcmVu4oCZdCBhYnNvbHV0ZSBhbnN3ZXJzIHRvIHdoYXQgaXQgbWVhbnMgdG8gYmUgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgZWl0aGVyLCBidXQgdGhlcmUgYXJlIGNlcnRhaW4gdmFsdWVzIGFuZCBndWlkZXBvc3RzIHRvIGZvbGxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgbG9vayBhdCB3aGF0IGNhbiBzaGFwZSBvdXIgdGhpbmtpbmcgYWJvdXQgb3VyIHJvbGUgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgYW5kIGhvdyB0byBlZmZlY3RpdmVseSBzdXBwb3J0IGluZGl2aWR1YWwgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1doYXQgZG8gZW5naW5lZXJzIG5lZWQgdG8gdGhyaXZlIGF0IHdvcms/Jmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SXQgaGVscHMgdG8gc3RhcnQgc2hhcGluZyBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IHJvbGVzIGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCBlbmdpbmVlcnMgbmVlZCwgYW5kIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGV5IHRocml2ZS4gUmVzZWFyY2ggZnJvbSBwZXJmb3JtYW5jZSBjb2FjaCBhbmQgdHJhaW5lciBQYWxvbWEgTWVkaW5hIGV4cG9zZXMgc2l4IGNvcmUgbmVlZHMgaHVtYW5zIGhhdmUgKGluY2x1ZGluZyBhdCB3b3JrKS4gU2hlIGNhbGxzIHRoaXMgcmVzZWFyY2ggdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGFsb21hbWVkaW5hLmNvbS9iaWNlcHMmcXVvdDsmZ3Q7QklDRVBTIG1vZGVsJmx0Oy9hJmd0OzombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7QmVsb25naW5nLiZsdDsvc3Ryb25nJmd0OyBBcyBodW1hbnMsIHdlIHN0cml2ZSB0byBiZSBwYXJ0IG9mIGEgY29tbXVuaXR5IG9mIGxpa2UtbWluZGVkIHBlb3BsZSB3aGVyZSB3ZSB1bmRlcnN0YW5kIGFuZCBzdXBwb3J0IGVhY2ggb3RoZXIuIFdlIGFsc28gd2FudCB0byBmZWVsIGFzIGlmIHdlIGFyZSBub3QgYmVpbmcgZGlzY3JpbWluYXRlZCBhZ2FpbnN0IG9yIG1hcmdpbmFsaXplZC4gQmVsb25naW5nIGlzIHJlYWxseSBpbXBvcnRhbnQgdG8gbWUgcGVyc29uYWxseTogSSBsb3ZlIHdvcmtpbmcgYXMgcGFydCBvZiBhIGRpc3RyaWJ1dGVkIHRlYW0sIGJ1dCBJIGFsc28gcmVhbGx5IGVuam95IHNlZWluZyBwZW9wbGUgaW4gcGVyc29uIGV2ZXJ5IG9uY2UgaW4gYSB3aGlsZS4gSXQgbWFrZXMgbWUgZmVlbCBtb3JlIGNvbm5lY3RlZCB0byB0aGVtLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7SW1wcm92ZW1lbnQuJmx0Oy9zdHJvbmcmZ3Q7IFdlIGFsc28gc2VlayB0byBjb250aW51b3VzbHkgbGVhcm4sIGltcHJvdmUsIGFuZCBncm93IGluIGFyZWFzIHRoYXQgbWF0dGVyIHRvIHVzLCBhcyB3ZWxsIGFzIHRvIG91ciB0ZWFtIG9yIGNvbXBhbnkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtDaG9pY2UuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8gaGF2ZSBjaG9pY2UsIGNvbnRyb2wsIGFuZCBhdXRvbm9teSBvdmVyIGltcG9ydGFudCBwYXJ0cyBvZiBvdXIgbGl2ZXMuIEluIG9uZSBvZiBteSBwcmV2aW91cyByb2xlcywgSSB0b29rIG9uIGEgbG90IG9mIHdvcmsgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLiBCdXQgdWx0aW1hdGVseSwgdGhlIGNvbnRyb2wgSSBoYWQgb3ZlciBteSBkb21haW4gd2FzIGxpbWl0ZWQgZHVlIHRvIG9yZ2FuaXphdGlvbmFsIGlzc3VlcyDigJMgd2hpY2ggbGVkIG1lIHRvIGxlYXZlIHRoZSBjb21wYW55LiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7RXF1YWxpdHkuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8ga25vdyB0aGF0IG91ciBhY2Nlc3MgdG8gaW5mb3JtYXRpb24sIG1vbmV5LCB0aW1lLCBhbmQgb3RoZXIgcmVzb3VyY2VzIGlzIGZhaXIgYW5kIGVxdWFsIGZvciBldmVyeW9uZSDigJMgbm90IGp1c3QgZm9yIG91cnNlbHZlcywgYnV0IGFsc28gZm9yIHRoZSBwZW9wbGUgYXJvdW5kIHVzLiBFdmVyeW9uZeKAmXMgbmVlZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZXF1YWxseSBpbXBvcnRhbnQuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtQcmVkaWN0YWJpbGl0eS4mbHQ7L3N0cm9uZyZndDsgV2UgbG9vayBmb3IgY2VydGFpbnR5LCBzYWZldHksIGFuZCBzdGFiaWxpdHkgaW4gb3VyIGxpdmVzLiBXZSBhbHNvIHdhbnQgZ29hbHMsIHN0cmF0ZWd5LCBhbmQgZGlyZWN0aW9uIHRvIGJlIGNvbnNpc3RlbnQg4oCTIGFuZCB0byBub3QgY2hhbmdlIHRvbyBxdWlja2x5LiBJ4oCZdmUgYmVlbiBsZWFkaW5nIHRlYW1zIGluIGZhc3QtZ3Jvd2luZyBzdGFydHVwcyBmb3IgdGhlIGxhc3QgY291cGxlIG9mIHllYXJzLCBhbmQgd2hlbiB0aGVyZeKAmXMgYSBsb3Qgb2YgY2hhbmdlIGhhcHBlbmluZywgaXTigJlzIGEgY2hhbGxlbmdlIHRvIGluc3RpbGwgcHJlZGljdGFiaWxpdHkgaW4gdGVhbXMuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtTaWduaWZpY2FuY2UuJmx0Oy9zdHJvbmcmZ3Q7IERlZXAgZG93biwgYWxsIG9mIHVzIHNlZWsgbWVhbmluZywgaW1wb3J0YW5jZSwgYW5kIHN0YXR1cy4gV2UgYWxzbyB3YW50IHRvIGJlIGFwcHJlY2lhdGVkIGZvciBvdXIgd29yayBieSBwZW9wbGUgd2hvc2Ugb3BpbmlvbnMgbWVhbiBzb21ldGhpbmcgdG8gdXMuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0lmIG91ciBjb3JlIG5lZWRzIGFyZSB0aHJlYXRlbmVkLCBwZW9wbGUgcmVzb3J0IHRvIGZpZ2h0LW9yLWZsaWdodCBtb2RlcyBvZiByZWFjdGlvbiwgd2hpY2ggYXJlIHZlcnkgc3RyZXNzZnVsLiBUaGUgZmFpbHVyZSB0byBtZWV0IGNvcmUgbmVlZHMgaGFzIGhpZ2ggY29zdHMgZm9yIG9yZ2FuaXphdGlvbnMgYnkgaGFybWluZyBwZW9wbGUgb24gb3VyIHRlYW1zLiBTbyBob3cgY2FuIGVuZ2luZWVyaW5nIG1hbmFnZXJzIHB1dCB0aGUgQklDRVBTIG1vZGVsIGludG8gYWN0aW9uIHRvIGhlbHAgdGhlaXIgdGVhbXMgdGhyaXZlPyZsdDsvcCZndDsKCiZsdDtoMiZndDtVc2luZyB0cnVzdC1iYXNlZCByZWxhdGlvbnNoaXBzIHRvIGhlbHAgZW5naW5lZXJzIGdyb3cmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgZm91bmRhdGlvbiBvZiBiZWluZyBhIGdvb2QgZW5naW5lZXJpbmcgbWFuYWdlciBpcyBnZXR0aW5nIHRvIGtub3cgb3VyIHRlYW1tYXRlcyBhbmQgdW5kZXJzdGFuZGluZyB3aGF0IGlzIGltcG9ydGFudCB0byB0aGVtLiBIZXJlIGFyZSBhIGZldyBwbGFjZXMgdG8gc3RhcnQgYnVpbGRpbmcgdHJ1c3Qgd2l0aGluIHlvdXIgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0FzayBxdWVzdGlvbnMuJmx0Oy9zdHJvbmcmZ3Q7IE9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCB0b29scyBtYW5hZ2VycyBoYXZlIGlzIGFza2luZyBnb29kIHF1ZXN0aW9ucy4gVGhlIGJhc2lzIGZvciBkb2luZyBvdXIgam9icyB3ZWxsIGlzIGxpc3RlbmluZywgb2JzZXJ2aW5nLCB0YWtpbmcgbm90ZSBvZiB3aGF0IG1vdGl2YXRlcyBvdXIgdGVhbW1hdGVzLCBhbmQgcmVhbGx5IGRpZ2dpbmcgaW50byB0aGVpciByZXNwb25zZXMgdG8gb3VyIHF1ZXN0aW9ucy4gSSB1c3VhbGx5IGdhdGhlciBxdWVzdGlvbnMgYmVmb3JlIEkgbWVldCB3aXRoIG15IHRlYW1tYXRlcyBvbmUtb24tb25lLCBzbyBJIGFtIHByZXBhcmVkIGFuZCBJIGNhbiBndWlkZSB0aGUgY29udmVyc2F0aW9uIHRvd2FyZHMgdW5kZXJzdGFuZGluZyB0aGVtIGJldHRlci4gT3ZlciB0aW1lLCBJIGhhdmUgYnVpbHQgYSBraXQgb2Ygb25lLW9uLW9uZSBxdWVzdGlvbnMgdGhhdCBJIHB1bGwgb3V0IHdoZW4gSSBuZWVkIHNvbWUgaW5zcGlyYXRpb24gZm9yIHRoZXNlIGNvbnZlcnNhdGlvbnMuIEFza2luZyBxdWVzdGlvbnMgaGVscHMgdXMgYWRqdXN0IG91ciBsZWFkZXJzaGlwIHN0eWxlIHRvIHRoZSBwZW9wbGUgd2UgYXJlIGxlYWRpbmcuIEl0IGFsc28gZW5zdXJlcyB0aGF0IHRoZXkgZmVlbCB1bmRlcnN0b29kIGFuZCBoZWFyZCwgd2hpY2ggYXJlIHJlYWxseSBpbXBvcnRhbnQgcGlsbGFycyBvZiBpbmNsdXNpb24gYW5kIGJlbG9uZ2luZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0JlIGN1cmlvdXMuJmx0Oy9zdHJvbmcmZ3Q7IFBlb3BsZSBhcmUgZnVsbCBvZiBzdXJwcmlzZXMsIGFuZCBzb21ldGltZXMgb3VyIHRlYW1tYXRlc+KAmSByZWFjdGlvbnMgbWF5IGJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBleHBlY3RlZC4gSSBvbmNlIHJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIGVuZ2luZWVyIG9uIG15IHRlYW0gd2hvIHdhcyBkZWVwbHkgdXBzZXQgYWJvdXQgdGhlIHNwZWNpZmljIHdvcmRpbmcgdXNlZCBpbiBhIHByb2R1Y3QtcmVsZWFzZSBub3RlIHRvIGN1c3RvbWVycy4gQXQgZmlyc3QgSSBkaWQgbm90IHVuZGVyc3RhbmQgdGhlaXIgc3Ryb25nIHJlYWN0aW9uLiBCdXQgd2hlbiB3ZSB0YWxrZWQsIEkgbGVhcm5lZCB0aGUgZW5naW5lZXIgaGFkIGJlZW4gb3ZlcnJ1bGVkIGJ5IHNvbWVvbmUgd2l0aCBtb3JlIHBvd2VyLCBtYWtpbmcgdGhlbSBmZWVsIGhlbHBsZXNzLCBhbmQgdGhyZWF0ZW5pbmcgdGhlaXIgY29yZSBuZWVkIGZvciBjaG9pY2UgYW5kIGVxdWFsaXR5LiZsdDsvcCZndDsKCiZsdDtwJmd0O1doYXQgbWFuYWdlcnMgbWlnaHQgcGVyY2VpdmUgYXMgbm8gYmlnIGRlYWwgY2FuIGJlIGVub3Jtb3VzIHRocmVhdHMgdG8gb3RoZXIgcGVvcGxlLiBDYXNlcyB3aGVyZSB3ZeKAmXJlIHN1cnByaXNlZCBieSBvdXIgdGVhbW1hdGVz4oCZIHJlYWN0aW9ucyBhcmUgZ29vZCBvcHBvcnR1bml0aWVzIHRvIGZvY3VzIG9uIGh1bWFuLWNlbnRyaWMgcmVzcG9uc2VzLCBsaWtlIGdpdmluZyBwZW9wbGUgdGhlIG9wcG9ydHVuaXR5IHRvIHRhbGsgdGhyb3VnaCB0aGVpciBmZWVsaW5ncy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0Nvbm5lY3QgdG8gdGhlIGJpZ2dlciBwaWN0dXJlLiZsdDsvc3Ryb25nJmd0OyBDcmVhdGluZyBhbiBpbXBhY3QgaXMgYSB2ZXJ5IGdvb2QgbW90aXZhdG9yIGZvciBhbGwgb2YgdXMsIHNvIGhlbHBpbmcgZW5naW5lZXJzIHVuZGVyc3RhbmQgaG93IHRoZWlyIHdvcmsgY29ubmVjdHMgdG8gdGhlIGJpZ2dlciBwaWN0dXJlIChob3cgaXQgaGVscHMgdXNlcnMgb3Igc3VwcG9ydHMgb3RoZXIgdGVhbXMpIGlzIGFuIGV4dHJlbWVseSBpbXBvcnRhbnQgYW5kIHN0cmF0ZWdpYyBza2lsbCBmb3IgbWFuYWdlcnMuIFdoaWxlIGdvYWwtc2V0dGluZyBmcmFtZXdvcmtzIGxpa2UgT0tScyBjYW4gaGVscCwgaXQgaXMgYWxzbyBjcnVjaWFsIHRvIGFsaWduIGVuZ2luZWVyaW5nIGluaXRpYXRpdmVzIHdpdGggaGlnaGVyLWxldmVsIGdvYWxzLCBhbmQgY29ubmVjdCB0aGVtIGNsZWFybHkgd2l0aCB1c2VyIHZhbHVlLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7SW52b2x2ZSBlbmdpbmVlcnMgaW4gZGVjaXNpb24gbWFraW5nLiZsdDsvc3Ryb25nJmd0OyBGZWVsaW5nIHRoYXQgZGVjaXNpb25zIGFyZSBmYWlyIGFuZCBlcXVpdGFibGUgaXMgYW4gaW1wb3J0YW50IGNvbXBvbmVudCBvZiB0aGUgQklDRVBTIG1vZGVsLiBXaGVuIHdlIG1ha2UgZGVjaXNpb25zLCBpdCBpcyBoZWxwZnVsIHRvIGFzayBldmVyeW9uZSBmb3IgdGhlaXIgb3BpbmlvbnMgZmlyc3QsIGFuZCB0YWtlIHRoZWlyIG9waW5pb25zIGludG8gYWNjb3VudC4gSXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBnbyB3aXRoIHdoYXQgZXZlcnlvbmUgd2FudHMuIEJ1dCB3ZSBjYW4gc3RpbGwgZG8gYSBnb29kIGpvYiBhdCBjb250ZXh0dWFsaXppbmcgdGhlIGRlY2lzaW9ucyB3ZSBtYWtlLCBhbmQgaGVscGluZyBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IHRoZWlyIGZlZWRiYWNrIHdhcyBjb25zaWRlcmVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7R2l2ZSBmZWVkYmFjayBmb3IgZ3Jvd3RoLiZsdDsvc3Ryb25nJmd0OyBPbmUgb2YgdGhlIGJlc3QgdGhpbmdzIHdlIGdldCB0byBkbyBhcyBlbmdpbmVlcmluZyBtYW5hZ2VycyBpcyBzdXBwb3J0IGVuZ2luZWVyc+KAmSBncm93dGguIEdpdmUgZmVlZGJhY2sgcmVndWxhcmx5IHRvIGhlbHAgdGhlIHBlb3BsZSBvbiB5b3VyIHRlYW0gdW5kZXJzdGFuZCB3aGVyZSB0aGV5IGFyZSBhdCBhbmQgZ3JvdyDigJMgYnkgY291cnNlLWNvcnJlY3Rpbmcgd2hlcmUgbmVlZGVkLCBhcyB3ZWxsIGFzIGJ5IGRvaW5nIG1vcmUgaW4gdGhlIGFyZWFzIGluIHdoaWNoIHRoZXkgYXJlIGFscmVhZHkgZG9pbmcgZ3JlYXQuIE1hbmFnZXJzIG5lZWQgZmVlZGJhY2sgYXMgd2VsbDogaXTigJlzIGltcG9ydGFudCB0byByZWd1bGFybHkgYXNrIHlvdXIgdGVhbSBmb3IgZmVlZGJhY2sgc28geW91IGNhbiBtYWtlIGFkanVzdG1lbnRzLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Q29hY2ggZW5naW5lZXJzLiZsdDsvc3Ryb25nJmd0OyBDb2FjaGluZyBoZWxwcyBwZW9wbGUgZmluZCBhbnN3ZXJzIHRoZW1zZWx2ZXMsIGltcHJvdmVzIHRoZWlyIHByb2JsZW0tc29sdmluZyBhbmQgbGVhZGVyc2hpcCBza2lsbHMsIGFuZCBpbmNyZWFzZXMgbGVhcm5pbmcsIHJlc2lsaWVuY2UsIGFuZCBzZWxmLW1hbmFnZW1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTcG9uc29yIGVuZ2luZWVycy4mbHQ7L3N0cm9uZyZndDsgVGhpbmsgYmFjayBvbiB5b3VyIGNhcmVlciwgYW5kIHdoZXRoZXIgeW91IGhhdmUgaGFkIGEgbWVudG9yIHdobyBjb25uZWN0ZWQgeW91IHdpdGggc29tZW9uZSwgcHV0IHlvdXIgbmFtZSBmb3J3YXJkLCBhbmQgdXNlZCB0aGVpciBpbmZsdWVuY2UgdG8gbWFrZSBhIGRpZmZlcmVuY2UgaW4geW91ciBjYXJlZXIuIEJlIHRoYXQgcGVyc29uIGZvciBzb21lb25lIGVsc2U6IGludmVzdCBpbiB0aGVpciBncm93dGgsIGxpZnQgdGhlbSB1cCwgYW5kIHB1dCB5b3VyIHdlaWdodCBiZWhpbmQgdGhlaXIgc3VjY2Vzcy4gU3VwcG9ydGluZyB5b3VyIHRlYW3igJlzIHN1Y2Nlc3MgY2FuIG1ha2UgYSByZWFsIGRpZmZlcmVuY2UgZm9yIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhpcyBpcyB0aGUgZm91bmRhdGlvbiBvZiBvdXIgd29yayBhcyBlbmdpbmVlcmluZyBtYW5hZ2Vycy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RHJpdmluZyBhIGN1bHR1cmUgb2YgdHJ1c3QgYW5kIGNvbnRpbnVvdXMgaW1wcm92ZW1lbnQgb24gdGVhbXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgbmV4dCBpbXBvcnRhbnQgYnVpbGRpbmcgYmxvY2sgaW4gb3VyIHdvcmsgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgaXMgdGhlIHRlYW0uIEFjY29yZGluZyB0byByZXNlYXJjaCwgaGlnaC1wZXJmb3JtaW5nIHRlYW1zIG5lZWQgdGhlIGZvbGxvd2luZyBlbGVtZW50cy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7UHN5Y2hvbG9naWNhbCBzYWZldHkuJmx0Oy9zdHJvbmcmZ3Q7IFRoaXMgaXMgYWJvdXQgYmVsaWV2aW5nIHRoYXQgd2Ugd2lsbCBub3QgYmUgcmVqZWN0ZWQsIGFuZCBmZWVsaW5nIGZyZWUgdG8gZXhwcmVzcyBvdXIgd29yay1yZWxhdGVkIHRob3VnaHRzIGFuZCBmZWVsaW5ncyB0byB0aGUgcGVvcGxlIGFyb3VuZCB1cy4gSXQgYWxzbyBtZWFucyBiZWxpZXZpbmcgdGhhdCBvdGhlcnMgd29u4oCZdCB0aGluayBsZXNzIG9mIHVzIGlmIHdlIG1ha2UgYSB3ZWxsLWludGVudGlvbmVkIG1pc3Rha2Ugb3IgYXNrIGZvciBoZWxwLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7U3RydWN0dXJlIGFuZCBjbGFyaXR5LiZsdDsvc3Ryb25nJmd0OyBFdmVyeW9uZSBvbiB0aGUgdGVhbSBzaG91bGQgdW5kZXJzdGFuZCBleHBlY3RhdGlvbnMsIGdvYWxzLCBhbmQgYWNjb3VudGFiaWxpdHkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtNZWFuaW5nIGFuZCBpbXBhY3QuJmx0Oy9zdHJvbmcmZ3Q7IEhpZ2gtcGVyZm9ybWluZyB0ZWFtcyBmaW5kIGEgc2Vuc2Ugb2YgcHVycG9zZSBpbiB0aGVpciB3b3JrLCBhbmQga25vdyB0aGF0IHRoZWlyIHdvcmsgaGFzIGFuIGltcGFjdC4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7THVja2lseSBmb3IgbWFuYWdlcnMsIHRoaXMgcmVzZWFyY2ggbmVhdGx5IGFsaWducyB3aXRoIHRoZSBCSUNFUFMgbW9kZWwuIEFsbCBodW1hbiBjb3JlIG5lZWRzIGFyZSByZXByZXNlbnRlZCBhbmQgaGF2ZSBpbXBhY3QgYXQgdGhlIHRlYW0gbGV2ZWwgYXMgd2VsbC4gQnkgdW5kZXJzdGFuZGluZyBhbmQgcmVzcG9uZGluZyB0byBwZW9wbGXigJlzIG1vdGl2YXRpb25zLCBsZWFkZXJzIGNyZWF0ZSB0aGUgYmFzaXMgZm9yIHRlYW1zICB0byBleHByZXNzIHRoZW1zZWx2ZXMg4oCTIGFuZCBwcm92aWRlIHRoZSBzdHJ1Y3R1cmUsIG1lYW5pbmcsIGFuZCBpbXBhY3QgdGhleSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgdHJ1c3QuJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBmaXJzdCBzdGVwIGluIGNyZWF0aW5nIHN0cnVjdHVyZSBpcyBidWlsZGluZyByZWxhdGlvbnNoaXBzLiBGb3Igb3VyIGRpc3RyaWJ1dGVkIHRlYW1zIGF0IENpcmNsZUNJLCB3ZeKAmXZlIGJ1aWx0IGRpZmZlcmVudCBzdHJ1Y3R1cmVzIHRvIGhlbHAgdGVhbW1hdGVzIGRvIHRoYXQsIHN1Y2ggYXMgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucyBhbmQgZW5naW5lZXJpbmcgdGFsa3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTdHJ1Y3R1cmUgYXJvdW5kIGhvdyB3ZSBjb2xsYWJvcmF0ZS4mbHQ7L3N0cm9uZyZndDsgT3VyIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0kgaGFzIGRvdWJsZWQgaW4gc2l6ZSBmb3IgdGhyZWUgeWVhcnMgaW4gYSByb3cuIE92ZXIgdGhpcyB0aW1lLCB3ZeKAmXZlIG1vdmVkIHRvIGEgbW9yZSBzdHJlYW1saW5lZCBlbmdpbmVlcmluZyBkZWxpdmVyeSBwcm9jZXNzIGZvciBhbGwgdGVhbXMuIEJ1dCB3ZSBzdGlsbCBsZWF2ZSBpdCB0byB0aGUgdGVhbXMgdG8gZGVjaWRlIGhvdyB0byBpbXBsZW1lbnQgdCBkYXktdG8tZGF5IHByb2Nlc3NlcywgaW5jbHVkaW5nIGRhaWx5IHN0YW5kdXAgbWVldGluZ3MsIHBsYW5uaW5nIHNlc3Npb25zLCBvciBjb2xsYWJvcmF0aW9uLiBFdmVyeSB0ZWFtIGhhcyBzcGVjaWZpYyBuZWVkcywgYW5kIHRoZXkga25vdyBiZXN0IGhvdyB0byBhZGRyZXNzIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtSZW1vdmUgYmxvY2tlcnMuJmx0Oy9zdHJvbmcmZ3Q7IFN0cnVjdHVyZXMgY2FuIGFsc28gaGVscCBtaXRpZ2F0ZSB0aGUgaW1wYWN0IG9mIGdldHRpbmcgYmxvY2tlZCBhdCB3b3JrLiBXZSBhbGwga25vdyBob3cgZnJ1c3RyYXRpbmcgaXQgaXMgdG8gYmUgc3R1Y2suIFB1dHRpbmcgdXAgcGF0aHdheXMgdG8gaGVscCBwZW9wbGUgZ2V0IHVuYmxvY2tlZCBjYW4gYmUgcmVhbGx5IGltcG9ydGFudCDigJMgZm9yIGV4YW1wbGUsIHNldHRpbmcgdXAgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucywgaW52ZXN0aW5nIGluIHNlbGYtc2VydmUgaW5mb3JtYXRpb24gYWNjZXNzLCBzdXBwb3J0aW5nIGVhY2ggb3RoZXIgYWNyb3NzIHRlYW1zLCBwdXR0aW5nIHVwIGVzY2FsYXRpb24gcGF0aHMgZm9yIHBlb3BsZSB0byBnZXQgaGVscCB3aGVuIHRoZXkgbmVlZCBpdCwgb3IgaGVscGluZyBwZW9wbGUgc3VwcG9ydCBlYWNoIG90aGVyIHRocm91Z2gga25vd2xlZGdlLXNoYXJpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtDb250aW51b3VzbHkgaW1wcm92ZS4mbHQ7L3N0cm9uZyZndDsgV2UgY2FuIHVzZSByZXRyb3NwZWN0aXZlcyB0byBkaXNjdXNzIGFuZCBpbXByb3ZlIGhvdyB3ZSB3b3JrIHRvZ2V0aGVyLiBCbGFtZWxlc3MgcG9zdG1vcnRlbXMgYXJlIGFsc28gYSBncmVhdCB0b29sIHRvIGhlbHAgdW5kZXJzdGFuZCBwcm9ibGVtcyBhbmQgZHJpdmUgdG93YXJkcyBzb2x1dGlvbnMuIENvZGUgcmV2aWV3cywgbWVudG9yaW5nLCBvciBrbm93bGVkZ2Ugc2hhcmluZyBjYW4gaGVscCB0ZWFtIG1lbWJlcnMgbGVhcm4gZnJvbSBlYWNoIG90aGVyLiBUaGUgd2F5IHdlIHRhbGsgYWJvdXQgbGVhcm5pbmcgbWF0dGVycyDigJMgZXNwZWNpYWxseSB0aGUgd2F5IHdlIGRpc2N1c3MgbWlzdGFrZXMuIFRoZXNlIGRlY2lzaW9ucyB3aWxsIGZ1bmRhbWVudGFsbHkgc2hhcGUgdGhlIGN1bHR1cmUgb2Ygb3VyIHRlYW1zLCBhbmQgZGV0ZXJtaW5lIHdoZXRoZXIgcGVvcGxlIGZlZWwgc2FmZSBvciB0aHJlYXRlbmVkIGluIHRoZWlyIGNvcmUgbmVlZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtEcml2ZSB0b3dhcmQgYWxpZ25tZW50LiZsdDsvc3Ryb25nJmd0OyBDb21tdW5pY2F0ZSBzdHJhdGVneSwgZGlyZWN0aW9uLCBhbmQgcmVsZXZhbnQgdGFjdGljYWwgZGV0YWlscyB0byBvdXIgdGVhbXMg4oCTIGFuZCByZW1lbWJlciBpdOKAmXMgYWxtb3N0IGltcG9zc2libGUgdG8gb3Zlci1jb21tdW5pY2F0ZSB0aGVzZSBkZXRhaWxzLiBBbHdheXMgcmVwZWF0IHdoYXTigJlzIGltcG9ydGFudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBlbmdpbmVlcmluZyBtYW5hZ2Vycywgd2UgYXJlIGxpa2UgbW9ydGFyOiBXZSBjb25uZWN0IHN0cnVjdHVyZXMsIHRlYW1zLCBhbmQgcGVvcGxlLiBXZSBob2xkIHRoZW0gdG9nZXRoZXIsIGJ1dCBhbHNvIGlkZW50aWZ5IGFuZCBmaWxsIGdhcHMgYXMgbmVlZGVkLiBIYW5kbGluZyBhbWJpZ3VpdHkgaXMgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgZGlmZmljdWx0IGFzcGVjdHMgb2YgZW5naW5lZXJpbmcgbWFuYWdlbWVudC4uIEZvciBhIGxvdCBvZiB3b3JrIGluIG91ciBmaWVsZCwgdGhlcmUgYXJlIG5vIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLCBsZXQgYWxvbmUgcmVzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T3VyIHdvcmsgaXNu4oCZdCBzbyBtdWNoIGFib3V0IHVzOyBpdOKAmXMgYWJvdXQgdGhlIHBlb3BsZSwgdGVhbXMsIGFuZCBvcmdhbml6YXRpb25zIHdlIHN1cHBvcnQuIFdlIGJ1aWxkIHN0cnVjdHVyZXMgdG8gaGVscCBvdGhlcnMgc2hpbmUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1N1cHBvcnRpbmcgb3JnYW5pemF0aW9uYWwgY2hhbmdlJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7TGFzdGx5LCBjcmVhdGluZyBlbnZpcm9ubWVudHMgaW4gd2hpY2ggZW5naW5lZXJzIGNhbiB0aHJpdmUgaXMgYWJvdXQgc3VwcG9ydGluZyBvdXIgb3JnYW5pemF0aW9uLiBXZSBuZWVkIHRvIHVzZSBvdXIgcG93ZXIgYXMgbWFuYWdlcnMgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLCBubyBtYXR0ZXIgdGhlIHNpemUgb2Ygb3VyIGJ1c2luZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtBZHZvY2F0ZSBmb3IgY2hhbmdlLiZsdDsvc3Ryb25nJmd0OyBUbyBiZSBlZmZlY3RpdmUgYXMgbWFuYWdlcnMsIHdlIG5lZWQgdG8gcHVzaCBmb3Igb3JnYW5pemF0aW9uYWwgY2hhbmdlIHRvIGltcHJvdmUgdGhlIGxhcmdlciBzdHJ1Y3R1cmVzIGFyb3VuZCB1cy4gRm9yIGV4YW1wbGUsIHdlIG1heSBuZWVkIHRvIGFkdm9jYXRlIGZvciBtb3JlIGNsYXJpdHkgYXJvdW5kIGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMsIGhhdmUgY29udmVyc2F0aW9ucyBhYm91dCB3aGF0IGVuZ2luZWVyaW5nIG1hbmFnZW1lbnQgc2hvdWxkIGJlIGxpa2UgaW4gb3VyIGNvbXBhbnksIGFuZCBkZXRlcm1pbmUgcmVxdWlyZW1lbnRzIGZvciBoaXJpbmcgZW5naW5lZXJpbmcgbWFuYWdlcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtNYW5hZ2UgdXAuJmx0Oy9zdHJvbmcmZ3Q7IE1hbmFnaW5nIG91ciBvd24gbWFuYWdlcnMgaXMgYSB1c2VmdWwgYnV0IGRpZmZpY3VsdCBza2lsbC4gRHJpdmluZyBvcmdhbml6YXRpb25hbCBjaGFuZ2UgYWxzbyBtZWFucyBtYWtpbmcgc3VyZSB0aGF0IG91ciBlbmdpbmVlcnPigJkgY29uY2VybnMgYXJlIGhlYXJkIGF0IHRoZSBoaWdoZXN0IGxldmVscywgYW5kIHRoYXQgd2UgdXNlIG91ciBwb3dlciB0byBtYWtlIHN1cmUgZW5naW5lZXJzIGhhdmUgYSB2b2ljZSBpbiB0aGUgcmVzdCBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgZnJhbWV3b3JrcyBhbmQgc3RhbmRhcmRzLiZsdDsvc3Ryb25nJmd0OyBXaGlsZSBpdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIG1ha2Ugcm9vbSBmb3IgaW5kaXZpZHVhbCBuZWVkcywgc3RydWN0dXJlcyBhbmQgZnJhbWV3b3JrcyBmb3IgbWFuYWdlcnMgaGVscCB1cyBob2xkIGVhY2ggb3RoZXIgYWNjb3VudGFibGUuIFRoZXkgYWxzbyAgaGVscCBsZXZlbCB0aGUgcGxheWluZyBmaWVsZCBhbmQgYnVpbGQgaW4gZXF1YWxpdHkgZm9yIHRoZSBwZW9wbGUgb24gb3VyIHRlYW1zLiBPbiBteSBjdXJyZW50IHRlYW0sIGV2ZXJ5IHF1YXJ0ZXIgd2UgcGljayBzb21lIGhpZ2gtcHJpb3JpdHkgcHJvamVjdHMgIHRvIGltcHJvdmUgaG93IHdlIHdvcmsgYXMgYW4gb3JnYW5pemF0aW9uLiBNb3N0IHJlY2VudGx5LCB3ZeKAmXZlIHdvcmtlZCBvbiBvdXIgaGlyaW5nIHByb2Nlc3MgYW5kIGluY2lkZW50IHJlbWVkaWF0aW9uOyBsYXN0IHllYXIsIHdlIGRldmVsb3BlZCBhbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvd2h5LXdlLXJlLWRlc2lnbmVkLW91ci1lbmdpbmVlcmluZy1jYXJlZXItcGF0aHMtYXQtY2lyY2xlY2kvJnF1b3Q7Jmd0O2ludGVybmFsIGNhcmVlciBncm93dGggZnJhbWV3b3JrIGZvciBlbmdpbmVlcnMmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtHcm93aW5nIGFzIGEgbGVhZGVyJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7QmVpbmcgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgaXNu4oCZdCBhbHdheXMgYSBzdHJhaWdodGZvcndhcmQgcGF0aDsgYSBsb3QgZGVwZW5kcyBvbiB3aGVyZSB3ZSBhcmUgYXQgaW4gb3VyIGNhcmVlcnMgYW5kIHdoZXJlIHdlIGFyZSBsb29raW5nIHRvIGdvLCBhcyB3ZWxsIGFzIHRoZSBncm93dGggc3RhZ2UsIHNpemUsIGFuZCBuZWVkcyBvZiBvdXIgb3JnYW5pemF0aW9ucy4gSW4gb3VyIGRhaWx5IHdvcmssIHdlIGhvbGQgdmFzdCBhbW91bnRzIG9mIHVuY2VydGFpbnR5IHdoaWxlIGFsc28gdHJ5aW5nIHRvIG1ha2UgcHJvZ3Jlc3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QW4gb3ZlcmFyY2hpbmcgdGhlbWUgaW4gbXkgd29yayBpbiBlbmdpbmVlcmluZyBtYW5hZ2VtZW50ICBoYXMgYmVlbiBncm93dGggYW5kIGltcHJvdmVtZW50LiBXZSByYXJlbHkgZGVhbCB3aXRoIGdyZWVuZmllbGQgcHJvamVjdHMgb3IgYXJlIGFibGUgdG8gYnVpbGQgYSB0ZWFtIG9yIGRlcGFydG1lbnQgZnJvbSBzY3JhdGNoLiBFdmVuIHdoZW4gd2UgZG8sIHdlIGJ1aWxkIG9uIGV4aXN0aW5nIHN0cnVjdHVyZXMgaW4gb3VyIG9yZ2FuaXphdGlvbi4gSSBiZWxpZXZlIG91ciBzdXBwb3J0aW5nIHJvbGUgbGFyZ2VseSBtZWFucyBoZWxwaW5nIGVuZ2luZWVycyBncm93LCBzdXBwb3J0aW5nIHRlYW1zIGF0IGNvbnRpbnVvdXNseSBsZWFybmluZywgYW5kIGhlbHBpbmcgb3JnYW5pemF0aW9ucyBiZWNvbWUgYmV0dGVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVyaW5nIG1hbmFnZXJzLCB3ZSBmcmVxdWVudGx5IGZhY2UgcXVlc3Rpb25zIHRoYXQgZG9u4oCZdCBjbGVhciByaWdodCBvciB3cm9uZyBhbnN3ZXJzLiBNYW55IHllYXJzIGFnbywgbXkgbGVhZGVyc2hpcCBjb2FjaCBlbmNvdXJhZ2VkIG1lIHRvIHVzZSB0aG9zZSBraW5kcyBvZiB1bmNlcnRhaW4gc2l0dWF0aW9ucyB0byBhc2sgbXlzZWxmLCDigJxXaGF0IGtpbmQgb2YgbGVhZGVyIGRvIEkgd2FudCB0byBiZT/igJ0mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJIHdhbnQgdG8gbGVhdmUgdGhlIGxhc3QgY2FsbCB0byBncm93dGggYW5kIGltcHJvdmVtZW50IHdpdGggeW91IChhbmQgbWUpOiBObyBtYXR0ZXIgd2hhdCB5b3VyIHJvbGUgb3IgY29tcGFueSBpcyBsaWtlLCB3b3JrIG9uIHNoYXBpbmcgeW91ciBhcHByb2FjaCB0byBlbmdpbmVlcmluZyBtYW5hZ2VtZW50LiBHZXQgdG8ga25vdyB0aGUgcGVvcGxlIHRoYXQgeW91IHdvcmsgd2l0aCwgYW5kIHVzZSBmZWVkYmFjayB0byBoZWxwIHRoZW0gY291cnNlLWNvcnJlY3QuIEJ1aWxkIHRlYW1zIHRoYXQgYXJlIHBzeWNob2xvZ2ljYWxseSBzYWZlIHBsYWNlcywgd2hlcmUgcGVvcGxlIGZpbmQgbWVhbmluZyBpbiBhIHNoYXJlZCBwdXJwb3NlLiBBbmQgdXNlIHlvdXIgcG93ZXIgYW5kIHByaXZpbGVnZSB0byBkcml2ZSBjaGFuZ2UgaW4geW91ciBvcmdhbml6YXRpb24uIE1ha2UgcGVvcGxlIHRoZSBjZW50ZXIgYW5kIGZvY3VzIG9mIHlvdXIgd29yaywgYW5kIGJ1aWxkIG9uIHRoYXQgZm91bmRhdGlvbiB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhleSBjYW4gdGhyaXZlLiAgQWx3YXlzIHB1c2ggdG8gY29udGludW91c2x5IGltcHJvdmUuIExlYWQgd2l0aCBodW1ibGVuZXNzLCBlbXBhdGh5LCBhbmQgbG90cyBvZiBjdXJpb3NpdHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2hhdCBraW5kIG9mIGxlYWRlciBkbyB5b3Ugd2FudCB0byBiZT8mbHQ7L3AmZ3Q7CgombHQ7aHIgLyZndDsKJmx0O3AmZ3Q7SWYgeW914oCZcmUgY3VyaW91cyBhYm91dCBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IGF0IENpcmNsZUNJIGFuZCB3b3JraW5nIHdpdGggdXM6IGpvaW4gdXMhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9ib2FyZHMuZ3JlZW5ob3VzZS5pby9jaXJjbGVjaSZxdW90OyZndDtXZeKAmXJlIGhpcmluZyBlbmdpbmVlcmluZyBtYW5hZ2VycyZsdDsvYSZndDsuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5CdWlsZGluZyBhbmQgZGVwbG95aW5nIEZsdXR0ZXIgYXBwcyB3aXRoIEZhc3RsYW5lPC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RlcGxveS1mbHV0dGVyLWFuZHJvaWQvPC9saW5rPgogICAgICAgIDxwdWJEYXRlPldlZCwgMjkgQXByIDIwMjAgMTA6MDA6MDAgLTA3MDA8L3B1YkRhdGU+CiAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9InRydWUiPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZGVwbG95LWZsdXR0ZXItYW5kcm9pZC88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5HYWJyaWVsIFNpbW1lcjwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvJnF1b3Q7Jmd0O0ZsdXR0ZXImbHQ7L2EmZ3Q7IGlzIGEgdG9vbGtpdCBwcm92aWRlZCBieSBHb29nbGUgZm9yIGJ1aWxkaW5nIGNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9ucywgaW5jbHVkaW5nIEFuZHJvaWQsIGlPUywgYW5kIHdlYiBhcHBzLiBBcyBtb3JlIGFwcHMgYXJlIHdyaXR0ZW4gdXNpbmcgaXQgYW5kIERhcnQgKHRoZSB1bmRlcmx5aW5nIGxhbmd1YWdlKSwgaXTigJlzIGJlY29taW5nIG1vcmUgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyBkZXZlbG9wZXJzIGNhbiBwYWNrYWdlIGFuZCBkZWxpdmVyIHRoZWlyIGNvZGUgdG8gdGhlaXIgdXNlcnMuIExldmVyYWdpbmcgQ2lyY2xlQ0kgYW5kIEZhc3RsYW5lLCB0aGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcHJvY2VzcyB0aGF0IGNhbiBiZSBhdXRvbWF0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbGluZyBGbHV0dGVyIGFuZCBjcmVhdGluZyB5b3VyIGZpcnN0IGFwcCBjYW4gYmUgZG9uZSBieSBmb2xsb3dpbmcgdGhlc2UgZ3VpZGVzOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvZG9jcy9nZXQtc3RhcnRlZC9pbnN0YWxsJnF1b3Q7Jmd0O0luc3RhbGwmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2ZsdXR0ZXIuZGV2L2RvY3MvZ2V0LXN0YXJ0ZWQvY29kZWxhYiZxdW90OyZndDtXcml0ZSB5b3VyIGZpcnN0IGFwcCZsdDsvYSZndDsuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBkZWZhdWx0IOKAnGhlbGxvIHdvcmxk4oCdIGFwcCB3aWxsIHN1ZmZpY2UuIFdlIHdvbuKAmXQgYmUgZGVhbGluZyBtdWNoIHdpdGggdGhlIGFwcGxpY2F0aW9uIGl0c2VsZi4gUHVzaCBpdCB0byBhIHJlcG9zaXRvcnkgb24gR2l0SHViLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Vuc3VyZSB0aGF0IHlvdSBhcmUgc2V0IHVwIHRvIHB1Ymxpc2ggYXBwcyB1c2luZyBHb29nbGUgUGxheSBvciB0aGUgQXBwbGUgQXBwIFN0b3JlIC0gc3RlcHMgZm9yIGVhY2ggd2lsbCB2YXJ5LCBzbyBiZSBzdXJlIHRvIGZvbGxvdyB0aGUgc3RlcHMgb3V0bGluZWQgZm9yIHRoZSByZXNwZWN0aXZlIHByb3ZpZGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBbmRyb2lkJmx0Oy9oMiZndDsKCiZsdDtwJmd0O1doZW4gcHVibGlzaGluZyBBbmRyb2lkIGFwcHMsIHRoZXJlIGFyZSBhIGZldyByZXF1aXJlbWVudHMgdG8gc2F0aXNmeSBiZWZvcmUgaW1wbGVtZW50aW5nIEZhc3RsYW5lLiBBbiDigJx1cGxvYWQga2V54oCdIGlzIHJlcXVpcmVkIHNvIHRoYXQgR29vZ2xlIGNhbiB2ZXJpZnkgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUgYXBwIGJlZm9yZSBhY2NlcHRpbmcgaXQuIFN0ZXBzIGZvciBzZXR0aW5nIHRoaXMgdXAgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9mbHV0dGVyLmRldi9kb2NzL2RlcGxveW1lbnQvYW5kcm9pZCZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oy4gSXTigJlzIHJlY29tbWVuZGVkIHRvIHVzZSBBcHBCdW5kbGVzIHdoZW4gYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBhcyBpdCBhbGxvd3MgR29vZ2xlIHRvIGJ1aWxkIGluZGl2aWR1YWwgQVBLcyBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyB3aGlsZSBrZWVwaW5nIGZpbGVzaXplIGRvd24uIFRha2Ugbm90ZSBvZiB3aGVyZSB5b3Ugc2F2ZSB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5qa3MmbHQ7L2NvZGUmZ3Q7IGZpbGUuIFdoaWxlIGl0IGNhbiBsaXZlIGluIHlvdXIgaG9tZSBkaXJlY3RvcnksIGhhdmluZyBpdCBzYXZlZCB0byBhIGdpdC1pZ25vcmVkIGRpcmVjdG9yeSBpbiB5b3VyIHByb2plY3Qgd2lsbCBjb21lIGluIGhhbmR5IHdoZW4gY29uZmlndXJpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1R3byB0aGluZ3MgZnJvbSB0aGlzIGd1aWRlIHdpbGwgbmVlZCB0byBiZSBhZGRlZCB0byBDaXJjbGVDSSBhcyAmbHQ7YSBocmVmPSZxdW90Oy9kb2NzLzIuMC9lbnYtdmFycy8mcXVvdDsmZ3Q7ZW52aW9ybm1lbnQgdmFyaWFibGVzJmx0Oy9hJmd0OzogdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlIGFuZCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7a2V5LmprcyZsdDsvY29kZSZndDsgZmlsZS4gVGhpcyB3aWxsIGFsbG93IHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBzaWduIHRoZSBhcHBsaWNhdGlvbi4gU2luY2Ugb25lIGZpbGUgcmVxdWlyZXMgbmV3bGluZXMgdG8gYmUgcHJlc2VudCwgYW5kIGFub3RoZXIgaXMgYSBiaW5hcnkgZmlsZSwgaXTigJlzIHJlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgYmFzZTY0LWVuY29kZWQgcHJpb3IgdG8gYWRkaW5nIHRoZW0gYXMgZW52aW9ybm1lbnQgdmFyaWFibGVzIHRvIHByZXNlcnZlIHRoZSBkYXRhLiZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBjYW4gZW5jb2RlIHRoZW0gYnkgcnVpbm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2F0ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7IHwgYmFzZTY0IC13IDAgIyAtdyAwIHdpbGwgZW5zdXJlIG5vIG5ld2xpbmVzIGFyZSBwcmVzZW50LgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBmaWxlcyBjYW4gdGhlbiBiZSByZS1hZGRlZCBkdXJpbmcgdGhlIGpvYiB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2VjaG8gJnF1b3Q7JEVOVl9WQVJJQUJMRV9OQU1FJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIGFsc28gd2FudCB0byBzZXQgdXAgYSBGYXN0bGFuZSBzZXJ2aWNlIGFjY291bnQgd2hpbGUgY3JlYXRpbmcgeW91ciBBbmRyb2lkIHNldHVwLiBZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5mYXN0bGFuZS50b29scy9nZXR0aW5nLXN0YXJ0ZWQvYW5kcm9pZC9zZXR1cC8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuIEJlIHN1cmUgdG8ga2VlcCB5b3VyIFNlcnZpY2UgQWNjb3VudCBKU09OIGZpbGUgaGFuZHkuIFdl4oCZbGwgYmUgYWRkaW5nIHRoYXQgdG8gdGhlIHBpcGVsaW5lIHNob3J0bHkuIEFsc28gbm90ZSB0aGF0IGNvbW1hbmRzIHNob3VsZCBiZSBydW4gZnJvbSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZCZsdDsvY29kZSZndDsgZGlyZWN0b3J5IHVuZGVyIHlvdXIgRmx1dHRlciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IHJlcXVpcmVkIGJ5IEZhc3RsYW5lIGNhbiBiZSBkb25lIGJ5IGFkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IEpTT04gZmlsZSBjb250ZW50cyBhcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IGVudmlvcm5tZW50IHZhcmlhYmxlLiBUaGlzIGlzIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1NVUFBMWV9KU09OX0tFWSZsdDsvY29kZSZndDsgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgYSBmaWxlIHBhdGggdG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0Zhc3RsYW5lJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05vdyB0aGF0IG91ciBlbnZpb3JubWVudCB2YXJpYWJsZXMgYXJlIGluIHBsYWNlIGFuZCB3ZSBjYW4gYnVpbGQgYSBzaWduZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LmFhYiZsdDsvY29kZSZndDsgZmlsZSB1c2luZyBGbHV0dGVyLCBpdOKAmXMgdGltZSB0byB0ZWxsIEZhc3RsYW5lIGhvdyB0byBkbyB0aGlzIGZvciB1cy4gV2XigJlsbCBzdGFydCB3aXRoIEFuZHJvaWQuIE9wZW5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZC9mYXN0bGFuZS9GYXN0ZmlsZSZsdDsvY29kZSZndDsgd2lsbCByZXZlYWwgc29tZSBkZWZhdWx0cyBmb3IgYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBidXQgdGhleSB3b27igJl0IHdvcmsgZm9yIG91ciB1c2UgY2FzZS4gV2XigJlyZSBidWlsZGluZyB3aXRoIEZsdXR0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rmlyc3QsIGxldOKAmXMgZGVmaW5lIGEgbmV3IOKAnGxhbmXigJ0uIFRoaXMgaXMgYSBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgRmFzdGxhbmUgd2lsbCBleGVjdXRlIHdoZW4gY2FsbGVkLiBGb3Igbm93LCB3ZeKAmWxsIGJlIHB1c2hpbmcgb3VyIGFwcCB0byB0aGUg4oCcYmV0YeKAnSBjaGFubmVsLCBub3QgdG8gcHJvZHVjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwoKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgaXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIGxhbmUuIE5leHQsIHdl4oCZbGwgd2FudCB0byBncmFiIGEgYnVpbGQgbnVtYmVyIHdoaWNoIGlzIGFuIGluY3JlbWVudGluZyBudW1iZXIgdXNlZCBhcyBhIHJlZmVyZW5jZSBmb3IgdGhlIHZlcnNpb24gb2YgdGhlIGFwcCAod2hpY2ggZGlmZmVycyBmcm9tIHRoZSB1c2VyLWZhY2luZyBzZW12ZXIpLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHRvIHRoZSBsYW5lOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ICBidWlsZF9udW1iZXIgPSBudW1iZXJfb2ZfY29tbWl0cygpCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgZW5zdXJlcyB0aGF0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZF9udW1iZXImbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0aGF0IGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBHaXQgcmVwb3NpdG9yeS4gVGhpcyBjYW4gYWxzbyBiZSBtYW51YWxseSBpbmNyZW1lbnRlZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVic3BlYy55YW1sJmx0Oy9jb2RlJmd0OyBmaWxlIHRoYXQgRmx1dHRlciB1c2VzIHRvIGJ1aWxkIHRoZSBwYWNrYWdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdl4oCZbGwgZG8gdGhlIGJ1aWxkaW5nLiBXZSBuZWVkIHRvIGdvIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5LCBydW4gYSBmZXcgc2hlbGwgY29tbWFuZHMgdG8gZmV0Y2ggb3VyIHBhY2thZ2VzLCBjbGVhbiB0aGUgcHJldmlvdXMgYnVpbGQgKGlmIGF2YWlsYWJsZSksIHRoZW4gYnVpbGQgdGhlIGFwcGJ1bmRsZSB3aXRoIG91ciBidWlsZCBudW1iZXIuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIERpci5jaGRpciAmcXVvdDsuLi8uLiZxdW90OyBkbwogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7cGFja2FnZXMmcXVvdDssICZxdW90O2dldCZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2NsZWFuJnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7YnVpbGQmcXVvdDssICZxdW90O2FwcGJ1bmRsZSZxdW90OywgJnF1b3Q7LS1idWlsZC1udW1iZXI9I3tidWlsZF9udW1iZXJ9JnF1b3Q7KQogIGVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtGaW5hbGx5LCB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYXBwIHN0b3JlIG9uIHRoZSBiZXRhIGNoYW5uZWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIHVwbG9hZF90b19wbGF5X3N0b3JlKHRyYWNrOiAnYmV0YScsIGFhYjogJy4uL2J1aWxkL2FwcC9vdXRwdXRzL2J1bmRsZS9yZWxlYXNlL2FwcC5hYWInKQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGxhbmUgd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwogIGJ1aWxkX251bWJlciA9IG51bWJlcl9vZl9jb21taXRzKCkKICBEaXIuY2hkaXIgJnF1b3Q7Li4vLi4mcXVvdDsgZG8KICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O3BhY2thZ2VzJnF1b3Q7LCAmcXVvdDtnZXQmcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtjbGVhbiZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2J1aWxkJnF1b3Q7LCAmcXVvdDthcHBidW5kbGUmcXVvdDssICZxdW90Oy0tYnVpbGQtbnVtYmVyPSN7YnVpbGRfbnVtYmVyfSZxdW90OykKICBlbmQKICB1cGxvYWRfdG9fcGxheV9zdG9yZSh0cmFjazogJ2JldGEnLCBhYWI6ICcuLi9idWlsZC9hcHAvb3V0cHV0cy9idW5kbGUvcmVsZWFzZS9hcHAuYWFiJykKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dvIGFoZWFkIGFuZCBzYXZlIHRoZSBmaWxlLCBhbmQgdGhlbiBydW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZmFzdGxhbmUgYmV0YSZsdDsvY29kZSZndDsuIEl0IHdpbGwgcnVuIHRocm91Z2ggdGhlIHN0ZXBzLCBidWlsZGluZyB0aGUgYXBwIGFuZCBwdXNoaW5nIHRoZSBhcHBsaWNhdGlvbiBmb3IgeW91LiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgd2XigJlsbCBkbyB0aGUgc2FtZSBmb3IgaU9TLCBidXQgcmVwbGFjaW5nIHNvbWUgb2YgdGhlIGNvbW1hbmRzIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBpT1MgY29tbWFuZHMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lvcy9GYXN0bGFuZSZsdDsvY29kZSZndDsgZGlyZWN0b3J5LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZGVzYyAmcXVvdDtEZXBsb3kgYSBuZXcgYnVpbGQgdG8gVGVzdGZsaWdodCZxdW90OwpsYW5lIDpiZXRhIGRvCiAgRGlyLmNoZGlyICZxdW90Oy4uLy4uJnF1b3Q7IGRvCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtwYWNrYWdlcyZxdW90OywgJnF1b3Q7Z2V0JnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7Y2xlYW4mcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtidWlsZCZxdW90OywgJnF1b3Q7aW9zJnF1b3Q7LCAmcXVvdDstLXJlbGVhc2UmcXVvdDssICZxdW90Oy0tbm8tY29kZXNpZ24mcXVvdDspCiAgZW5kCiAgYnVpbGRfaW9zX2FwcChzY2hlbWU6ICZxdW90O015QXBwJnF1b3Q7KQogIHVwbG9hZF90b190ZXN0ZmxpZ2h0CmVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhcHAgaXMgYnVpbHQgdHdpY2UuIFRoZSBmaXJzdCBidWlsZCBidWlsZHMgYWdhaW5zdCB0aGUgbGF0ZXN0IEZsdXR0ZXIgdG9vbGNoYWluLCB3aGlsZSB0aGUgc2Vjb25kIGJ1aWxkIGJ1aWxkcyB0aGUgYWN0dWFsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5pcGEmbHQ7L2NvZGUmZ3Q7IGZpbGUgdGhhdCB3aWxsIGJlIHVwbG9hZGVkIHRvIFRlc3RmbGlnaHQuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O05vdywgd2l0aCBDaXJjbGVDSSZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gcGxhY2UsIGl04oCZcyB0aW1lIHRvIGdldCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB3cml0dGVuIHNvIHRoYXQgYSBwdXNoIHRvIGEgYnJhbmNoIGlzIHRyYW5zbGF0ZWQgdG8gYSBuZXcgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7aU9TJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0ZvciBkZXBsb3lpbmcgd2l0aCBpT1MsIENpcmNsZUNJIGFscmVhZHkgaGFzIGRvY3MgdG8gY292ZXIgdGhpcyEgU3RlcHMgZm9yIHNldHRpbmcgdXAgRmFzdGxhbmUgZGVwbG95bWVudCB3aXRoIEZsdXR0ZXIgaXMgc2ltaWxhciB0byB0aGUgc3RlcHMgb3V0bGluZWQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvaW9zLWNvZGVzaWduaW5nLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OyBhbmQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZGVwbG95aW5nLWlvcy8jYXBwLXN0b3JlLWNvbm5lY3QmcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0FuZHJvaWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7V2hlbiBpdCBjb21lcyB0byB0aGUgRG9ja2VyIGltYWdlIHRvIHBpY2ssIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gRWl0aGVyIHlvdSBjYW4gYnVpbGQgYW5kIHB1c2ggdGhlIERvY2tlciBpbWFnZSB1c2VkIGJ5IHRoZSBGbHV0dGVyIHByb2plY3QgZm91bmQgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2Jsb2IvbWFzdGVyL2Rldi9jaS9kb2NrZXJfbGludXgvRG9ja2VyZmlsZSZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oywgb3IgeW91IGNhbiBwdWxsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dtZW1zdHIvZmx1dHRlci1mYXN0bGFuZTpsYXRlc3QmbHQ7L2NvZGUmZ3Q7LCB3aGljaCBpcyBidWlsdCBvbiB0b3Agb2YgYW4gZXhpc3RpbmcgRmx1dHRlciBEb2NrZXIgaW1hZ2UgYW5kIGluc3RhbGxzIEZhc3RsYW5lIGFsb25nc2lkZSBpdCwgYXZvaWRpbmcgYWRkaXRpb25hbCBvdmVyaGVhZCBvZiBpbnN0YWxsaW5nIGl0IGR1cmluZyBydW50aW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28gZW5zdXJlIHRoYXQgdGhlIGVudmlvcm5tZW50IHZhcmlhYmxlcyBtZW50aW9uZWQgZWFybGllciBhcmUgYWRkZWQgdG8geW91ciBwcm9qZWN0LiBOYW1lbHk6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQTEFZX1NUT1JFX1VQTE9BRF9LRVkmbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtrZXkuamtzJmx0Oy9jb2RlJmd0OyBmaWxlJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7UExBWV9TVE9SRV9VUExPQURfS0VZX0lORk8mbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCBmaWxlIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIGFuZCBvdGhlciBpbmZvIHJlZ2FyZGluZyB0aGUgdXBsb2FkIHNpZ25pbmcga2V5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IC0gWW91ciBHb29nbGUgU2VydmljZSBBY2NvdW50IEpTT04gc3RyaW5nIGZvciBhdXRoZW50aWNhdGlvbiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtJbiB5b3VyIHByb2plY3RzIHJvb3QsIGFkZCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLCBhbmQgaW4gdGhhdCBmb2xkZXIgYWRkIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y2lyY2xlY2kueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLiBBZGQgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSBuZXdseSBjcmVhdGVkIGZpbGU6Jmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7JwogIAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgc25pcHBldCBhYm92ZSBkZWZpbmVzIGFuIGV4ZWN1dG9yIHdlIGNhbiByZXVzZSBsYXRlciBpbiBvdXIgY29uZmlndXJhdGlvbiB0aGFua3MgdG8gdGhlIHVzZSBvZiByZXVzYWJsZSBjb25maWd1cmF0aW9uIGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYnMmbHQ7L2EmZ3Q7IGluIENpcmNsZUNJIDIuMS4gSXQgYWxzbyBpbmNsdWRlcyBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBlbnN1cmUgSmF2YSBkb2VzbuKAmXQgY29uc3VtZSBhbGwgb2Ygb3VyIG1lbW9yeSB3aGlsZSBidWlsZGluZyB0aGUgYXBwLiBOZXh0LCB3ZeKAmWxsIGRlZmluZSB0aGUgam9iIHdlIHdhbnQgdG8gcnVuIHRoZSBjb21tYW5kcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2pvYnM6CiAgYmV0YV9kZXBsb3k6CiAgICBleGVjdXRvcjogYW5kcm9pZC1mbHV0dGVyCiAgICBzdGVwczoKICAgICAgLSBjaGVja291dAogICAgICAtIHJ1bjogZWNobyAmcXVvdDskUExBWV9TVE9SRV9VUExPQURfS0VZJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGtleS5qa3MKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWV9JTkZPJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGFuZHJvaWQva2V5LnByb3BlcnRpZXMKICAgICAgLSBydW46IGNkIGFuZHJvaWQgJmFtcDthbXA7JmFtcDthbXA7IGZhc3RsYW5lIGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgd2XigJlsbCBkZWZpbmUgb3VyIHdvcmtmbG93IHdoaWNoIHdpbGwgb25seSBydW4gdGhlIGpvYiB3aGVuIHRoZSBuZXcgY29kZSBpcyBwdXNoZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2JldGEmbHQ7L2NvZGUmZ3Q7IGJyYW5jaC4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3dvcmtmbG93czoKICBkZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGJldGFfZGVwbG95OgogICAgICAgICAgZmlsdGVyczoKICAgICAgICAgICAgYnJhbmNoZXM6CiAgICAgICAgICAgICAgb25seTogYmV0YQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7Jwpqb2JzOgogIGJldGFfZGVwbG95OgogICAgZXhlY3V0b3I6IGFuZHJvaWQtZmx1dHRlcgogICAgc3RlcHM6CiAgICAgIC0gY2hlY2tvdXQKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWSZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBrZXkuamtzCiAgICAgIC0gcnVuOiBlY2hvICZxdW90OyRQTEFZX1NUT1JFX1VQTE9BRF9LRVlfSU5GTyZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBhbmRyb2lkL2tleS5wcm9wZXJ0aWVzCiAgICAgIC0gcnVuOiBjZCBhbmRyb2lkICZhbXA7YW1wOyZhbXA7YW1wOyBmYXN0bGFuZSBiZXRhCgp3b3JrZmxvd3M6CiAgZGVwbG95OgogICAgam9iczoKICAgICAgLSBiZXRhX2RlcGxveToKICAgICAgICAgIGZpbHRlcnM6CiAgICAgICAgICAgIGJyYW5jaGVzOgogICAgICAgICAgICAgIG9ubHk6IGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvcHJvamVjdHMvJnF1b3Q7Jmd0O1NldCB1cCB5b3VyIHByb2plY3Qgb24gQ2lyY2xlQ0kmbHQ7L2EmZ3Q7LiBPbmNlIHlvdSBjbGljayAmbHQ7c3Ryb25nJmd0O1NldCBVcCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7LCB5b3Ugd2lsbCBiZSBicm91Z2h0IHRvIGEgdGV4dCBlZGl0b3IgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBjb3B5IGluIHRoZSBjb25maWcgZnJvbSBhYm92ZS4gQ2xpY2sgJmx0O3N0cm9uZyZndDtTdGFydCBCdWlsZGluZyZsdDsvc3Ryb25nJmd0Oy4gTm93IGV2ZXJ5IG5ldyBjb21taXQgdG8gdGhlIGJldGEgYnJhbmNoIHdpbGwgcmVzdWx0IGluIGEgZGVwbG95LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIGFuIEV4cHJlc3MgR3JhcGhRTCBzZXJ2ZXIgdG8gSGVyb2t1PC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1hbi1leHByZXNzLWdyYXBocWwtc2VydmVyLXRvLWhlcm9rdS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VHVlLCAyOCBBcHIgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtYW4tZXhwcmVzcy1ncmFwaHFsLXNlcnZlci10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dyYXBocWwub3JnLyZxdW90OyZndDtHcmFwaFFMJmx0Oy9hJmd0OyBjb250aW51ZXMgdG8gZ3JvdyBpbiBwb3B1bGFyaXR5IHdpdGggZWFjaCBwYXNzaW5nIGRheSwgc2luY2UgaXRzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9lbmdpbmVlcmluZy5mYi5jb20vY29yZS1kYXRhL2dyYXBocWwtYS1kYXRhLXF1ZXJ5LWxhbmd1YWdlLyZxdW90OyZndDtwdWJsaWMgcmVsZWFzZSBieSBGYWNlYm9vayZsdDsvYSZndDsgaW4gMjAxNS4gVGhlIHRlY2hub2xvZ3kgZW5hYmxlcyBmcm9udCBlbmQgY2xpZW50cyB0byBxdWVyeSBleGFjdGx5IHdoYXQgdGhleSBuZWVkIGZyb20gdGhlIGJhY2tlbmQsIGFuZCBpcyBnYWluaW5nIHdpZGUgcmVjb2duaXRpb24gYW5kIGFkb3B0aW9uIGJ5IHJlcHV0YWJsZSBjb21wYW5pZXMgc3VjaCBhcyBQaW50ZXJlc3QsIENvdXJzZXJhLCBBaXJibmIsIGFuZCBGYWNlYm9vayBpdHNlbGYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBwb3N0LCB3ZSB3aWxsIGxlYXJuIGhvdyB0byBkZXBsb3kgYSBzaW1wbGUgR3JhcGhRTCBzZXJ2ZXIgd3JpdHRlbiBpbiBOb2RlLmpzIHRvIEhlcm9rdSB2aWEgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IChDSSkgcGlwZWxpbmUgdXNpbmcgQ2lyY2xlQ0kuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1ByZXJlcXVpc2l0ZXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUbyBmb2xsb3cgYWxvbmcgd2l0aCB0aGlzIHBvc3QsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhbHJlYWR5IHNldCB1cDombHQ7L3AmZ3Q7CiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL25vZGVqcy5vcmcvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlIC12Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsIHRvIHByaW50IG91dCB5b3VyIHZlcnNpb24gb2YgTm9kZS5qcyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdC1zY20uY29tLyZxdW90OyZndDtHaXQmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnaXQmbHQ7L2NvZGUmZ3Q7IG9uIHlvdXIgdGVybWluYWw7IHRoaXMgc2hvdWxkIHByaW50IG91dCBhdmFpbGFibGUgZ2l0IGNvbW1hbmRzKSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5oZXJva3UuY29tLyZxdW90OyZndDtIZXJva3UmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tLyZxdW90OyZndDtHaXRIdWImbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vc2lnbnVwLyZxdW90OyZndDtDaXJjbGVDSSZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDsjI1NjYWZmb2xkaW5nIHRoZSBHcmFwaFFMIHNlcnZlciBwcm9qZWN0ClRvIGJlZ2luIHNldHRpbmcgdXAgYSBHcmFwaFFMIHNlcnZlciwgY3JlYXRlIGEgbmV3IGZvbGRlciBmb3IgdGhlIHByb2plY3QgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtta2RpciBncmFwaHFsLXRlc3Qtc2VydmVyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7Tm93IGdvIGludG8gdGhlIHJvb3Qgb2YgdGhlIGZvbGRlciBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBzY2FmZm9sZCBhIG5ldyBOb2RlLmpzIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5pdCAteQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDtwJmd0O1RoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsteSZsdDsvY29kZSZndDsgb3B0aW9uYWwgZmxhZyBhbGxvd3MgeW91IHRvIHNraXAgY29uZmlybWluZyB0aGUgZGVmYXVsdCBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwYWNrYWdlLmpzb24mbHQ7L2NvZGUmZ3Q7IGZpbGUgYW5kIGp1c3QgYWNjZXB0cyB0aGVtLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGFyZSBnb2luZyB0byBjcmVhdGUgYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2V4cHJlc3Nqcy5jb20vJnF1b3Q7Jmd0O0V4cHJlc3NKUyZsdDsvYSZndDsgTm9kZS5qcyBhcHBsaWNhdGlvbiBhbmQgYnVpbGQgdGhlIEdyYXBoUUwgc2VydmVyLiBUbyBkbyB0aGlzLCB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIGZvbGxvd2luZyBwYWNrYWdlczombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2V4cHJlc3MmbHQ7L2NvZGUmZ3Q7OiB0byBjcmVhdGUgb3VyIEV4cHJlc3NKUyBOb2RlLmpzIGFwcGxpY2F0aW9uJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z3JhcGhxbCZsdDsvY29kZSZndDs6IHRoZSBHcmFwaFFMIG5wbSBwYWNrYWdlIGZvciBOb2RlLmpzJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OzogRXhwcmVzc0pTIG1pZGRsZXdhcmUgZm9yIEdyYXBoUUwmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbCB0aGVzZSBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBpbnN0YWxsIC0tc2F2ZSBleHByZXNzIGdyYXBocWwgZXhwcmVzcy1ncmFwaHFsCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIHRoZSByZXF1aXJlZCBwYWNrYWdlcyB0byBzdGFydCBwdXR0aW5nIHRvZ2V0aGVyIG91ciBHcmFwaFFMIHNlcnZlci4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgdGhlIEdyYXBoUUwgc2NoZW1hJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7Q3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bWtkaXIgc3JjCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1dpdGhpbiB0aGlzIGZvbGRlciwgY3JlYXRlIGEgbmV3IGZpbGUgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEuanMmbHQ7L2NvZGUmZ3Q7IGFuZCBwYXN0ZSBpbiB0aGUgY29kZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Owpjb25zdCB7IGJ1aWxkU2NoZW1hIH0gPSByZXF1aXJlKCZxdW90O2dyYXBocWwmcXVvdDspOwoKY29uc3Qgc2NoZW1hID0gYnVpbGRTY2hlbWEoYAogICAgdHlwZSBRdWVyeSB7CiAgICAgICAgdXNlcnM6IFtVc2VyIV0hLAogICAgICAgIHVzZXIoaWQ6IEludCEpOiBVc2VyIQogICAgfQoKICAgIHR5cGUgTXV0YXRpb24gewogICAgICAgIGVkaXRVc2VyKGlkOiBJbnQhLCBuYW1lOiBTdHJpbmchLCBlbWFpbDogU3RyaW5nISk6IFVzZXIhCiAgICB9CgogICAgdHlwZSBVc2VyIHsKICAgICAgICBpZDogSUQhCiAgICAgICAgbmFtZTogU3RyaW5nIQogICAgICAgIGVtYWlsOiBTdHJpbmcKICAgICAgICBwb3N0czogW1Bvc3QhXQogICAgfQoKICAgIHR5cGUgUG9zdCB7CiAgICAgICAgaWQ6IElEIQogICAgICAgIHRpdGxlOiBTdHJpbmchCiAgICAgICAgcHVibGlzaGVkOiBCb29sZWFuIQogICAgICAgIGxpbms6IFN0cmluZwogICAgfQpgKTsKCm1vZHVsZS5leHBvcnRzID0gc2NoZW1hOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBhYm92ZSBjb2RlLCB3ZSBoYXZlIGNyZWF0ZWQgZm91ciB0eXBlcywgY29uc2lzdGluZyBvZiB0d28gYnVpbHQtaW4gdHlwZXMgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7KSBhbmQgdHdvIGN1c3RvbSB0eXBlcyAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXNlciZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1Bvc3QmbHQ7L2NvZGUmZ3Q7KS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWdpbm5pbmcgd2l0aCB0aGUgY3VzdG9tIHR5cGVzLCB3ZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmc6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VyJmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHVzZXIgaW4gdGhlIGFwcGxpY2F0aW9uIHdpdGggaXRzIHJlc3BlY3RpdmUgZmllbGRzIGFuZCBhIHJlbGF0aW9uYWwgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cG9zdHMmbHQ7L2NvZGUmZ3Q7IGZpZWxkLCB3aGljaCByZXR1cm5zIGFuIGFycmF5IG9mIHBvc3RzIGNyZWF0ZWQgYnkgdGhlIHVzZXImbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQb3N0Jmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHB1YmxpY2F0aW9uIGNyZWF0ZWQgYnkgYSB1c2VyIGluIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGl0cyByZXNwZWN0aXZlIGZpZWxkcyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OzogaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyB0eXBlLCB3ZSBkZWZpbmVkIHR3byBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgcXVlcmllZCBmcm9tIG91ciBHcmFwaFFMIHNlcnZlciBhcyBmb2xsb3dzOgogICAgJmx0O3VsJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlcnMmbHQ7L2NvZGUmZ3Q7OiBhbiBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VycyZsdDsvY29kZSZndDsmbHQ7L2xpJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlciZsdDsvY29kZSZndDs6IGEgc2luZ2xlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1VzZXImbHQ7L2NvZGUmZ3Q7IHdpdGggdGhlIHNwZWNpZmllZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgaW4gdGhlIGFyZ3VtZW50cyBsaXN0Jmx0Oy9saSZndDsKICAgICZsdDsvdWwmZ3Q7CiAgJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7OiBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7IHR5cGUsIHdlIGRlZmluZWQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VkaXRVc2VyJmx0Oy9jb2RlJmd0OyBtdXRhdGlvbiwgd2hpY2gsIGdpdmVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgb2YgdGhlIHVzZXIsIGNhbiBiZSBjYWxsZWQgdG8gZWRpdCBhIHVzZXIgYW5kIHRoZW4gdXBkYXRlIHRoZSBpbmZvcm1hdGlvbiAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bmFtZSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VtYWlsJmx0Oy9jb2RlJmd0OykmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhlIHNjaGVtYSBpcyBjcmVhdGVkIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZFNjaGVtYSZsdDsvY29kZSZndDsgb2YgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dyYXBocWwmbHQ7L2NvZGUmZ3Q7IHBhY2thZ2UgYW5kIGV4cG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O01vY2tpbmcgZGF0YSZsdDsvaDImZ3Q7CiZsdDtwJmd0O0luIG9yZGVyIHRvIGhhdmUgcmVzdWx0cyBmb3Igb3VyIHF1ZXJpZXMsIHdlIG5lZWQgZGF0YS4gRm9yIHRoaXMgZXhlcmNpc2UsIHdlIHdpbGwgYmUgdXNpbmcgTW9uZ29EQi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIb3dldmVyLCBzaW5jZSB0aGUgZ29hbCBvZiB0aGlzIHBvc3QgaXMgdG8gZGVtb25zdHJhdGUgZGVwbG95aW5nIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyLCB3ZSB3b27igJl0IGJvdGhlciB3aXRoIHNldHRpbmcgdXAgYSBNb25nb0RCIHNlcnZlci4gSW5zdGVhZCwgd2Ugd2lsbCAgdXNlIGEgbW9ja2VkIHZlcnNpb24gdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O21vbmdvZGItbWVtb3J5LXNlcnZlciZsdDsvY29kZSZndDsuIFRoaXMgcGFja2FnZSBhbGxvd3MgdXMgdG8gY3JlYXRlIGFuZCB1c2UgYW4gaW4tbWVtb3J5IE1vbmdvREIgZGF0YWJhc2Ugc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHNldCB0aGlzIHVwLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhdCB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5zdGFsbCAtLXNhdmUgbW9uZ29kYiBtb25nb2RiLW1lbW9yeS1zZXJ2ZXIKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwombHQ7cCZndDtUaGlzIGluc3RhbGxhdGlvbiBtaWdodCB0YWtlIGEgd2hpbGUsIGRlcGVuZGluZyBvbiB5b3VyIGRvd25sb2FkIHNwZWVkLiBNb25nb0RCIHdhcyBhdCBsZWFzdCA2NiBtZWdhYnl0ZXMgaW4gc2l6ZSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhLmpzJmx0Oy9jb2RlJmd0OyBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3JjJmx0Oy9jb2RlJmd0OyBmb2xkZXIuIFRoaXMgZmlsZSB3aWxsIGV4cG9ydCBhbiBhcnJheSBvZiBoYXJkLWNvZGVkIHVzZXIgZGF0YS4gUGFzdGUgdGhlIGZvbGxvd2luZyBjb2RlIGJlbG93IGludG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBVc2VycyA9IFsKICB7CiAgICBpZDogMSwKICAgIG5hbWU6ICZxdW90O0Zpa2F5byBBZGVwb2p1JnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2ZpazRjaHJpc3RAeWFob28uY29tJnF1b3Q7LAogICAgcG9zdHM6IFsKICAgICAgewogICAgICAgIGlkOiAxLAogICAgICAgIHRpdGxlOiAmcXVvdDtDcmVhdGluZyBhbiBFbW9qaSBHYW1lIHdpdGggVnVlLCBBdXRoMCwgYW5kIEdvb2dsZSBWaXNpb24gQVBJJnF1b3Q7LAogICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSwKICAgICAgICBsaW5rOgogICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hdXRoMC5jb20vYmxvZy9jcmVhdGluZy1hbi1lbW9qaS1nYW1lLXdpdGgtdnVlLWF1dGgwLWFuZC1nb29nbGUtdmlzaW9uLWFwaS8mcXVvdDssCiAgICAgICAgYXV0aG9yOiAxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBpZDogMiwKICAgICAgICB0aXRsZTogJnF1b3Q7RWxlY3Ryb24gVHV0b3JpYWw6IEJ1aWxkaW5nIE1vZGVybiBEZXNrdG9wIEFwcHMgd2l0aCBWdWUuanMmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2F1dGgwLmNvbS9ibG9nL2VsZWN0cm9uLXR1dG9yaWFsLWJ1aWxkaW5nLW1vZGVybi1kZXNrdG9wLWFwcHMtd2l0aC12dWUtanMvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDMsCiAgICAgICAgdGl0bGU6ICZxdW90O1N0YXRlIE1hbmFnZW1lbnQgd2l0aCBWdWV4OiBhIFByYWN0aWNhbCBUdXRvcmlhbCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazoKICAgICAgICAgICZxdW90O2h0dHBzOi8vYXV0aDAuY29tL2Jsb2cvc3RhdGUtbWFuYWdlbWVudC13aXRoLXZ1ZXgtYS1wcmFjdGljYWwtdHV0b3JpYWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMiwKICAgIG5hbWU6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2pvaG5AY29tcGFueS5jb20mcXVvdDssCiAgICBwb3N0czogWwogICAgICB7CiAgICAgICAgaWQ6IDQsCiAgICAgICAgdGl0bGU6ICZxdW90O0J1aWxkIGEgQ0kgcG93ZXJlZCBSRVNUZnVsIEFQSSB3aXRoIExhcmF2ZWwmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2J1aWxkLWEtY2ktcG93ZXJlZC1yZXN0ZnVsLWFwaS13aXRoLWxhcmF2ZWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDUsCiAgICAgICAgdGl0bGU6ICZxdW90O0F1dG9tYXRlIHlvdXIgTnV4dC5qcyBhcHAgZGVwbG95bWVudCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazogJnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hdXRvbWF0ZS15b3VyLW51eHQtanMtYXBwLWRlcGxveW1lbnQvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMywKICAgIG5hbWU6ICZxdW90O0phbmUgUGF1bCZxdW90OywKICAgIGVtYWlsOiAmcXVvdDtqYW5lQGNvbXBhbnkuY29tJnF1b3Q7LAogICAgcG9zdHM6IFtdCiAgfQpdOwoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgVXNlcnMKfTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBjb2RlIGFib3ZlLCB3ZSBoYXZlIGFuIGFycmF5IG9mIHVzZXIgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgcG9zdHMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIHNlZWQgb3VyIGluLW1lbW9yeSBkYXRhYmFzZSBvbmNlIGl0IGlzIGluc3RhbnRpYXRlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCB0YXNrIGlzIHRvIHNldCB1cCBvdXIgbW9jayBNb25nb0RCIGRhdGFiYXNlIHNlcnZlci4gSW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhYmFzZS5qcyZsdDsvY29kZSZndDsgYW5kIGluc2VydCB0aGUgZm9sbG93aW5nIGNvZGUgaW50byB0aGUgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O01vbmdvTWVtb3J5U2VydmVyJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtyZXF1aXJlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtzMiZxdW90OyZndDsmcXVvdDttb25nb2RiLW1lbW9yeS1zZXJ2ZXImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O21vbmdvZGImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtjb25zdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bm8mcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90Oy4vZGF0YSZxdW90OyZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0Oyk7Jmx0Oy9zcGFuJmd0OwoKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7bGV0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDtudWxsJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXN5bmMmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7ZnVuY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25mJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoKSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDt7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7bmV3Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtNb25nb01lbW9yeVNlcnZlciZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygpOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtubyZxdW90OyZndDttb25nb0RCVVJMJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXdhaXQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7LiZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtnZXRDb25uZWN0aW9uU3RyaW5nJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3QmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvREJVUkwmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDssJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7CiAgICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDt1c2VOZXdVcmxQYXJzZXImbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs6Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDt0cnVlJmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSk7Jmx0Oy9zcGFuJmd0OwoKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtjMSZxdW90OyZndDsvL1NlZWQgRGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7CiAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtpZiZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7ISZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OykmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsKICAgICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RhdGFiYXNlJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RiJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbGxlY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O3VzZXJzJnF1b3Q7Jmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7aW5zZXJ0TWFueSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7VXNlcnMmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7CgogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7cmV0dXJuJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OzsmbHQ7L3NwYW4mZ3Q7CiZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vZHVsZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZXhwb3J0cyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtzdGFydERhdGFiYXNlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGNvZGUgYWJvdmUsIHdlIGV4cG9ydCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L2NvZGUmZ3Q7IGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBzdGFydHMgYSBuZXcgKG1vY2tlZCkgTW9uZ29EQiBzZXJ2ZXIgaW5zdGFuY2UgYW5kIGdldHMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuIEl0IHRoZW4gY3JlYXRlcyBhIG5ldyBNb25nb0RCIGNsaWVudCBjb25uZWN0aW9uIHVzaW5nIHRoZSBjb25uZWN0aW9uIHN0cmluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwgd2Ugc2VlZCBpdCB3aXRoIG91ciB1c2VyIGRhdGEgZXhwb3J0ZWQgZnJvbSBvdXIgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZGF0YS5qcyZsdDsvY29kZSZndDsgZmlsZS4gQSBjaGVjayBpcyBtYWRlIHRvIHNlZSBpZiB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIGlzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O251bGwmbHQ7L2NvZGUmZ3Q7IGJlZm9yZSBzZWVkaW5nIGl0IHdpdGggZGF0YSwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBmcm9tIGJlaW5nIGVudGVyZWQgaW50byB0aGUgZGF0YWJhc2UgZWFjaCB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdXAuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGRhdGFiYXNlIHJlZmVyZW5jZS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgb3VyIHJlc29sdmVycyZsdDsvaDImZ3Q7CiZsdDtwJmd0O05leHQgdXAsIHdlIG5lZWQgdG8gZGVmaW5lIHJlc29sdmVycyBmb3Igb3VyIEdyYXBoUUwgcXVlcmllcyBpbiBvcmRlciB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGRhdGEgZm9yIGVhY2ggcXVlcnkgb3BlcmF0aW9uLiBXZSB3aWxsIGRlZmluZSByZXNvbHZlcnMgZm9yIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt1c2VycyZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3VzZXImbHQ7L2NvZGUmZ3Q7IHF1ZXJpZXMgYW5kIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtlZGl0VXNlciZsdDsvY29kZSZndDsgbXV0YXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Jlc29sdmVycy5qcyZsdDsvY29kZSZndDsgYW5kIHBhc3RlIGluIHRoZSBmb2xsb3dpbmcgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IHJlc29sdmVycyA9IHsKICB1c2VyczogYXN5bmMgKF8sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIKICAgICAgLmNvbGxlY3Rpb24oJnF1b3Q7dXNlcnMmcXVvdDspCiAgICAgIC5maW5kKCkKICAgICAgLnRvQXJyYXkoKTsKICB9LAogIHVzZXI6IGFzeW5jICh7IGlkIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIuY29sbGVjdGlvbigmcXVvdDt1c2VycyZxdW90OykuZmluZE9uZSh7IGlkIH0pOwogIH0sCiAgLy9NdXRhdGlvbiByZXNvbHZlcnMKICBlZGl0VXNlcjogYXN5bmMgKHsgaWQsIG5hbWUsIGVtYWlsIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CgogICAgcmV0dXJuIGRiCiAgICAgIC5jb2xsZWN0aW9uKCZxdW90O3VzZXJzJnF1b3Q7KQogICAgICAuZmluZE9uZUFuZFVwZGF0ZSgKICAgICAgICB7IGlkIH0sCiAgICAgICAgeyAkc2V0OiB7IG5hbWUsIGVtYWlsIH0gfSwKICAgICAgICB7IHJldHVybk9yaWdpbmFsOiBmYWxzZSB9CiAgICAgICkKICAgICAgLnRoZW4ocmVzcCA9JmFtcDtndDsgcmVzcC52YWx1ZSk7CiAgfSAKfTsKCm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZXJzOwoKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgc2VlbiBhYm92ZSwgd2Ugbm93IGhhdmUgcmVzb2x2ZXJzIGZvciB0aGUgdGhyZWUgR3JhcGhRTCByZXF1ZXN0cyBhdmFpbGFibGUgb24gb3VyIHNlcnZlci4gVGhlc2UgcmVzb2x2ZXJzIGZldGNoIGFuZCB1cGRhdGUgZGF0YSB1c2luZyB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIHdlIGNyZWF0ZWQgZWFybGllciBieSByZWZlcmVuY2luZyBpdCBmcm9tIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb250ZXh0Jmx0Oy9jb2RlJmd0OyBvYmplY3Qgb2YgdGhlIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgcmVmZXJlbmNlIHdpbGwgYmUgYWRkZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbnRleHQmbHQ7L2NvZGUmZ3Q7IG9iamVjdCBvZiBvdXIgR3JhcGhRTCBzZXJ2ZXIgc2V0dXAgaW4gdGhlIG5leHQgc2VjdGlvbiB3aGVuIHdlIHB1dCBldmVyeXRoaW5nIHRvZ2V0aGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTZXR0aW5nIHVwIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O0l0IGlzIHRpbWUgdG8gcHV0IGV2ZXJ5IGNvbXBvbmVudCB3ZSBidWlsdCB0b2dldGhlciB0byBzZXQgdXAgb3VyIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlZm9yZSB3ZSBiZWdpbiwgd2UgbmVlZCB0byBpbnN0YWxsIG9uZSBtb3JlIHBhY2thZ2UuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIGNvbWVzIHdpdGggdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0dyYXBoaVFMJmx0Oy9jb2RlJmd0OyBhcHBsaWNhdGlvbiwgd2hpY2ggYWxsb3dzIHlvdSB0byBxdWVyeSB5b3VyIEdyYXBoUUwgZW5kcG9pbnQsIGJ1dCBsZXTigJlzIGFkZCBhIHRvb2wgdGhhdCBpcyBtb3JlIHJvYnVzdC4gV2Ugd2lsbCBpbnN0YWxsIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIHRvIGdpdmUgdXMgYSBmYW5jaWVyIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgb3VyIEdyYXBoUUwgZW5kcG9pbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSBmb2xsb3dpbmcgY29kZSB0byBpbnN0YWxsIHRoZSBwYWNrYWdlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGluc3RhbGwgLS1zYXZlIGdyYXBocWwtcGxheWdyb3VuZC1taWRkbGV3YXJlLWV4cHJlc3MKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7V2Ugd2lsbCB1c2UgdGhpcyBtaWRkbGV3YXJlIHRvIHNldCB1cCB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kIGZvciBxdWVyeWluZyBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0xldOKAmXMgc2V0IHVwIG91ciBzZXJ2ZXIgYnkgY3JlYXRpbmcgYSBmaWxlIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2luZGV4LmpzJmx0Oy9jb2RlJmd0OyBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBhbmQgcGxhY2luZyB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBleHByZXNzID0gcmVxdWlyZSgmcXVvdDtleHByZXNzJnF1b3Q7KTsKY29uc3QgZ3JhcGhxbEhUVFAgPSByZXF1aXJlKCZxdW90O2V4cHJlc3MtZ3JhcGhxbCZxdW90Oyk7CmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoJnF1b3Q7Li9zcmMvc2NoZW1hJnF1b3Q7KTsKY29uc3QgcmVzb2x2ZXJzID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9yZXNvbHZlcnMmcXVvdDspOwpjb25zdCBzdGFydERhdGFiYXNlID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9kYXRhYmFzZSZxdW90Oyk7CmNvbnN0IGV4cHJlc3NQbGF5Z3JvdW5kID0gcmVxdWlyZSgmcXVvdDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJnF1b3Q7KS5kZWZhdWx0OwoKLy8gQ3JlYXRlIGEgY29udGV4dCBmb3IgaG9sZGluZyBjb250ZXh0dWFsIGRhdGEgCmNvbnN0IGNvbnRleHQgPSBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IGRiID0gYXdhaXQgc3RhcnREYXRhYmFzZSgpOwoKICByZXR1cm4geyBkYiB9Owp9OwoKY29uc3QgYXBwID0gZXhwcmVzcygpOwoKYXBwLnVzZSgKICAmcXVvdDsvZ3JhcGhxbCZxdW90OywKICBncmFwaHFsSFRUUCh7CiAgICBzY2hlbWEsCiAgICByb290VmFsdWU6IHJlc29sdmVycywKICAgIGNvbnRleHQKICB9KQopOwoKLy9HcmFwaHFsIFBsYXlncm91bmQgcm91dGUKYXBwLmdldCgmcXVvdDsvcGxheWdyb3VuZCZxdW90OywgZXhwcmVzc1BsYXlncm91bmQoeyBlbmRwb2ludDogJnF1b3Q7L2dyYXBocWwmcXVvdDsgfSkpOwoKY29uc3QgcG9ydCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgJnF1b3Q7NDAwMCZxdW90OzsKCmFwcC5saXN0ZW4ocG9ydCk7Cgpjb25zb2xlLmxvZyhg8J+agCBTZXJ2ZXIgcmVhZHkgYXQgaHR0cDovL2xvY2FsaG9zdDo0MDAwL2dyYXBocWxgKTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBmaWxlIGFib3ZlLCB3ZSBzdGFydCBieSBpbXBvcnRpbmcgYWxsIG5lY2Vzc2FyeSBtb2R1bGVzLiBUaGVuLCB3ZSBjcmVhdGUgb3VyIEdyYXBoUUwgY29udGV4dCBhbmQgcmV0dXJuIGFuIG9iamVjdCBmcm9tIGl0IGNvbnRhaW5pbmcgdGhlIHJlZmVyZW5jZSB0byBvdXIgTW9uZ29EQiBpbnN0YW5jZS4gTmV4dCwgd2UgY3JlYXRlIG91ciBFeHByZXNzSlMgYXBwbGljYXRpb24gYW5kIHNldCB1cCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OyBtaWRkbGV3YXJlIHdpdGggR3JhcGhRTCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEmbHQ7L2NvZGUmZ3Q7LCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtyZXNvbHZlcnMmbHQ7L2NvZGUmZ3Q7LCBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29udGV4dCZsdDsvY29kZSZndDsuIFdlIHRoZW4gc2V0IHVwIHRoZSBHcmFwaFFMIFBsYXlncm91bmQgYXQgdGhlIHJvdXRlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBsb2FkIG91ciBHcmFwaFFMIGVuZHBvaW50LiBGaW5hbGx5LCB3ZSBzdGFydCBvdXIgRXhwcmVzc0pTIHNlcnZlciB0byBsaXN0ZW4gYXQgcG9ydCA0MDAwIGFuZCBwcmludCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1F1ZXJ5aW5nIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O05vdyB0aGF0IHdlIGhhdmUgb3VyIHNlcnZlciBzZXQgdXAsIGxldOKAmXMgdGFrZSBpdCBmb3IgYSBzcGluLiBGaXJzdCwgbGV04oCZcyBjcmVhdGUgYSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzdGFydCZsdDsvY29kZSZndDsgc2NyaXB0IGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3BhY2thZ2UuanNvbiZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHNjcmlwdCB0byB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2NyaXB0cyZsdDsvY29kZSZndDsgc2VjdGlvbiBvZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Li4uCgrigJxzY3JpcHRz4oCdIDogewoJLi4uLAoJ4oCcc3RhcnTigJ0gOiDigJxub2RlIGluZGV4Lmpz4oCdCn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25wbSBzdGFydCZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCB0aGUgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNlcnZlciBpcyB1cCBhbmQgcnVubmluZywgb3BlbiB1cCB5b3VyIGJyb3dzZXIgYW5kIHZpc2l0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMC9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBvcGVuIHVwIHRoZSBwbGF5Z3JvdW5kLiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDEucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgcGxheWdyb3VuZCBhdXRvbWF0aWNhbGx5IHBvaW50cyB0byBvdXIgR3JhcGhRTCBlbmRwb2ludC4gRnJvbSBoZXJlIHdlIGNhbiB3cml0ZSBxdWVyaWVzIGFnYWluc3Qgb3VyIGVuZHBvaW50IGFuZCBnZXQgdGhlIHJlc3VsdHMuIFBhc3RlIHRoZSBxdWVyeSBiZWxvdyBpbnRvIHRoZSBxdWVyeSBzZWN0aW9uIG9mIHRoZSBwbGF5Z3JvdW5kIGFuZCBoaXQgUGxheSB0byBydW4gaXQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt7CiAgdXNlcnMgewogICAgbmFtZQogICAgZW1haWwKICAgIHBvc3RzIHsKICAgICAgdGl0bGUKICAgICAgcHVibGlzaGVkCiAgICB9CiAgfQp9CgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtSdW5uaW5nIHRoZSBhYm92ZSBxdWVyeSB3aWxsIHByb2R1Y2UgdGhlIHJlc3VsdCBzaG93biBvbiB0aGUgc2NyZWVuIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsMi5wbmcmcXVvdDsgd2lkdGg9JnF1b3Q7ODc1JnF1b3Q7IC8mZ3Q7CiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIHNlZW4gYWJvdmUsIG91ciBHcmFwaFFMIHNlcnZlciBpcyB3b3JraW5nIGZpbmUgYW5kIHJldHVybmluZyB0aGUgZXhwZWN0ZWQgZGF0YS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRvIEhlcm9rdSB3aXRoIENpcmNsZUNJJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7T3VyIGZpbmFsIHRhc2sgaXMgdG8gZGVwbG95IG91ciBHcmFwaFFMIHNlcnZlciB0aHJvdWdoIGEgQ0kgcGlwZWxpbmUgd2l0aCBDaXJjbGVDSSBvbiB0aGUgSGVyb2t1IGhvc3RpbmcgcGxhdGZvcm0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2UgYXJlIGdvaW5nIHRvIHRha2UgdGhlIGZvbGxvd2luZyBzdGVwcyB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7UHVzaCB0aGUgcHJvamVjdCB0byBhIEdpdEh1YiByZXBvc2l0b3J5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgbmV3IEhlcm9rdSBhcHAgYW5kIGdldCB0aGUgSGVyb2t1IEFQSSBrZXkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgYSBuZXcgcHJvamVjdCB0byBvdXIgQ2lyY2xlQ0kgYWNjb3VudCBhbmQgY29ubmVjdCBpdCB0byB0aGUgR2l0SHViIHJlcG8mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgb3VyIEhlcm9rdSBhcHAgbmFtZSBhbmQgQVBJIGtleSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gb3VyIG5ldyBwcm9qZWN0Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7V3JpdGUgb3VyIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgZGVwbG95bWVudCB0byBIZXJva3UmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIHRoZSBjb25maWd1cmF0aW9uIHRvIG91ciBHaXRIdWIgcmVwbyB0byBkZXBsb3kgdG8gSGVyb2t1Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0xldOKAmXMgYmVnaW4uIEZpcnN0LCBwdXNoIHRoZSBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG8uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY3JlYXRlIGEgSGVyb2t1IGFwcGxpY2F0aW9uIGFzIHNob3duIGJlbG93LiBUaGUgbmFtZSB5b3UgZW50ZXIgaXMgdGhlIG5hbWUgeW91IHdpbGwgc2F2ZSBhcyB5b3VyIEhlcm9rdSBhcHAgbmFtZSBvbiBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWwzLnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7WW91IGNhbiBnZXQgeW91ciBIZXJva3UgQVBJIGtleSBieSBnb2luZyB0byAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgYW5kIHNjcm9sbGluZyBkb3duIHRvIHRoZSAmbHQ7c3Ryb25nJmd0O0FQSSBLZXkmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIHRvIGRlcGxveWluZyBvdXIgYXBwbGljYXRpb24gdG8gSGVyb2t1IGlzIHRvIGNvbm5lY3QgdGhlIGFwcGxpY2F0aW9uIG9uIG91ciBHaXRIdWIgcmVwb3NpdG9yeSB0byBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIZWFkIHRvIHlvdXIgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9kYXNoYm9hcmQmcXVvdDsmZ3Q7Q2lyY2xlQ0kgZGFzaGJvYXJkJmx0Oy9hJmd0OyBhbmQgYWRkIHRoZSBwcm9qZWN0IGluIHRoZSAmbHQ7c3Ryb25nJmd0O0FkZCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7IHNlY3Rpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsNC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCAoaW4gdGhpcyBjYXNlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NpbXBsZS1ncmFwaHFsLW5vZGUtc2VydmVyJmx0Oy9jb2RlJmd0OyksIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0IFVwIFByb2plY3QmbHQ7L3N0cm9uZyZndDsuIFRoaXMgd2lsbCBicmluZyB5b3UgdG8gYSBwYWdlIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDUucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IGJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIHByb2plY3QuIFRoaXMgd2lsbCBpbW1lZGlhdGVseSBnaXZlIHVzIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCBhIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIHByb2plY3QuIFRoaXMgaXMgdW5kZXJzdGFuZGFibGUsIGFzIHdlIGFyZSB5ZXQgdG8gaW5jbHVkZSBvdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlLiBXZSB3aWxsIGJlIGRvaW5nIHRoYXQgbGF0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIG5leHQgc3RlcCBpcyB0byBhZGQgb3VyIEhlcm9rdSBkZXRhaWxzIGFzICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wL2Vudi12YXJzLyZxdW90OyZndDtlbnZpcm9ubWVudCB2YXJpYWJsZXMmbHQ7L2EmZ3Q7IHRvIHRoZSBuZXdseSBzZXQgdXAgcHJvamVjdC4KSW4gb3JkZXIgdG8gcHVzaCBvdXIgcHJvamVjdCB0byBIZXJva3UgZnJvbSBDaXJjbGVDSSwgd2UgbmVlZCB0byBjb25maWd1cmUgYW4gYXV0aGVudGljYXRlZCBoYW5kc2hha2UgYmV0d2VlbiBDaXJjbGVDSSBhbmQgSGVyb2t1LiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcgdHdvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgc2V0dGluZ3MgZm9yIHlvdXIgQ2lyY2xlQ0kgcHJvamVjdC4gVGhlIHR3byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtIRVJPS1VfQVBQX05BTUUmbHQ7L2NvZGUmZ3Q7OiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIChpbiB0aGlzIGNhc2UgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2ltcGxlLWdyYXBocWwtbm9kZS1zZXJ2ZXImbHQ7L2NvZGUmZ3Q7KSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OzogWW91ciBIZXJva3UgYWNjb3VudCBBUEkga2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBvbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50Jmx0Oy9zdHJvbmcmZ3Q7IHRhYiBvZiB5b3VyIEhlcm9rdSBhY2NvdW50IHVuZGVyICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VG8gYWRkIHRoZXNlIGRldGFpbHMsIGhlYWQgb3ZlciB0byB5b3VyIENpcmNsZUNJIGRhc2hib2FyZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBmb3IgeW91ciBwcm9qZWN0LiBPbiB0aGUgc2lkZWJhciBtZW51IG9uIHRoZSBzZXR0aW5ncyBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O0Vudmlyb25tZW50IFZhcmlhYmxlcyZsdDsvc3Ryb25nJmd0OyB1bmRlciAmbHQ7c3Ryb25nJmd0O0J1aWxkIFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDYucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIHBhZ2UsIGNyZWF0ZSB0d28gdmFyaWFibGVzIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OyBhbmQgYWRkIHRoZSByZXNwZWN0aXZlIHZhbHVlcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZXNlIGluIHBsYWNlLCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBjYW4gdXNlIHRoZW0gdG8gbWFrZSBhdXRoZW50aWNhdGVkIGRlcGxveW1lbnRzIHRvIHRoZSBIZXJva3UgcGxhdGZvcm0uCk5vdywgbGV04oCZcyB3cml0ZSBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyIHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtDcmVhdGUgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsuY2lyY2xlY2kmbHQ7L2NvZGUmZ3Q7IGF0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCBhbmQgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgaXQuIEFkZCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uJmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpvcmJzOgogIGhlcm9rdTogY2lyY2xlY2kvaGVyb2t1QDAuMC4xMAp3b3JrZmxvd3M6CiAgaGVyb2t1X2RlcGxveToKICAgIGpvYnM6CiAgICAgIC0gaGVyb2t1L2RlcGxveS12aWEtZ2l0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7VGhlIGNvZGUgYWJvdmUgdXNlcyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7SGVyb2t1IG9yYiZsdDsvYSZndDsgdG8gcGVyZm9ybSBhIHNlYW1sZXNzIGRlcGxveW1lbnQgdG8gSGVyb2t1LiBBbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYiZsdDsvYSZndDsgaXMgYSByZXVzYWJsZSBwYWNrYWdlIG9mIGEgWUFNTCBjb25maWd1cmF0aW9uIHRoYXQgY29uZGVuc2VzIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoaXMgb25lIG1ha2VzIGl0IHZlcnkgZWFzeSB0byBkZXBsb3kgdG8gSGVyb2t1IHdpdGhvdXQgd3JpdGluZyBhIHNvcGhpc3RpY2F0ZWQgY29uZmlnIHlvdXJzZWxmLiZsdDsvcCZndDsKCiZsdDtwJmd0O1NhdmUgdGhpcyBmaWxlIGFuZCBwdXNoIHlvdXIgY2hhbmdlcyB0byB0aGUgR2l0SHViIHJlcG9zaXRvcnkuIFRoZW4gd2F0Y2ggeW91ciBDaXJjbGVDSSBkYXNoYm9hcmQgdHJpZ2dlciBhIGRlcGxveW1lbnQgYWZ0ZXIgdGhlIHN1Y2Nlc3NmdWwgcHVzaC4gWW91IHdpbGwgc2VlIGEgc3VjY2Vzc2Z1bCBkZXBsb3ltZW50IG9uIHlvdXIgZGFzaGJvYXJkIHNpbWlsYXIgdG8gdGhlIHNjcmVlbiBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWw3LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXdlc29tZSEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXTigJlzIG5vdyB2aXNpdCBvdXIgUGxheWdyb3VuZCBvbiB0aGUgbGl2ZSBhcHBsaWNhdGlvbiB0byBjb25maXJtIHRoYXQgb3VyIGRlcGxveW1lbnQgaXMgZmluZS4gVmlzaXQgdGhlIGxpbmsgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9ZT1VSX0hFUk9LVV9BUFBfTkFNRS5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7LiBGb3Igb3VyIGV4ZXJjaXNlLCB0aGlzIHdpbGwgYmUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9zaW1wbGUtZ3JhcGhxbC1ub2RlLXNlcnZlci5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7IGFzIHNlZW4gYmVsb3cuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsOC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SW4gdGhpcyBhcnRpY2xlLCB3ZSBoYXZlIGJlZW4gYWJsZSB0byBzdWNjZXNzZnVsbHkgcHV0IHRvZ2V0aGVyIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyIGFuZCBhdXRvbWF0ZSBpdHMgZGVwbG95bWVudCB1c2luZyBDaXJjbGVDSS4gR3JhcGhRTCBpcyBoZXJlIHRvIHN0YXkgYW5kIGlzIGV4cGVjdGVkIHRvIGdhaW4gbW9yZSBhZG9wdGlvbiwgc2luY2UgaXRzIG1hbnkgYmVuZWZpdHMgbWFrZSBpdCB3b3J0aHkgb2YgaW5jcmVhc2VkIHVzZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIYXBweSBjb2RpbmchJmx0Oy9wJmd0OwoKJmx0O2hyIC8mZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Eb2NrZXIgYW5kIENJL0NEIHR1dG9yaWFsOiBhIGRlZXAgZGl2ZSBpbnRvIGNvbnRhaW5lcnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZG9ja2VyLWFuZC1jaWNkLXR1dG9yaWFsLWEtZGVlcC1kaXZlLWludG8tY29udGFpbmVycy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+RnJpLCAyNCBBcHIgMjAyMCAxMjowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9kb2NrZXItYW5kLWNpY2QtdHV0b3JpYWwtYS1kZWVwLWRpdmUtaW50by1jb250YWluZXJzLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkFuZ2VsIFJpdmVyYTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtUaGlzIGlzIGEgZm9sbG93LXVwIHRvIGEgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7IHRoYXQgSSB3cm90ZSBhZnRlciBDaXJjbGVDSSAyLjAgd2FzIHJlbGVhc2VkLiBUaGlzIHJlbGVhc2UgaW1wbGVtZW50ZWQgYnVpbGQgc3VwcG9ydCB1c2luZyBEb2NrZXIgZXhlY3V0b3JzLiBBZnRlciB0aGUgcmVsZWFzZSwgd2UgcmVhbGl6ZWQgdGhhdCBvbmUgb2YgdGhlIGJpZ2dlc3QgYmFycmllcnMgdGhhdCBDaXJjbGVDSSB1c2VycyBlbmNvdW50ZXJlZCB3YXMgYSBsYWNrIG9mIGV4cGVyaWVuY2Ugd2l0aCBEb2NrZXIuIFRoaXMgd2FzIGNvbmZpcm1lZCB0aHJvdWdoIG15IGNvbnZlcnNhdGlvbnMgd2l0aCBudW1lcm91cyBkZXZlbG9wZXJzLCBpbiB0aGUgY29tbXVuaXR5IGFuZCBhdCBldmVudHMsIGFib3V0IHRoZWlyIHVzZSBvZiBjb250YWluZXIgdGVjaG5vbG9naWVzIGluIHRoZWlyICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmVzLiBUaGVzZSBjb252ZXJzYXRpb25zIGhhdmUgaGlnaGxpZ2h0ZWQgdGhhdCBtYW55IGRldmVsb3BlcnMgZG9u4oCZdCBoYXZlIGEgZnVsbCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byB1c2UgY29udGFpbmVyIHRlY2hub2xvZ2llcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgd2lsbCBleHBhbmQgb24gYW5kIGRlbW9uc3RyYXRlIHNvbWUgb2YgdGhlIG1vcmUgdXNlZnVsIERvY2tlciBjb21tYW5kcyBkaXNjdXNzZWQgaW4gbXkgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtXaGF0IGlzIERvY2tlcj8mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZSBpcyB0aGUgc2ltcGxpZmllZCBkZWZpbml0aW9uIG9mIERvY2tlciB0aGF0IEkgdXNlZCBpbiBteSBwcmV2aW91cyBwb3N0OiZsdDsvcCZndDsKCiZsdDtibG9ja3F1b3RlJmd0OwogICZsdDtwJmd0O0RvY2tlciBpcyBhIHBsYXRmb3JtIGZvciBkZXZlbG9wZXJzIGFuZCBzeXNhZG1pbnMgdG8gZGV2ZWxvcCwgZGVwbG95LCBhbmQgcnVuIGFwcGxpY2F0aW9ucyB1c2luZyBjb250YWluZXJzLiZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7RG9ja2VyIGlzIGFsc28gcmVmZXJyZWQgdG8gYXMgYW4gYXBwbGljYXRpb24gcGFja2FnaW5nIHRvb2wgdGhhdCBlbmFibGVzIGFwcGxpY2F0aW9ucyB0byBiZSBjb25maWd1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZC8jaW1hZ2VzLWFuZC1jb250YWluZXJzJnF1b3Q7Jmd0O0RvY2tlciBpbWFnZSZsdDsvYSZndDsgdGhhdCBjYW4gYmUgdXNlZCB0byBzcGF3biAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyNpbWFnZXMtYW5kLWNvbnRhaW5lcnMmcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IHRoYXQgcnVuIGluc3RhbmNlcyBvZiB0aGUgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIG1hbnkgYmVuZWZpdHMgaW5jbHVkaW5nIHJ1bnRpbWUgZW52aXJvbm1lbnQgaXNvbGF0aW9uLCBjb25zaXN0ZW5jeSB2aWEgY29kZSwgYW5kIHBvcnRhYmlsaXR5LiBEb2NrZXIgY29udGFpbmVycyBjYW4gcnVuIG9uIGFueSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgc3VwcG9ydHMgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZW5naW5lJnF1b3Q7Jmd0O0RvY2tlciBFbmdpbmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtCYXNpYyBEb2NrZXIgdGVybWlub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZeKAmXMgYSBsaXN0IG9mIGJhc2ljIERvY2tlciBjb21tYW5kcyBhbmQgdGVybXMgd2l0aCBsaW5rcyB0byBtb3JlIGluZm9ybWF0aW9uLiBUaGVzZSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgRG9ja2VyIGFuZCBjb250cm9sIHRoZSBleGVjdXRvci4gVGhlIGNvbW1hbmRzIGNhbiBiZSBydW4gbG9jYWxseSBvbiBhbnkgY29tcHV0ZXIgdGhhdCBoYXMgdGhlIERvY2tlciBlbmdpbmUgaW5zdGFsbGVkLiZsdDsvcCZndDsKCiZsdDtoMyZndDtCdWlsZGluZyBEb2NrZXIgaW1hZ2VzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBhIHRleHQgZG9jdW1lbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNvbW1hbmRzIGEgdXNlciBjb3VsZCBjYWxsIG9uIHRoZSBjb21tYW5kIGxpbmUgdG8gYXNzZW1ibGUgYW4gaW1hZ2UuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBEb2NrZXJmaWxlIGlzIGEgYmx1ZXByaW50IGZvciBidWlsZGluZyBEb2NrZXIgaW1hZ2VzLiBEb2NrZXJmaWxlIHRlbXBsYXRlcyBob2xkIGVsZW1lbnRzIHN1Y2ggYXMgdGhlIGJhc2Ugb3BlcmF0aW5nIHN5c3RlbSBpbWFnZSB1c2VkIGFzIGEgZm91bmRhdGlvbiwgZXhlY3V0aW9uIGNvbW1hbmRzIHRoYXQgaW5zdGFsbC9jb25maWd1cmUgZGVwZW5kZW5jaWVzLCBhbmQgY29weSBjb21tYW5kcyB0aGF0IHB1c2ggbG9jYWwgc291cmNlIGNvZGUgb3IgYXJ0aWZhY3RzIGludG8gdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBEb2NrZXJmaWxlIGZvciBhIHNpbXBsZSBOb2RlLmpzIGFwcGxpY2F0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7RlJPTSBub2RlOjEwCgojIENyZWF0ZSBhcHAgZGlyZWN0b3J5CldPUktESVIgL3Vzci9zcmMvYXBwCgojIEluc3RhbGwgYXBwIGRlcGVuZGVuY2llcwojIEEgd2lsZGNhcmQgaXMgdXNlZCB0byBlbnN1cmUgYm90aCBwYWNrYWdlLmpzb24gQU5EIHBhY2thZ2UtbG9jay5qc29uIGFyZSBjb3BpZWQKIyB3aGVyZSBhdmFpbGFibGUgKG5wbUA1KykKQ09QWSBwYWNrYWdlKi5qc29uIC4vCgpSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIyBJZiB5b3UgYXJlIGJ1aWxkaW5nIHlvdXIgY29kZSBmb3IgcHJvZHVjdGlvbgojIFJVTiBucG0gaW5zdGFsbCAtLW9ubHk9cHJvZHVjdGlvbgoKIyBCdW5kbGUgYXBwIHNvdXJjZQpDT1BZIC4gLgoKRVhQT1NFIDUwMDAKQ01EIFsgJnF1b3Q7bnBtJnF1b3Q7LCAmcXVvdDtzdGFydCZxdW90OyBdCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2ltYWdlcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7IGxpc3RzIERvY2tlciBpbWFnZXMgZm91bmQgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gbGlzdCBhbGwgb2YgdGhlIERvY2tlciBpbWFnZXMgYW5kIHJlbGF0ZWQgZGF0YSB0aGF0IGN1cnJlbnRseSBleGlzdCBvbiB0aGUgbG9jYWwgbWFjaGluZS4gSXTigJlzIGNvbXBhcmFibGUgdG8gYSBsaW51eCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtscyZsdDsvY29kZSZndDsgb3Igd2luZG93cyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkaXImbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdXNlZCB0byBzaG93IHRoZSBjb250ZW50cyBvZiBkaXJlY3RvcmllcyBpbiBhIHRlcm1pbmFsLiBUaGlzIGNvbW1hbmQgaXMgdmVyeSB1c2VmdWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRvIG1hbmFnZSwgbWFpbnRhaW4sIGFuZCBidWlsZCBEb2NrZXIgaW1hZ2VzIGxvY2FsbHkuIEJlbG93IGlzIGFuIGV4YW1wbGUgcmVzdWx0IG9mIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgZXhlY3V0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UkVQT1NJVE9SWSAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHICAgICAgICAgICAgICAgICBJTUFHRSBJRCAgICAgICAgICAgIENSRUFURUQgICAgICAgICAgICAgU0laRQphcml2M3JhL25vZGVqcy1jaXJjbGVjaSAgICAgICAgICAgICBsYXRlc3QgICAgICAgICAgICAgIGY0MTllNGE2YjFiOCAgICAgICAgMTEgZGF5cyBhZ28gICAgICAgICA5NDNNQgpub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAgICAgICAgICAgICAgICAgIDAxYjgxNjA1MWQzNCAgICAgICAgMiB3ZWVrcyBhZ28gICAgICAgICA5MTFNQgpjaXJjbGVjaS9weXRob24gICAgICAgICAgICAgICAgICAgICAzLjcuNiAgICAgICAgICAgICAgIDBkMjk3NTg5NmM3MyAgICAgICAgNSB3ZWVrcyBhZ28gICAgICAgICAxLjQzR0IKYXJpdjNyYS9pbmZyYXN0cnVjdHVyZS1hcy1jb2RlMTAxICAgbGF0ZXN0ICAgICAgICAgICAgICBjYjIxYTM2YTI5NzMgICAgICAgIDggd2Vla3MgYWdvICAgICAgICAgOTI5TUIKcHl0aG9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43LjYgICAgICAgICAgICAgICA4NzkxNjU1MzVhNTQgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgOTE5TUIKY2lyY2xlY2kvcnVzdCAgICAgICAgICAgICAgICAgICAgICAgMS1idXN0ZXIgICAgICAgICAgICAyMTgzMjliOTI5Y2YgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgMS42OEdCCnJ1c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtYnVzdGVyICAgICAgICAgICAgZjVmZGUwOTJhMWNkICAgICAgICAyIG1vbnRocyBhZ28gICAgICAgIDEuMTlHQgpweXRob24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcuNCAgICAgICAgICAgICAgIDlmYTU2ZDBhZGRhZSAgICAgICAgNiBtb250aHMgYWdvICAgICAgICA5MThNQgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGJ1aWxkIC10ICZhbXA7bHQ7aW1hZ2UgbmFtZSZhbXA7Z3Q7IC4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBjcmVhdGVzIGEgRG9ja2VyIGltYWdlIHdpdGggYSB0YWcgdXNpbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LXQmbHQ7L2NvZGUmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhYm92ZSBjb21tYW5kLCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgdmFsaWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDssIGJ1aWxkcyBhIERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgZXhlY3V0aW9uIGNvbW1hbmRzIGRlZmluZWQgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7LiBPbmUgY3JpdGljYWwgZWxlbWVudCB0byBidWlsZGluZyBpbWFnZXMgYW5kIHN0YXJ0aW5nIGNvbnRhaW5lcnMgaXMgdW5kZXJzdGFuZGluZyB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9hJmd0Oy4gQnVpbGRpbmcgRG9ja2VyIGltYWdlcyB1c2luZyB0aGlzIGNvbW1hbmQgc3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIERvY2tlciBpbWFnZXMgdXRpbGl6ZXMgYSBuYW1pbmcgY29udmVudGlvbiBtYWRlIHVwIG9mIHNsYXNoLXNlcGFyYXRlZCBuYW1lIGNvbXBvbmVudHMgdGhhdCBtYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgc2VwYXJhdG9ycy4gQSBzZXBhcmF0b3IgaXMgZGVmaW5lZCBhcyBhIHBlcmlvZCwgb25lIG9yIHR3byB1bmRlcnNjb3Jlcywgb3Igb25lIG9yIG1vcmUgZGFzaGVzLiBBIG5hbWUgY29tcG9uZW50IG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggYSBzZXBhcmF0b3IuIEEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7ZG9ja2VyIHRhZyZsdDsvYSZndDsgbmFtZSBtdXN0IGJlIHZhbGlkIEFTQ0lJIGFuZCBtYXkgY29udGFpbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHVuZGVyc2NvcmVzLCBwZXJpb2RzLCBhbmQgZGFzaGVzLiBBIHRhZyBuYW1lIG1heSBub3Qgc3RhcnQgd2l0aCBhIHBlcmlvZCBvciBhIGRhc2ggYW5kIG1heSBjb250YWluIGEgbWF4aW11bSBvZiAxMjggY2hhcmFjdGVycy4gWW91IGNhbiBncm91cCB5b3VyIGltYWdlcyB0b2dldGhlciB1c2luZyBuYW1lcyBhbmQgdGFncy4gSW4gdGhpcyBwb3N0LCB3ZSB3aWxsIHVzZSB0aGlzIG5hbWluZyBjb252ZW50aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB0aGF0IHdl4oCZdmUgZGlzY3Vzc2VkIG5hbWluZyBjb252ZW50aW9ucyBsZXTigJlzIGJ1aWxkIGEgRG9ja2VyIGltYWdlIGJhc2VkIG9uIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXJmaWxlJmx0Oy9jb2RlJmd0OyBpbiBvdXIgZXhhbXBsZSBhYm92ZS4gSW4gdGhpcyBwb3N0IHdlIGNhbiB1dGlsaXplIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9wdW5rZGF0YS9ub2RlanMtY2lyY2xlY2kmcXVvdDsmZ3Q7cHVua2RhdGEvbm9kZWpzLWNpcmNsZWNpJmx0Oy9hJmd0OyBnaXQgcmVwby4gQ2xvbmUgaXQgbG9jYWxseSBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7JCBjZCZsdDsvY29kZSZndDsgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlbiBydW4gdGhpcyBjb21tYW5kIHRvIGJ1aWxkIGEgbmV3IERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgcHJvamVjdCBzb3VyY2UgY29kZSBhbmQgdGhlIGV4YW1wbGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgYnVpbGQgLXQgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0FmdGVyIHJ1bm5pbmcgdGhpcyBidWlsZCBjb21tYW5kLCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtTZW5kaW5nIGJ1aWxkIGNvbnRleHQgdG8gRG9ja2VyIGRhZW1vbiAgOTguMDdNQgpTdGVwIDEvNyA6IEZST00gbm9kZToxMAogLS0tJmFtcDtndDsgMDFiODE2MDUxZDM0ClN0ZXAgMi83IDogV09SS0RJUiAvdXNyL3NyYy9hcHAKIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyAxMmIyZWRjMmI5N2MKU3RlcCAzLzcgOiBDT1BZIHBhY2thZ2UqLmpzb24gLi8KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyA1M2I1YjhlNGU2NTQKU3RlcCA0LzcgOiBSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyBlZWZkZjU2MGJjNGQKU3RlcCA1LzcgOiBDT1BZIC4gLgogLS0tJmFtcDtndDsgYWE3ZDU0ZTk1NWM2ClN0ZXAgNi83IDogRVhQT1NFIDUwMDAKIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gY2M0MjdkYmFmZGNjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgY2M0MjdkYmFmZGNjCiAtLS0mYW1wO2d0OyA0Y2U5MDg0ZTM5ZWIKU3RlcCA3LzcgOiBDTUQgWyAmcXVvdDtucG0mcXVvdDssICZxdW90O3N0YXJ0JnF1b3Q7IF0KIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gZjZlODU0NTk5ZGRjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgZjZlODU0NTk5ZGRjCiAtLS0mYW1wO2d0OyA3OWE4ZDk0Y2JmNDIKU3VjY2Vzc2Z1bGx5IGJ1aWx0IDc5YThkOTRjYmY0MgpTdWNjZXNzZnVsbHkgdGFnZ2VkIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2VzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgeW91ciBuZXdseSBjcmVhdGVkIERvY2tlciBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDskIGRvY2tlciBpbWFnZXMKClJFUE9TSVRPUlkgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRyAgICAgICAgICAgICAgICAgSU1BR0UgSUQgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNJWkUKdHV0b3JpYWwvY2lyY2xlY2ktbm9kZSAgICAgICAgICAgICAgMTAgICAgICAgICAgICAgICAgICA3OWE4ZDk0Y2JmNDIgICAgICAgIDQgbWludXRlcyBhZ28gICAgICAgMS4wM0dCCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyB5b3UgaGF2ZSBhbiBhd2Vzb21lIERvY2tlciBpbWFnZSBidWlsdCBhbmQgcmVhZHkgdG8gdXNlLiBJbiB0aGUgbmV4dCBzZWN0aW9uIEnigJlsbCBjcmVhdGUgbmV3IGluc3RhbmNlcyBvZiB0aGlzIERvY2tlciBpbWFnZSBpbiB0aGUgZm9ybSBvZiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvY29udGFpbmVyLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXIgY29udGFpbmVycyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBjb250YWluZXJzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IGFyZSBkZXNpZ25lZCB0byBydW4gYXBwbGljYXRpb25zIGluIGlzb2xhdGlvbiBhbmQgYXQgc2NhbGUuICBUaGV5IGFsbG93IGZvciBzdHJlYW1saW5pbmcgdGhlIG1hbmFnZW1lbnQgYW5kIGltcGxlbWVudGF0aW9uIG9mIGFwcGxpY2F0aW9ucy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7QmVmb3JlIHdlIHN0YXJ0IGNyZWF0aW5nIGFuZCBydW5uaW5nIERvY2tlciBjb250YWluZXJzLCBJ4oCZbGwgYWRkIHNvbWUgY29udGV4dC4gRG9ja2VyIGNvbnRhaW5lcnMgYXJlIG9iamVjdHMgdGhhdCBhcmUgYmFzZWQgb24gYW5kIHNwYXduZWQgZnJvbSBEb2NrZXIgaW1hZ2VzLiBEb2NrZXIgaW1hZ2VzIGFyZSB0ZW1wbGF0ZXMuIEkgbGlrZW4gdGhlbSB0byBjb29raWUgY3V0dGVyIG1vbGRzLiBDb29raWUgY3V0dGVyIG1vbGRzIGVuYWJsZSB5b3UgdG8gcXVpY2tseSBhbmQgY29uc2lzdGVudGx5IHByb2R1Y2UgaW5kaXZpZHVhbCBjb29raWVzIGZyb20gZG91Z2guIEkgbGlrZW4gdGhlc2UgY29va2llcyB0byBEb2NrZXIgY29udGFpbmVycyB3aGljaCBhcmUgZGlzdGluZ3Vpc2hlZCBpbiBzaGFwZSBieSB0aGUgdHlwZSBvZiBjb29raWUgbW9sZCwgb3IgRG9ja2VyIGNvbnRhaW5lciwgdXNlZCBpbiB0aGUgY3V0dGluZy9idWlsZGluZyBwcm9jZXNzLiBTbyB1c2luZyBteSBjb29raWUgY3V0dGVyIGFuYWxvZ3ksIERvY2tlciBpbWFnZXMgYXJlIHRoZSBjb29raWUgY3V0dGVyIGFuZCB0aGUgaW5kaXZpZHVhbCBjb29raWVzIGN1dCB1c2luZyB0aGF0IGN1dHRlciBhcmUgZXF1aXZhbGVudCB0byBEb2NrZXIgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCBJ4oCZdmUgcHJvYmFibHkgbWFkZSB5b3UgYSBiaXQgaHVuZ2FyeSBmb3IgY29va2llcywgbGV04oCZcyBzdGFydCBydW5uaW5nIHNvbWUgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBydW5zIGEgY29tbWFuZCBpbiBhIG5ldyBjb250YWluZXIuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY29tbWFuZCBvZiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgc3RhcnRpbmcgRG9ja2VyIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCBhIG5ldyBjb250YWluZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcnVuIC1kIC1wIDUwMDA6NTAwMCAtLW5hbWUgbm9kZXRlc3QwMSB0dXRvcmlhbC9jaXJjbGVjaS1ub2RlOjEwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NvbmdyYXRzISBZb3Ugc2hvdWxkIG5vdyBoYXZlIHRoZSBOb2RlLmpzIGltYWdlIHJ1bm5pbmcgaW4gdGhlIG5ldyBjb250YWluZXIgdGhhdCB5b3UganVzdCBjcmVhdGVkIGF2YWlsYWJsZSBvbiBwb3J0IDUwMDAuIE9wZW4gYSB3ZWIgYnJvd3NlciBhbmQgZ28gdG8gdGhpcyBhZGRyZXNzOiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtodHRwOi8vbG9jYWxob3N0OjUwMDAmbHQ7L2NvZGUmZ3Q7LiBJdCB3aWxsIHRha2UgeW91IHRoZSBzdGF0aWMg4oCcV2VsY29tZSB0byBDSS9DRCAxMDEgdXNpbmcgQ2lyY2xlQ0kh4oCdIHdlYiBwYWdlIHNlcnZlZCBieSB0aGlzIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsc28gdmVyaWZ5IHlvdXIgY29udGFpbmVyIGlzIHJ1bm5pbmcgYnkgZXhlY3V0aW5nIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbC4gV2XigJlsbCBkaXNjdXNzIHRoaXMgaW4gdGhlIG5leHQgc2VjdGlvbi4gQmVmb3JlIHRoYXQsIGxldOKAmXMgc3RhcnQgYW4gb3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGFwcGxpY2F0aW9uIGJ5IHJ1bm5pbmcgYW5vdGhlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnRlZCBvdXIgZmlyc3QgY29udGFpbmVyIHdpdGggdGhlIG5hbWUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDsgYW5kIHNpbmNlIGNvbnRhaW5lciBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgd2XigJlyZSBnb2luZyB0byBuYW1lIG91ciBuZXcgY29udGFpbmVyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7LiBBbm90aGVyIGNoYW5nZSB0aGF0IG11c3QgYmUgbWFkZSBpbiBvdXIgbmV3IGNvbnRhaW5lciBpcyB0aGUgcG9ydCBudW1iZXIuIFdl4oCZbGwgY2hhbmdlIGl0IGZyb20gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMCZsdDsvY29kZSZndDsgdG8gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMSZsdDsvY29kZSZndDsgc2luY2UgYXBwbGljYXRpb25zIGNhbm5vdCBvY2N1cHkgdGhlIHNhbWUgcG9ydCBudW1iZXIgb24gdGhlIHNhbWUgbmV0d29yayBpbnRlcmZhY2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RXhlY3V0ZSB0aGUgZm9sbG93aW5nICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtZCAtcCA1MDAxOjUwMDAgLS1uYW1lIG5vZGV0ZXN0MDIgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISBZb3Ugbm93IGhhdmUgdHdvIGNvbnRhaW5lcnMgcnVubmluZyBvbiB5b3VyIGxvY2FsIG1hY2hpbmUuIFlvdSBjYW4gZ28gdG8gdGhpcyBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMSZsdDsvY29kZSZndDsgaW4gYSBicm93c2VyIGFuZCBzZWUgdGhlIGFwcCBydW5uaW5nIGluIHlvdXIgc2Vjb25kIERvY2tlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaXMgdmVyeSByb2J1c3QgYW5kIGhhcyBtYW55IHByb3BlcnR5IGFuZCBjb25maWd1cmF0aW9uIGZsYWdzIHdoaWNoIEkgd29u4oCZdCBiZSBhYmxlIHRvIGFkZHJlc3Mgb3IgZGVtb25zdHJhdGUgaW4gdGhpcyBwb3N0LiBJIGhpZ2hseSByZWNvbW1lbmQgdGhhdCB5b3UgcmVhZCBhbmQgZmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgbWFueSB3YXlzIHRoYXQgeW91IGNhbiBleGVjdXRlIGFuZCBydW4gRG9ja2VyIGNvbnRhaW5lcnMuIFlvdSBjYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7cmVhZCB1cCBvbiBEb2NrZXIgY29udGFpbmVycyBjb21tYW5kcyBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9wcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbGlzdHMgYWxsIG9mIHRoZSBydW5uaW5nIERvY2tlciBjb250YWluZXJzLiBUaGlzIGNvbW1hbmQgc2VydmVzIGEgc2ltaWxhciBwdXJwb3NlIGFzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2UmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgYW5kIGxpc3RzIGFjdGl2ZWx5IHJ1bm5pbmcgY29udGFpbmVycy4gVXNlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDstYSZsdDsvY29kZSZndDsgZmxhZyB0byBzaG93IGFsbCBvZiB0aGUgcnVubmluZyBhbmQgbm90IHJ1bm5pbmcgY29udGFpbmVycy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoaXMgY29tbWFuZCBpbiBhIHRlcm1pbmFsIGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIGJvdGggb2YgdGhlIHByZXZpb3VzbHkgY3JlYXRlZCBjb250YWluZXJzIHJ1bm5pbmcgaW4gdGhlIHJlc3VsdHM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlIHJlc3VsdHMgd2lsbCBiZSBzaW1pbGFyIHRvIHRoaXMgc2hvd2luZyBib3RoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDEmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcnMgc3RpbGwgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0NPTlRBSU5FUiBJRCAgICAgICAgSU1BR0UgICAgICAgICAgICAgICAgICAgICAgIENPTU1BTkQgICAgICAgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNUQVRVUyAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICAgICAgIE5BTUVTCmRmZDMwMTgxZTE1YyAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAxMiBtaW51dGVzIGFnbyAgICAgIFVwIDEyIG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAxLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAyOCBtaW51dGVzIGFnbyAgICAgIFVwIDI4IG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAwLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7CiAgICAmbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvc3RhcnQvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdGFydHMgYW4gZXhpc3RpbmcgY29udGFpbmVyLiZsdDsvcCZndDsKICAmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsKICAgICZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9zdG9wLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdG9wcyBhbiBleGlzdGluZyBjb250YWluZXIuJmx0Oy9wJmd0OwogICZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgaXMgb25seSB1c2VkIHRvIHN0YXJ0ICZsdDtzdHJvbmcmZ3Q7ZXhpc3RpbmcmbHQ7L3N0cm9uZyZndDsgY29udGFpbmVycyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcnVuJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBVbmxlc3MgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy0tcm09dHJ1ZSZsdDsvY29kZSZndDsgZmxhZyBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgbmV3bHkgY3JlYXRlZCBjb250YWluZXJzIHdpbGwgcGVyc2lzdCBhbmQgY2FuIGJlIHJldXNlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RhcnQmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCZsdDsvY29kZSZndDsgY29tbWFuZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdG9wIHNvbWUgcnVubmluZyBjb250YWluZXJzIGJ5IGV4ZWN1dGluZyB0aGVzZSBjb21tYW5kczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBzdG9wIG5vZGV0ZXN0MDEgbm9kZXRlc3QwMgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBydW5uaW5nIGNvbnRhaW5lcnMgc2hvdWxkIG5vdyBiZSBpbmFjdGl2ZSBhbmQgc3RvcHBlZC4gU2luY2UgdGhleeKAmXJlIHN0b3BwZWQsIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgaW5kaWNhdGluZyBzdG9wcGVkIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtDT05UQUlORVIgSUQgICAgICAgIElNQUdFICAgICAgICAgICAgICAgICAgICAgICBDT01NQU5EICAgICAgICAgICAgICAgICAgQ1JFQVRFRCAgICAgICAgICAgICBTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICBOQU1FUwpkZmQzMDE4MWUxNWMgICAgICAgIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAgICAmcXVvdDtkb2NrZXItZW50cnlwb2ludC5z4oCmJnF1b3Q7ICAgMzEgbWludXRlcyBhZ28gICAgICBFeGl0ZWQgKDApIDM4IHNlY29uZHMgYWdvICAgICAgICAgICAgICAgICAgICAgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICBBYm91dCBhbiBob3VyIGFnbyAgIEV4aXRlZCAoMCkgMzggc2Vjb25kcyBhZ28gICAgICAgICAgICAgICAgICAgICAgIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhvdWdoIHRoZXNlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQgdGhleSB3aWxsIHBlcnNpc3QgYW5kIGNhbiBiZSByZXN0YXJ0ZWQgdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCZsdDsvY29kZSZndDsgY29tbWFuZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXRzIHN0YXJ0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAxJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgc28gd2UgY2FuIGxlYXJuIGhvdyB0byB1c2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBmZWF0dXJlcyBpbiB0aGUgbmV4dCBzZWN0aW9uLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHN0YXJ0IG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Tm93IHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBOb3RpY2UgdGhlIHN0YXR1cyBmb3IgdGhpcyBjb250YWluZXIgcmVhZHMgc2ltaWxhciB0byAgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXAgYWJvdXQgYSAzMCBzZWNvbmRzJmx0Oy9jb2RlJmd0OyBvciBzb21ldGhpbmcgdG8gdGhhdCBlZmZlY3QuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9ncy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ3MmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBmZXRjaGVzIGEgY29udGFpbmVy4oCZcyBsb2dzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIHNlZSBsb2dzIHRoYXQgYXJlIHByZXNlbnQgYXQgdGhlIHRpbWUgb2YgZXhlY3V0aW9uLiBTaW5jZSB5b3VyIGFwcHMgYXJlIHJ1bm5pbmcgaW5zaWRlIHRoZXNlIGNvbnRhaW5lcnMsIHRoZSBsb2dzIGNvbW1hbmQgaXMgdXNlZnVsIGZvciByZWFkaW5nIG91dCBjcml0aWNhbCBhcHAgb3V0cHV0cy4gVGhpcyBoZWxwcyBpbiB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgYXBwIGlzIHBlcmZvcm1pbmcgYW5kIGFueSBkZWJ1Z2dpbmcvdHJvdWJsZXNob290aW5nIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBydW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDEmbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBsb2dzIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIGNvbW1hbmQgeW91IHNob3VsZCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHdoYXTigJlzIHNob3duIGJlbG93LiBJdCBzaG93cyB0aGF0IHRoZSBhcHAgaW5zaWRlIGNvbnRhaW5lciBpcyB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O05vZGUgc2VydmVyIGlzIHJ1bm5pbmcuLgoKJmFtcDtndDsgbm9kZWpzLWNpcmNsZWNpQDAuMC4xIHN0YXJ0IC91c3Ivc3JjL2FwcAomYW1wO2d0OyBub2RlIGFwcC5qcwoKTm9kZSBzZXJ2ZXIgaXMgcnVubmluZy4uCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0gJmFtcDtsdDtjb250YWluZXIgbmFtZSZhbXA7Z3Q7Jmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgZGVsZXRlcyBhIGNvbnRhaW5lciBvciBtdWx0aXBsZSBjb250YWluZXJzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtQZXJzaXN0aW5nIERvY2tlciBjb250YWluZXJzIGNvbnN1bWVzIGRpc2sgc3BhY2UgYW5kIHJlc291cmNlcyBvbiBpdHMgaG9zdC4gT3BlcmF0aW9uYWxseSwgaXQgZG9lc27igJl0IG1ha2UgbXVjaCBzZW5zZSB0byBwZXJzaXN0IGV2ZXJ5IGNvbnRhaW5lciBvbiBkaXNrIHNpbmNlIGluIG1vc3QgY2FzZXMgY29udGFpbmVycyBhcmUgZGlzcG9zYWJsZSBhbmQgc2hvdWxkIGJlIHVzZWQgdGhhdCB3YXkuIFNvIHdoZW4gYSBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpdCBzaG91bGQgYmUgcGVybWFuZW50bHkgZGlzY2FyZGVkIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgcGVybWFuZW50bHkgZGVsZXRlcyBjb250YWluZXJzIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAyJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBzbyBsZXTigJlzIHNhdmUgc29tZSBkaXNrIHNwYWNlIGFuZCBkZWxldGUgaXQuIE5vdGUgdGhpcyBjb21tYW5kIHdpbGwgb25seSBkZWxldGUgaW5hY3RpdmUvc3RvcHBlZCBjb250YWluZXJzIGFuZCB3aWxsIGVycm9yIG91dCBpZiBpdOKAmXMgcnVuIGFnYWluc3QgYW4gYWN0aXZlL3J1bm5pbmcgY29udGFpbmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBybSBub2RldGVzdDAyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm8gbG9uZ2VyIHNlZSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMiZsdDsvY29kZSZndDsgY29udGFpbmVyIG9uIHRoZSBob3N0IGFmdGVyIHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGhhcyBvdGhlciBwcm9wZXJ0aWVzIGFuZCBmbGFncyBhbmQgeW91IHNob3VsZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcm0vJnF1b3Q7Jmd0O2ZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggdGhlbSBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ybWkvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBybWkmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBkZWxldGVzIERvY2tlciBpbWFnZXMgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGFwcGxpZXMgdG8gZGVsZXRpbmcgRG9ja2VyIGltYWdlcyBmcm9tIGEgaG9zdC4gSWYgdGhlcmUgYXJlIGV4aXN0aW5nIGNvbnRhaW5lcnMgb24gdGhlIGhvc3QgdGhhdCBhcmUgYmFzZWQgb24gYSBzcGVjaWZpYyBpbWFnZSwgdGhlbiB0aGlzIGNvbW1hbmQgd2lsbCBub3QgYWxsb3cgdGhlIGRlbGV0aW9uIG9mIHRoZSBjb250YWluZXIgYmFzZWQgb24gdGhlIGltYWdlLiBZb3UgbXVzdCBmaXJzdCBlbnN1cmUgdGhlIGNvbnRhaW5lciBpcyBzdG9wcGVkIGFuZCBkZWxldGVkIGJlZm9yZSB5b3UgY2FuIGRlbGV0ZSBEb2NrZXIgaW1hZ2VzIHVzaW5nIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtaSZsdDsvY29kZSZndDsgY29tbWFuZC4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtaS8mcXVvdDsmZ3Q7UmVhZCB1cCBvbiB0aGUgZG9ja2VyIHJtaSBjb21tYW5kIGhlcmUmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBpbWFnZSBkZXBsb3ltZW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtNYW55IERvY2tlciBpbWFnZXMgYXJlIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgaG9zdGVkIG9uIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2RvY2tlci1odWIvJnF1b3Q7Jmd0O0RvY2tlciBIdWIgUmVnaXN0cnkmbHQ7L2EmZ3Q7IHdoaWNoIGlzIGFuIG9ubGluZSBjZW50cmFsIGhvc3Rpbmcgc29sdXRpb24gZm9yIERvY2tlciBpbWFnZXMuIERvY2tlciBIdWIgZW5hYmxlcyBhbnlvbmUgd2l0aCBhbiBpbnRlcm5ldCBjb25uZWN0aW9uIHRvIHB1bGwgZG93biBwdWJsaWNseSBhdmFpbGFibGUgaW1hZ2VzIGZyb20gdGhlIHJlZ2lzdHJ5IHRvIHRoZWlyIGxvY2FsIG1hY2hpbmVzIG9yIHNlcnZlcnMuIEl0IGFsc28gZW5hYmxlcyByZWdpc3RlcmVkIHVzZXJzIHRvIHVwbG9hZCBhbmQgcHVibGljbHkgc2hhcmUgYW55IG9mIHRoZWlyIGNvbnRhaW5lcnMgc28gdGhhdCBhbnlvbmUgY2FuIHB1bGwgZG93biB0aGF0IGltYWdlIGZyb20gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2h1Yi5kb2NrZXIuY29tLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIEnigJlsbCBicmllZmx5IGRpc2N1c3Mgc29tZSBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItaHViLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0OyByZWxhdGVkIGNvbW1hbmRzLiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3B1bGwvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBwdWxsJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgcHVsbHMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IGZyb20gYSByZWdpc3RyeS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGVuYWJsZXMgeW91IHRvIGRvd25sb2FkIGEgdmFsaWQgRG9ja2VyIGltYWdlIGZyb20gRG9ja2VyIEh1Yi4gUHVibGljbHkgYXZhaWxhYmxlIERvY2tlciBpbWFnZXMgZG8gbm90IHJlcXVpcmUgYXV0aGVudGljYXRpb24uIElmIHRoZSByZWdpc3RyeSBpcyBwcml2YXRlIHlvdSB3aWxsIG5lZWQgdG8gYXV0aGVudGljYXRlIHVzaW5nIGFuIGFzc2lnbmVkIGNyZWRlbnRpYWwgdXN1YWxseSBpbiB0aGUgZm9ybSBvZiBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ2luJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbG9ncyBpbnRvIGEgRG9ja2VyIHJlZ2lzdHJ5LiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyB5b3UgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgYSBEb2NrZXIgUmVnaXN0cnkuIElmIHlvdeKAmXJlIHVzaW5nIHRoaXMgbG9naW4gY29tbWFuZCB5b3Ugc2hvdWxkICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8jcHJvdmlkZS1hLXBhc3N3b3JkLXVzaW5nLXN0ZGluJnF1b3Q7Jmd0O3BvcHVsYXRlIGEgLnR4dCBmaWxlJmx0Oy9hJmd0OyB3aXRoIHlvdXIgRG9ja2VyIEh1YiBhY2NvdW50IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBwcm90ZWN0IHRoZXNlIGNyZWRlbnRpYWxzIGZyb20gZXhwb3N1cmUuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcHVzaC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHB1c2gmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBwdXNoZXMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IHRvIGEgcmVnaXN0cnkuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBlbmFibGVzIHVzZXJzIHRvIHVwbG9hZCBpbWFnZXMgdG8gYSBEb2NrZXIgcmVnaXN0cnkgYW5kIHJlcXVpcmVzIHZhbGlkIGNyZWRlbnRpYWxzLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O1NvIHRoZXJlIHlvdSBoYXZlIGl0LiBJbiB0aGlzIHBvc3QgSSB3ZW50IGEgYml0IGRlZXBlciBpbiBleHBsYWluaW5nIERvY2tlciB0ZXJtaW5vbG9neSBhbmQgY29tbWFuZHMgYXMgd2VsbCBhcyBjb250YWluZXJzIGFuZCB0aGVpciB1c2FnZS4gVGhlIGNvbW1hbmRzIEkgZGlzY3Vzc2VkIGFuZCBkZW1vbnN0cmF0ZWQsIGFyZSB0aGUgbW9zdCB3aWRlbHkgdXNlZCBjb21tYW5kcyBpbiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGxlYXJuaW5nIGEgYml0IG1vcmUgYWJvdXQgdGhlbSBhbmQgdGhlaXIgcHJvcGVydGllcyBhbmQgZmxhZ3Mgd2lsbCBkZWZpbml0ZWx5IGhlbHAgeW91IGxldmVsIHVwIHlvdXIgRG9ja2VyIGFuZCBjb250YWluZXIgc2tpbGxzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZhbWlsaWFyaXppbmcgeW91cnNlbGYgd2l0aCB0aGVzZSBiYXNpYyBjb21tYW5kcyB3aWxsIHJlbW92ZSBvbmUgb2YgdGhlIGxhcmdlciBiYXJyaWVycyB0aGF0IG5ldyB1c2VycyBvZiBDaXJjbGVDSSBlbmNvdW50ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SWYgeW91IHdhbnQgdG8gbGVhcm4gbW9yZSBhYm91dCBDaXJjbGVDSSBjaGVjayBvdXQgdGhlICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wLyZxdW90OyZndDtkb2N1bWVudGF0aW9uIHNpdGUmbHQ7L2EmZ3Q7LCBhbmQgaWYgeW91IHJlYWxseSBnZXQgc3R1Y2sgeW91IGNhbiByZWFjaCBvdXQgdG8gdGhlIENpcmNsZUNJIGNvbW11bml0eSB2aWEgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mbHQ7L2EmZ3Q7IGNvbW11bml0eS9mb3J1bSBzaXRlLiZsdDsvcCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogIDwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:54:36 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:54:38 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"3cb6a4e44886bcf7","ot-tracer-traceid":"2a79efcc7e1b036e","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889278393:124c2fe4628
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:09:38 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595d9fd58cf60e26-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce62397600000e26a391c200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:54:38 GMT
+- request:
+ method: head
+ uri: https://medium.com/media/7da74bb30f8a2a82b0acb89b213a018b/href
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 302
+ message: Found
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:54:38 GMT
+ Content-Type:
+ - application/octet-stream
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"50aed8547e2a9add","ot-tracer-traceid":"15c9673360e55176","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889278678:9639f38b9d65
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Expires:
+ - Thu, 09 Sep 1999 09:09:09 GMT
+ Pragma:
+ - no-cache
+ Location:
+ - https://www.youtube.com/watch?v=QOCaacO8wus
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595d9fd75a20e8f7-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce623a990000e8f738a15200000001
+ body:
+ encoding: UTF-8
+ string: ''
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:54:38 GMT
+- request:
+ method: head
+ uri: https://www.youtube.com/watch?v=QOCaacO8wus
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Cookie:
+ - __cfduid=d5cf0f6c10c4774f496379913077c3f151589889278; uid=lo_3mRki5BW5DYB;
+ sid=1:+RHsDspCAmoUbVNQ4gUIW4WvyBgqp11Br3ToqU+rmzm50aO33KamS4dPly+Hmy13; optimizelyEndUserId=lo_3mRki5BW5DYB;
+ __cfruid=9f53cdf242a478283b6c2226ef2453033ec3d09b-1589889278
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Frame-Options:
+ - SAMEORIGIN
+ P3p:
+ - CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=it
+ for more info."
+ Strict-Transport-Security:
+ - max-age=31536000
+ Cache-Control:
+ - no-cache
+ Expires:
+ - Tue, 27 Apr 1971 19:44:06 GMT
+ Content-Type:
+ - text/html; charset=utf-8
+ X-Content-Type-Options:
+ - nosniff
+ Date:
+ - Tue, 19 May 2020 11:54:39 GMT
+ Server:
+ - YouTube Frontend Proxy
+ X-Xss-Protection:
+ - '0'
+ Transfer-Encoding:
+ - chunked
+ Alt-Svc:
+ - h3-27=":443"; ma=2592000,h3-25=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443";
+ ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443";
+ ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
+ Accept-Ranges:
+ - none
+ Vary:
+ - Accept-Encoding
+ body:
+ encoding: UTF-8
+ string: ''
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:54:39 GMT
+- request:
+ method: post
+ uri: https://api.twitter.com/oauth2/token
+ body:
+ encoding: UTF-8
+ string: grant_type=client_credentials
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Accept:
+ - "*/*"
+ Connection:
+ - close
+ Content-Type:
+ - application/x-www-form-urlencoded
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '153'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Tue, 19 May 2020 11:54:39 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Tue, 19 May 2020 11:54:39 GMT
+ Ml:
+ - A
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Connection-Hash:
+ - 7c671bcb8f39fa47c2e4988ca75aa2fe
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - DENY
+ X-Response-Time:
+ - '115'
+ X-Transaction:
+ - 00e743940059eafa
+ X-Tsa-Request-Body-Time:
+ - '0'
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Ua-Compatible:
+ - IE=edge,chrome=1
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"token_type":"bearer","access_token":"ACCESS_TOKEN"}'
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:54:39 GMT
+- request:
+ method: get
+ uri: https://api.twitter.com/1.1/statuses/show/948256083352735744.json?tweet_mode=extended
+ body:
+ encoding: UTF-8
+ string: ''
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Connection:
+ - close
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '3878'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Tue, 19 May 2020 11:54:40 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Tue, 19 May 2020 11:54:40 GMT
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Access-Level:
+ - read
+ X-Connection-Hash:
+ - 5d62daa0cbaf19f3ef852401e2a7385d
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-Rate-Limit-Limit:
+ - '900'
+ X-Rate-Limit-Remaining:
+ - '898'
+ X-Rate-Limit-Reset:
+ - '1589890100'
+ X-Response-Time:
+ - '119'
+ X-Transaction:
+ - 00c8c6dd007362ff
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"created_at":"Tue Jan 02 18:14:02 +0000 2018","id":948256083352735744,"id_str":"948256083352735744","full_text":"I''m
+ a full-stack developer https:\/\/t.co\/wvFikfWJ7f","truncated":false,"display_text_range":[0,26],"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[],"media":[{"id":948256051085770752,"id_str":"948256051085770752","indices":[27,50],"media_url":"http:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","url":"https:\/\/t.co\/wvFikfWJ7f","display_url":"pic.twitter.com\/wvFikfWJ7f","expanded_url":"https:\/\/twitter.com\/bendhalpern\/status\/948256083352735744\/photo\/1","type":"photo","sizes":{"large":{"w":1536,"h":2048,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":900,"h":1200,"resize":"fit"},"small":{"w":510,"h":680,"resize":"fit"}}}]},"extended_entities":{"media":[{"id":948256051085770752,"id_str":"948256051085770752","indices":[27,50],"media_url":"http:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","url":"https:\/\/t.co\/wvFikfWJ7f","display_url":"pic.twitter.com\/wvFikfWJ7f","expanded_url":"https:\/\/twitter.com\/bendhalpern\/status\/948256083352735744\/photo\/1","type":"photo","sizes":{"large":{"w":1536,"h":2048,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":900,"h":1200,"resize":"fit"},"small":{"w":510,"h":680,"resize":"fit"}}}]},"source":"\u003ca
+ href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter
+ for iPhone\u003c\/a\u003e","in_reply_to_status_id":948243620846620673,"in_reply_to_status_id_str":"948243620846620673","in_reply_to_user_id":161419043,"in_reply_to_user_id_str":"161419043","in_reply_to_screen_name":"bendhalpern","user":{"id":161419043,"id_str":"161419043","name":"Ben
+ Halpern \ud83e\udd81","screen_name":"bendhalpern","location":"Brooklyn, NY\/Beacon,
+ NY","description":"Creator\/founder\/webmaster of https:\/\/t.co\/lhcCPP1ReQ
+ (@ThePracticalDev). Coder, buddhist, feminist, Batman. He\/Him.","url":"https:\/\/t.co\/qqIzCffhit","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/qqIzCffhit","expanded_url":"http:\/\/dev.to\/ben","display_url":"dev.to\/ben","indices":[0,23]}]},"description":{"urls":[{"url":"https:\/\/t.co\/lhcCPP1ReQ","expanded_url":"http:\/\/dev.to","display_url":"dev.to","indices":[29,52]}]}},"protected":false,"followers_count":39142,"friends_count":2168,"listed_count":689,"created_at":"Wed
+ Jun 30 20:15:57 +0000 2010","favourites_count":35151,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":true,"statuses_count":15326,"lang":null,"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"EDECE9","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme3\/bg.gif","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme3\/bg.gif","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/855590922486136832\/g8m8zpCp_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/855590922486136832\/g8m8zpCp_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/161419043\/1492834234","profile_link_color":"3A1E75","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"E3E2DE","profile_text_color":"634047","profile_use_background_image":true,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":65,"favorite_count":511,"favorited":false,"retweeted":false,"possibly_sensitive":false,"possibly_sensitive_appealable":false,"lang":"en"}'
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:54:40 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:54:40 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"6550b401220edf8d","ot-tracer-traceid":"5cb9756e0bcc69e2","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889280518:e6b5deac6f28
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:09:40 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595d9fe2c9c3f913-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce6241bf0000f913ca1f6200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDExOjQ4OjUyIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:54:40 GMT
+- request:
+ method: get
+ uri: https://circleci.com/blog/feed.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/xml
+ Date:
+ - Tue, 19 May 2020 11:54:41 GMT
+ Etag:
+ - '"d148e5f0c8f6530989f97099948abd37"'
+ Last-Modified:
+ - Tue, 19 May 2020 02:33:22 GMT
+ Server:
+ - nginx
+ Strict-Transport-Security:
+ - max-age=15724800
+ X-Amz-Id-2:
+ - 1NukqXKHMxDW9auM5lJ7kg0ZolHHrxpCRcQTHG1TsKp8AU3u5V43fIrlAEu5vgzKx+u3p49IGkI=
+ X-Amz-Request-Id:
+ - DD878094DC1C8B60
+ X-Frame-Options:
+ - SAMEORIGIN
+ Content-Length:
+ - '183502'
+ Connection:
+ - keep-alive
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiCiAgeG1sOmJhc2U9Imh0dHBzOi8vY2lyY2xlY2kuY29tLyIKICB4bWxuczphdG9tPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8Y2hhbm5lbD4KICAgIDx0aXRsZT5UaGUgQ2lyY2xlQ0kgQmxvZyBGZWVkIC0gQ2lyY2xlQ0k8L3RpdGxlPgogICAgPGRlc2NyaXB0aW9uPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgbmV3cywgdXBkYXRlcywgYW5kIGhhY2tzIGZyb20gQ2lyY2xlQ0kuPC9kZXNjcmlwdGlvbj4KICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvPC9saW5rPgogICAgPGF0b206bGluayBocmVmPSJodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2ZlZWQueG1sIiByZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Db250aW51b3VzIGludGVncmF0aW9uIGZvciBJb25pYyBhcHBsaWNhdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvY29udGlub3VzLWludGVncmF0aW9uLWZvci1pb25pYy1hcHBzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDE4IE1heSAyMDIwIDE3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbm91cy1pbnRlZ3JhdGlvbi1mb3ItaW9uaWMtYXBwcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5GaWtheW8gQWRlcG9qdTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtJbiB0aGUgd29ybGQgb2YgaHlicmlkIG1vYmlsZSBkZXZlbG9wbWVudCwgbm8gb3RoZXIgZnJhbWV3b3JrIGhhcyBkb25lIG1vcmUgZm9yIHRoZSBpbmR1c3RyeSB0aGFuIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tLyZxdW90OyZndDtJb25pYyBmcmFtZXdvcmsmbHQ7L2EmZ3Q7LiBDcmVhdGVkIGluIDIwMTMgYW5kIG9yaWdpbmFsbHkgYnVpbHQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXJqcy5vcmcvJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7IGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY29yZG92YS5hcGFjaGUub3JnLyZxdW90OyZndDtBcGFjaGUgQ29yZG92YSZsdDsvYSZndDssIElvbmljIGhhcyBncm93biB0byBhIGZ1bGwtZmVhdHVyZWQgYXBwbGljYXRpb24gZnJhbWV3b3JrIGZvciBkZXZlbG9waW5nIG1vYmlsZSwgZGVza3RvcCwgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93ZWIuZGV2L3Byb2dyZXNzaXZlLXdlYi1hcHBzLyZxdW90OyZndDtwcm9ncmVzc2l2ZSB3ZWIgYXBwbGljYXRpb25zJmx0Oy9hJmd0Oy4gSW9uaWMgaGFzIGFsc28gYmVjb21lIGZyYW1ld29yay1hZ25vc3RpYywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byB1c2UgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXIuaW8vJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oywgb3IgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3Z1ZWpzLm9yZy8mcXVvdDsmZ3Q7VnVlLmpzJmx0Oy9hJmd0OyBmb3IgZGV2ZWxvcG1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2Ugd2lsbCBiZSBidWlsZGluZyBhIGhhbmR5IHRhc2sgbWFuYWdlci4gV2Ugd2lsbCB3cml0ZSB0ZXN0cyBmb3IgZmVhdHVyZXMgaW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBzZXQgdXAgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbm91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgKENJKSBwaXBlbGluZSB0byBhdXRvbWF0ZSBvdXIgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFdlIHdpbGwgYmUgZGV2ZWxvcGluZyBvdXIgYXBwbGljYXRpb24gdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9yZWFjdCZxdW90OyZndDtJb25pYyBSZWFjdCZsdDsvYSZndDssIHRoZSBJb25pYyB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgZGV2ZWxvcGluZyB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBmb2xsb3cgdGhpcyBwb3N0LCBhIGZldyB0aGluZ3MgYXJlIHJlcXVpcmVkOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QmFzaWMga25vd2xlZGdlIG9mIFJlYWN0LmpzIChOb3QgYSBkZWFsLWJyZWFrZXIsIHlvdSBvbmx5IGhhdmUgdG8gY29weS1wYXN0ZSB0aGUgY29kZSBzbmlwcGV0cykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbm9kZWpzLm9yZyZxdW90OyZndDtOb2RlLmpzJmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtUaGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2NsaSZxdW90OyZndDtJb25pYyBDTEkmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L29sJmd0OwoKJmx0O2gyJmd0O1NjYWZmb2xkaW5nIHRoZSBJb25pYyBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBiZWdpbiwgbGV04oCZcyBzY2FmZm9sZCBhIG5ldyBJb25pYyBhcHBsaWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2lvbmljIHN0YXJ0IHRhc2stbWFuYWdlciB0YWJzIC0tdHlwZT1yZWFjdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgSW9uaWMgQ0xJIHRvIHNjYWZmb2xkIGEgbmV3IHByb2plY3QgZm9yIHVzIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0YWJzJmx0Oy9jb2RlJmd0OyB0ZW1wbGF0ZSBpbnNpZGUgYSBmb2xkZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGFzay1tYW5hZ2VyJmx0Oy9jb2RlJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1lvdSBtaWdodCBiZSBwcm9tcHRlZCBhdCBzb21lIHBvaW50IHdpdGggJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Q3JlYXRlIGZyZWUgSW9uaWMgYWNjb3VudD8mbHQ7L2NvZGUmZ3Q7LiBIaXQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7biZsdDsvY29kZSZndDsgdG8gZGVjbGluZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYW4gSW9uaWMgYWNjb3VudCBzZWUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9hcHBmbG93JnF1b3Q7Jmd0O2hlcmUmbHQ7L2EmZ3Q7LiZsdDsvaSZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmNlIHRoaXMgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb24gKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIHRhc2stbWFuYWdlciZsdDsvY29kZSZndDspIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHNlcnZlIHRoZSBhcHBsaWNhdGlvbiBpbiB5b3VyIHdlYiBicm93c2VyOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7aW9uaWMgc2VydmUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGlzIGNvbW1hbmQgaGFzIGNvbXBsZXRlZCwgeW91IHdpbGwgc2VlIGFuIGFwcGxpY2F0aW9uIHZpZXcgaW4geW91ciBicm93c2VyIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O0kgYW0gdXNpbmcgYSBtb2JpbGUgcHJldmlldyBhY3RpdmF0ZWQgaW4gQ2hyb21l4oCZcyBkZXZlbG9wbWVudCB0b29scy4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXNjYWZmb2xkLXByZXZpZXcucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtEb27igJl0IGJlIHN1cnByaXNlZCBpZiB5b3VycyBoYXMgYSBibGFjayBiYWNrZ3JvdW5kIGFuZCB3aGl0ZSBmb250LiBJdCB1c2VzIHRoZSBkZWZhdWx0IG1vZGUgb2YgeW91ciBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMiZndDtCdWlsZGluZyB0aGUgVGFzayBNYW5hZ2VyIGFwcGxpY2F0aW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05leHQsIGxldOKAmXMgYmVnaW4gYnVpbGRpbmcgdGhlIG1haW4gYXBwbGljYXRpb24uIEdvIGludG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyIG9mIHlvdXIgYXBwbGljYXRpb24gYW5kIG9wZW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGhvbWUgcGFnZSBmb3IgdGhlIG5ld2x5IHNjYWZmb2xkZWQgYXBwbGljYXRpb24uIFJlbW92ZSBldmVyeXRoaW5nIGluIHRoaXMgZmlsZSBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRzeAoKaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsKICBJb25Db250ZW50LAogIElvbkhlYWRlciwKICBJb25QYWdlLAogIElvblRpdGxlLAogIElvblRvb2xiYXIsCiAgSW9uTGlzdCwKICBJb25JdGVtU2xpZGluZywKICBJb25JdGVtLAogIElvbkxhYmVsLAogIElvbkl0ZW1PcHRpb25zLAogIElvbkl0ZW1PcHRpb24sCiAgSW9uRmFiLAogIElvbkZhYkJ1dHRvbiwKICBJb25JY29uLAogIElvbk1vZGFsLAogIElvbkJ1dHRvbiwKICBJb25DYXJkLAogIElvbkNhcmRDb250ZW50LAogIElvbklucHV0LAp9IGZyb20gJnF1b3Q7QGlvbmljL3JlYWN0JnF1b3Q7OwoKaW1wb3J0IHsgYWRkIH0gZnJvbSAmcXVvdDtpb25pY29ucy9pY29ucyZxdW90OzsKCmltcG9ydCAmcXVvdDsuL1RhYjEuY3NzJnF1b3Q7OwoKaW50ZXJmYWNlIFRhc2sgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwp9Cgpjb25zdCBUYWIxOiBSZWFjdC5GQyA9ICgpID0mYW1wO2d0OyB7CiAgY29uc3QgW3Rhc2tzLCBzZXRUYXNrc10gPSB1c2VTdGF0ZSZhbXA7bHQ7VGFza1tdJmFtcDtndDsoW10pOwogIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7CiAgY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKCiAgZnVuY3Rpb24gYWRkTmV3VGFzaygpIHsKICAgIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogICAgY29uc3QgbmV3VGFzayA9IHsKICAgICAgaWQ6IG5ld19pZCwKICAgICAgbmFtZTogdGFza05hbWUsCiAgICB9OwoKICAgIHRhc2tzLnB1c2gobmV3VGFzayk7CgogICAgc2V0VGFza3ModGFza3MpOwoKICAgIHNldFRhc2tOYW1lKCZxdW90OyZxdW90Oyk7CgogICAgc2V0U2hvd01vZGFsKGZhbHNlKTsKICB9CgogIHJldHVybiAoCiAgICAmYW1wO2x0O0lvblBhZ2UmYW1wO2d0OwogICAgICAmYW1wO2x0O0lvbkhlYWRlciZhbXA7Z3Q7CiAgICAgICAgJmFtcDtsdDtJb25Ub29sYmFyJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uVGl0bGUmYW1wO2d0O1Rhc2sgTWFuYWdlciZhbXA7bHQ7L0lvblRpdGxlJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25Ub29sYmFyJmFtcDtndDsKICAgICAgJmFtcDtsdDsvSW9uSGVhZGVyJmFtcDtndDsKICAgICAgJmFtcDtsdDtJb25Db250ZW50JmFtcDtndDsKICAgICAgICAmYW1wO2x0O0lvbkxpc3QmYW1wO2d0OwogICAgICAgICAge3Rhc2tzLmxlbmd0aCAmYW1wO2d0OyAwID8gKAogICAgICAgICAgICB0YXNrcy5tYXAoKGl0ZW06IFRhc2spID0mYW1wO2d0OyB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbVNsaWRpbmcga2V5PXtpdGVtLmlkfSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbSBjbGFzc05hbWU9JnF1b3Q7dG9kby1pdGVtJnF1b3Q7JmFtcDtndDsKICAgICAgICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDt7aXRlbS5uYW1lfSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbnMgc2lkZT0mcXVvdDtlbmQmcXVvdDsmYW1wO2d0OwogICAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsge319JmFtcDtndDtEb25lJmFtcDtsdDsvSW9uSXRlbU9wdGlvbiZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1PcHRpb25zJmFtcDtndDsKICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1TbGlkaW5nJmFtcDtndDsKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KQogICAgICAgICAgKSA6ICgKICAgICAgICAgICAgJmFtcDtsdDtJb25JdGVtJmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICApfQogICAgICAgICZhbXA7bHQ7L0lvbkxpc3QmYW1wO2d0OwoKICAgICAgICB7LyogTW9kYWwqL30KICAgICAgICAmYW1wO2x0O0lvbk1vZGFsIGlzT3Blbj17c2hvd01vZGFsfSZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkNhcmQmYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICZhbXA7bHQ7SW9uTGFiZWwmYW1wO2d0O0FkZCBOZXcgVGFzayZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAmYW1wO2x0O0lvbkNhcmRDb250ZW50JmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICAgJmFtcDtsdDtJb25JbnB1dAogICAgICAgICAgICAgICAgICB2YWx1ZT17dGFza05hbWV9CiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSZxdW90O0VudGVyIFRhc2sgTmFtZS4uLiZxdW90OwogICAgICAgICAgICAgICAgICBvbklvbkNoYW5nZT17KGUpID0mYW1wO2d0OyBzZXRUYXNrTmFtZShlLmRldGFpbC52YWx1ZSEpfQogICAgICAgICAgICAgICAgJmFtcDtndDsmYW1wO2x0Oy9Jb25JbnB1dCZhbXA7Z3Q7CiAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uCiAgICAgICAgICAgICAgICBleHBhbmQ9JnF1b3Q7ZnVsbCZxdW90OwogICAgICAgICAgICAgICAgY29sb3I9JnF1b3Q7cHJpbWFyeSZxdW90OwogICAgICAgICAgICAgICAgb25DbGljaz17KCkgPSZhbXA7Z3Q7IGFkZE5ld1Rhc2soKX0KICAgICAgICAgICAgICAmYW1wO2d0OwogICAgICAgICAgICAgICAgQWRkIFRhc2sKICAgICAgICAgICAgICAmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkQ29udGVudCZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uIG9uQ2xpY2s9eygpID0mYW1wO2d0OyBzZXRTaG93TW9kYWwoZmFsc2UpfSZhbXA7Z3Q7Q2xvc2UgTW9kYWwmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICZhbXA7bHQ7L0lvbk1vZGFsJmFtcDtndDsKCiAgICAgICAgey8qIEFkZCBUYXNrIEJ1dHRvbiAqL30KICAgICAgICAmYW1wO2x0O0lvbkZhYiB2ZXJ0aWNhbD0mcXVvdDtib3R0b20mcXVvdDsgaG9yaXpvbnRhbD0mcXVvdDtlbmQmcXVvdDsgc2xvdD0mcXVvdDtmaXhlZCZxdW90OyZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkZhYkJ1dHRvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsgc2V0U2hvd01vZGFsKHRydWUpfSZhbXA7Z3Q7CiAgICAgICAgICAgICZhbXA7bHQ7SW9uSWNvbiBpY29uPXthZGR9IC8mYW1wO2d0OwogICAgICAgICAgJmFtcDtsdDsvSW9uRmFiQnV0dG9uJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25GYWImYW1wO2d0OwogICAgICAmYW1wO2x0Oy9Jb25Db250ZW50JmFtcDtndDsKICAgICZhbXA7bHQ7L0lvblBhZ2UmYW1wO2d0OwogICk7Cn07CgpleHBvcnQgZGVmYXVsdCBUYWIxOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyBsZXTigJlzIGdvIHRocm91Z2ggdGhlIGNvZGUgc25pcHBldCBhYm92ZS4gVGhpcyBpcyB0aGUgZW50aXJlIGNvZGUgZm9yIG91ciBUYXNrIE1hbmFnZXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnQgYnkgaW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzIGluY2x1ZGluZyB0aGUgY3NzIGZpbGUgZm9yIG91ciBwYWdlLiBXZSB0aGVuIGRlZmluZSBhbiBpbnRlcmZhY2UgdG8gZGVmaW5lIG91ciB0YXNrIG9iamVjdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtpbnRlcmZhY2UgVGFzayB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7Cn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7TmV4dCwgd2UgY3JlYXRlIG91ciBjb21wb25lbnQgYXMgYSBSZWFjdCBmdW5jdGlvbiBjb21wb25lbnQgdHlwZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtSZWFjdC5GQyZsdDsvY29kZSZndDsgYW5kIGJlZ2luIHRoZSBmdW5jdGlvbiBieSBkZWZpbmluZyB0aGUgZGF0YSB3ZSB3YW50IHRvIGhvbGQgaW4gb3VyIHN0YXRlIHVzaW5nIGhvb2tzOiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tzJmx0Oy9jb2RlJmd0OyBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYXNrJmx0Oy9jb2RlJmd0O3MsIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2hvd01vZGFsJmx0Oy9jb2RlJmd0OyBib29sZWFuIHRvIGNvbnRyb2wgdGhlIG9wZW5pbmcgYW5kIGNsb3Npbmcgb2Ygb3VyIHRhc2sgY3JlYXRpb24gZm9ybSwgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tOYW1lJmx0Oy9jb2RlJmd0OyB3aGljaCBob2xkcyB0aGUgdmFsdWUgb2YgYSBuZXcgdGFzayBpbiB0aGUgcHJvY2VzcyBvZiBjcmVhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IFt0YXNrcywgc2V0VGFza3NdID0gdXNlU3RhdGUmYW1wO2x0O1Rhc2tbXSZhbXA7Z3Q7KFtdKTsKY29uc3QgW3Nob3dNb2RhbCwgc2V0U2hvd01vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTsKY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Rm9sbG93aW5nIHRoZXNlIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdlIGNhbGwgdG8gYWRkIGEgbmV3IHRhc2suIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyB0YXNrIGJ5IHNldHRpbmcgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lkJmx0Oy9jb2RlJmd0OyBiYXNlZCBvbiB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBhbmQgY2xlYXJzIHRoZSBmb3JtIGFmdGVyIGFkZGluZyB0aGUgbmV3IHRhc2sgdG8gb3VyIGV4aXN0aW5nIGxpc3Qgb2YgdGFza3MuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtmdW5jdGlvbiBhZGROZXdUYXNrKCkgewogIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogIGNvbnN0IG5ld1Rhc2sgPSB7CiAgICBpZDogbmV3X2lkLAogICAgbmFtZTogdGFza05hbWUsCiAgfTsKCiAgdGFza3MucHVzaChuZXdUYXNrKTsKCiAgc2V0VGFza3ModGFza3MpOwoKICBzZXRUYXNrTmFtZSgmcXVvdDsmcXVvdDspOwoKICBzZXRTaG93TW9kYWwoZmFsc2UpOwp9CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05leHQsIHdlIHJlbmRlciBvdXIgdGVtcGxhdGUgdG8gZGlzcGxheSBvdXIgbGlzdCBvZiB0YXNrcyBhbmQgYWxzbyBkaXNwbGF5IGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgcmVhZHMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmbHQ7L2NvZGUmZ3Q7IHdoZW4gdGhlIHRhc2sgbGlzdCBpcyBlbXB0eS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtGb2xsb3dpbmcgdGhlIGxpc3QgaXMgYSBtb2RhbCBjb21wb25lbnQgdGhhdCBjb250YWlucyBvdXIgdGFzayBmb3JtIGZvciBhZGRpbmcgbmV3IHRhc2tzLiBCZWxvdyB0aGUgY29tcG9uZW50IGlzIGEgZmxvYXRpbmcgYWN0aW9uIGJ1dHRvbiB0aGF0IHRoZSB1c2VyIGNsaWNrcyB0byBvcGVuIHRoZSBtb2RhbC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWZvcmUgd2UgcHJldmlldyB0aGlzLCBvcGVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEuY3NzJmx0Oy9jb2RlJmd0OyBsb2NhdGVkIGluIHRoZSBzYW1lIGZvbGRlciBhcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRzeCZsdDsvY29kZSZndDsgYW5kIHJlcGxhY2UgaXRzIGNvbnRlbnRzIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Lyogc3JjL3BhZ2VzL1RhYjEuY3NzICovCgoudG9kby1pdGVtIHsKICAtLW1pbi1oZWlnaHQ6IDcwcHg7CiAgZm9udC1zaXplOiAxLjJlbTsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHNpbXBseSBidW1wcyB1cCB0aGUgaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgdGhlIGxpc3QgaXRlbXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm93LCBnbyB0byB5b3VyIGJyb3dzZXIgYW5kIGxvYWQgdGhlIGhvbWVwYWdlIG9mIHlvdXIgYXBwbGljYXRpb24gKFRhYjEpLiBZb3Ugd2lsbCBzZWUgdGhlIHBhZ2UgZGlzcGxheWVkIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1ob21lLW5vLXRhc2tzLnBuZyZxdW90OyAvJmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QmVjYXVzZSB3ZSBoYXZlbuKAmXQgYWRkZWQgYW55IHRhc2tzIHlldCwgd2UgaGF2ZSB0aGUgbWVzc2FnZSAmbHQ7c3Ryb25nJmd0O1lvdSBoYXZlIHlldCB0byBhZGQgdGFza3MgZm9yIHRvZGF5Jmx0Oy9zdHJvbmcmZ3Q7IGRpc3BsYXllZC4gV2UgYWxzbyBoYXZlIG91ciAmbHQ7c3Ryb25nJmd0O0FkZCBUYXNrJmx0Oy9zdHJvbmcmZ3Q7IGJ1dHRvbiBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lciB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwbHVzJmx0Oy9jb2RlJmd0OyBzeW1ib2wuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0FkZGluZyB0YXNrcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBhZGQgYSBuZXcgdGFzaywgY2xpY2sgdGhlIGJvdHRvbS1yaWdodCBibHVlIGJ1dHRvbiB0byBwdWxsIHVwIHRoZSB0YXNrIGNyZWF0aW9uIGZvcm0gYW5kIHR5cGUgaW4gYSB0YXNrIGFzIHNob3duIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtdGFzay5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7QUREIFRBU0smbHQ7L3N0cm9uZyZndDsgdG8gYWRkIHRoZSB0YXNrIGFuZCBnbyBhaGVhZCB0byBhZGQgMiB0byAzIG1vcmUgdGFza3MuIFdlIHNob3VsZCBub3cgaGF2ZSBlbm91Z2ggdGFza3Mgb24gdGhlIHBhZ2UgZm9yIG91ciBhcHBsaWNhdGlvbiB0byBsb29rIGZ1bmN0aW9uYWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXRhc2stbGlzdC5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB3ZSBoYXZlIGEgZnVuY3Rpb25hbCBhcHBsaWNhdGlvbi4gTm90IHByb2R1Y3Rpb24tcmVhZHksIGJ1dCBnb29kIGVub3VnaCB0byBzdGFydCB0ZXN0aW5nLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBZGRpbmcgdGVzdHMgdG8gdGhlIFRhc2sgTWFuYWdlciBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtPbmUgYWR2YW50YWdlIHRoYXQgd2UgaGF2ZSB3aXRoIHRlc3Rpbmcgb3VyIElvbmljIGFwcGxpY2F0aW9ucyBpcyB0aGF0IHdoaWxlIHNjYWZmb2xkaW5nIHRoZSBhcHBsaWNhdGlvbiwgdGhlIElvbmljIENMSSBoYXMgc2V0IHVwIGFsbCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcywgaW4gdGVybXMgb2YgcGFja2FnZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCBmb3IgdGVzdGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUZXN0aW5nIElvbmljIFJlYWN0IGFwcGxpY2F0aW9ucyBpcyBkb25lIHVzaW5nIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vamVzdGpzLmlvLyZxdW90OyZndDtKZXN0Jmx0Oy9hJmd0OyB0ZXN0aW5nIGZyYW1ld29yayB0b2dldGhlciB3aXRoIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdGVzdGluZy1saWJyYXJ5LmNvbS9kb2NzL3JlYWN0LXRlc3RpbmctbGlicmFyeS9pbnRybyZxdW90OyZndDtSZWFjdCBUZXN0aW5nIExpYnJhcnkmbHQ7L2EmZ3Q7IGFuZCB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1yZWFjdC10ZXN0LXV0aWxzJnF1b3Q7Jmd0O0lvbmljIFJlYWN0IFRlc3QgVXRpbHMmbHQ7L2EmZ3Q7IGxpYnJhcnkgd2hpY2ggaXMgYSBzbWFsbCBzdWl0ZSBvZiB1dGlsaXRpZXMgdG8gc2ltdWxhdGUgY29tbW9uIGZlYXR1cmVzIGluIElvbmljIGxpa2UgZmlyaW5nIGN1c3RvbSBJb25pYyBldmVudHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIHByb2plY3QgYWxyZWFkeSBjb21lcyB3aXRoIGEgdGVzdCBmaWxlIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7QXBwLnRzeCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLiBBcyB5b3UgbWF5IGhhdmUgZ3Vlc3NlZCwgdGhlIHRlc3QgZmlsZSBpcyBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtBcHAudGVzdC50c3gmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGZvbGxvd3MgdGhlIGNvbnZlbnRpb24gZm9yIEplc3QgdGVzdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsvLyBzcmMvQXBwLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgQXBwIGZyb20gJnF1b3Q7Li9BcHAmcXVvdDs7Cgp0ZXN0KCZxdW90O3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZyZxdW90OywgKCkgPSZhbXA7Z3Q7IHsKICBjb25zdCB7IGJhc2VFbGVtZW50IH0gPSByZW5kZXIoJmFtcDtsdDtBcHAgLyZhbXA7Z3Q7KTsKICBleHBlY3QoYmFzZUVsZW1lbnQpLnRvQmVEZWZpbmVkKCk7Cn0pOwombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHRlc3Qgc2ltcGx5IGNoZWNrcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiByZW5kZXJzIHByb3Blcmx5IGFuZCBkb2VzIG5vdCBjcmFzaC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBydW4gdGhpcyB0ZXN0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBpbnZva2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2plc3QmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gcnVuIHRoZSB0ZXN0IGRlZmluZWQgaW4gdGhlIGZpbGUuIEFzIGRpcmVjdGVkLCBwcmVzcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDthJmx0Oy9jb2RlJmd0OyB0byBydW4gYWxsIHRlc3RzLiBUaGUgYWJvdmUgY29tbWFuZCBpcyB0aGUgY29tbWFuZCB3ZSB3aWxsIGJlIHVzaW5nIHRvIHJ1biBhbGwgdGVzdHMgaW4gb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgbGV04oCZcyBhZGQgc29tZSB0ZXN0cyBvZiBvdXIgb3duLiBXZSB3aWxsIGJlIGNyZWF0aW5nIGEgdGVzdCBmaWxlIHRvIHRlc3QgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIHdlIGhhdmUgaW4gb3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlIHdoaWNoIGhvdXNlcyBvdXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRlc3QudHN4Jmx0Oy9jb2RlJmd0OyBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyLiBJdOKAmXMgdGhlIHNhbWUgcGxhY2UgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VGFiMS50c3gmbHQ7L2NvZGUmZ3Q7IGZpbGUgaXMgbG9jYXRlZC4gSW5zaWRlIHRoZSBuZXdseSBjcmVhdGVkIGZpbGUsIHBsYWNlIGluIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgVGFiMSBmcm9tICZxdW90Oy4vVGFiMSZxdW90OzsKCnRlc3QoJnF1b3Q7UGFnZSB0aXRsZSBpcyBUYXNrIE1hbmFnZXImcXVvdDssIGFzeW5jICgpID0mYW1wO2d0OyB7CiAgY29uc3QgeyBmaW5kQnlUZXh0IH0gPSByZW5kZXIoJmFtcDtsdDtUYWIxIC8mYW1wO2d0Oyk7CiAgYXdhaXQgZmluZEJ5VGV4dCgmcXVvdDtUYXNrIE1hbmFnZXImcXVvdDspOwp9KTsKCnRlc3QoJnF1b3Q7V2hlbiB0aGVyZSBhcmUgbm8gVGFza3MsIGluZm9ybSB0aGUgdXNlciB0aGF0IG5vIHRhc2tzIGhhdmUgYmVlbiBjcmVhdGVkJnF1b3Q7LCBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IHsgZmluZEJ5VGV4dCB9ID0gcmVuZGVyKCZhbXA7bHQ7VGFiMSAvJmFtcDtndDspOwogIGF3YWl0IGZpbmRCeVRleHQoJnF1b3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmcXVvdDspOwp9KTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBmaWxlLCB3ZSBoYXZlIGFkZGVkIHR3byB0ZXN0cy4gVGhlIGZpcnN0IHRlc3QgY2hlY2tzIGlmIG91ciBwYWdlIGRpc3BsYXlzIHdpdGggdGhlIGNvcnJlY3QgdGl0bGUgd2hpY2ggaXMgJmx0O3N0cm9uZyZndDtUYXNrIE1hbmFnZXImbHQ7L3N0cm9uZyZndDsuIFRoZSBzZWNvbmQgdGVzdCBjaGVja3MgaWYgb3VyIGFwcGxpY2F0aW9uIGluaXRpYWxseSBsb2FkcyB3aXRob3V0IHRhc2tzLCBhbmQgaWYgaXQgZG9lcywgaXQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgJmx0O3N0cm9uZyZndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3csIGxldOKAmXMgcnVuIHRoZXNlIHRlc3RzIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGF0IHRoZSByb290IG9mIG91ciBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSBhIHNjcmVlbiBzaW1pbGFyIHRvIHRoZSBvbmUgYmVsb3cgb24geW91ciBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi10ZXN0cy1sb2NhbC1ydW4ucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIG91ciB0ZXN0cyBydW5uaW5nIGFzIGV4cGVjdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBdXRvbWF0aW5nIG91ciB0ZXN0aW5nJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBmaW5hbCB0YXNrIGlzIHRvIGF1dG9tYXRlIG91ciBjb250aW51b3VzIGludGVncmF0aW9uIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhhdCwgd2Ugd2lsbCBiZSBkb2luZyB0aGUgZm9sbG93aW5nOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QWRkIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgdG8gb3VyIHByb2plY3QgdG8gc2V0IHVwIGEgQ0kgcGlwZWxpbmUgb24gQ2lyY2xlQ0kmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIG91ciBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG9zaXRvcnkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDcmVhdGUgYSBDaXJjbGVDSSBwcm9qZWN0IGZvciBvdXIgYXBwbGljYXRpb24mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtSdW4gdGhlIENJIHBpcGVsaW5lIG9uIENpcmNsZUNJJmx0Oy9saSZndDsKJmx0Oy9vbCZndDsKCiZsdDtwJmd0O0xldOKAmXMgZ2V0IHRvIGl0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZpcnN0LCBsZXTigJlzIGFkZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3Igb3VyIENJIHBpcGVsaW5lIHRvIG91ciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLiBJbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbmZpZy55bWwmbHQ7L2NvZGUmZ3Q7IGZpbGUsIGVudGVyIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpqb2JzOgogIGJ1aWxkOgogICAgd29ya2luZ19kaXJlY3Rvcnk6IH4vcmVwbwogICAgZG9ja2VyOgogICAgICAtIGltYWdlOiBjaW1nL25vZGU6MTIuMTYKICAgIHN0ZXBzOgogICAgICAtIGNoZWNrb3V0CiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdXBkYXRlLW5wbQogICAgICAgICAgY29tbWFuZDogJnF1b3Q7c3VkbyBucG0gaW5zdGFsbCAtZyBucG1ANSZxdW90OwogICAgICAtIHJlc3RvcmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgLSBydW46CiAgICAgICAgICBuYW1lOiBpbnN0YWxsLXBhY2thZ2VzCiAgICAgICAgICBjb21tYW5kOiBucG0gaW5zdGFsbAogICAgICAtIHNhdmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgICAgIHBhdGhzOgogICAgICAgICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdGVzdAogICAgICAgICAgY29tbWFuZDogbnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgY29uZmlndXJhdGlvbiBwdWxscyBpbiBhIE5vZGUuanMgaW1hZ2UgYW5kIGluc3RhbGxzIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGRlZmluZWQgaW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0Oy4gT25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCB0aGUgdGVzdCBzY3JpcHQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bnBtIHJ1biB0ZXN0Jmx0Oy9jb2RlJmd0OyBpcyB0aGVuIGV4ZWN1dGVkIHRvIHJ1biBhbGwgdGhlIHRlc3RzIGluIG91ciBhcHBsaWNhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGdvb2QgdG8gZ28uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY29tbWl0IGFsbCB5b3VyIGNoYW5nZXMgYW5kIHB1c2ggdGhlIHByb2plY3QgdG8gYSBHaXRIdWIgcmVwb3NpdG9yeSBvbiB0aGUgR2l0SHViIGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgQ2lyY2xlQ0kgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIGlzIHRvIHNldCB1cCB0aGUgcmVwb3NpdG9yeSBmb3Igb3VyIHByb2plY3QgYXMgYSBDaXJjbGVDSSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBDaXJjbGVDSSBjb25zb2xlLCBnbyB0byB0aGUgJmx0O3N0cm9uZyZndDtBZGQgUHJvamVjdHMmbHQ7L3N0cm9uZyZndDsgcGFnZSB0byBhZGQgdGhlIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtcHJvamVjdC5wbmcmcXVvdDsgYWx0PSZxdW90O0FkZCBQcm9qZWN0JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0Oy4gVGhpcyB3aWxsIGxvYWQgdGhlIG5leHQgc2NyZWVuLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3N0YXJ0LWJ1aWxkaW5nMS5wbmcmcXVvdDsgYWx0PSZxdW90O1N0YXJ0IEJ1aWxkaW5nIC0gQ29uZmlnIHNhbXBsZSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBzZXR1cCBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7LiBCZWZvcmUgdGhlIGJ1aWxkIHN0YXJ0cywgeW91IGdldCBhIHByb21wdCB0byBlaXRoZXIgZG93bmxvYWQgYW5kIHVzZSB0aGUgcHJvdmlkZWQgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBoYXZlIGl0IG9uIGEgc2VwYXJhdGUgYnJhbmNoIG9yIHNldCB1cCBvbmUgbWFudWFsbHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzIucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIEFkZCBtYW51YWxseSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1NlbGVjdCAmbHQ7c3Ryb25nJmd0O0FkZCBNYW51YWxseSZsdDsvc3Ryb25nJmd0OyB0byBwcm9jZWVkLiBUaGlzIHdpbGwgcHJvbXB0IGFub3RoZXIgZGlhbG9nIHRoYXQgY2hlY2tzIHRvIGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXQgdXAgdG8gYmVnaW4gYnVpbGRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzMucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIENvbmZpcm0gY29uZmlndXJhdGlvbiZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsgdG8gY29tcGxldGUgdGhlIHNldHVwLiBUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgcGlwZWxpbmUgdXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBvdXIgcHJvamVjdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGUgYnVpbGQgaXMgZG9uZSBydW5uaW5nLCB5b3Ugd2lsbCBnZXQgYSBzdWNjZXNzZnVsIGJ1aWxkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtc3VjY2Vzc2Z1bC5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHN1Y2Nlc3NmdWwmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O2J1aWxkJmx0Oy9zdHJvbmcmZ3Q7IHRvIHNlZSB0aGUgYmVoaW5kLXRoZS1zY2VuZXMgcHJvY2VzcyhJIGhhdmUgY29sbGFwc2VkIHRoZSAmbHQ7ZW0mZ3Q7dGVzdCZsdDsvZW0mZ3Q7IHN0ZXApLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtcHJvY2Vzcy5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHByb2Nlc3MmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBzY3JlZW4sIG91ciBwcm9qZWN0IGlzIHByb3Blcmx5IHNldCB1cCBhbmQgYWxsIG91ciB0ZXN0cyBhcmUgcnVubmluZyBmaW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgYXMgeW91IGRldmVsb3AsIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgbW9yZSBmZWF0dXJlcywgYWRkIHRlc3RzIHRvIHRoZW0gYW5kIHB1c2ggdG8gR2l0SHViLiBPbmNlIHlvdSBwdXNoLCB0aGUgQ0kgcGlwZWxpbmUgd2lsbCBydW4gYW5kIGFsbCB5b3VyIHRlc3RzIHdpbGwgYmUgZXhlY3V0ZWQuIElmIGFueSB0ZXN0IGZhaWxzLCB5b3VyIGJ1aWxkIHdpbGwgZmFpbCB3aGljaCB3aWxsIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbiB0byBiZSBmaXhlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW914oCZcmUgbm90IHB1c2hpbmcgYW55IGJ1Z3MgaW50byB5b3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIHRoaXMgYXJ0aWNsZSwgd2UgaGF2ZSBzZXQgdXAgYW4gYXV0b21hdGVkIENJIHBpcGVsaW5lIGZvciBvdXIgSW9uaWMgYXBwbGljYXRpb25zIHRvIGltcHJvdmUgb3VyIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGF1dG9tYXRpbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4gSGF2aW5nIGEgQ0kgcGlwZWxpbmUgdGhhdCBwcm9wZXJseSBydW5zIG91ciB0ZXN0cyBwcm90ZWN0cyB1cyBhZ2FpbnN0IG91cnNlbHZlcyBieSBlbnN1cmluZyB0aGF0IHdlIGRvbuKAmXQgZW5kIHVwIHdpdGggYnJva2VuIGFwcGxpY2F0aW9ucyBvciB0aGF0IHdlIGRvbuKAmXQgcHVzaCBidWdneSBjb2RlIHRvIG91ciB0ZWFt4oCZcyByZXBvc2l0b3J5IHdoaWxlIHdvcmtpbmcgdG9nZXRoZXIgb24gYSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyA6KSZsdDsvcCZndDsKCiZsdDtociAvJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3R3aXR0ZXIuY29tL2NvZGVyb25mbGVlaz9sYW5nPWVuJnF1b3Q7Jmd0O0Zpa2F5byZsdDsvYSZndDsgaXMgYSBmdWxsc3RhY2sgZGV2ZWxvcGVyIGFuZCBhdXRob3Igd2l0aCBvdmVyIGEgZGVjYWRlIG9mIGV4cGVyaWVuY2UgZGV2ZWxvcGluZyB3ZWIgYW5kIG1vYmlsZSBzb2x1dGlvbnMuIEhlIGlzIGN1cnJlbnRseSB0aGUgU29mdHdhcmUgTGVhZCBhdCBUZWNoIFNwZWNpYWxpc3QgQ29uc3VsdGluZyBhbmQgZGV2ZWxvcHMgY291cnNlcyBmb3IgUGFja3QgYW5kIFVkZW15LiBIZSBoYXMgYSBzdHJvbmcgcGFzc2lvbiBmb3IgdGVhY2hpbmcgYW5kIGhvcGVzIHRvIGJlY29tZSBhIGZ1bGwtdGltZSBhdXRob3IuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5EcmF3biBPdXQgQ29udmVyc2F0aW9ucywgZmVhdHVyaW5nIENpcmNsZUNJIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlciwgUGF0IFNoaWVsZHM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZHJhd24tb3V0LWNvbnZlcnNhdGlvbi1mZWF0dXJpbmctY2lyY2xlY2ktcHJpbmNpcGFsLXNvZnR3YXJlLWVuZ2luZWVyLXBhdC1zaGllbGRzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5GcmksIDE1IE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RyYXduLW91dC1jb252ZXJzYXRpb24tZmVhdHVyaW5nLWNpcmNsZWNpLXByaW5jaXBhbC1zb2Z0d2FyZS1lbmdpbmVlci1wYXQtc2hpZWxkcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Db3JleSBMZXdpczwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtPbiB0aGlzIGVwaXNvZGUgb2YgRHJhd24gT3V0IENvbnZlcnNhdGlvbnMsIHdlIHRhbGsgYWJvdXQgc29tZXRoaW5nIG5lYXIgYW5kIGRlYXIgdG8gb3VyIGhlYXJ0cyDigJMgQ2lyY2xlQ0kuIFdlLCBhbG9uZyB3aXRoIGh1bmRyZWQgb2YgdGhvdXNhbmRzIG9mIG90aGVyIGRldmVsb3BlcnMgYXQgY29tcGFuaWVzIGxpa2UgU3BvdGlmeSwgRmFjZWJvb2ssIEZvcmQgYW5kIEFldG5hLCB1c2UgQ2lyY2xlQ0kgZXZlcnkgZGF5IHRvIG1ha2Ugc3VyZSB0aGF0IHdl4oCZcmUgZGVwbG95aW5nIHF1YWxpdHkgY29kZSwgYW5kIGJ1aWxkaW5nIGVmZmljaWVuY2llcyBpbnRvIG91ciBlbmdpbmVlcmluZyBwcm9jZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0LCB3aGF0IGV4YWN0bHkgaXMgdW5kZXJuZWF0aCBvdXIgcGxhdGZvcm3igJlzIGhvb2Q/Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Sm9pbiBvdXIgQ1RPIFJvYiBadWJlciBhcyBoZSBob3N0cyBDaXJjbGVDSeKAmXMgUHJpbmNpcGFsIFNvZnR3YXJlIEVuZ2luZWVyIFBhdCBTaGllbGRzIHRvIGRpc2N1c3MgdGhlIGlubmVyLXdvcmtpbmdzIG9mIG91ciB0ZWNobm9sb2d5IGFuZCBwbGF0Zm9ybS4gVGhleSBkaXNjdXNzIGV2ZXJ5dGhpbmcgZnJvbSBwcm9kdWN0IGZlYXR1cmVzIHRvIGFyY2hpdGVjdHVyZSBhbmQgdGFsayBhYm91dCBob3cgYW5kIHdoeSB0aGUgY29yZSBlbGVtZW50cyBvZiBvdXIgcGxhdGZvcm0gZ290IGJ1aWx0LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3JvYi1wYXQucG5nJnF1b3Q7IGFsdD0mcXVvdDtyb2ItcGF0LnBuZyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1JvYiBldmVuIHRha2VzIGEgdHVybiB3aXRoIHRoZSBtYXJrZXJzIHRvIGRpc2N1c3MgZG9tYWluLWRyaXZlbiBkZXNpZ24sIGF1dGhlbnRpY2F0aW9uIGFuZCBtb3JlLiBMZWFybiBldmVyeXRoaW5nIHlvdSBldmVyIHdhbnRlZCB0byBrbm93IGFib3V0IENpcmNsZUNJIGFuZCBtb3JlIGluIHRvZGF54oCZcyBjb252ZXJzYXRpb24uJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXImcXVvdDsmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3lvdXR1LmJlL1dMOVJRNmZNbGUwJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvY2lyY2xlY2kuZ2lmJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsKICAmbHQ7L2EmZ3Q7CgombHQ7YnIgLyZndDsKCiAgJmx0O3AmZ3Q7CiAgICAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8veW91dHUuYmUvV0w5UlE2Zk1sZTAmcXVvdDsgc3R5bGU9JnF1b3Q7Y29sb3I6IzAwMDBFRTsmcXVvdDsmZ3Q7CiAgICAgIFdhdGNoIHRoZSBmdWxsIHZpZGVvIGhlcmUKICAgICZsdDsvYSZndDsKICAmbHQ7L3AmZ3Q7CiZsdDsvZGl2Jmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZG8gSSB1c2UgSW5mcmFzdHJ1Y3R1cmUgYXMgQ29kZT88L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWRvLWktaWFjLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE1heSAyMDIwIDEyOjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2hvdy1kby1pLWlhYy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5BbmdlbCBSaXZlcmE8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7SW5mcmFzdHJ1Y3R1cmUgYXMgY29kZSAoSWFDKSBpcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBhbmQgcHJvdmlzaW9uaW5nIGNsb3VkIGFuZCBJVCByZXNvdXJjZXMgdmlhIG1hY2hpbmUgcmVhZGFibGUgZGVmaW5pdGlvbiBmaWxlcyBhbmQgaXMgYSBwYXJ0IG9mIG1vZGVybiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lcy4gSWFDIGVuYWJsZXMgb3JnYW5pemF0aW9ucyB0byBwcm92aXNpb24sIG1hbmFnZSwgYW5kIGRlc3Ryb3kgY29tcHV0ZSByZXNvdXJjZXMgdXNpbmcgbW9kZXJuIERldk9wcyB0b29scy4gSWFDIGVuYWJsZXMgdGhpcyBieSBzdGF0aWNhbGx5IGRlZmluaW5nIGFuZCBkZWNsYXJpbmcgdGhlc2UgcmVzb3VyY2VzIGluIGNvZGUsIHRoZW4gZGVwbG95aW5nIGFuZCBkeW5hbWljYWxseSBtYWludGFpbmluZyB0aGVzZSByZXNvdXJjZXMgdmlhIGNvZGUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gcmVjZW50IGludGVyYWN0aW9ucyB3aXRoIGRldmVsb3BlcnMsIEnigJl2ZSByZWFsaXplZCB0aGF0IG1hbnkgYXJlIGVpdGhlciBub3QgYXdhcmUgb2YgSWFDLCBvciBhcmUgYXdhcmUgYnV0IGhhdmUgYWJhbmRvbmVkIHRoZWlyIGluaXRpYWwgZWZmb3J0cyBiZWNhdXNlIHJhbXBpbmcgdXAgd2FzIHRvbyBjdW1iZXJzb21lLiBJbiB0aGlzIHBvc3QsIEkgd2lsbCBkaXNjdXNzIHRoZSBiZW5lZml0cyBvZiBJYUMgYW5kIHNvbWUgb2YgdGhlIHRvb2xpbmcgb3B0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgYWxvbmcgd2l0aCBhIGJyaWVmIGRlbW9uc3RyYXRpb24gb24gaG93IHRvIHVzZSB0aGVtIGluIGhvcGVzIG9mIGVhc2luZyB0aGUgdHJhbnNpdGlvbiB0byB1c2luZyBJYUMuIEkgd2lsbCBmb2N1cyBvbiB0aGUgdHdvIG1vc3QgcG9wdWxhciBJYUMgdG9vbHMgdXNlZCBpbiB0aGUgaW5kdXN0cnkgdG9kYXk6ICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cudGVycmFmb3JtLmlvLyZxdW90OyZndDtIYXNoaUNvcnDigJlzIFRlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtCZWZvcmUgeW91IGdldCBzdGFydGVkLCB5b3XigJlsbCBuZWVkIHRvIGhhdmUgdGhlc2UgdGhpbmdzOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9mcmVlJnF1b3Q7Jmd0O0dvb2dsZSBDbG91ZCZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NyZWF0ZSBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3Jlc291cmNlLW1hbmFnZXIvZG9jcy9jcmVhdGluZy1tYW5hZ2luZy1wcm9qZWN0cyNjcmVhdGluZ19hX3Byb2plY3QmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIHByb2plY3QmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FwcC5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkgQVBJIHRva2VuJmx0Oy9hJmd0OyBhbmQgc2F2ZSBpdCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgbG9jYWwgaW5zdGFsbCBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vc2RrL2RvY3MvcXVpY2tzdGFydHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIFNESyBDTEkmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSBsb2NhbCBpbnN0YWxsIG9mIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaHViLmRvY2tlci5jb20vc2VhcmNoLz90eXBlPWVkaXRpb24mYW1wO2FtcDtvZmZlcmluZz1jb21tdW5pdHkmcXVvdDsmZ3Q7RG9ja2VyIGNsaWVudCZsdDsvYSZndDsmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBHb29nbGUgQ2xvdWQgcHJvamVjdCBjcmVkZW50aWFscyZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDbG91ZFBsYXRmb3JtL2NvbW11bml0eS9ibG9iL21hc3Rlci90dXRvcmlhbHMvZ2V0dGluZy1zdGFydGVkLW9uLWdjcC13aXRoLXRlcnJhZm9ybS9pbmRleC5tZCNnZXR0aW5nLXByb2plY3QtY3JlZGVudGlhbHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIGNyZWRlbnRpYWxzJmx0Oy9hJmd0OyBpbiBvcmRlciB0byBwZXJmb3JtIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgdXNpbmcgSWFDIHRvb2xpbmcuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9hcGlzL2NyZWRlbnRpYWxzL3NlcnZpY2VhY2NvdW50a2V5JnF1b3Q7Jmd0O0NyZWF0ZSBTZXJ2aWNlIEFjY291bnQgS2V5IHBhZ2UmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7U2VsZWN0IHRoZSBkZWZhdWx0IHNlcnZpY2UgYWNjb3VudCBvciBjcmVhdGUgYSBuZXcgb25lLCBzZWxlY3QgSlNPTiBhcyB0aGUga2V5IHR5cGUsIGFuZCBjbGljayAmbHQ7c3Ryb25nJmd0O0NyZWF0ZSZsdDsvc3Ryb25nJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O1NhdmUgdGhpcyBKU09OIGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgYW5kIHJlbmFtZSB0aGUgZmlsZSB0byAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaWNkX2RlbW9fZ2NwX2NyZWRzLmpzb24mbHQ7L2NvZGUmZ3Q7LiBUaGlzIGlzICZsdDtzdHJvbmcmZ3Q7dmVyeSBpbXBvcnRhbnQmbHQ7L3N0cm9uZyZndDsgZm9yIGVuYWJsaW5nIHRoZSBHb29nbGUgQ2xvdWQgQ0xJIGluIHRoZSBjb250YWluZXIgbGF0ZXIgb24mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBhIFB1bHVtaSBBUEkgdG9rZW4mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7WW91IHdpbGwgbmVlZCB0byBnZXQgYSBQdWx1bWkgQVBJIHRva2VuIHRvIHN0b3JlIHlvdXIgcHJvamVjdCBzdGF0ZSBvbiBQdWx1bWnigJlzIGJhY2tlbmQgY2xvdWQuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vYXBwLnB1bHVtaS5jb20vJnF1b3Q7Jmd0O2FwcC5wdWx1bWkuY29tLyZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1NlbGVjdCBhbiBPcmdhbml6YXRpb24mbHQ7L3N0cm9uZyZndDsgb24gdGhlIHVwcGVyIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSBhbmQgc2VsZWN0IHlvdXIgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O0FjY2VzcyBUb2tlbnMmbHQ7L3N0cm9uZyZndDsgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7TmV3IEFjY2VzcyBUb2tlbiZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7Q3JlYXRlJmx0Oy9zdHJvbmcmZ3Q7IGFuZCBzYXZlIHRoZSBuZXcgQVBJIHRva2VuIHRoYXQgd2FzIGNyZWF0ZWQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemUgeW91ciBQdWx1bWkgcHJvamVjdCBsYXRlciZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7aDImZ3Q7RG9ja2VyIHB1bGwgSWFDMTAxIERvY2tlciBpbWFnZSZsdDsvaDImZ3Q7CgombHQ7cCZndDtBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlZCBhbmQgeW914oCZcmUgcmVhZHkgdG8gcHVsbCB0aGUgZG9ja2VyIGltYWdlIGZvciB0aGlzIHdvcmtzaG9wLiBJbiB0ZXJtaW5hbCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBwdWxsIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm93IGhhdmUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2FyaXYzcmEvaWFjMTAxJmx0Oy9jb2RlJmd0OyBkb2NrZXIgaW1hZ2UgbG9jYWxseS4gWW91IGNhbiB2ZXJpZnkgYnV5IHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgYW5kIHlvdSBzaG91bGQgc2VlIHRoZSBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0RvY2tlciBydW4gSWFDMTAxIGNvbnRhaW5lciZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgd2XigJlsbCBjcmVhdGUgYSBuZXcgRG9ja2VyIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YXJpdjNyYS9pYWMxMDEmbHQ7L2NvZGUmZ3Q7IGltYWdlIHdoaWNoIGhhcyBhbGwgdGhlIElhQyB0b29scyBhbmQgY29kZSBwcmUtYmFrZWQuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O01vdW50aW5nIHRoZSAvLmNvbmZpZy9nY2xvdWQvIGRpcmVjdG9yeSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtCZWZvcmUgcnVubmluZyB0aGUgbmV3IGNvbnRhaW5lciB5b3UgbmVlZCB0aGUgYWJzb2x1dGUgcGF0aCB0byB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkuIE9uIG15IE1hY09TIG1hY2hpbmUsIG15IGFic29sdXRlIHBhdGggaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7L1VzZXJzL2FuZ2VsLy5jb25maWcvZ2Nsb3VkLyZsdDsvY29kZSZndDsuIEJlIHN1cmUgdG8gZ2V0IHlvdXIgYWJzb2x1dGUgZmlsZSBwYXRoIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2Nsb3VkJmx0Oy9jb2RlJmd0OyBkaXJlY3Rvcnkgb24geW91ciBsb2NhbCBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtSdW4gSWFDMTAxIGNvbnRhaW5lciB3aXRoIG1vdW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtSdW4gdGhpcyBjb21tYW5kIGluIGEgdGVybWluYWwgcnVuIGJ1dCBiZSBzdXJlIHRvIHJlcGxhY2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0OyZsdDsvY29kZSZndDsgYml0IHdpdGggeW91ciBhY3R1YWwgYWJzb2x1dGUgcGF0aCB0byB5b3VyIGxvY2FsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dsb2N1ZC8mbHQ7L2NvZGUmZ3Q7ZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtaXQgLS1uYW1lIGlhY3Rlc3QgLS1tb3VudCB0eXBlPWJpbmQsc291cmNlPSZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0Oy5jb25maWcvZ2Nsb3VkLyx0YXJnZXQ9L3Jvb3QvLmNvbmZpZy9nY2xvdWQvIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJYUMxMDEgY29udGFpbmVyIGlzIHJ1bm5pbmcmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGUgcHJldmlvdXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgeW91ciBJYUMxMDEgY29udGFpbmVyIHdpbGwgYmUgdXAgYW5kIHJ1bm5pbmcgYW5kIHlvdXIgdGVybWluYWwgc2hlbGwgaGFzIGRyb3BwZWQgeW91IGludG8gdGhlIHJ1bm5pbmcgY29udGFpbmVyLiBFdmVyeSBjb21tYW5kIHlvdSBydW4gaW4geW91ciB0ZXJtaW5hbCBzaGVsbCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBEb2NrZXIgY29udGFpbmVyIGZyb20gbm93IG9uIHVudGlsIHlvdSBtYW51YWxseSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtleGl0Jmx0Oy9jb2RlJmd0OyB0aGUgY29udGFpbmVyLiBUaGUgY29udGFpbmVyIGhhcyB0aGUgVGVycmFmb3JtIGFuZCBQdWx1bWkgQ0xJIHRvb2xzIGluc3RhbGxlZCwgYXMgd2VsbCBhcyBleGFtcGxlIGNvZGUgZm9yIGVhY2ggdGhhdCBjcmVhdGVzIGluZnJhc3RydWN0dXJlIGluIHRoZWlyIHJlc3BlY3RpdmUgdG9vbHMuIFRoZSBjb250YWluZXIgcHJvamVjdHMgZmlsZXMgYXJlIG1hcHBlZCBhcyBmb2xsb3dzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHJvamVjdHMvCnxfIHRlcnJhZm9ybS9nY3AvY29tcHV0ZS8gICAjIENvbnRhaW5zIHRoZSBUZXJyYWZvcm0gY29kZSBmaWxlcwp8XyBwdWx1bWkvZ2NwL2NvbXB1dGUvICAgICAgIyBDb250YWlucyB0aGUgUHVsdW1pIGNvZGUgZmlsZXMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gyJmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2EmZ3Q7IGlzIGEgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgYnVpbGRpbmcsIGNoYW5naW5nLCBhbmQgdmVyc2lvbmluZyBpbmZyYXN0cnVjdHVyZSBzYWZlbHkgYW5kIGVmZmljaWVudGx5LiBUZXJyYWZvcm0gY2FuIG1hbmFnZSBleGlzdGluZyBzZXJ2aWNlIHByb3ZpZGVycyBhcyB3ZWxsIGFzIGN1c3RvbSBpbi1ob3VzZSBzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q29uZmlndXJhdGlvbiBmaWxlcyBkZXNjcmliZSB0aGUgY29tcG9uZW50cyBuZWVkZWQgdG8gcnVuIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yIHlvdXIgZW50aXJlIGRhdGFjZW50ZXIgb24gVGVycmFmb3JtLiBUZXJyYWZvcm0gZ2VuZXJhdGVzIGFuIGV4ZWN1dGlvbiBwbGFuIGRlc2NyaWJpbmcgd2hhdCBpdCB3aWxsIGRvIHRvIHJlYWNoIHRoZSBkZXNpcmVkIHN0YXRlLCBhbmQgdGhlbiBleGVjdXRlcyBpdCB0byBidWlsZCB0aGUgZGVzY3JpYmVkIGluZnJhc3RydWN0dXJlLiBBcyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBUZXJyYWZvcm0gaXMgYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBjaGFuZ2VkIGFuZCBjcmVhdGUgaW5jcmVtZW50YWwgZXhlY3V0aW9uIHBsYW5zIHdoaWNoIGNhbiBiZSBhcHBsaWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZSBpbmZyYXN0cnVjdHVyZSBUZXJyYWZvcm0gY2FuIG1hbmFnZSBpbmNsdWRlcyBsb3ctbGV2ZWwgY29tcG9uZW50cyBzdWNoIGFzIGNvbXB1dGUgaW5zdGFuY2VzLCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZywgYXMgd2VsbCBhcyBoaWdoLWxldmVsIGNvbXBvbmVudHMgc3VjaCBhcyBETlMgZW50cmllcywgU2FhUyBmZWF0dXJlcywgZXRjLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBUZXJyYWZvcm0mbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCB3aXRoIHByb3Zpc2lvbmluZyBzb21lIHJlc291cmNlcyBpbiBHQ1AgdXNpbmcgVGVycmFmb3JtIGNvZGUuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDttYWluLnRmICZsdDsvY29kZSZndDsgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBjb2RlIHRoYXQgaGFzIG91ciBpbmZyYXN0cnVjdHVyZSBkZWZpbmVkLiBJbiB0aGlzIGZpbGUgd2XigJlyZSBjcmVhdGluZyBhIG5ldyBjb21wdXRlIGluc3RhbmNlIHRoYXQgd2lsbCBpbnN0YWxsIGFuZCBydW4gYSBQeXRob24gRmxhc2sgYXBwIHBhY2thZ2VkIGluIGEgRG9ja2VyIGNvbnRhaW5lci4gVGhlIFRlcnJhZm9ybSBjb2RlIHdpbGwgYWxzbyBjcmVhdGUgc29tZSBmaXJld2FsbCBydWxlcyB0aGF0IHdpbGwgYWxsb3cgcHVibGljIGFjY2VzcyB0byB0aGUgYXBwIG92ZXIgcG9ydCA1MDAwLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHByb3Zpc2lvbiB0aGlzLCBydW4gdGhpcyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NkIH4vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJbml0aWFsaXppbmcgVGVycmFmb3JtJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1doaWxlIGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBydW4gdGhpcyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7dGVycmZvcm0gaW5pdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSByZXN1bHRzIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cm9vdEBkOWNlNzIxMjkzZTI6fi9wcm9qZWN0L3RlcnJhZm9ybS9nY3AvY29tcHV0ZSMgdGVycmFmb3JtIGluaXQKCkluaXRpYWxpemluZyB0aGUgYmFja2VuZC4uLgoKSW5pdGlhbGl6aW5nIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBDaGVja2luZyBmb3IgYXZhaWxhYmxlIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBEb3dubG9hZGluZyBwbHVnaW4gZm9yIHByb3ZpZGVyICZxdW90O2dvb2dsZSZxdW90OyAoaGFzaGljb3JwL2dvb2dsZSkgMy4xMC4wLi4uCgoqIHByb3ZpZGVyLmdvb2dsZTogdmVyc2lvbiA9ICZxdW90O34mYW1wO2d0OyAzLjEwJnF1b3Q7CgpUZXJyYWZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7aDMmZ3Q7UHJldmlld2luZyB3aXRoIFRlcnJhZm9ybSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUZXJyYWZvcm0gaGFzIGEgY29tbWFuZCB0aGF0IGFsbG93cyB5b3UgdG8gZHJ5IHJ1biBhbmQgdmFsaWRhdGUgeW91ciBUZXJyYWZvcm0gY29kZSB3aXRob3V0IGFjdHVhbGx5IGV4ZWN1dGluZyBhbnl0aGluZy4gVGhlIGNvbW1hbmQgaXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybSBwbGFuJmx0Oy9jb2RlJmd0OyB3aGljaCBhbHNvIGdyYXBocyBhbGwgdGhlIGFjdGlvbnMgYW5kIGNoYW5nZXMgdGhhdCBUZXJyYWZvcm0gd2lsbCBleGVjdXRlIGFnYWluc3QgeW91ciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS4gSW4gdGhlIHRlcm1pbmFsIHJ1bjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3RlcnJhZm9ybSBwbGFuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSByZXN1bHRzIHNpbWlsYXIgdG8gdGhpcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0FuIGV4ZWN1dGlvbiBwbGFuIGhhcyBiZWVuIGdlbmVyYXRlZCBhbmQgaXMgc2hvd24gYmVsb3cuClJlc291cmNlIGFjdGlvbnMgYXJlIGluZGljYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKICArIGNyZWF0ZQoKVGVycmFmb3JtIHdpbGwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGFjdGlvbnM6CgogICMgZ29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwuaHR0cC01MDAwIHdpbGwgYmUgY3JlYXRlZAogICsgcmVzb3VyY2UgJnF1b3Q7Z29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwmcXVvdDsgJnF1b3Q7aHR0cC01MDAwJnF1b3Q7IHsKICAgICAgKyBjcmVhdGlvbl90aW1lc3RhbXAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVzdGluYXRpb25fcmFuZ2VzID0gKGtub3duIGFmdGVyIGFwcGx5KQogIH0KCiAgICAjIGdvb2dsZV9jb21wdXRlX2luc3RhbmNlLmRlZmF1bHQgd2lsbCBiZSBjcmVhdGVkCiAgKyByZXNvdXJjZSAmcXVvdDtnb29nbGVfY29tcHV0ZV9pbnN0YW5jZSZxdW90OyAmcXVvdDtkZWZhdWx0JnF1b3Q7IHsKICAgICAgKyBjYW5faXBfZm9yd2FyZCAgICAgICA9IGZhbHNlCiAgICAgICsgY3B1X3BsYXRmb3JtICAgICAgICAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVsZXRpb25fcHJvdGVjdGlvbiAgPSBmYWxzZQogICAgICArIGd1ZXN0X2FjY2VsZXJhdG9yICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGlkICAgICAgICAgICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGluc3RhbmNlX2lkICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVsX2ZpbmdlcnByaW50ICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVscyAgICAgICAgICAgICAgID0gewogICAgICAgICAgKyAmcXVvdDtjb250YWluZXItdm0mcXVvdDsgPSAmcXVvdDtjb3Mtc3RhYmxlLTY5LTEwODk1LTYyLTAmcXVvdDsKICAgICAgICB9CiAgICAgICsgbWFjaGluZV90eXBlICAgICAgICAgPSAmcXVvdDtnMS1zbWFsbCZxdW90OwogIH0KICBQbGFuOiAyIHRvIGFkZCwgMCB0byBjaGFuZ2UsIDAgdG8gZGVzdHJveS4KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgeW91IGNhbiBzZWUsIFRlcnJhZm9ybSBpcyBnb2luZyB0byBjcmVhdGUgbmV3IEdDUCByZXNvdXJjZXMgZm9yIHlvdSBiYXNlZCBvbiB0aGUgY29kZSBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bWFpbi50ZiZsdDsvY29kZSZndDsgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGFwcGx5Jmx0Oy9oMyZndDsKCiZsdDtwJmd0O05vdyB5b3XigJlyZSByZWFkeSB0byBjcmVhdGUgdGhlIG5ldyBpbmZyYXN0cnVjdHVyZSBhbmQgZGVwbG95IHRoZSBhcHBsaWNhdGlvbi4gUnVuIHRoaXMgY29tbWFuZCBpbiB0aGUgdGVybWluYWw6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt0ZXJyYWZvcm0gYXBwbHkKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGVycmFmb3JtIHdpbGwgcHJvbXB0IHlvdSB0byBjb25maXJtIHlvdXIgY29tbWFuZC4gVHlwZSB5ZXMgYW5kIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0RvIHlvdSB3YW50IHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucz8KICBUZXJyYWZvcm0gd2lsbCBwZXJmb3JtIHRoZSBhY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KICBPbmx5ICd5ZXMnIHdpbGwgYmUgYWNjZXB0ZWQgdG8gYXBwcm92ZS4KCiAgRW50ZXIgYSB2YWx1ZTogeWVzCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RlcnJhZm9ybSB3aWxsIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgYW5kIHlvdSB3aWxsIGhhdmUgYW4gYXBwbGljYXRpb24gdXAgYW5kIHJ1bm5pbmcgb24gR0NQIHNob3J0bHkgYWZ0ZXIgaXQgY29tcGxldGVzLiBQbGVhc2Ugbm90ZSB0aGF0IGl0IHdpbGwgdGFrZSAzLTUgbWludXRlcyBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbWUgb25saW5lIGFmdGVyIFRlcnJhZm9ybSBjb21wbGV0ZXMuIEl04oCZcyBub3QgYW4gaW5zdGFudCBwcm9jZXNzIGJlY2F1c2UgdGhlIGJhY2tlbmQgc3lzdGVtcyBhcmUgcHJvdmlzaW9uaW5nIGFuZCBicmluZ2luZyB0aGluZ3Mgb25saW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgZG9uZSwgeW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7bGFuZ3VhZ2Utc2hlbGwgaGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7T3V0cHV0czoKClB1YmxpY19JUF9BZGRyZXNzICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgMzQuNzQuNzUuMTcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1B1YmxpY19JUF9BZGRyZXNzJmx0Oy9jb2RlJmd0OyB2YWx1ZSBpcyB0aGUgSVAgQWRkcmVzcyB0aGF0IHlvdXIgYXBwIGlzIHJ1bm5pbmcgb24sIHNvIGlmIHlvdSBnbyB0byBhIGJyb3dzZXIgYW5kIHBsdWcgdGhhdCBudW1iZXIgaW4gcGx1cyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7OjUwMDAmbHQ7L2NvZGUmZ3Q7IHBvcnQgYWRkcmVzcyAoaXQgd291bGQgbG9vayBsaWtlIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7MzQuNzQuNzUuMTc6NTAwMCZsdDsvY29kZSZndDspIHlvdSB3aWxsIHNlZSB5b3VyIGFwcCBydW5uaW5nIGluIEdDUC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Tm93IHRoYXQgeW91IGhhdmUgcHJvb2YgdGhhdCB5b3VyIEdvb2dsZSBDb21wdXRlIGluc3RhbmNlIGFuZCB5b3VyIGFwcGxpY2F0aW9uIHdvcmssIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gZGVzdHJveSB0aGUgYXNzZXRzIHRoYXQgeW91IGNyZWF0ZWQgaW4gdGhpcyB0dXRvcmlhbC4gWW91IGNhbiBsZWF2ZSBpdCB1cCBhbmQgcnVubmluZywgYnV0IGJlIGF3YXJlIHRoYXQgdGhlcmUgaXMgYSBjb3N0IGFzc29jaWF0ZWQgd2l0aCBhbnkgYXNzZXRzIHJ1bm5pbmcgb24gdGhlIEdvb2dsZSBDbG91ZCBQbGF0Zm9ybSBhbmQgeW91IHdpbGwgYmUgbGlhYmxlIGZvciB0aG9zZSBjb3N0cy4gR29vZ2xlIGdpdmVzIGEgZ2VuZXJvdXMgJDMwMCBjcmVkaXQgZm9yIGl0cyBmcmVlIHRyaWFsIHNpZ24tdXAsIGJ1dCB5b3UgY291bGQgZWFzaWx5IGVhdCB0aHJvdWdoIHRoYXQgaWYgeW91IGxlYXZlIGFzc2V0cyBydW5uaW5nLiBJdOKAmXMgdXAgdG8geW91LCBidXQgcnVubmluZyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0ZXJyYWZvcm0gZGVzdHJveSZsdDsvY29kZSZndDsgd2lsbCB0ZXJtaW5hdGUgYW55IHJ1bm5pbmcgYXNzZXRzLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIEnigJlsbCBkZW1vbnN0cmF0ZSBob3cgdG8gcGVyZm9ybSBpbmZyYXN0cnVjdHVyZSBwcm92aXNpb25pbmcgdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtQdWx1bWkgU0RLJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9wcm9kdWN0LyNzZGsmcXVvdDsmZ3Q7UHVsdW1pIFNESyZsdDsvYSZndDsgaXMgYW4gb3BlbiBzb3VyY2UgZnJhbWV3b3JrIGZvciBkZWZpbmluZyBhbmQgZGVwbG95aW5nIGNsb3VkIGFwcHMgYW5kIElhQy4gUHVsdW1pIGVuYWJsZXMgZGV2ZWxvcGVycyB0byB3cml0ZSBjb2RlIGluIHRoZWlyIGZhdm9yaXRlIGxhbmd1YWdlIHN1Y2ggYXMgVHlwZVNjcmlwdCwgSmF2YVNjcmlwdCwgUHl0aG9uLCBhbmQgR28uIFRoaXMgZW5hYmxlcyBtb2Rlcm4gYXBwcm9hY2hlcyB0byBjbG91ZCBhcHBsaWNhdGlvbnMgYW5kIGluZnJhc3RydWN0dXJlIHdpdGhvdXQgbmVlZGluZyB0byBsZWFybiBhbm90aGVyIFlBTUwgb3IgRFNMIGRpYWxlY3QuIFRoaXMgdW5sb2NrcyBhYnN0cmFjdGlvbnMgYW5kIHJldXNlLCBhcyB3ZWxsIGFzIGFjY2VzcyB0byB5b3VyIGZhdm9yaXRlIElERXMsIHJlZmFjdG9yaW5nLCBhbmQgdGVzdGluZyB0b29scy4gTWFzdGVyIG9uZSB0b29sY2hhaW4gYW5kIHNldCBvZiBmcmFtZXdvcmtzIGFuZCBnbyB0byBhbnkgY2xvdWQgKEFXUywgQXp1cmUsIEdDUCwgb3IgS3ViZXJuZXRlcykgd2l0aCBlYXNlLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBQdWx1bWkmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUgZXhwZXJpZW5jZWQgYnVpbGRpbmcgaW5mcmFzdHJ1Y3R1cmUgdXNpbmcgVGVycmFmb3JtLCBub3cgeW914oCZbGwgbGVhcm4gaG93IHRvIHByb3Zpc2lvbiBhbmQgZGVwbG95IG5ldyBpbmZyYXN0cnVjdHVyZSB1c2luZyBQdWx1bWkuIFRoZSBQdWx1bWkgZXhhbXBsZSB3aWxsIGNyZWF0ZSB0aGUgc2FtZSBHQ1AgcmVzb3VyY2VzIHByZXZpb3VzbHkgdXNpbmcgUHVsdW1pIGNvZGUgYW5kIHRvb2xzLiBQdWx1bWkgZW5hYmxlcyB5b3UgdG8gZGVmaW5lIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgaW4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHdoaWNoIHByb3ZpZGVzIGxvdHMgb2YgZmxleGliaWxpdHkuIEluIHRoaXMgZXhhbXBsZSwgd2XigJlyZSB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vd3d3LnB5dGhvbi5vcmcvJnF1b3Q7Jmd0O1B5dGhvbiZsdDsvYSZndDsgYXMgb3VyIGxhbmd1YWdlLiBUaGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7X19tYWluLnB5X18mbHQ7L2NvZGUmZ3Q7IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC9wdWx1bWkvZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgaXMgd2hlcmUgd2VyZSBnb2luZyB0byBkZWZpbmUgb3VyIGluZnJhc3RydWN0dXJlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlIHN1cmUgdG8gaGF2ZSB5b3VyIFB1bHVtaSBBUEkgdG9rZW4gYXZhaWxhYmxlLiBZb3XigJlsbCBuZWVkIGl0IGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIFB1bHVtaSBleGFtcGxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7fi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGRpcmVjdG9yeS4gUnVuIHRoaXMgY29tbWFuZCB0byBjaGFuZ2UgaW50byB0aGUgUHVsdW1pIGV4YW1wbGUgZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2Qgfi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gzJmd0O0luc3RhbGxpbmcgZGVwZW5kaWVuY2llcyBmb3IgUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1NpbmNlIHdl4oCZcmUgZGVmaW5pbmcgb3VyIElhQyBzcGVjcyB1c2luZyBQeXRob24gd2XigJlsbCBuZWVkIHRvIGZpcnN0IGluc3RhbGwgdGhlIFB1bHVtaSBQeXRob24gU0RLIGRlcGVuZGVuY2llcy4gSW4gdGhlIHRlcm1pbmFsIHJ1biB0aGlzIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtwaXAgaW5zdGFsbCAtciAuLi9yZXF1aXJlbWVudHMudHh0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtQcmV2aWV3aW5nIHdpdGggUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1B1bHVtaSBoYXMgYSBkcnktcnVuIGNvbW1hbmQgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBwcmV2aWV3Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRpc3BsYXlzIGEgcHJldmlldyBvZiB0aGUgdXBkYXRlcyB0byBhbiBleGlzdGluZyBzdGFjayB3aG9zZSBzdGF0ZSBpcyByZXByZXNlbnRlZCBieSBhbiBleGlzdGluZyBzdGF0ZSBmaWxlLiBUaGUgbmV3IGRlc2lyZWQgc3RhdGUgaXMgY29tcHV0ZWQgYnkgcnVubmluZyBhIFB1bHVtaSBwcm9ncmFtLCBhbmQgZXh0cmFjdGluZyBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbnMgZnJvbSBpdHMgcmVzdWx0aW5nIG9iamVjdCBncmFwaC4gVGhlc2UgYWxsb2NhdGlvbnMgYXJlIHRoZW4gY29tcGFyZWQgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc3RhdGUgdG8gZGV0ZXJtaW5lIHdoYXQgb3BlcmF0aW9ucyBtdXN0IHRha2UgcGxhY2UgdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZCBzdGF0ZS4gTm8gY2hhbmdlcyB0byB0aGUgc3RhY2sgd2lsbCBhY3R1YWxseSB0YWtlIHBsYWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGlzIGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHByZXZpZXcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHJlc3VsdHMgcHJvbXB0aW5nIHlvdSBmb3IgdGhlIFB1bHVtaSBBUEkgdG9rZW4geW91IGNyZWF0ZWQgZWFybGllci4gUGFzdGUgdGhlIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLiBBZnRlciB5b3UgcGFzdGUgdGhlIHRva2VuIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O01hbmFnZSB5b3VyIFB1bHVtaSBzdGFja3MgYnkgbG9nZ2luZyBpbi4KUnVuIGBwdWx1bWkgbG9naW4gLS1oZWxwYCBmb3IgYWx0ZXJuYXRpdmUgbG9naW4gb3B0aW9ucy4KRW50ZXIgeW91ciBhY2Nlc3MgdG9rZW4gZnJvbSBodHRwczovL2FwcC5wdWx1bWkuY29tL2FjY291bnQvdG9rZW5zCiAgICBvciBoaXQgJmFtcDtsdDtFTlRFUiZhbXA7Z3Q7IHRvIGxvZyBpbiB1c2luZyB5b3VyIGJyb3dzZXIgICAgICAgICAgICAgICAgICAgOgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1doZW4gcGFzdGluZyB0aGUgQVBJIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLCBubyB2YWx1ZXMgd2lsbCBiZSBkaXNwbGF5ZWQuIEl0IHdpbGwgcmVtYWluIGludmlzaWJsZSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuJmx0Oy9pJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBtYXkgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGEgc3RhY2sgaW4gdGhlIHRlcm1pbmFsLiBJZiBzbywgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkZXYmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB0aGVuIGhpdCBlbnRlci4gWW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UHJldmlld2luZyB1cGRhdGUgKGRldik6CiAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICAgICBQbGFuCiArICAgcHVsdW1pOnB1bHVtaTpTdGFjayAgICAgIGNvbXB1dGUtZGV2ICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6TmV0d29yayAgIG5ldHdvcmsgICAgICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6SW5zdGFuY2UgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJTilIAgZ2NwOmNvbXB1dGU6RmlyZXdhbGwgIGZpcmV3YWxsICAgICAgICAgICAgICAgICAgICBjcmVhdGUKClJlc291cmNlczoKICAgICsgNSB0byBjcmVhdGUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUganVzdCBlbmFibGVkIGFjY2VzcyB0byB0aGUgUHVsdW1pIGJhY2tlbmQgY2xvdWQgd2hpY2gga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXRlIG9mIHlvdXIgaW5mcmFzdHJ1Y3R1cmVzLiBOb3cgeW914oCZcmUgcmVhZHkgdG8gcnVuIHNvbWUgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7UHVsdW1pIHVwJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1RvIGV4ZWN1dGUgdGhlIFB1bHVtaSBjb2RlLCB1c2UgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIHVwJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGNyZWF0ZXMgb3IgdXBkYXRlcyByZXNvdXJjZXMgaW4gYSBzdGFjay4gVGhlIG5ldyBkZXNpcmVkIGdvYWwgc3RhdGUgZm9yIHRoZSB0YXJnZXQgc3RhY2sgaXMgY29tcHV0ZWQgYnkgcnVubmluZyB0aGUgY3VycmVudCBQdWx1bWkgcHJvZ3JhbSBhbmQgb2JzZXJ2aW5nIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9ucyB0byBwcm9kdWNlIGEgcmVzb3VyY2UgZ3JhcGguIFRoaXMgZ29hbCBzdGF0ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIGV4aXN0aW5nIHN0YXRlIHRvIGRldGVybWluZSB3aGF0IGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQvb3IgZGVsZXRlIG9wZXJhdGlvbnMgbXVzdCB0YWtlIHBsYWNlIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgZ29hbCBzdGF0ZSBpbiB0aGUgbW9zdCBtaW5pbWFsbHkgZGlzcnVwdGl2ZSB3YXkuIEFmdGVyd2FyZCwgdGhpcyBjb21tYW5kIHJlY29yZHMgYSBmdWxsIHRyYW5zYWN0aW9uYWwgc25hcHNob3Qgb2YgdGhlIHN0YWNr4oCZcyBuZXcgc3RhdGUgc28gdGhhdCB0aGUgc3RhY2sgbWF5IGJlIHVwZGF0ZWQgaW5jcmVtZW50YWxseSBhZ2FpbiBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgdGVybWluYWwgcnVuOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHVwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1NlbGVjdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7eWVzJmx0Oy9jb2RlJmd0OyBvcHRpb24gYW5kIGhpdCBlbnRlci4gVGhlIFB1bHVtaSBhcHAgd2lsbCBleGVjdXRlLCBhbmQgc2hvcnRseSBhZnRlciB5b3XigJlsbCBoYXZlIGEgY29tcGxldGUgc2VydmVyIHJ1bm5pbmcgYW4gYXBwbGljYXRpb24gb24gR0NQLiBZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtVcGRhdGluZyAoZGV2KToKICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cwogKyAgIHB1bHVtaTpwdWx1bWk6U3RhY2sgICAgICBjb21wdXRlLWRldiAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUnOKUgCBnY3A6Y29tcHV0ZTpOZXR3b3JrICAgbmV0d29yayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGVkCiArICAg4pSc4pSAIGdjcDpjb21wdXRlOkZpcmV3YWxsICBmaXJld2FsbCAgICAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUlOKUgCBnY3A6Y29tcHV0ZTpJbnN0YW5jZSAgd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDEgIGNyZWF0ZWQKCk91dHB1dHM6CiAgICBleHRlcm5hbF9pcCAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICBpbnN0YW5jZV9tZXRhX2RhdGE6IHsKICAgICAgICBnY2UtY29udGFpbmVyLWRlY2xhcmF0aW9uOiAmcXVvdDtzcGVjOlxuICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDFcbiAgICAgIGltYWdlOiBhcml2M3JhL3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxOmxhdGVzdFxuICAgICAgc3RkaW46IGZhbHNlXG4gICAgICB0dHk6IGZhbHNlXG4gIHJlc3RhcnRQb2xpY3k6IEFsd2F5c1xuJnF1b3Q7CiAgICB9CiAgICBpbnN0YW5jZV9uYW1lICAgICA6ICZxdW90O3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxJnF1b3Q7CiAgICBpbnN0YW5jZV9uZXR3b3JrICA6IFsKICAgICAgICBbMF06IHsKICAgICAgICAgICAgYWNjZXNzQ29uZmlncyAgICA6IFsKICAgICAgICAgICAgICAgIFswXTogewogICAgICAgICAgICAgICAgICAgIG5hdElwICAgICAgICAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICAgICAgICAgICAgICAgICAgbmV0d29ya190aWVyICAgICAgIDogJnF1b3Q7UFJFTUlVTSZxdW90OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgOiAmcXVvdDtuaWMwJnF1b3Q7CiAgICAgICAgfQogICAgXQoKUmVzb3VyY2VzOgogICAgKyA1IGNyZWF0ZWQKCkR1cmF0aW9uOiA1OHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlc2UgcmVzdWx0cywgeW914oCZbGwgc2VlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXh0ZXJuYWxfaXAmbHQ7L2NvZGUmZ3Q7IGtleS4gSXTigJlzIHZhbHVlIGlzIHRoZSBJUCBBZGRyZXNzIHRvIHRoZSBwdWJsaWMgZmFjaW5nIGFwcGxpY2F0aW9uIGV4cG9zZWQgb24gcG9ydCA1MDAwLiBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIFRlcnJhZm9ybSBleGFtcGxlLCB5b3UgY2FuIGFjY2VzcyB0aGUgYXBwbGljYXRpb24gaW4gYSBicm93c2VyLiBSZW1lbWJlciB0byBhbGxvdyBmb3IgYSBmZXcgbWludXRlcyBzbyB0aGUgYmFja2VuZCBzeXN0ZW0gY2FuIGJyaW5nIGV2ZXJ5dGhpbmcgb25saW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQdWx1bWkgZGVzdHJveSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtQdWx1bWkgaGFzIGEgY29tbWFuZCB0byB0ZXJtaW5hdGUgYWxsIG9mIHRoZSBjbG91ZCByZXNvdXJjZXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBkZXN0cm95Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRlbGV0ZXMgYW4gZW50aXJlIGV4aXN0aW5nIHN0YWNrIGJ5IG5hbWUuIFRoZSBjdXJyZW50IHN0YXRlIGlzIGxvYWRlZCBmcm9tIHRoZSBhc3NvY2lhdGVkIHN0YXRlIGZpbGUgaW4gdGhlIHdvcmtzcGFjZS4gQWZ0ZXIgcnVubmluZyB0byBjb21wbGV0aW9uLCBhbGwgb2YgdGhpcyBzdGFja+KAmXMgcmVzb3VyY2VzIGFuZCBhc3NvY2lhdGVkIHN0YXRlIHdpbGwgYmUgZ29uZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtSdW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGluIHRoZSB0ZXJtaW5hbCBhbmQgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5ZXMmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB3aGVuIHByb21wdGVkIHRvICZsdDtzdHJvbmcmZ3Q7cGVybWFuZW50bHkmbHQ7L3N0cm9uZyZndDsgZGVzdHJveSB0aGUgR0NQIHJlc291cmNlcyBjcmVhdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O0NvbmdyYXR1bGF0aW9ucyEgWW914oCZdmUganVzdCBsZXZlbGVkIHVwIGFuZCBub3cgaGF2ZSBleHBlcmllbmNlIHByb3Zpc2lvbmluZyBhbmQgZGVwbG95aW5nIGFwcGxpY2F0aW9ucyB0byBHQ1AgdXNpbmcgdGhlIG1vZGVybiBJYUMgdG9vbHMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O1RlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4gVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2lsbCBoZWxwIHlvdSBleHBhbmQgeW91ciBrbm93bGVkZ2UgZnJvbSBoZXJlOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9jbGktaW5kZXguaHRtbCZxdW90OyZndDtUZXJyYWZvcm0gR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9kb2NzL2dldC1zdGFydGVkLyZxdW90OyZndDtQdWx1bWkgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS9vcmIvcHVsdW1pL3B1bHVtaSZxdW90OyZndDtQdWx1bWkgb3JiIGZvciBDaXJjbGVDSSZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyZxdW90OyZndDtEb2NrZXIgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm0vY29tbXVuaXR5L2Jsb2IvbWFzdGVyL3R1dG9yaWFscy9nZXR0aW5nLXN0YXJ0ZWQtb24tZ2NwLXdpdGgtdGVycmFmb3JtL2luZGV4Lm1kI2dldHRpbmctcHJvamVjdC1jcmVkZW50aWFscyZxdW90OyZndDtHb29nbGUgQ2xvdWQgUGxhdGZvcm0mbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogICAgICAKICAgICAgPGl0ZW0+CiAgICAgICAgPHRpdGxlPkEgbG9vayBhdCBDaXJjbGVDSeKAmXMgaW5kdXN0cnktbGVhZGluZyBzdXBwb3J0IGZvciB0cmFuc2l0aW9uLXJlbGF0ZWQgbWVkaWNhbCBsZWF2ZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hLWxvb2stYXQtY2lyY2xlY2ktcy1pbmR1c3RyeS1sZWFkaW5nLXN1cHBvcnQtZm9yLXRyYW5zaXRpb24tcmVsYXRlZC1tZWRpY2FsLWxlYXZlLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5XZWQsIDEzIE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2EtbG9vay1hdC1jaXJjbGVjaS1zLWluZHVzdHJ5LWxlYWRpbmctc3VwcG9ydC1mb3ItdHJhbnNpdGlvbi1yZWxhdGVkLW1lZGljYWwtbGVhdmUvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RWxpemFiZXRoIEJlbGw8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7T25lIG9mIHRoZSBncmVhdCB0aGluZ3MgYWJvdXQgd29ya2luZyBhdCBDaXJjbGVDSSBpcyB0aGF0IHRoZSBjb21wYW55IGJlbGlldmVzIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGJlIGFibGUgdG8gYmUgdGhlaXIgd2hvbGUgc2VsZiBhdCB3b3JrLiBJbmNsdXNpdml0eSwgZGVtb25zdHJhdGluZyB0cnVzdCBhbmQgcmVzcGVjdCwgYW5kIG1ha2luZyBzdXJlIGV2ZXJ5b25lIGhhcyB0aGUgdG9vbHMgYW5kIHN1cHBvcnQgdGhleSBuZWVkIGFyZSBhbGwgYnVyaWVkIGRlZXAgaW4gdGhlIGN1bHR1cmUgaGVyZSDigJMgaXQgaXMgYSBiaWcgcGFydCBvZiBob3cgd2UgZGVsaXZlciB0aGUgYmVzdCB2YWx1ZSBmb3Igb3VyIGN1c3RvbWVycy4gV2l0aCB0aGF0IGluIG1pbmQsIHRoZSBjb21wYW55IHJlY2VudGx5IHJvbGxlZCBvdXQgYSBuZXcgaGVhbHRoY2FyZSBwb2xpY3kgZm9yIG91ciB0cmFuc2dlbmRlciBjby13b3JrZXJzLiBJbiBhIGZpcnN0IGZvciBjb21wYW5pZXMgaW4gdGhlIENJL0NEIHNwYWNlLCBDaXJjbGVDSSBub3cgb2ZmZXJzIGZ1bGx5LWNvbXBlbnNhdGVkIHBhaWQgbGVhdmUgZm9yIGVtcGxveWVlcyByZWNvdmVyaW5nIGZyb20gdHJhbnNpdGlvbi1yZWxhdGVkIG1lZGljYWwgcHJvY2VkdXJlcy4gVGhpcyBwb2xpY3kgaXMgYW4gZXh0cmVtZWx5IGltcG9ydGFudCBhZGRpdGlvbiB0byBDaXJjbGVDSeKAmXMgYmVuZWZpdHMgcGFja2FnZSBhbmQgYW5vdGhlciBleGFtcGxlIG9mIHRoZSBjb21wYW554oCZcyBkZWRpY2F0aW9uIHRvIHRoZSB3ZWxsLWJlaW5nIG9mIGFsbCBlbXBsb3llZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VHJhbnNpdGlvbiBpcyBhbiBpbW1lbnNlbHkgc3RyZXNzZnVsIHByb2Nlc3MsIGFuZCB0aGUgbWVkaWNhbCBwcm9jZWR1cmVzIHJlcXVpcmVkIHRvIHRyZWF0IHRoZSBkeXNwaG9yaWEgZXhwZXJpZW5jZWQgYnkgc29tZSB0cmFuc2dlbmRlciBwZW9wbGUgb2Z0ZW4gbmVlZCBhIHZlcnkgY2FyZWZ1bCBhcHByb2FjaCB0byByZWNvdmVyeS4mbHQ7L3AmZ3Q7CgombHQ7YmxvY2txdW90ZSZndDsKICAmbHQ7cCZndDtUaGUgZ29hbCBvZiB0aGUgcG9saWN5IGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRyYW5zZ2VuZGVyIGVtcGxveWVlcyBmZWVsIHN1cHBvcnRlZCBkdXJpbmcgdGhpcyBkaWZmaWN1bHQgdGltZSwgYW5kIGJ5IGVuc3VyaW5nIHRoYXQgdHJhbnNnZW5kZXIgZW1wbG95ZWVzIGhhdmUgYWNjZXNzIHRvIGFwcHJvcHJpYXRlbHkgY29tcGVuc2F0ZWQgbWVkaWNhbCBsZWF2ZSwgdGhlIGNvbXBhbnkgY2FuIHJlbW92ZSBtYWpvciBzb3VyY2VzIG9mIHVubmVjZXNzYXJ5IHN0cmVzcy4gVGhpcyB3YXksIHdlIGNhbiByZXR1cm4gdG8gd29yayBoYXBwaWVyLCBoZWFsdGhpZXIsIGFuZCBiZXR0ZXIgYWJsZSB0byBkbyBvdXIgYmVzdCBmb3Igb3VyIGN1c3RvbWVycyBhbmQgb3VyIGNvbGxlYWd1ZXMuJmx0Oy9wJmd0OwombHQ7L2Jsb2NrcXVvdGUmZ3Q7CgombHQ7aDImZ3Q7SG93IHRoaXMgcG9saWN5IGNhbWUgdG9nZXRoZXImbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgcHVzaCBmb3IgdGhlIGZvcm1hbGl6YXRpb24gb2YgdGhlc2UgYmVuZWZpdHMgZ3JldyBvdXQgb2YgdGhlIGVmZm9ydHMgb2YgbWFueSBpbmRpdmlkdWFscy4gVG9nZXRoZXIsIHRoZSB0cmFucyBlbXBsb3llZXMgYXQgQ2lyY2xlQ0kgZGlzY3Vzc2VkIHRoZSBpc3N1ZSBhbW9uZ3N0IG91cnNlbHZlcywgb3VyIG1hbmFnZXJzLCBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIHdobyBzdXBwb3J0ZWQgdXMgaW4gYnJpbmdpbmcgdGhlIHRvcGljIHRvIG91ciBleGVjdXRpdmUgdGVhbS4gQnkgYnVpbGRpbmcgY29uc2Vuc3VzLCBib3RoIHdpdGhpbiB0aGUgdHJhbnMgcG9wdWxhdGlvbiBhdCB0aGUgY29tcGFueSBhbmQgb3VyIGNpc2dlbmRlciBjb2xsZWFndWVzLCB3ZSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IGFkdm9jYXRlIGZvciBhIGZvcm1hbGl6YXRpb24gb2YsIGFuZCBhIGNvbW1pdG1lbnQgdG8sIHRoaXMgaW5kdXN0cnktbGVhZGluZyB0cmFucyBoZWFsdGhjYXJlIGJlbmVmaXQuIFF1ZWVyU3BoZXJlLCB0aGUgRW1wbG95ZWUgUmVzb3VyY2UgR3JvdXAgaGVyZSBhdCBDaXJjbGVDSSBmb3IgTEdCVFFJQSsgZW1wbG95ZWVzLCBoZWxwZWQgY29vcmRpbmF0ZSB0aGUgZWZmb3J0IHRvIGFkdm9jYXRlLCBhbmQgdGhlIHJlc3VsdCB3YXMgYSBwb2xpY3kgdGhhdCBoZWxwcyBlbnN1cmUgdHJhbnMgZW1wbG95ZWVzIGdldCB0aGUgc3VwcG9ydCB3ZSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uZSBvZiB0aGUgYmVzdCB0aGluZ3MgZm9yIG1lIGFib3V0IHdvcmtpbmcgYXQgQ2lyY2xlQ0kgaXMgaG93IGVtcG93ZXJlZCBJIGZlZWwgdG8gY2FsbCBhdHRlbnRpb24gdG8gaXNzdWVzIG9yIHByYWN0aWNlcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCBhbmQgYnJpbmcgcGVvcGxlIHRvZ2V0aGVyIHRvIHdvcmsgb24gdGhlbSwgdG8gdGhlIGJlbmVmaXQgb2YgYm90aCB0aGUgY29tcGFueSBhcyBhIHdob2xlIGFuZCB1bmRlcnJlcHJlc2VudGVkIG9yIG1hcmdpbmFsaXplZCBlbXBsb3llZXMuIFRyYW5zIHBlb3BsZSBmYWNlIHN5c3RlbWljIGJpYXM6IHRoZXJlIGFyZSBubyBmZWRlcmFsLWxldmVsIHByb3RlY3Rpb25zIGZyb20gZGlzY3JpbWluYXRpb24gb24gdGhlIGJhc2lzIG9mIGdlbmRlciBpZGVudGl0eSBpbiB0aGUgVW5pdGVkIFN0YXRlcywgYW5kIG9mIHRoZSB0cmFucyBwb3B1bGF0aW9uIHN1cnZleWVkIGJ5IHRoZSBOYXRpb25hbCBDZW50ZXIgZm9yIFRyYW5zZ2VuZGVyIEVxdWFsaXR5IGluIDIwMTUsIDgwJSBvZiB0aG9zZSB3aG8gd2VyZSBlbXBsb3llZCByZXBvcnRlZCBleHBlcmllbmNpbmcgaGFyYXNzbWVudCwgbWlzdHJlYXRtZW50LCBvciBoYWQgdG8gdGFrZSBzdGVwcyB0byBhdm9pZCB0aG9zZSBob3N0aWxlIHdvcmtwbGFjZSBiZWhhdmlvcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SSBrbm93IGZpcnN0aGFuZCBob3cgZGlmZmljdWx0IGJlaW5nIG91dCBhdCB3b3JrIGNhbiBiZS4gQXQgYSBwcmV2aW91cyBlbXBsb3llciBlYXJseSBpbiBteSB0cmFuc2l0aW9uLCBJIGZlbHQgYWxpZW5hdGVkIGFuZCBkaXNsaWtlZCBieSBjb2xsZWFndWVzIHdobyBoYWQgcHJldmlvdXNseSBiZWVuIGZyaWVuZGx5IGJlZm9yZSB0aGV5IGtuZXcgSSB3YXMgdHJhbnNnZW5kZXIuIEkgaGF2ZSBoYWQgdG8gbWluaW1pemUgdGhlIGZhY3QgdGhhdCBJ4oCZbSB0cmFucywgdG9sZXJhdGUgYWN0aXZlIGhvc3RpbGl0eSBmcm9tIGNvd29ya2Vycywgb3IgcHJldGVuZCB0aGF0IEkgd2FzIGNpc2dlbmRlciwgaW4gb3JkZXIgdG8gcHJvdGVjdCBteSBqb2IuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgQ2lyY2xlQ0ksIEkgaGF2ZSBmZWx0IHN1cHBvcnRlZCwgcmVzcGVjdGVkLCBhbmQgYWJsZSB0byBjb25maWRlbnRseSBiZSBteXNlbGYuIEkgZmVlbCBleGNlcHRpb25hbGx5IGZvcnR1bmF0ZSB0byBoYXZlIGEgd29uZGVyZnVsIGdyb3VwIG9mIHRyYW5zZ2VuZGVyIGNvbGxlYWd1ZXMgYW5kIGZyaWVuZHMgKHdlIG1ha2UgdXAgNyUgb2YgdGhlIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0ksIGFuZCAzJSBvZiB0aGUgb3JnIGluIHRvdGFsLCBjb21wYXJlZCB0byAwLjYlIG9mIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24pLCBhbmQgdG8gd29yayBzb21ld2hlcmUgd2hlcmUgb3VyIHZpZXdzIGFuZCBleHBlcmllbmNlcyBhcmUgdmFsdWVkIGF0IHRoZSBoaWdoZXN0IGxldmVscyBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0lmIHlvdSBsaWtlIHRoZSBzb3VuZCBvZiB3b3JraW5nIHNvbWV3aGVyZSB3aXRoIGEgcmVtb3RlLWZpcnN0IGN1bHR1cmUgYW5kIGNvbGxhYm9yYXRpbmcgb24gaW50ZXJlc3RpbmcgcHJvYmxlbXMgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIHRyYW5zIGZvbHggYW5kIGFsbGllcywgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9jYXJlZXJzLyZxdW90OyZndDtjaGVjayBvdXQgb3VyIG9wZW5pbmdzIGhlcmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIEdhdHNieSBhcHBzIHRvIEhlcm9rdTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtZ2F0c2J5LWFwcHMtdG8taGVyb2t1LzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDExIE1heSAyMDIwIDA5OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1nYXRzYnktYXBwcy10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9qYW1zdGFjay5vcmcvJnF1b3Q7Jmd0O0pBTVN0YWNrJmx0Oy9hJmd0OyBpcyBxdWlja2x5IGJlY29taW5nIGEgYmlnIGRlYWwgaW4gdGhlIHdvcmxkIG9mIHdlYiBkZXZlbG9wbWVudC4gSkFNU3RhY2ssIHdoaWNoIHN0YW5kcyBmb3IgSmF2YXNjcmlwdCwgQVBJcywgYW5kIEhUTUwgbWFya3VwLCBpcyBhIG1vZGVybiBhcmNoaXRlY3R1cmUgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMgYW5kIG9uZSBvZiBpdHMgbWFqb3IgZmVhdHVyZXMgaXMgdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBhIGRhdGFiYXNlIGFuZCBhIHdlYiBzZXJ2ZXIgaXMgb3B0aW9uYWwuIFRoZSBKQU1TdGFjayBhcmNoaXRlY3R1cmUgaXMgYWltZWQgYXQgZGVjb3VwbGluZyB0aGUgZnJvbnRlbmQgYW5kIHRoZSBiYWNrZW5kIGJ5IGdlbmVyYXRpbmcgYSBmcm9udGVuZCBtYWRlIG9mIEhUTUwsIENTUywgYW5kIEphdmFzY3JpcHQgYW5kIGEgYmFja2VuZCB0aGF0IGlzIHNpbXBseSBhIGNvbnRlbnQgQVBJIHJldHVybmluZyBKU09OIG9yIFhNTC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmUgb2YgdGhlIGxlYWRpbmcgSkFNU3RhY2sgcGxhdGZvcm1zIHRvZGF5IGlzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnLyZxdW90OyZndDtHYXRzYnkuanMmbHQ7L2EmZ3Q7LiBHYXRzYnkuanMgaXMgYSBmcmVlIGFuZCBvcGVuLXNvdXJjZSBmcmFtZXdvcmsgYmFzZWQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3JlYWN0anMub3JnLyZxdW90OyZndDtSZWFjdC5qcyZsdDsvYSZndDsgdGhhdCBoZWxwcyBkZXZlbG9wZXJzIGJ1aWxkIGhpZ2gtc3BlZWQgd2ViIGFwcGxpY2F0aW9ucy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHR1dG9yaWFsLCB3ZSB3aWxsIGJlIGRlbW9uc3RyYXRpbmcgaG93IHRvIGRlcGxveSBhIEdhdHNieS5qcyBzaXRlIHRvIHRoZSBwb3B1bGFyIEhlcm9rdSBwbGF0Zm9ybSBieSBidWlsZGluZyBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmUgZm9yIGl0cyBkZXBsb3ltZW50IHVzaW5nIENpcmNsZUNJLiZsdDsvcCZndDsKCiZsdDtoMiZndDtQcmVyZXF1aXNpdGVzJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIG9yZGVyIHRvIGZvbGxvdyBhbG9uZyB3aXRoIHRoaXMgcG9zdCwgeW91IHdpbGwgbmVlZCBhIGZldyB0aGluZ3MgaW4gcGxhY2U6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7ICZhbXA7Z3Q7PSAxMC4xNiBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZSAtdiZsdDsvY29kZSZndDsgb24geW91ciB0ZXJtaW5hbCB0byBwcmludCBvdXQgeW91ciB2ZXJzaW9uIG9mIE5vZGVKUyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7R2l0Jmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2l0Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsLiBUaGlzIHNob3VsZCBwcmludCBvdXQgYXZhaWxhYmxlIGdpdCBjb21tYW5kcykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuaGVyb2t1LmNvbS8mcXVvdDsmZ3Q7SGVyb2t1Jmx0Oy9hJmd0OyBhY2NvdW50Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O0dpdEh1YiZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7V2l0aCB0aGVzZSwgeW91IGFyZSByZWFkeSB0byBmb2xsb3cgYWxvbmcuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NyZWF0aW5nIGEgR2F0c2J5LmpzIHByb2plY3QmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7VG8gYmVnaW4sIHdlIG5lZWQgdG8gY3JlYXRlIG91ciBHYXRzYnkuanMgcHJvamVjdC4gSW4gYW4gYXBwcm9wcmlhdGUgbG9jYXRpb24gd2l0aGluIHlvdXIgc3lzdGVtLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGdhdHNieSBuZXcgZ2F0c2J5LWhlcm9rdS1kZXBsb3kKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBwYXJ0IG9mIHRoaXMgY29tbWFuZCBpcyB0aGUgZm9sZGVyIG5hbWUgZm9yIG15IHByb2plY3QgdG8gYmUgc2NhZmZvbGRlZCBpbi4gWW91IGNhbiB1c2UgYW55IHByZWZlcnJlZCBuYW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCB3aWxsIGltbWVkaWF0ZWx5IGJlZ2luIHNjYWZmb2xkaW5nIGEgbmV3IEdhdHNieS5qcyBwcm9qZWN0LiBZb3UgbWlnaHQgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGVpdGhlciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5YXJuJmx0Oy9jb2RlJmd0OyBvciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7IGFzIHlvdXIgcGFja2FnZSBtYW5hZ2VyLCBmb3IgdGhpcyB0dXRvcmlhbCwgZ28gd2l0aCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNjYWZmb2xkaW5nIHByb2Nlc3MgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIGdhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OykgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gYm9vdCB1cCBhIHNlcnZlciB0byBzZXJ2ZSB0aGUgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBydW4gZGV2ZWxvcAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgc2VydmUgdGhlIGFwcGxpY2F0aW9uIGF0IHRoZSBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8mbHQ7L2NvZGUmZ3Q7IGFuZCBkaXNwbGF5IHRoZSBwYWdlIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MS5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIGEgZnVuY3Rpb25hbCBHYXRzYnkuanMgc2l0ZSB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7U2V0dGluZyB1cCBhIEhlcm9rdSBBcHAgZm9yIEdhdHNieSZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBzZXQgdXAgYSBIZXJva3UgYXBwIGZvciBvdXIgR2F0c2J5IGFwcGxpY2F0aW9uLCB3ZSBuZWVkIHRvIGxvZyBpbnRvIEhlcm9rdSBhbmQgY3JlYXRlIGEgbmV3IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5Mi5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdlIG5lZWQgdG8gZ2V0IHRoZSBuYW1lIG9mIG91ciBhcHBsaWNhdGlvbiAodGhpcyB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBmb3IgdGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgYWJvdmUpIGFuZCB0aGUgQVBJIGtleSBmb3Igb3VyIEhlcm9rdSBhY2NvdW50LiBUaGUgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIEhlcm9rdSAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXZSB3aWxsIG5lZWQgdGhlc2UgdHdvIHZhbHVlcyAodGhlIGFwcCBuYW1lIGFuZCBBUEkga2V5KSBsYXRlciBvbiB0byBjcmVhdGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9uIG91ciBDaXJjbGVDSSBwcm9qZWN0IGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiBvdXIgSGVyb2t1IGFjY291bnQgaXMgdG8gaW5zdGFsbCBzb21lIG5lY2Vzc2FyeSBidWlsZHBhY2tzLiBCdWlsZHBhY2tzIGFyZSBzY3JpcHRzIHRoYXQgcnVuIHdoZW4geW91ciBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZC4gV2Ugd2lsbCBuZWVkIHR3byBidWlsZCBwYWNrcyBmb3IgdGhpcyBleGVyY2lzZTombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0O2hlcm9rdS9ub2RlanM6IFJlcXVpcmVkIGZvciBhbGwgTm9kZS5qcyBhcHBsaWNhdGlvbnMmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtoZXJva3UvaGVyb2t1LWJ1aWxkcGFjay1zdGF0aWM6IFRoZSBIZXJva3UgQnVpbGRwYWNrIFN0YXRpYyBwYWNrYWdlIChiZWNhdXNlIEdhdHNieS5qc+KAmXMgYnVpbGQgaXMgbWFkZSB1cCBvZiBzdGF0aWMgZmlsZXMsIHRoaXMgd2lsbCBoZWxwIHVzIHNlcnZlIHRoZSBzdGF0aWMgZmlsZXMgb24gdGhlIEhlcm9rdSBwbGF0Zm9ybSkmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7R28gdG8geW91ciBIZXJva3UgYXBwbGljYXRpb27igJlzICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgcGFnZSBhbmQgc2Nyb2xsIGRvd24gdG8gJmx0O3N0cm9uZyZndDtCdWlsZHBhY2tzJmx0Oy9zdHJvbmcmZ3Q7ICh5b3UgbWlnaHQgYWxyZWFkeSBzZWUgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgYnVpbGRwYWNrIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQpLiBDbGljayAmbHQ7c3Ryb25nJmd0O0FkZCBidWlsZHBhY2smbHQ7L3N0cm9uZyZndDsgYW5kIHlvdSB3aWxsIHNlZSBhIGRpYWxvZyBwb3AgdXAgc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnkzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rm9yIGVhY2ggYnVpbGRwYWNrICgmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3Uvbm9kZWpzJmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L2hlcm9rdS1idWlsZHBhY2stc3RhdGljJmx0Oy9jb2RlJmd0OykgZW50ZXIgdGhlIGlkZW50aWZpZXIgaW50byB0aGUgdGV4dCBmaWVsZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTYXZlIENoYW5nZXMmbHQ7L3N0cm9uZyZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtOb3RlOiZsdDsvc3Ryb25nJmd0OyAmbHQ7aSZndDtJZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCwgb25seSBhZGQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2hlcm9rdS9oZXJva3UtYnVpbGRwYWNrLXN0YXRpYyZsdDsvY29kZSZndDsgYnVpbGQgcGFjay4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgZG9pbmcgdGhpcyBmb3IgYm90aCBidWlsZHBhY2tzLCB5b3Ugd2lsbCBzZWUgdGhlIHR3byBidWlsZCBwYWNrcyBub3cgbGlzdGVkIGluICZsdDtzdHJvbmcmZ3Q7QnVpbGRwYWNrcyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGF0IGNvbXBsZXRlcyB0aGUgc2V0IHVwIHJlcXVpcmVkIGZvciBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1NldHRpbmcgdXAgdGhlIEdhdHNieS5qcyBwcm9qZWN0IG9uIENpcmNsZUNJJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBuZXh0IHRhc2sgaXMgdG8gZ2V0IG91ciBHYXRzYnkuanMgcHJvamVjdCBzZXQgdXAgb24gQ2lyY2xlQ0kuIFdlIG5lZWQgdG8gcHVzaCBvdXIgY29kZSB0byBhIEdpdEh1YiByZXBvc2l0b3J5IG9uIHRoZSBhY2NvdW50IHlvdSBoYXZlIGxpbmtlZCB0byB5b3VyIENpcmNsZUNJIGFjY291bnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgZ28gdG8gdGhlICZsdDtzdHJvbmcmZ3Q7QWRkIFByb2plY3RzJmx0Oy9zdHJvbmcmZ3Q7IHBhZ2UgdG8gYWRkIHRoZSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk0LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0OyB0byBiZWdpbiBzZXR0aW5nIHVwIHRoZSBwcm9qZWN0LiBUaGlzIHdpbGwgbG9hZCB0aGUgbmV4dCBzY3JlZW4uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk1LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhlIHNldHVwIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsuIEJlZm9yZSB0aGUgYnVpbGQgc3RhcnRzLCB5b3Ugd2lsbCBnZXQgYSBwcm9tcHQgdG8gZWl0aGVyIGRvd25sb2FkIGFuZCB1c2UgdGhlIHByb3ZpZGVkIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgaGF2ZSBpdCBhZGRlZCBvbiBhIHNlcGFyYXRlIGJyYW5jaCBvciBzZXQgb25lIHVwIG1hbnVhbGx5LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk2LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U2VsZWN0ICZsdDtzdHJvbmcmZ3Q7QWRkIE1hbnVhbGx5Jmx0Oy9zdHJvbmcmZ3Q7IHRvIHByb2NlZWQuIFRoaXMgd2lsbCBwcm9tcHQgYW5vdGhlciBkaWFsb2cgdGhhdCBjaGVja3MgdG8gY29uZmlybSB0aGF0IHlvdSBoYXZlIGEgY29uZmlndXJhdGlvbiBmaWxlIHNldCB1cCB0byBiZWdpbiBidWlsZGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTcucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGNvbXBsZXRlIHRoZSBzZXR1cC4gVGhlIGJ1aWxkIHdpbGwgc3VyZWx5IGZhaWwgYmVjYXVzZSB3ZSBoYXZlIG5vdCBzZXQgdXAgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB5ZXQsIHRoaXMgd2Ugd2lsbCBkbyBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiB0aGUgQ2lyY2xlQ0kgY29uc29sZSBpcyB0byBzZXQgdXAgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZW52LXZhcnMvJnF1b3Q7Jmd0O2Vudmlyb25tZW50IHZhcmlhYmxlcyZsdDsvYSZndDsgZm9yIHRoZSBwcm9qZWN0IHdlIGp1c3QgYWRkZWQuIFRoaXMgd2lsbCBlbmFibGUgaXQgdG8gaGF2ZSBhdXRoZW50aWNhdGVkIGFjY2VzcyB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIGZvciBkZXBsb3ltZW50cy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHbyB0byB5b3VyIHByb2plY3TigJlzIHNldHRpbmdzIGJ5IGNsaWNraW5nICZsdDtzdHJvbmcmZ3Q7UHJvamVjdCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgJmx0O3N0cm9uZyZndDtQaXBlbGluZXMmbHQ7L3N0cm9uZyZndDsgcGFnZSAobWFrZSBzdXJlIHlvdXIgcHJvamVjdCBpcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2plY3QpLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5OC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBuYXZpZ2F0ZSB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBwYWdlLiBPbiB0aGlzIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7RW52aXJvbm1lbnQgVmFyaWFibGVzJmx0Oy9zdHJvbmcmZ3Q7IG9uIHRoZSBzaWRlIG1lbnUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk5LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFnZSwgY2xpY2sgJmx0O3N0cm9uZyZndDtBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUgYnV0dG9uJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTAucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZGQgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Jmx0Oy9wJmd0OwombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDs6IFRoaXMgaXMgdGhlIG5hbWUgb2YgeW91ciBIZXJva3UgYXBwbGljYXRpb24gKGluIHRoaXMgY2FzZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnYXRzYnktaGVyb2t1LWRlcGxveSZsdDsvY29kZSZndDspJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7SEVST0tVX0FQSV9LRVkmbHQ7L2NvZGUmZ3Q7OiBZb3VyIEhlcm9rdSBhY2NvdW50IEFQSSBrZXkgZm91bmQgdW5kZXIgdGhlICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCZsdDsvc3Ryb25nJmd0OyB0YWIgb2YgeW91ciBIZXJva3UgYWNjb3VudCBpbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50IFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O09uY2UgYWRkZWQsIHlvdSB3aWxsIGhhdmUgZXZlcnl0aGluZyBzZXQgdXAgb24geW91ciBDaXJjbGVDSSBjb25zb2xlIGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRoZSBHYXRic3kuanMgc2l0ZSB1c2luZyBvcmJzJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy8mcXVvdDsmZ3Q7T3JicyZsdDsvYSZndDsgYXJlIHJldXNhYmxlIHBhY2thZ2VzIG9mIFlBTUwgY29uZmlndXJhdGlvbiB0aGF0IGNvbmRlbnNlIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoZXkgZW5hYmxlIGRldmVsb3BlcnMgdG8gZWFzaWx5IHVzZSBwb3dlcmZ1bCBwaXBlbGluZSBmdW5jdGlvbmFsaXRpZXMgd2l0aCBhbGwgdGhlIGJvaWxlcnBsYXRlIGFic3RyYWN0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBleGVyY2lzZSwgd2Ugd2lsbCBiZSB1c2luZyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7b3JiIGZvciBIZXJva3UmbHQ7L2EmZ3Q7IHRvIGNvbmZpZ3VyZSBvdXIgcGlwZWxpbmUgdG8gZGVwbG95IG91ciBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0IGJlZm9yZSB0aGF0LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGZpbGUgdG8gaW5zdHJ1Y3Qgb3VyIEhlcm9rdSBCdWlsZHBhY2sgU3RhdGljIHBhY2thZ2Ugb24gaG93IHRvIGRlcGxveSBhbmQgc2VydmUgb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgbmV3IGZpbGUgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3RhdGljLmpzb24mbHQ7L2NvZGUmZ3Q7IGFuZCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGUgaW50byBpdDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3sKICAmcXVvdDtyb290JnF1b3Q7OiAmcXVvdDtwdWJsaWMvJnF1b3Q7LAogICZxdW90O2hlYWRlcnMmcXVvdDs6IHsKICAgICZxdW90Oy8qKiZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJnF1b3Q7CiAgICB9LAogICAgJnF1b3Q7LyoqLmNzcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy8qKi5qcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy9zdGF0aWMvKiomcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0sCiAgICAmcXVvdDsvaWNvbnMvKi5wbmcmcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0KICB9LAogICZxdW90O2h0dHBzX29ubHkmcXVvdDs6IHRydWUsCiAgJnF1b3Q7ZXJyb3JfcGFnZSZxdW90OzogJnF1b3Q7NDA0Lmh0bWwmcXVvdDsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgbW9zdCBpbXBvcnRhbnQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaGVyZSBpcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkuIFdoZW4gR2F0c2J5LmpzIHJ1bnMgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2J1aWxkJmx0Oy9jb2RlJmd0OyBzY3JpcHQgKHRoaXMgaXMgYWxzbyB0aGUgc2NyaXB0IHVzZWQgYnkgSGVyb2t1IHRvIHJ1biB0aGUgYnVpbGQgYmVmb3JlIGRlcGxveW1lbnQpLCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1YmxpYyZsdDsvY29kZSZndDsgZm9sZGVyIGlzIGdlbmVyYXRlZCBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBjb250YWluaW5nIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb2R1Y3Rpb24gdmVyc2lvbiBpcyB3aGF0IHRoZSBob3N0IHNlcnZlcyB0byB1c2Vycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaHVzLCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkgaXMgdXNlZCB0byBwb2ludCB0byB0aGlzIGZvbGRlciBzbyB0aGF0IHRoZSBob3N0IHNlcnZlcyB0aGUgYXBwcm9wcmlhdGUgY29kZS4gT3RoZXIgcGFyYW1ldGVycyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gYXJlIHNpbXBseSBiZXN0LXByYWN0aWNlIGNvbmZpZ3VyYXRpb25zIGZvciBHYXRzYnkuanMgc2l0ZXMuIEZvciBleGFtcGxlLCBjYWNoaW5nIGd1aWRlbGluZXMgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvY2FjaGluZy8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7R29vZCEgTm93IHdlIGNhbiB3cml0ZSBvdXIgZGVwbG95bWVudCBzY3JpcHQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgdGhlIHJvb3Qgb2YgeW91ciBHYXRzYnkuanMgcHJvamVjdCwgY3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgYW5kIGEgZmlsZSB3aXRoaW4gaXQgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0Oy4gSW5zaWRlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGU6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt2ZXJzaW9uOiAyLjEKb3JiczoKICBoZXJva3U6IGNpcmNsZWNpL2hlcm9rdUAwLjAuMTAKd29ya2Zsb3dzOgogIGhlcm9rdV9kZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGhlcm9rdS9kZXBsb3ktdmlhLWdpdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGF04oCZcyBpdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgY29uZmlndXJhdGlvbiBhYm92ZSwgd2UgcHVsbCBpbiB0aGUgSGVyb2t1IG9yYiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaXJjbGVjaS9oZXJva3VAMC4wLjEwJmx0Oy9jb2RlJmd0OyB3aGljaCBhdXRvbWF0aWNhbGx5IGdpdmVzIHVzIGFjY2VzcyB0byBhIHBvd2VyZnVsIHNldCBvZiBIZXJva3Ugam9icyBhbmQgY29tbWFuZHMuIE9uZSBvZiB0aG9zZSBqb2JzIGlzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3UvZGVwbG95LXZpYS1naXQmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGRlcGxveXMgeW91ciBhcHBsaWNhdGlvbiBzdHJhaWdodCBmcm9tIHlvdXIgR2l0SHViIHJlcG8gdG8geW91ciBIZXJva3UgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIGpvYiBhbHJlYWR5IHRha2VzIGNhcmUgb2YgaW5zdGFsbGluZyB0aGUgSGVyb2t1IENMSSwgaW5zdGFsbGluZyBwcm9qZWN0IGRlcGVuZGVuY2llcywgcnVubmluZyB0aGUgYnVpbGQgc2NyaXB0LCBhbmQgZGVwbG95aW5nIHRoZSBhcHBsaWNhdGlvbi4gSXQgYWxzbyBwaWNrcyB1cCBvdXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGggZGVwbG95bWVudCB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgdGhlIG1vbWVudCBvZiB0cnV0aCAoZHJ1bSByb2xsKS4gTGV04oCZcyBjb21taXQgYWxsIHRoZSBjaGFuZ2VzIHdlIGhhdmUgbWFkZSB0byBvdXIgR2F0c2J5LmpzIHByb2plY3QgYW5kIHB1c2ggdG8gb3VyIHJlcG8gdG8gdHJpZ2dlciB0aGUgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTEucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBzZWUgdGhlIGJlaGluZC10aGUtc2NlbmVzIHpjdGlvbiBvZiB0aGUgZGVwbG95bWVudCwgeW91IGNhbiBjbGljayBpbnRvIHRoZSBidWlsZC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTIucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgZm9yIHRoZSBmaW5hbCBjb25maXJtYXRpb24gdGhhdCB0aGUgZGVwbG95bWVudCBvZiBvdXIgR2F0c2J5LmpzIHNpdGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bCwgdmlzaXQgdGhlIGRlZmF1bHQgSGVyb2t1IGFkZHJlc3MgZm9yIHRoZSBzaXRlIGF0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vW0FQUF9OQU1FXS5oZXJva3VhcHAuY29tJmx0Oy9jb2RlJmd0Oy4gSWYgeW91IHVzZWQgdGhlIHNhbWUgbmFtZSBhcyBJIGRpZCBmb3IgdGhpcyBleGVyY2lzZSwgdGhhdCB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vZ2F0c2J5LWhlcm9rdS1kZXBsb3kuaGVyb2t1YXBwLmNvbS8mbHQ7L2NvZGUmZ3Q7LiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93ICh0aGlzIG1pZ2h0IGJlIGRpZmZlcmVudCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IEdhdHNieS5qcyBzdGFydGVyIHRlbXBsYXRlLCBsZWFybiBtb3JlIGFib3V0IHN0YXJ0ZXJzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvcGx1Z2lucy10aGVtZXMtYW5kLXN0YXJ0ZXJzLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OykuJmx0Oy9wJmd0OwoKJmx0O3AgYWxpZ249JnF1b3Q7Y2VudGVyJnF1b3Q7Jmd0OwogICAmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTEzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NvbmNsdXNpb24mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2UgZGVwbG95ZWQgYSBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UgdXNpbmcgQ2lyY2xlQ0kgb3Jicy4gTm93IHdoZW4gd2UgcHVzaCBvdXIgY29kZSwgYWxsIGNoYW5nZXMgd2lsbCBiZSBkZXBsb3llZCBhdXRvbWF0aWNhbGx5LiBUaGlzIHR1dG9yaWFsIGhhcyBhbHNvIGRlbW9uc3RyYXRlZCBob3cgQ2lyY2xlQ0kgb3JicyBtYWtlcyBkZXBsb3ltZW50IGVhc3kuIEluc3RlYWQgb2Ygd3JpdGluZyBtYW55IGxpbmVzIG9mIGNvbmZpZyBuZWVkIHRvIGRlcGxveSB0byBIZXJva3UsIG9yYnMgYWJzdHJhY3QgYWxsIG9mIHRoYXQgaW50byBjb252ZW5pZW50IGNvbW1hbmRzIGZvciB1cyB0byB1c2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2hlY2sgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kgb3JicyByZWdpc3RyeSZsdDsvYSZndDsgZm9yIG9yYnMgdGhhdCBzdWl0IHlvdXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGRlcGxveW1lbnQgZGVzdGluYXRpb24gb2YgY2hvaWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyEmbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5MZXR0aW5nIGNoYW5nZSBhbmQgdW5jZXJ0YWludHkgYWR2YW5jZSB5b3VyIHNvZnR3YXJlIGFyY2hpdGVjdHVyZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VGh1LCAwNyBNYXkgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Sb2IgWnViZXI8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIGZpcnN0IGxpbmVzIG9mIENpcmNsZUNJ4oCZcyBjb2RlYmFzZSB3ZXJlIHdyaXR0ZW4gbmVhcmx5IG5pbmUgeWVhcnMgYWdvLiBMb29raW5nIGJhY2sgb24gd2hhdCB3ZSBoYXZlIGJ1aWx0IHNvIGZhciB3aXRoIHRoZSBjbGFyaXR5IG9mIGhpbmRzaWdodCBleHBvc2VzIHNvbWUgaW50ZXJlc3RpbmcgdGhlbWVzIHRoYXQgY2FuIGJlIGluc3RydWN0aXZlIGluIGlkZW50aWZ5aW5nIGFwcHJvYWNoZXMgdG8gZGVhbGluZyB3aXRoIGNoYW5nZS4gV2hpbGUgdGhleSB3ZXJlbuKAmXQgYWxsIGludGVudGlvbmFsLCBpdCBkb2VzbuKAmXQgbWFrZSB0aGVtIGFueSBsZXNzIHZhbHVhYmxlLiBUaHJlZSBzdWNoIHRoZW1lcyBhcmU6IGRlZmVycmluZyB0aGUgbmVlZCB0byBoYW5kbGUgY2hhbmdlLCB0aGlua2luZyBsaWtlIGEgcHJvZHVjdCBtYW5hZ2VyLCBhbmQga2VlcGluZyB5b3VyIGhlYWQgdXAuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NoYW5nZSBpcyBhIGNvbnN0YW50IGluIHRlY2hub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Q2hhbmdlIG1pZ2h0IGJlIG9uZSBvZiB0aGUgb25seSBjb25zdGFudHMgZW5naW5lZXJzIHdpbGwgZGVhbCB3aXRoIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGVpciBjYXJlZXJzLiBJdCBjZXJ0YWlubHkgZHJpdmVzIG1hbnkgb2Ygb3VyIG1vc3QgaW50ZXJlc3RpbmcgY2hhbGxlbmdlcy4gVGhlIG1hcmtldCBpcyBjaGFuZ2luZywgb3VyIGJ1c2luZXNzIGlzIGV2b2x2aW5nLCBvdXIgY3VzdG9tZXIgYmFzZSBpcyBncm93aW5nLCBhbmQgb3VyIHRlYW0gaXMgc2NhbGluZy4gV2UgbmVlZCB0byBidWlsZCBhIHNvbHV0aW9uIHRoYXQgbWVldHMgdG9kYXnigJlzIG5lZWRzIGJ1dCBzZXRzIHVzIHVwIGZvciB0aGUgZGVtYW5kcyBvZiB0b21vcnJvdy4gSG93IGRvIHdlIGRlc2lnbiBvdXIgc3lzdGVtcyBpbiBhIG1hbm5lciB0aGF0IGNhbiBhZGFwdCBhbmQgY2hhbmdlIHRvIHRoaW5ncyB0aGF0IGRvbuKAmXQgZXZlbiBleGlzdCB3aGVuIHdlIHN0YXJ0IGJ1aWxkaW5nIGl0PyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZXJlIGhhcyBiZWVuIGEgbG90IG9mIHRhbGsgaW4gcmVjZW50IHllYXJzIGFib3V0IGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGV2b2x2ZSBvciBtb3JlIGVhc2lseSBhZGFwdCB0byBjaGFuZ2UuIFRoZW4gd2Ugc3RhcnQgdG8gZGViYXRlIHRoZSBtZXJpdHMgb2YgdGhlc2UgYXJjaGl0ZWN0dXJlcyB1c2luZyBhIGxpbmUgb2YgdGhpbmtpbmcgdGhhdCBzdWdnZXN0cyB5b3UgYXJlIGNob29zaW5nIHRvIGhhdmUgYSDigJxNaWNyb3NlcnZpY2VzIEFyY2hpdGVjdHVyZeKAnSBvciBhbiDigJxFdmVudC1Ecml2ZW4gQXJjaGl0ZWN0dXJl4oCdIG9yIGEg4oCcU2VydmVybGVzcyBBcmNoaXRlY3R1cmUu4oCdIEkgd291bGQgcG9zaXQgdGhhdCB0aGlzIHR5cGUgb2YgZGVzY3JpcHRpb24gY3JlYXRlcyBhIGZhbHNlIHNlbnNlIG9mIGZpbmFsaXR5IHRoYXQgZG9lc27igJl0IGFjdHVhbGx5IGV4aXN0IGluIG1vc3QgcmVhbC13b3JsZCBzeXN0ZW1zLiZsdDsvcCZndDsKCiZsdDtwJmd0O091dHNpZGUgb2YgdGhlIHlvdW5nZXN0IG9mIHByb2plY3RzLCBpdOKAmXMgdW5saWtlbHkgdGhhdCB5b3UgY2FuIGRlc2NyaWJlIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCB5b3UgaGF2ZSB3aXRoIGFueSBzaW1wbGUgb25lLWxpbmVyLiBJdOKAmXMgbW9yZSBsaWtlbHkganVzdCDigJx5b3VyIGFyY2hpdGVjdHVyZSzigJ0gYW5kIGlmIHlvdeKAmXZlIGJlZW4gd29ya2luZyBvbiBpdCBmb3IgYW55IHNpZ25pZmljYW50IGFtb3VudCBvZiB0aW1lLCB5b3UgbWF5IGhhdmUgYXBwbGllZCBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0dGVybnMgYWxvbmcgdGhlIHdheSB0byBzb2x2ZSBzcGVjaWZpYyBwcm9ibGVtcy4gVGhlcmXigJlzIHByb2JhYmx5IGEgbW9ub2xpdGggc29tZXdoZXJlLCBzb21lIG51bWJlciBvZiBtaWNyb3NlcnZpY2VzLCBhIGZldyBldmVudHMsIGFuZCBhIHNlcnZlcmxlc3MgZWxlbWVudCBvciB0d28uIE9uIHRvcCBvZiBhbGwgdGhhdCwgeW91IG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YgdHJhbnNpdGlvbmluZyBzb21lIG9mIHRob3NlIHBpZWNlcyBmcm9tIG9uZSBwYXR0ZXJuIHRvIGFub3RoZXIuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0Rlc2lnbiBhcmNoaXRlY3R1cmUgdG8gc29sdmUgcHJvYmxlbXMmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gb2Z0ZW4gYXNrZWQgYnkgZm9sa3Mgd2hpY2ggYXJjaGl0ZWN0dXJlIHRoZXkgc2hvdWxkIGNob29zZSwgb3Igd2hlbiB0aGV5IHNob3VsZCBzd2l0Y2ggZnJvbSBvbmUgdG8gYW5vdGhlci4gSSBoYXZlIGEgZ3JlYXQgdGVuZGVuY3kgdG8gZGlzYXBwb2ludCB3aXRoIGFuc3dlcnMgbGlrZSDigJx3aGF0IHByb2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gc29sdmU/4oCdJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28sIHdoYXQgJmx0O3N0cm9uZyZndDtzaG91bGQmbHQ7L3N0cm9uZyZndDsgeW91IGJlIHRoaW5raW5nIGFib3V0IGFzIHlvdXIgcHJvZHVjdCBldm9sdmVzIGFuZCB5b3VyIG5lZWRzIGFyZSBjaGFuZ2luZz8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGVyZSBhcmUgYSBsb3Qgb2YgYXBwcm9hY2hlcyB0aGF0IHdlIGNhbiB1c2UgdG8gZGVzaWduIHNvZnR3YXJlIGFuZCBzeXN0ZW1zIHRvIGJlIG1vcmUgcmVzaWxpZW50IHRvIGNoYW5nZS4gVGhlIGFsbHVyZSBvZiBub3QgaGF2aW5nIHRvIGRvIGNvbXBsZXggcmVmYWN0b3Jpbmcgb3IgcmVidWlsZGluZyBkb3duIHRoZSByb2FkIGxlYWRzIHVzIHRvIHdhbnQgdG8gZGVzaWduIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG93IGNvc3Qgb2YgY2hhbmdlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2hpbGUgZ2VuZXJhbGl6ZWQgYWJzdHJhY3Rpb25zIGFuZCByZXVzYWJsZSBjb21wb25lbnRzIGFyZSBhdCB0aGUgY29yZSBvZiByZWR1Y2luZyB0aGUgaW1wYWN0IG9mIGNoYW5nZSwgdGhleSBhcmUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Jsb2cuY29kaW5naG9ycm9yLmNvbS90aGUtZGVsdXNpb24tb2YtcmV1c2UvJnF1b3Q7Jmd0O2hhcmQgdG8gZ2V0IHJpZ2h0IGluIHRoZSBmaXJzdCBwbGFjZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0l04oCZcyBoYXJkIHRvIHByZWRpY3QgdGhlIGZ1dHVyZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtBdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHRlY2huaWNhbCBsYW5kc2NhcGUgaXMgY2hhbmdpbmcsIHlvdXIgYnVzaW5lc3MgYW5kIHlvdXIgb3JnYW5pemF0aW9uIGFyZSBib3RoIGV2b2x2aW5nIGFzIHdlbGwuIFRoZXNlIGJvdGggaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiB5b3VyIGFyY2hpdGVjdHVyYWwgZGVjaXNpb25zLiBUaGUgc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlIHRoYXQgeW91IGFyZSB1bmRlcmdvaW5nIHdpbGwgaW5mbHVlbmNlIHRoZSBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUgYmVzdCBzdWl0ZWQgdG8gYWJzb3JiIHRob3NlIGNoYW5nZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGVhcmx5IGRheXMgb2YgYSBwcm9qZWN0IG9yIGNvbXBhbnksIGl04oCZcyBwb3NzaWJsZSB0byBtYWtlIHN3ZWVwaW5nIGZ1bmRhbWVudGFsIHNoaWZ0cyBpbiB0aGUgb2JqZWN0aXZlLiBFeHRyZW1lLCBidXQgbm90IHVuY29tbW9uLCBleGFtcGxlcyBpbmNsdWRlIFRpbnkgU3BlY2sgYmVjb21pbmcgU2xhY2sgYW5kIE9kZW8gYmVjb21pbmcgVHdpdHRlci4gV2hlbiB0aGUgZG9tYWluIG9mIHlvdXIgYnVzaW5lc3MgY2FuIG1vdmUgdGhhdCBkcmFzdGljYWxseSwgdGhlIGNsZWFuIGJvdW5kYXJpZXMgb2YgeW91ciBEREQgbW9kZWwgYXJlIG91dCB0aGUgd2luZG93LiBJbiBhIHNldCBvZiBtaWNyb3NlcnZpY2VzLCB0aGVzZSBib3VuZGFyaWVzIHdpbGwgYmUgY29kaWZpZWQsIHNvIGlmIHlvdSBoYXZlIHRvIGN1dCB0aHJvdWdoIHRoZW0sIHlvdeKAmWxsIGxpa2VseSBiZSB0aGFua2Z1bCBmb3IgYSBtb3JlIHBsaWFibGUgbW9ub2xpdGguJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB5b3UgZmluZCBwcm9kdWN0IC8gbWFya2V0IGZpdCwgeW91ciBwcmlvcml0aWVzIHdpbGwgc2hpZnQgdG93YXJkcyBzdXBwb3J0aW5nIHlvdXIgcmFwaWQgZ3Jvd3RoLiBXaXRoIHN5c3RlbSBzY2FsZSBhcyBhIGRyaXZlciBvZiBjaGFuZ2UsIHRoZSBhYmlsaXR5IHRvIHJlc3BvbmQgdG8gY2hhbmdlIGlzIG9mdGVuIHRpZWQgdG8gdGhlIGluZGVwZW5kZW5jZSBvZiBzeXN0ZW1zIGJhc2VkIG9uIHRoZWlyIG9wZXJhdGlvbmFsIGNoYXJhY3RlcmlzdGljcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGF0IHNjYWxpbmcgcGhhc2UsIHlvdeKAmWxsIGhhdmUgYSBsYXJnZXIgb3JnYW5pemF0aW9uIGFuZCBmYXIgbW9yZSB0ZWFtcy4gSWYgeW914oCZcmUgbHVja3kgeW914oCZbGwgYmUgYmFjayB0byBzdXN0YWluYWJsZSBwcm9kdWN0IGV2b2x1dGlvbi4gVGhlbiB0aGUgY29zdCBvZiBjaGFuZ2Ugd2lsbCBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIGFtb3VudCBvZiBjcm9zcy10ZWFtIGNvb3JkaW5hdGlvbiByZXF1aXJlZCB0byBtYWtlIGEgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtoMiZndDtEZWZlciByZXNwb25zZSB0byBjaGFuZ2UmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7V2hlbiBhbiBpbmRpdmlkdWFsIG9yIHRlYW0gaGFzIGEgcHJvYmxlbSB0aGV54oCZcmUgdHJ5aW5nIHRvIHNvbHZlLCB0aGV5IGdlbmVyYWxseSBzdGFydCBvZmYgd2l0aCBhIHByZXR0eSBzaW1wbGUgZGlyZWN0aXZlIOKAkyBsZXTigJlzIGJ1aWxkIHRvIHNvbHZlIHRoYXQgcHJvYmxlbS4gV2hhdOKAmXMgdGhlIG1vc3QgZWZmZWN0aXZlIGFyY2hpdGVjdHVyZSB3ZSBjYW4gdXNlIHRvIGJ1aWxkIGEgdmlhYmxlIHByb2R1Y3QgYXQgdGhlIGxvd2VzdCBjb3N0PyBUaGlzIGlzIGdlbmVyYWxseSB0cnVlIHdoZXRoZXIgaXTigJlzIGEgc3RhcnR1cCBvciBhIGh1Z2UgbXVsdGluYXRpb25hbCBjb3Jwb3JhdGlvbi4gQSBuZXcgcHJvamVjdCB3aWxsIGJlIGJ1aWx0IG9uIGEgc3lzdGVtIHRoYXTigJlzIHJlbGF0aXZlbHkgbmV3LCBhbmQgd2lsbCBiZSB1bmxpa2VseSB0byBoYXZlIHByb2R1Y3QtbWFya2V0IGZpdCBiZWNhdXNlIHRoZSBjb21wYW55IHdvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCBpdHMgYnVzaW5lc3MgZG9tYWluIHlldCwgYW5kIHdvbuKAmXQga25vdyB3aGVyZSB0aGUgcHJpbWFyeSBzb3VyY2VzIG9mIGNoYW5nZSB3aWxsIGNvbWUgZnJvbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHNpdHVhdGlvbiwgZGVzaWduaW5nIGZvciBjaGFuZ2UgYmVjb21lcyBhIGxvdCBoYXJkZXIuIElmIGl04oCZcyBhIGxvdCBtb3JlIGV4cGVuc2l2ZSB0byBtYWtlIHRoaW5ncyByZXNpbGllbnQgdG8gY2hhbmdlIGFuZCB5b3UgY2Fu4oCZdCB0ZWxsIHlldCB3aGljaCBwYXJ0cyBvZiB5b3VyIHN5c3RlbSB3aWxsIGNoYW5nZSwgaG93IGRvIHlvdSBtYWtlIHRoZSBkZWNpc2lvbiBhYm91dCB3aGVyZSB0byBtYWtlIHRoYXQgaW52ZXN0bWVudD8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBjb3VudGVyaW50dWl0aXZlIGFzIGl0IG1heSBzb3VuZCwgdGhlIGFuc3dlciBpcyBwcm9iYWJseSBub3doZXJlLiBBdCBsZWFzdCBub3QgeWV0LiBJbnN0ZWFkIHdhdGNoIGNoYW5nZSBjbG9zZWx5IGFuZCBidWlsZCBpbiBhIHdheSB0aGF0IG1pbmltaXplcyB0aGUgY29zdCBvZiBiZWluZyB3cm9uZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiDigJwmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9zaG9wLm9yZWlsbHkuY29tL3Byb2R1Y3QvOTc4MDU5NjUyMjcwNC5kbyZxdW90OyZndDs5NyBUaGluZ3MgRXZlcnkgU29mdHdhcmUgQXJjaGl0ZWN0IFNob3VsZCBLbm93Jmx0Oy9hJmd0O+KAnSBLZXZsaW4gSGVubmV5LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbWVkaXVtLmNvbS9Aa2V2bGluaGVubmV5L2h0dHBzLW1lZGl1bS1jb20ta2V2bGluaGVubmV5LXVzZS11bmNlcnRhaW50eS1hcy1hLWRyaXZlci00OTNlYmViZDU3NWQmcXVvdDsmZ3Q7ZGVzY3JpYmVzIGFuIGltcG9ydGFudCBhcHByb2FjaCB0byB0aGlua2luZyBhYm91dCB1bmNlcnRhaW50eSZsdDsvYSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2Jsb2NrcXVvdGUmZ3Q7CiAgJmx0O3AmZ3Q74oCcVGhlIHByZXNlbmNlIG9mIHR3byBvcHRpb25zIGlzIGFuIGluZGljYXRvciB0aGF0IHlvdSBuZWVkIHRvIGNvbnNpZGVyIHVuY2VydGFpbnR5IGluIHRoZSBkZXNpZ24uIFVzZSB0aGUgdW5jZXJ0YWludHkgYXMgYSBkcml2ZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHlvdSBjYW4gZGVmZXIgY29tbWl0bWVudCB0byBkZXRhaWxzIGFuZCB3aGVyZSB5b3UgY2FuIHBhcnRpdGlvbiBhbmQgYWJzdHJhY3QgdG8gcmVkdWNlIHRoZSBzaWduaWZpY2FuY2Ugb2YgZGVzaWduIGRlY2lzaW9ucy4gSWYgeW91IGhhcmR3aXJlIHRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQsIHlvdeKAmXJlIG1vcmUgbGlrZWx5IHRvIGJlIHN0dWNrIHdpdGggaXQg4oCTIGluY2lkZW50YWwgZGVjaXNpb25zIGJlY29tZSBzaWduaWZpY2FudCBhbmQgdGhlIHNvZnRuZXNzIG9mIHRoZSBzb2Z0d2FyZSBoYXJkZW5zLuKAnSZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7VGhpcyBmcmFtaW5nIGlzIGdyZWF0IGZvciBleHBsaWNpdCBkZWNpc2lvbnMsIGJ1dCB3aGF0IGlmIHlvdSBkb27igJl0IGtub3cgeW914oCZcmUgbWFraW5nIGEgY2hvaWNlPyZsdDsvcCZndDsKCiZsdDtwJmd0O01hbnkgdGltZXMsIHRoZSBjaG9pY2UgaXNu4oCZdCBldmVuIHZpc2libGUgeWV0LCBidXQgd2lsbCByZXZlYWwgaXRzZWxmIGxhdGVyLiBJbiB0aGVzZSBzaXR1YXRpb25zLCB0aGUgYW5zd2VyIGlzIG5vdCB0byBvdmVyIGdlbmVyYWxpemUsIGJ1aWxkaW5nIGFic3RyYWN0aW9ucyBldmVyeXdoZXJlIGp1c3QgaW4gY2FzZS4gSW5zdGVhZCwga2VlcCB0aGluZ3MgYXMgc2ltcGxlIGFzIHBvc3NpYmxlIHNvIHlvdSBjYW4gdW5kZXJzdGFuZCB0aGVtIGxhdGVyIGlmIHlvdSBoYXZlIHRvIG1ha2UgYSBjaGFuZ2UuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O1NpbXBsaWNpdHkgbWFrZXMgaXQgZWFzaWVyIHRvIGFkYXB0IHRvIGNoYW5nZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZWFybHkgZGF5cywgdGhlIENpcmNsZUNJIGFwcGxpY2F0aW9uIHdhcyBhIG1vbm9saXRoIHRoYXQgdG9vayBhIGN1c3RvbWVy4oCZcyBidWlsZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRhdGEgYW5kIHB1c2hlZCBpdCBpbnRvIG9uZSBvZiBzZXZlcmFsIExYQyBjb250YWluZXJzLiBFdmVyeSBjb250YWluZXIgdGhhdCB3ZSBzcHVuIHVwIHdhcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgc2FtZSBpbWFnZSB0aGF0IGNvbnRhaW5lZCBldmVyeXRoaW5nIHRoYXQgd2UgdGhvdWdodCBhbnlvbmUgd291bGQgZXZlciB3YW50IGluIHRoZWlyIHRlc3QgZW52aXJvbm1lbnQuIEluIGhpbmRzaWdodCwgdGhpcyBzb3VuZHMgbGlrZSBhIHRlcnJpYmxlIGlkZWEsIGJ1dCBhdCB0aGUgdGltZSwgaXQgd2FzIGZhbnRhc3RpYy4gSXQgd2FzIHNpbXBsZSB0byBtYWludGFpbiBhbmQgc3VwcG9ydGVkIHRoZSBuZWVkcyBvZiBvdXIgZWFybHkgY3VzdG9tZXJzLCBtYW55IG9mIHdob20gd2VyZSBidWlsZGluZyBSYWlscyBtb25vbGl0aHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXMgdGltZSBwYXNzZWQgYW5kIG91ciBjdXN0b21lciBiYXNlIGdyZXcsIHNvIGRpZCB0aGUgZGl2ZXJzaXR5IG9mIHRoZWlyIG5lZWRzIGluIHRlcm1zIG9mIHRlc3QgZW52aXJvbm1lbnRzLiBVcGdyYWRlZCB2ZXJzaW9ucyBvZiB0aGVpciB1bmRlcmx5aW5nIGRhdGFiYXNlcywgbm92ZWwgbmV3IGRldmVsb3BtZW50IGZyYW1ld29ya3MsIGV2ZW4gbmV3IG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbnMgYmVjYW1lIG5lY2Vzc2FyeS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgb3JpZ2luYWwgY29udGFpbmVyIG1hbmFnZW1lbnQgaW4gQ2lyY2xlQ0kgd2FzbuKAmXQgZGVzaWduZWQgaW4gYSB3YXkgdGhhdCBhbGxvd2VkIHVzIHRvIGFkYXB0IGVhc2lseSB0byB0aGVzZSBjaGFuZ2luZyBuZWVkcy4gQnV0IGl0IHdhcyBmYWlybHkgc2ltcGxlLiBTbyB3aGVuIHdlIHNldCBvdXQgdG8gc29sdmUgdGhlc2UgcHJvYmxlbXMsIHdlIGtuZXcgd2hlcmUgdG8gc3BsaWNlIGluIGEgbmV3IGFwcHJvYWNoIGFuZCBpdCB3YXMgbWluaW1hbCB3b3JrIHRvIGVuYWJsZSB0aGF0IHNwbGljaW5nLiBXZSBhbHNvIGRpZG7igJl0IGhhdmUgdG8gdW5yYXZlbCBhIHBvb3IgZ2VuZXJhbGl6YXRpb24gdGhhdCBkaWRu4oCZdCBzdXBwb3J0IG91ciBuZXcgcHJvYmxlbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3aGlsZSBzZWVtaW5nbHkgc2ltcGxlLCB3ZSB3ZXJlIGZpdmUgeWVhcnMgaW50byBzdWNjZXNzZnVsIGdyb3d0aCBhcyBhIGNvbXBhbnkgbWVldGluZyB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycyBvbiB0aGF0IHNpbXBsZSBzeXN0ZW0gYmVmb3JlIG91ciBmaXJzdCBjdXN0b21lcnMgdGVzdGVkIGl0cyByZXBsYWNlbWVudC4gSW4gdGhvc2UgZml2ZSB5ZWFycywgRG9ja2VyIHdhcyBjcmVhdGVkLCBhcyB3YXMgSGFzaGlDb3Jw4oCZcyBOb21hZC4gQ29tYmluZWQsIHRob3NlIHRvb2xzIGVsaW1pbmF0ZWQgaHVnZSBwb3J0aW9ucyBvZiB0aGUgd29yayBuZWNlc3NhcnkgdG8gZ2V0IHRoZSBmbGV4aWJsZSBhbmQgc2NhbGFibGUgZW52aXJvbm1lbnRzIHRoYXQgd2Ugc3VwcG9ydCBmb3IgY3VzdG9tZXJzIHRvZGF5LiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28sIGFzIHdlIHJldG9vbGVkIHRoZSBzeXN0ZW0gdG8gYWRhcHQgdG8gdGhlIGNoYW5nZWQgbWFya2V0IHdlIHdlcmUgaW4gYSBwb3NpdGlvbiB0byBhc2sg4oCcSG93IGRvIHdlIGRvIHRoaXMgaW4gYSB3YXkgdGhhdCBiZXR0ZXIgcG9zaXRpb25zIHVzIGZvciBpbmNyZW1lbnRhbCBjaGFuZ2U/4oCdIEl0IHdvdWxkIGJlIGRpZmZpY3VsdCB0byBvdmVyc3RhdGUgaG93IG11Y2ggdmFsdWUgdGhhdCBmaXZlIHllYXJzIG9mIGV4cGVyaWVuY2UgcHJvdmlkZWQgd2hlbiBkZXNpZ25pbmcgYSBzb2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdCBzb3VuZHMgd2VpcmQgYW5kIGdyb3NzbHkgdW5mYWlyIHRvIHNheSB0aGlzLCBidXQgbW9zdCBvZiB0aGUgdGltZSB3ZSBkb27igJl0IGV2ZW4ga25vdyB0aGF0IHdl4oCZcmUgbWFraW5nIGEgbW9udW1lbnRhbCBkZXNpZ24gZGVjaXNpb24gYmVjYXVzZSB0aGUgYWx0ZXJuYXRlIHBhdGggaGFzbuKAmXQgc2hvd24gdXAgeWV0LiBIb3cgZG8geW91IGd1YXJkIGFnYWluc3QgdGhpcz8mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7RGVmZXIsIGRlZmVyLCBkZWZlciZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUaGUgY29ycmVjdCBzb2x1dGlvbnMgaGF2ZSBhIGhhYml0IG9mIHJldmVhbGluZyB0aGVtc2VsdmVzIGlmIHlvdSBjYW4gZmluZCBhIHdheSB0byB3YWl0IGxvbmcgZW5vdWdoLiBUZWNobm9sb2d5IGdhaW5zIHRyYWN0aW9uIG9yIGRpZXMuIElmIHlvdSBjaG9zZSBhIGNvbnRhaW5lciBvcmNoZXN0cmF0aW9uIGVuZ2luZSBpbiAyMDE2LCB0aGVyZeKAmXMgYSByb3VnaGx5IDIwJSBjaGFuY2UgdGhhdCB5b3Ugd291bGQgaGF2ZSBjaG9zZW4gS3ViZXJuZXRlcy4gVGhhdCBtZWFucyBieSB0aGUgYmVnaW5uaW5nIG9mIDIwMTgsIGFsbW9zdCA4MCUgb2YgY29tcGFuaWVzIHdlcmUgc3dpdGNoaW5nLiBUaG9zZSBhcmUgbm90IGdyZWF0IG9kZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28gZGVmZXJyaW5nIGNhbiBiZSBnb29kLiBEZWZlcnJpbmcgdG8gdGhlIHBvaW50IG9mIGNyZWF0aW5nIGEgY3Jpc2lzIGlzIG5vdC4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7VGhpbmsgbGlrZSBhIHByb2R1Y3QgbWFuYWdlciZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3VyIGFyY2hpdGVjdHVyZSBpcyBhIGxlYWt5IGFic3RyYWN0aW9uLiBXaGlsZSBDaXJjbGVDSSBpcyBwcm9iYWJseSBhbiBleHRyZW1lIGV4YW1wbGUgb2YgdGhpcyBjYXNlIGR1ZSB0byB0aGUgYWNjZXNzIG91ciBjdXN0b21lcnMgaGF2ZSB0byBzeXN0ZW1zIGluIG91ciBwbGF0Zm9ybSwgdGhlcmUgaXMgYWx3YXlzIHNvbWUgaW1wbGljYXRpb24gZm9yIGN1c3RvbWVycyBvZiB0aGUgZGVjaXNpb25zIHlvdSBtYWtlIGluIGRlZmluaW5nIHlvdXIgYXJjaGl0ZWN0dXJlLiBSZWNvZ25pemluZyB0aGlzIGltcGFjdCBhbmQgYmVpbmcgYWJsZSB0byBjb2hlcmVudGx5IGRpc2N1c3MgYXBwcm9hY2hlcyBhbmQgYWx0ZXJuYXRpdmVzIGlzIGEgaHVnZSBhc3NldCB0aGF0IGFuIGVuZ2luZWVyIGNhbiBicmluZyB0byB0aGVpciBQTSBhbmQgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaGlsZSB3ZSB3ZXJlIHdpdG5lc3NpbmcgYWxsIG9mIHRoaXMgY2hhbmdlIGluIGhvdyBvdXIgY3VzdG9tZXJzIHdlcmUgYnVpbGRpbmcgc29mdHdhcmUsIG9uZSB0aGluZyB3ZSBpZ25vcmVkIGZvciB0b28gbG9uZyB3YXMgdGhlIHJpc2Ugb2YgRG9ja2VyLiBEb2NrZXIgZGlkbuKAmXQgZXZlbiBleGlzdCB3aGVuIENpcmNsZUNJIHN0YXJ0ZWQgaW4gMjAxMSwgdGhlbiBieSAyMDE0IGl0IHdhcyBldmVyeXdoZXJlLiBNYW55IG9mIG91ciBjdXN0b21lcnMgaGFkIHN0YXJ0ZWQgYnVpbGRpbmcgRG9ja2VyIGltYWdlcyBhcyBwYXJ0IG9mIHRoZWlyIGJ1aWxkIHRvIHByZXBhcmUgZm9yIGRlcGxveS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtEb2NrZXIgd2FzIG9yaWdpbmFsbHkgYnVpbHQgb24gdG9wIG9mIExYQywgYW5kIHRoYXQgbWVhbnQgaW4gdGhvc2UgZWFybHkgZGF5cyB3ZSBjb3VsZCBzdXBwb3J0IHRoZSB1c2Ugb2YgRG9ja2VyIGNvbW1hbmRzIHRvIGJ1aWxkIGltYWdlcyBhbmQgcHVzaCB0aGVtIHRvIHJlcG9zaXRvcmllcyBhbGwgaW5zaWRlIG9mIG9uZSBvZiBvdXIgTFhDIGNvbnRhaW5lcnMuIEluIDIwMTQsIERvY2tlciBsYXVuY2hlZCBzb21ldGhpbmcgY2FsbGVkIGxpYmNvbnRhaW5lciBhbmQgdGhleSBwdWxsZWQgYXBhcnQgdGhlIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBzeXN0ZW0gYW5kIGNyZWF0ZWQgZXhlY3V0aW9uIGRyaXZlcnMsIHdoaWNoIHNvb24gbGVkIHRvIHRoZSBkZXByZWNhdGlvbiBvZiB0aGUgTFhDIGRyaXZlci4gRGlzYXBwb2ludGluZywgYnV0IGl0IHN0aWxsIHdvcmtlZC4gVGhlbiBEb2NrZXIgZGVsZXRlZCBhbGwgTFhDIHN1cHBvcnQuIFRoYXQgd2FzIGJhZC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QWx3YXlzIHRoaW5rIGFib3V0IHVzZXJzJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVycyBhbmQgYXJjaGl0ZWN0cywgd2Ugc2F3IHRoaXMgY29taW5nLCBhbmQgZnJhbmtseSwgaXQgd2FzIHVuZGVyIHRoZSByYWRhciBvZiBvdXIgcHJvZHVjdCB0ZWFtLiBPdXIgbm9uLXRlY2huaWNhbCBwcm9kdWN0IGZvbGtzIGRpZG7igJl0IG5lY2Vzc2FyaWx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBidXQgb3VyIGVuZ2luZWVycyB3ZXJlIHRhbGtpbmcgYWJvdXQgaXQgZXZlcnkgZGF5LiBTbyBhcyBhbiBlbmdpbmVlciwgYW4gYXJjaGl0ZWN0LCBvciBhIGxlYWRlciBpbiB0ZWNobm9sb2d5LCB5b3UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBwcm9kdWN0IGFuZCB3b3JraW5nIHdpdGggeW91ciBwcm9kdWN0IG1hbmFnZXJzIHRvIGVuc3VyZSBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGUgaW1wbGljYXRpb25zIG9mIHRlY2huaWNhbCBjaG9pY2VzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0l04oCZcyBpbXBvcnRhbnQgdG8gc2VwYXJhdGUgdGhpcyBkaXNjdXNzaW9uIGZyb20gdGVjaG5pY2FsIGludmVzdG1lbnRzLiBUaGVyZSBpcyBhYnNvbHV0ZWx5IGEgcGxhY2UgZm9yIHRoaXMgdHlwZSBvZiBpbnZlc3RtZW50LCBhbmQsIGFuIGFyZ3VtZW50IHRoYXQgZnJhbWluZyB0aGVzZSBpbnZlc3RtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB5b3UgZnJhbWUgcHJvZHVjdCBpbnZlc3RtZW50cyBtYWtlcyBpdCBtdWNoIGVhc2llciB0byBtYWtlIHRyYWRlb2ZmIGRlY2lzaW9ucy4gSG93ZXZlciwgaWRlbnRpZnlpbmcgdGhlIGRpcmVjdGx5IGN1c3RvbWVyLXZpc2libGUgZmVhdHVyZSBpbXBhY3Qgb2YgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBtb3JlIGNvbW1vbmx5IGRpc2N1c3NlZCBpbXBhY3RzIG9mIGNvc3QsIHBlcmZvcm1hbmNlLCBzZWN1cml0eSwgZXRjLiZsdDsvcCZndDsKCiZsdDtwJmd0O0J1aWxkaW5nIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHlvdXIgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgdmFsdWUgYWNoaWV2ZWQgYnkgeW91ciBjdXN0b21lcnMgd2lsbCBwdXQgeW91IGluIGEgcG9zaXRpb24gdG8gbWFrZSBtb3JlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB3aGF0IGFuZCBob3cgdG8gYnVpbGQgYXMgeW91ciBidXNpbmVzcyBldm9sdmVzLiBUaGVuIHlvdSBjYW4gZm9jdXMgb24gZ2V0dGluZyBhaGVhZCBvZiB0aGF0IGV2b2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7S2VlcCB5b3VyIGhlYWQgdXAmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gQ2FuYWRpYW4gYW5kLCB1bnN1cnByaXNpbmdseSwgSSBncmV3IHVwIHBsYXlpbmcgaWNlIGhvY2tleS4gVGhyb3VnaG91dCBteSBjaGlsZGhvb2QsIEkgc3BlbnQgYW4gZW5kbGVzcyBhbW91bnQgb2YgdGltZSBhdCBwcmFjdGljZSBqdXN0IHNrYXRpbmc6IGZvcndhcmRzLCBiYWNrd2FyZHMsIHR1cm5pbmcsIHN0b3BwaW5nLCBmaWd1cmUgZWlnaHRzIGFyb3VuZCBjb25lcy4gVGhlbiBjYW1lIHN0aWNrIGhhbmRsaW5nLiBUaGUgaWRlYSB3YXMgdG8gaGF2ZSB0aGUgbW92ZW1lbnQgb24gdGhlIGljZSBiZWNvbWUgc2Vjb25kIG5hdHVyZSBzbyBJIGNvdWxkIGZvY3VzIG9uIHdoYXQgcmVhbGx5IG1hdHRlcmVkOiBzZWVpbmcgdGhlIHBsYXkgZGV2ZWxvcCwgZ2V0dGluZyBpbnRvIHNwYWNlLCBhbmQgdHJ5aW5nIHRvIHNjb3JlLiBNYWtlIHRoZSBmdW5kYW1lbnRhbHMgYWxtb3N0IGVmZm9ydGxlc3Mgc28geW91IGNhbiBwdXQgeW91ciBlbmVyZ3kgaW50byB0aGUgbm92ZWwgc3R1ZmYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gc29mdHdhcmUsIHdlIGhhdmUgYSBiYWQgdGVuZGVuY3kgdG8gbWFrZSB0aGUgZnVuZGFtZW50YWxzIGEgbG90IGhhcmRlciB0aGFuIHRoZXkgc2hvdWxkIGJlIGJ5IGFkb3B0aW5nIG5ldyB0ZWNobm9sb2d5IHRoYXQgd2UgdGhpbmsgaXMgZ29pbmcgdG8gYmUgZ2FtZSBjaGFuZ2luZywgYnV0IGVuZHMgdXAgaGF2aW5nIG1vZGVzdCB1cHNpZGUgaWYgYW55LiBUbyBtYWtlIHRoaW5ncyB3b3JzZSwgdGhlIGRvd25zaWRlIGlzIG9mdGVuIHVuYm91bmRlZCBhcyB3ZSBnZXQgb3VyIHRlYW1zIHVwIHRoZSBsZWFybmluZyBjdXJ2ZSwgZmluZCB1bnRlc3RlZCBlZGdlIGNhc2VzIGR1cmluZyBwcm9kdWN0aW9uIGluY2lkZW50cywgYW5kIGludmVudCBvdXIgb3duIOKAnGJlc3QgcHJhY3RpY2VzLuKAnSBBIHdvcmxkIHdoZXJlIFN0YWNrIE92ZXJmbG93IGhhcyBubyBhbnN3ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1doaWxlIHdl4oCZcmUgcHV0dGluZyB0aGlzIGVmZm9ydCBpbnRvIG91ciBub3ZlbCB0ZWNoLCB3ZeKAmXJlIG5vdCBmb2N1c2luZyBvbiBob3cgb3VyIHN5c3RlbXMgbmVlZCB0byBldm9sdmUgdG8gbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QSB0aW1lIHNpbXBsaWNpdHkgd291bGQgaGF2ZSBoZWxwZWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Q2lyY2xlQ0kgaXMgYSBDbG9qdXJlIHNob3AgYW5kLCBpbiBvdXIgZWFybHkgZGF5cywgd2UgZGVjaWRlZCB3ZeKAmWQgYmUgYmV0dGVyIGF0IGZyb250IGVuZCBkZXZlbG9wbWVudCBpZiB3ZSB1c2VkIHRoZSBzYW1lIGxhbmd1YWdlIHRoYXQgd2UgdXNlZCBpbiB0aGUgYmFja2VuZC4gU28gd2UgYWRvcHRlZCBPbSwgYSBDbG9qdXJlU2NyaXB0IHdyYXBwZXIgYXJvdW5kIFJlYWN0LiBBIGZldyB5ZWFycyBsYXRlciwgRGF2aWQgTm9sZW4sIHRoZSBwZXJzb24gd2hvIHN0YXJ0ZWQgT20sIGRlY2lkZWQgaGUgZGlkbuKAmXQgbGlrZSB0aGUgbW9kZWwgc28gaGUgcmVwbGFjZWQgaXQgd2l0aCBzb21ldGhpbmcgaW5jb21wYXRpYmxlIGNhbGxlZCBPbSBOZXh0LiBXZSB0cmllZCB0byBtaWdyYXRlIGluY3JlbWVudGFsbHkgdG8gT20gTmV4dCBhbmQgZW5kZWQgdXAgd2l0aCBhbiBvdmVybHkgY29tcGxleCBmcm9udGVuZCB3aXRoIHR3byBzdGF0ZSBtb2RlbHMgYW5kIG1hc3NpdmUgb3ZlcmhlYWQgdG8gZXZlcnkgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGVuZGVkIHVwIHJld3JpdGluZyBpdCBpbiBSZWFjdC4gSW4gcmV0cm9zcGVjdCwgT20gaGFkIGJvdGggaGlnaCByaXNrIGFuZCBoaWdoIGNvc3QgdG8gY2hhbmdlIGFuZCB3ZSBwYWlkIHRoZSBwcmljZS4gQW5kIHdlIHNwZW50IHRoYXQgdGltZSBsb29raW5nIGF0IG91ciBmZWV0LCBub3QgYWhlYWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm8gY29tcGFueSBoYXMgZXZlciB3b24gYmVjYXVzZSBvZiBhbiBhbWF6aW5nbHkgbm92ZWwgb3IgZXNvdGVyaWMgdGVjaG5vbG9neSBjaG9pY2UuIFRoZXJlIGlzIGFuIGVuZGxlc3MgbGlzdCwgaG93ZXZlciwgb2YgY29tcGFuaWVzIHRoYXQgaGF2ZSB3b24gYmVjYXVzZSB0aGV5IGNhbiBtb3ZlIHF1aWNrbHkgYW5kIHdpdGggYWdpbGl0eSwgYWRhcHRpbmcgdG8gY2hhbmdlIGFzIGl0IGhhcHBlbnMuIFRlY2hub2xvZ3kgc2hvdWxkIGJlIGFuIGFjY2VsZXJhdG9yIGhlbHBpbmcgdXMgbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4gV2VsbC11bmRlcnN0b29kLCBwcm9kdWN0aW9uLXRlc3RlZCB0b29scyBhcmUgZmFyIG1vcmUgbGlrZWx5IHRvIGZpdCB0aGF0IGJpbGwuIEFzIG15IGNvbGxlYWd1ZSBCZWFyIHNheXMsIOKAnElmIGEgdG9vbCBpc27igJl0IGhlbHBpbmcsIGl04oCZcyBub3QgYSB0b29sLCBpdOKAmXMgYSBjaG9yZS4gRHJvcCBpdC7igJ0mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7Q29uY2x1c2lvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtVbmZvcmVzZWVuIGNoYW5nZSBpcyB0b3Atb2YtbWluZCBmb3Igc28gbWFueSBvZiB1cyByaWdodCBub3csIGFuZCBpdOKAmXMgbW9yZSBvYnZpb3VzIHRoYW4gZXZlciB0aGF0LCBpbiBidXNpbmVzcywgbm9ib2R5IGNhbiBwcmVkaWN0IHRoZSBmdXR1cmUuIEl04oCZcyBhIHNhZmUgYmV0IHRoYXQgZm9sa3MgYXQgR00gZGlkbuKAmXQgc3RhcnQgdGhlIHllYXIgdGhpbmtpbmcgYWJvdXQgaG93IHRvIHVzZSB0aGVpciBmYWN0b3JpZXMgdG8gbWFrZSB2ZW50aWxhdG9ycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWluZyBwcmVwYXJlZCB0byBhZGFwdCBpbiB0aGUgZmFjZSBvZiBjaGFuZ2UgcmVxdWlyZXMgdGhpbmtpbmcgYWJvdXQgY2hhbmdlIGFzIGEgZHJpdmVyIGluIGV2ZXJ5dGhpbmcgeW91IGRvLiBXYXRjaCBob3cgeW91ciBtYXJrZXQgaXMgY2hhbmdpbmcgYW5kIHJlZmxlY3Q9IG9uIGhvdyB0aGF0IGltcGFjdHMgeW91ciBhcmNoaXRlY3R1cmUgc28gdGhhdCB5b3UgY2FuIG1ha2UgdGFyZ2V0ZWQsIGluY3JlbWVudGFsIGltcHJvdmVtZW50cyBpbiBpdHMgYWRhcHRhYmlsaXR5LiBUaGlzIHdpbGwgaGVscCBrZWVwIHlvdSBmb2N1c2VkIG9uIGV2b2x1dGlvbiB3aXRob3V0IHdhc3RpbmcgdGltZSBvciBtb25leSBvbiBhcmVhcyB0aGF0IHdvbuKAmXQgbmVlZCBpdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCbGFjayBTd2FuIGV2ZW50cyBhcmUgc28gdW51c3VhbCB0aGF0IHN0dWR5aW5nIHRoZSBzcGVjaWZpY3MgY2FuIGJlIGxvdyB2YWx1ZSwgYnV0IHRoZXkgcmVtaW5kIHVzIGhvdyBmYXIgcmVhbGl0eSBjYW4gYmUgZnJvbSBvdXIgcGxhbnMuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZW5naW5lZXJpbmcgbWFuYWdlcnMgY2FuIGVmZmVjdGl2ZWx5IHN1cHBvcnQgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWVuZ2luZWVyaW5nLW1hbmFnZXJzLWNhbi1lZmZlY3RpdmVseS1zdXBwb3J0LWVuZ2luZWVycy10ZWFtcy1hbmQtb3JnYW5pemF0aW9ucy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+V2VkLCAyOSBBcHIgMjAyMCAxNTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9ob3ctZW5naW5lZXJpbmctbWFuYWdlcnMtY2FuLWVmZmVjdGl2ZWx5LXN1cHBvcnQtZW5naW5lZXJzLXRlYW1zLWFuZC1vcmdhbml6YXRpb25zLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkxlbmEgUmVpbmhhcmQ8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIHR5cGljYWwgam9iIGRlc2NyaXB0aW9uIGZvciBtYW55IGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMgaXMgYWN0aW9uLXBhY2tlZC4gSXQgaXMgYSBtaXggb2YgaGFuZHMtb24gY29kaW5nLCB0ZWNobmljYWwgbGVhZGVyc2hpcCBhbmQgZGVjaXNpb24gbWFraW5nLCBwcm9jZXNzIGFuZCBwcm9qZWN0IG1hbmFnZW1lbnQsIHByb2R1Y3Qgb3ZlcnNpZ2h0LCBwZW9wbGUgbWFuYWdlbWVudCwgZmluZGluZyBhbmQgaGlyaW5nIHRhbGVudCDigKYgdGhlIGxpc3QgZ29lcyBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiBvdXIgd29yaywgd2UgZGVhbCB3aXRoIGJvdGggdGVjaG5pY2FsIGFuZCBwZW9wbGUgc3lzdGVtczogd2Ugc3VwcG9ydCBpbmRpdmlkdWFsIGVuZ2luZWVyc+KAmSBncm93dGg7IGhlbHAgdGVhbXMgYmVjb21lIHN1Y2Nlc3NmdWw7IGFuZCBtYWtlIHRoZSBvcmdhbml6YXRpb24gbW9yZSBwcm9kdWN0aXZlLCBmdW5jdGlvbmFsLCBhbmQgaW5ub3ZhdGl2ZS4gQWJvdmUgYWxsLCBhbiBlbmdpbmVlcmluZyBtYW5hZ2VyIGlzIGEgc2VydmljZSBvciBzdXBwb3J0IHJvbGUgYWNyb3NzIHRoZXNlIHZhcmlvdXMgbGF5ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1BlcmhhcHMgbW9zdCBmYXNjaW5hdGluZyBhbmQgZGlmZmljdWx0IGlzIHRoZSBoaWdoLWxldmVsIG9mIGFtYmlndWl0eSB0aGF0IGNvbWVzIHdpdGggZW5naW5lZXJpbmcgbWFuYWdlbWVudC4gTWFueSBwcm9ibGVtcyBvciBxdWVzdGlvbnMgZG9u4oCZdCBoYXZlIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLiBUaGVyZSBhcmVu4oCZdCBhYnNvbHV0ZSBhbnN3ZXJzIHRvIHdoYXQgaXQgbWVhbnMgdG8gYmUgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgZWl0aGVyLCBidXQgdGhlcmUgYXJlIGNlcnRhaW4gdmFsdWVzIGFuZCBndWlkZXBvc3RzIHRvIGZvbGxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgbG9vayBhdCB3aGF0IGNhbiBzaGFwZSBvdXIgdGhpbmtpbmcgYWJvdXQgb3VyIHJvbGUgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgYW5kIGhvdyB0byBlZmZlY3RpdmVseSBzdXBwb3J0IGluZGl2aWR1YWwgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1doYXQgZG8gZW5naW5lZXJzIG5lZWQgdG8gdGhyaXZlIGF0IHdvcms/Jmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SXQgaGVscHMgdG8gc3RhcnQgc2hhcGluZyBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IHJvbGVzIGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCBlbmdpbmVlcnMgbmVlZCwgYW5kIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGV5IHRocml2ZS4gUmVzZWFyY2ggZnJvbSBwZXJmb3JtYW5jZSBjb2FjaCBhbmQgdHJhaW5lciBQYWxvbWEgTWVkaW5hIGV4cG9zZXMgc2l4IGNvcmUgbmVlZHMgaHVtYW5zIGhhdmUgKGluY2x1ZGluZyBhdCB3b3JrKS4gU2hlIGNhbGxzIHRoaXMgcmVzZWFyY2ggdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGFsb21hbWVkaW5hLmNvbS9iaWNlcHMmcXVvdDsmZ3Q7QklDRVBTIG1vZGVsJmx0Oy9hJmd0OzombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7QmVsb25naW5nLiZsdDsvc3Ryb25nJmd0OyBBcyBodW1hbnMsIHdlIHN0cml2ZSB0byBiZSBwYXJ0IG9mIGEgY29tbXVuaXR5IG9mIGxpa2UtbWluZGVkIHBlb3BsZSB3aGVyZSB3ZSB1bmRlcnN0YW5kIGFuZCBzdXBwb3J0IGVhY2ggb3RoZXIuIFdlIGFsc28gd2FudCB0byBmZWVsIGFzIGlmIHdlIGFyZSBub3QgYmVpbmcgZGlzY3JpbWluYXRlZCBhZ2FpbnN0IG9yIG1hcmdpbmFsaXplZC4gQmVsb25naW5nIGlzIHJlYWxseSBpbXBvcnRhbnQgdG8gbWUgcGVyc29uYWxseTogSSBsb3ZlIHdvcmtpbmcgYXMgcGFydCBvZiBhIGRpc3RyaWJ1dGVkIHRlYW0sIGJ1dCBJIGFsc28gcmVhbGx5IGVuam95IHNlZWluZyBwZW9wbGUgaW4gcGVyc29uIGV2ZXJ5IG9uY2UgaW4gYSB3aGlsZS4gSXQgbWFrZXMgbWUgZmVlbCBtb3JlIGNvbm5lY3RlZCB0byB0aGVtLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7SW1wcm92ZW1lbnQuJmx0Oy9zdHJvbmcmZ3Q7IFdlIGFsc28gc2VlayB0byBjb250aW51b3VzbHkgbGVhcm4sIGltcHJvdmUsIGFuZCBncm93IGluIGFyZWFzIHRoYXQgbWF0dGVyIHRvIHVzLCBhcyB3ZWxsIGFzIHRvIG91ciB0ZWFtIG9yIGNvbXBhbnkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtDaG9pY2UuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8gaGF2ZSBjaG9pY2UsIGNvbnRyb2wsIGFuZCBhdXRvbm9teSBvdmVyIGltcG9ydGFudCBwYXJ0cyBvZiBvdXIgbGl2ZXMuIEluIG9uZSBvZiBteSBwcmV2aW91cyByb2xlcywgSSB0b29rIG9uIGEgbG90IG9mIHdvcmsgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLiBCdXQgdWx0aW1hdGVseSwgdGhlIGNvbnRyb2wgSSBoYWQgb3ZlciBteSBkb21haW4gd2FzIGxpbWl0ZWQgZHVlIHRvIG9yZ2FuaXphdGlvbmFsIGlzc3VlcyDigJMgd2hpY2ggbGVkIG1lIHRvIGxlYXZlIHRoZSBjb21wYW55LiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7RXF1YWxpdHkuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8ga25vdyB0aGF0IG91ciBhY2Nlc3MgdG8gaW5mb3JtYXRpb24sIG1vbmV5LCB0aW1lLCBhbmQgb3RoZXIgcmVzb3VyY2VzIGlzIGZhaXIgYW5kIGVxdWFsIGZvciBldmVyeW9uZSDigJMgbm90IGp1c3QgZm9yIG91cnNlbHZlcywgYnV0IGFsc28gZm9yIHRoZSBwZW9wbGUgYXJvdW5kIHVzLiBFdmVyeW9uZeKAmXMgbmVlZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZXF1YWxseSBpbXBvcnRhbnQuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtQcmVkaWN0YWJpbGl0eS4mbHQ7L3N0cm9uZyZndDsgV2UgbG9vayBmb3IgY2VydGFpbnR5LCBzYWZldHksIGFuZCBzdGFiaWxpdHkgaW4gb3VyIGxpdmVzLiBXZSBhbHNvIHdhbnQgZ29hbHMsIHN0cmF0ZWd5LCBhbmQgZGlyZWN0aW9uIHRvIGJlIGNvbnNpc3RlbnQg4oCTIGFuZCB0byBub3QgY2hhbmdlIHRvbyBxdWlja2x5LiBJ4oCZdmUgYmVlbiBsZWFkaW5nIHRlYW1zIGluIGZhc3QtZ3Jvd2luZyBzdGFydHVwcyBmb3IgdGhlIGxhc3QgY291cGxlIG9mIHllYXJzLCBhbmQgd2hlbiB0aGVyZeKAmXMgYSBsb3Qgb2YgY2hhbmdlIGhhcHBlbmluZywgaXTigJlzIGEgY2hhbGxlbmdlIHRvIGluc3RpbGwgcHJlZGljdGFiaWxpdHkgaW4gdGVhbXMuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtTaWduaWZpY2FuY2UuJmx0Oy9zdHJvbmcmZ3Q7IERlZXAgZG93biwgYWxsIG9mIHVzIHNlZWsgbWVhbmluZywgaW1wb3J0YW5jZSwgYW5kIHN0YXR1cy4gV2UgYWxzbyB3YW50IHRvIGJlIGFwcHJlY2lhdGVkIGZvciBvdXIgd29yayBieSBwZW9wbGUgd2hvc2Ugb3BpbmlvbnMgbWVhbiBzb21ldGhpbmcgdG8gdXMuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0lmIG91ciBjb3JlIG5lZWRzIGFyZSB0aHJlYXRlbmVkLCBwZW9wbGUgcmVzb3J0IHRvIGZpZ2h0LW9yLWZsaWdodCBtb2RlcyBvZiByZWFjdGlvbiwgd2hpY2ggYXJlIHZlcnkgc3RyZXNzZnVsLiBUaGUgZmFpbHVyZSB0byBtZWV0IGNvcmUgbmVlZHMgaGFzIGhpZ2ggY29zdHMgZm9yIG9yZ2FuaXphdGlvbnMgYnkgaGFybWluZyBwZW9wbGUgb24gb3VyIHRlYW1zLiBTbyBob3cgY2FuIGVuZ2luZWVyaW5nIG1hbmFnZXJzIHB1dCB0aGUgQklDRVBTIG1vZGVsIGludG8gYWN0aW9uIHRvIGhlbHAgdGhlaXIgdGVhbXMgdGhyaXZlPyZsdDsvcCZndDsKCiZsdDtoMiZndDtVc2luZyB0cnVzdC1iYXNlZCByZWxhdGlvbnNoaXBzIHRvIGhlbHAgZW5naW5lZXJzIGdyb3cmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgZm91bmRhdGlvbiBvZiBiZWluZyBhIGdvb2QgZW5naW5lZXJpbmcgbWFuYWdlciBpcyBnZXR0aW5nIHRvIGtub3cgb3VyIHRlYW1tYXRlcyBhbmQgdW5kZXJzdGFuZGluZyB3aGF0IGlzIGltcG9ydGFudCB0byB0aGVtLiBIZXJlIGFyZSBhIGZldyBwbGFjZXMgdG8gc3RhcnQgYnVpbGRpbmcgdHJ1c3Qgd2l0aGluIHlvdXIgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0FzayBxdWVzdGlvbnMuJmx0Oy9zdHJvbmcmZ3Q7IE9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCB0b29scyBtYW5hZ2VycyBoYXZlIGlzIGFza2luZyBnb29kIHF1ZXN0aW9ucy4gVGhlIGJhc2lzIGZvciBkb2luZyBvdXIgam9icyB3ZWxsIGlzIGxpc3RlbmluZywgb2JzZXJ2aW5nLCB0YWtpbmcgbm90ZSBvZiB3aGF0IG1vdGl2YXRlcyBvdXIgdGVhbW1hdGVzLCBhbmQgcmVhbGx5IGRpZ2dpbmcgaW50byB0aGVpciByZXNwb25zZXMgdG8gb3VyIHF1ZXN0aW9ucy4gSSB1c3VhbGx5IGdhdGhlciBxdWVzdGlvbnMgYmVmb3JlIEkgbWVldCB3aXRoIG15IHRlYW1tYXRlcyBvbmUtb24tb25lLCBzbyBJIGFtIHByZXBhcmVkIGFuZCBJIGNhbiBndWlkZSB0aGUgY29udmVyc2F0aW9uIHRvd2FyZHMgdW5kZXJzdGFuZGluZyB0aGVtIGJldHRlci4gT3ZlciB0aW1lLCBJIGhhdmUgYnVpbHQgYSBraXQgb2Ygb25lLW9uLW9uZSBxdWVzdGlvbnMgdGhhdCBJIHB1bGwgb3V0IHdoZW4gSSBuZWVkIHNvbWUgaW5zcGlyYXRpb24gZm9yIHRoZXNlIGNvbnZlcnNhdGlvbnMuIEFza2luZyBxdWVzdGlvbnMgaGVscHMgdXMgYWRqdXN0IG91ciBsZWFkZXJzaGlwIHN0eWxlIHRvIHRoZSBwZW9wbGUgd2UgYXJlIGxlYWRpbmcuIEl0IGFsc28gZW5zdXJlcyB0aGF0IHRoZXkgZmVlbCB1bmRlcnN0b29kIGFuZCBoZWFyZCwgd2hpY2ggYXJlIHJlYWxseSBpbXBvcnRhbnQgcGlsbGFycyBvZiBpbmNsdXNpb24gYW5kIGJlbG9uZ2luZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0JlIGN1cmlvdXMuJmx0Oy9zdHJvbmcmZ3Q7IFBlb3BsZSBhcmUgZnVsbCBvZiBzdXJwcmlzZXMsIGFuZCBzb21ldGltZXMgb3VyIHRlYW1tYXRlc+KAmSByZWFjdGlvbnMgbWF5IGJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBleHBlY3RlZC4gSSBvbmNlIHJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIGVuZ2luZWVyIG9uIG15IHRlYW0gd2hvIHdhcyBkZWVwbHkgdXBzZXQgYWJvdXQgdGhlIHNwZWNpZmljIHdvcmRpbmcgdXNlZCBpbiBhIHByb2R1Y3QtcmVsZWFzZSBub3RlIHRvIGN1c3RvbWVycy4gQXQgZmlyc3QgSSBkaWQgbm90IHVuZGVyc3RhbmQgdGhlaXIgc3Ryb25nIHJlYWN0aW9uLiBCdXQgd2hlbiB3ZSB0YWxrZWQsIEkgbGVhcm5lZCB0aGUgZW5naW5lZXIgaGFkIGJlZW4gb3ZlcnJ1bGVkIGJ5IHNvbWVvbmUgd2l0aCBtb3JlIHBvd2VyLCBtYWtpbmcgdGhlbSBmZWVsIGhlbHBsZXNzLCBhbmQgdGhyZWF0ZW5pbmcgdGhlaXIgY29yZSBuZWVkIGZvciBjaG9pY2UgYW5kIGVxdWFsaXR5LiZsdDsvcCZndDsKCiZsdDtwJmd0O1doYXQgbWFuYWdlcnMgbWlnaHQgcGVyY2VpdmUgYXMgbm8gYmlnIGRlYWwgY2FuIGJlIGVub3Jtb3VzIHRocmVhdHMgdG8gb3RoZXIgcGVvcGxlLiBDYXNlcyB3aGVyZSB3ZeKAmXJlIHN1cnByaXNlZCBieSBvdXIgdGVhbW1hdGVz4oCZIHJlYWN0aW9ucyBhcmUgZ29vZCBvcHBvcnR1bml0aWVzIHRvIGZvY3VzIG9uIGh1bWFuLWNlbnRyaWMgcmVzcG9uc2VzLCBsaWtlIGdpdmluZyBwZW9wbGUgdGhlIG9wcG9ydHVuaXR5IHRvIHRhbGsgdGhyb3VnaCB0aGVpciBmZWVsaW5ncy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0Nvbm5lY3QgdG8gdGhlIGJpZ2dlciBwaWN0dXJlLiZsdDsvc3Ryb25nJmd0OyBDcmVhdGluZyBhbiBpbXBhY3QgaXMgYSB2ZXJ5IGdvb2QgbW90aXZhdG9yIGZvciBhbGwgb2YgdXMsIHNvIGhlbHBpbmcgZW5naW5lZXJzIHVuZGVyc3RhbmQgaG93IHRoZWlyIHdvcmsgY29ubmVjdHMgdG8gdGhlIGJpZ2dlciBwaWN0dXJlIChob3cgaXQgaGVscHMgdXNlcnMgb3Igc3VwcG9ydHMgb3RoZXIgdGVhbXMpIGlzIGFuIGV4dHJlbWVseSBpbXBvcnRhbnQgYW5kIHN0cmF0ZWdpYyBza2lsbCBmb3IgbWFuYWdlcnMuIFdoaWxlIGdvYWwtc2V0dGluZyBmcmFtZXdvcmtzIGxpa2UgT0tScyBjYW4gaGVscCwgaXQgaXMgYWxzbyBjcnVjaWFsIHRvIGFsaWduIGVuZ2luZWVyaW5nIGluaXRpYXRpdmVzIHdpdGggaGlnaGVyLWxldmVsIGdvYWxzLCBhbmQgY29ubmVjdCB0aGVtIGNsZWFybHkgd2l0aCB1c2VyIHZhbHVlLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7SW52b2x2ZSBlbmdpbmVlcnMgaW4gZGVjaXNpb24gbWFraW5nLiZsdDsvc3Ryb25nJmd0OyBGZWVsaW5nIHRoYXQgZGVjaXNpb25zIGFyZSBmYWlyIGFuZCBlcXVpdGFibGUgaXMgYW4gaW1wb3J0YW50IGNvbXBvbmVudCBvZiB0aGUgQklDRVBTIG1vZGVsLiBXaGVuIHdlIG1ha2UgZGVjaXNpb25zLCBpdCBpcyBoZWxwZnVsIHRvIGFzayBldmVyeW9uZSBmb3IgdGhlaXIgb3BpbmlvbnMgZmlyc3QsIGFuZCB0YWtlIHRoZWlyIG9waW5pb25zIGludG8gYWNjb3VudC4gSXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBnbyB3aXRoIHdoYXQgZXZlcnlvbmUgd2FudHMuIEJ1dCB3ZSBjYW4gc3RpbGwgZG8gYSBnb29kIGpvYiBhdCBjb250ZXh0dWFsaXppbmcgdGhlIGRlY2lzaW9ucyB3ZSBtYWtlLCBhbmQgaGVscGluZyBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IHRoZWlyIGZlZWRiYWNrIHdhcyBjb25zaWRlcmVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7R2l2ZSBmZWVkYmFjayBmb3IgZ3Jvd3RoLiZsdDsvc3Ryb25nJmd0OyBPbmUgb2YgdGhlIGJlc3QgdGhpbmdzIHdlIGdldCB0byBkbyBhcyBlbmdpbmVlcmluZyBtYW5hZ2VycyBpcyBzdXBwb3J0IGVuZ2luZWVyc+KAmSBncm93dGguIEdpdmUgZmVlZGJhY2sgcmVndWxhcmx5IHRvIGhlbHAgdGhlIHBlb3BsZSBvbiB5b3VyIHRlYW0gdW5kZXJzdGFuZCB3aGVyZSB0aGV5IGFyZSBhdCBhbmQgZ3JvdyDigJMgYnkgY291cnNlLWNvcnJlY3Rpbmcgd2hlcmUgbmVlZGVkLCBhcyB3ZWxsIGFzIGJ5IGRvaW5nIG1vcmUgaW4gdGhlIGFyZWFzIGluIHdoaWNoIHRoZXkgYXJlIGFscmVhZHkgZG9pbmcgZ3JlYXQuIE1hbmFnZXJzIG5lZWQgZmVlZGJhY2sgYXMgd2VsbDogaXTigJlzIGltcG9ydGFudCB0byByZWd1bGFybHkgYXNrIHlvdXIgdGVhbSBmb3IgZmVlZGJhY2sgc28geW91IGNhbiBtYWtlIGFkanVzdG1lbnRzLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Q29hY2ggZW5naW5lZXJzLiZsdDsvc3Ryb25nJmd0OyBDb2FjaGluZyBoZWxwcyBwZW9wbGUgZmluZCBhbnN3ZXJzIHRoZW1zZWx2ZXMsIGltcHJvdmVzIHRoZWlyIHByb2JsZW0tc29sdmluZyBhbmQgbGVhZGVyc2hpcCBza2lsbHMsIGFuZCBpbmNyZWFzZXMgbGVhcm5pbmcsIHJlc2lsaWVuY2UsIGFuZCBzZWxmLW1hbmFnZW1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTcG9uc29yIGVuZ2luZWVycy4mbHQ7L3N0cm9uZyZndDsgVGhpbmsgYmFjayBvbiB5b3VyIGNhcmVlciwgYW5kIHdoZXRoZXIgeW91IGhhdmUgaGFkIGEgbWVudG9yIHdobyBjb25uZWN0ZWQgeW91IHdpdGggc29tZW9uZSwgcHV0IHlvdXIgbmFtZSBmb3J3YXJkLCBhbmQgdXNlZCB0aGVpciBpbmZsdWVuY2UgdG8gbWFrZSBhIGRpZmZlcmVuY2UgaW4geW91ciBjYXJlZXIuIEJlIHRoYXQgcGVyc29uIGZvciBzb21lb25lIGVsc2U6IGludmVzdCBpbiB0aGVpciBncm93dGgsIGxpZnQgdGhlbSB1cCwgYW5kIHB1dCB5b3VyIHdlaWdodCBiZWhpbmQgdGhlaXIgc3VjY2Vzcy4gU3VwcG9ydGluZyB5b3VyIHRlYW3igJlzIHN1Y2Nlc3MgY2FuIG1ha2UgYSByZWFsIGRpZmZlcmVuY2UgZm9yIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhpcyBpcyB0aGUgZm91bmRhdGlvbiBvZiBvdXIgd29yayBhcyBlbmdpbmVlcmluZyBtYW5hZ2Vycy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RHJpdmluZyBhIGN1bHR1cmUgb2YgdHJ1c3QgYW5kIGNvbnRpbnVvdXMgaW1wcm92ZW1lbnQgb24gdGVhbXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgbmV4dCBpbXBvcnRhbnQgYnVpbGRpbmcgYmxvY2sgaW4gb3VyIHdvcmsgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgaXMgdGhlIHRlYW0uIEFjY29yZGluZyB0byByZXNlYXJjaCwgaGlnaC1wZXJmb3JtaW5nIHRlYW1zIG5lZWQgdGhlIGZvbGxvd2luZyBlbGVtZW50cy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7UHN5Y2hvbG9naWNhbCBzYWZldHkuJmx0Oy9zdHJvbmcmZ3Q7IFRoaXMgaXMgYWJvdXQgYmVsaWV2aW5nIHRoYXQgd2Ugd2lsbCBub3QgYmUgcmVqZWN0ZWQsIGFuZCBmZWVsaW5nIGZyZWUgdG8gZXhwcmVzcyBvdXIgd29yay1yZWxhdGVkIHRob3VnaHRzIGFuZCBmZWVsaW5ncyB0byB0aGUgcGVvcGxlIGFyb3VuZCB1cy4gSXQgYWxzbyBtZWFucyBiZWxpZXZpbmcgdGhhdCBvdGhlcnMgd29u4oCZdCB0aGluayBsZXNzIG9mIHVzIGlmIHdlIG1ha2UgYSB3ZWxsLWludGVudGlvbmVkIG1pc3Rha2Ugb3IgYXNrIGZvciBoZWxwLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7U3RydWN0dXJlIGFuZCBjbGFyaXR5LiZsdDsvc3Ryb25nJmd0OyBFdmVyeW9uZSBvbiB0aGUgdGVhbSBzaG91bGQgdW5kZXJzdGFuZCBleHBlY3RhdGlvbnMsIGdvYWxzLCBhbmQgYWNjb3VudGFiaWxpdHkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtNZWFuaW5nIGFuZCBpbXBhY3QuJmx0Oy9zdHJvbmcmZ3Q7IEhpZ2gtcGVyZm9ybWluZyB0ZWFtcyBmaW5kIGEgc2Vuc2Ugb2YgcHVycG9zZSBpbiB0aGVpciB3b3JrLCBhbmQga25vdyB0aGF0IHRoZWlyIHdvcmsgaGFzIGFuIGltcGFjdC4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7THVja2lseSBmb3IgbWFuYWdlcnMsIHRoaXMgcmVzZWFyY2ggbmVhdGx5IGFsaWducyB3aXRoIHRoZSBCSUNFUFMgbW9kZWwuIEFsbCBodW1hbiBjb3JlIG5lZWRzIGFyZSByZXByZXNlbnRlZCBhbmQgaGF2ZSBpbXBhY3QgYXQgdGhlIHRlYW0gbGV2ZWwgYXMgd2VsbC4gQnkgdW5kZXJzdGFuZGluZyBhbmQgcmVzcG9uZGluZyB0byBwZW9wbGXigJlzIG1vdGl2YXRpb25zLCBsZWFkZXJzIGNyZWF0ZSB0aGUgYmFzaXMgZm9yIHRlYW1zICB0byBleHByZXNzIHRoZW1zZWx2ZXMg4oCTIGFuZCBwcm92aWRlIHRoZSBzdHJ1Y3R1cmUsIG1lYW5pbmcsIGFuZCBpbXBhY3QgdGhleSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgdHJ1c3QuJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBmaXJzdCBzdGVwIGluIGNyZWF0aW5nIHN0cnVjdHVyZSBpcyBidWlsZGluZyByZWxhdGlvbnNoaXBzLiBGb3Igb3VyIGRpc3RyaWJ1dGVkIHRlYW1zIGF0IENpcmNsZUNJLCB3ZeKAmXZlIGJ1aWx0IGRpZmZlcmVudCBzdHJ1Y3R1cmVzIHRvIGhlbHAgdGVhbW1hdGVzIGRvIHRoYXQsIHN1Y2ggYXMgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucyBhbmQgZW5naW5lZXJpbmcgdGFsa3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTdHJ1Y3R1cmUgYXJvdW5kIGhvdyB3ZSBjb2xsYWJvcmF0ZS4mbHQ7L3N0cm9uZyZndDsgT3VyIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0kgaGFzIGRvdWJsZWQgaW4gc2l6ZSBmb3IgdGhyZWUgeWVhcnMgaW4gYSByb3cuIE92ZXIgdGhpcyB0aW1lLCB3ZeKAmXZlIG1vdmVkIHRvIGEgbW9yZSBzdHJlYW1saW5lZCBlbmdpbmVlcmluZyBkZWxpdmVyeSBwcm9jZXNzIGZvciBhbGwgdGVhbXMuIEJ1dCB3ZSBzdGlsbCBsZWF2ZSBpdCB0byB0aGUgdGVhbXMgdG8gZGVjaWRlIGhvdyB0byBpbXBsZW1lbnQgdCBkYXktdG8tZGF5IHByb2Nlc3NlcywgaW5jbHVkaW5nIGRhaWx5IHN0YW5kdXAgbWVldGluZ3MsIHBsYW5uaW5nIHNlc3Npb25zLCBvciBjb2xsYWJvcmF0aW9uLiBFdmVyeSB0ZWFtIGhhcyBzcGVjaWZpYyBuZWVkcywgYW5kIHRoZXkga25vdyBiZXN0IGhvdyB0byBhZGRyZXNzIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtSZW1vdmUgYmxvY2tlcnMuJmx0Oy9zdHJvbmcmZ3Q7IFN0cnVjdHVyZXMgY2FuIGFsc28gaGVscCBtaXRpZ2F0ZSB0aGUgaW1wYWN0IG9mIGdldHRpbmcgYmxvY2tlZCBhdCB3b3JrLiBXZSBhbGwga25vdyBob3cgZnJ1c3RyYXRpbmcgaXQgaXMgdG8gYmUgc3R1Y2suIFB1dHRpbmcgdXAgcGF0aHdheXMgdG8gaGVscCBwZW9wbGUgZ2V0IHVuYmxvY2tlZCBjYW4gYmUgcmVhbGx5IGltcG9ydGFudCDigJMgZm9yIGV4YW1wbGUsIHNldHRpbmcgdXAgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucywgaW52ZXN0aW5nIGluIHNlbGYtc2VydmUgaW5mb3JtYXRpb24gYWNjZXNzLCBzdXBwb3J0aW5nIGVhY2ggb3RoZXIgYWNyb3NzIHRlYW1zLCBwdXR0aW5nIHVwIGVzY2FsYXRpb24gcGF0aHMgZm9yIHBlb3BsZSB0byBnZXQgaGVscCB3aGVuIHRoZXkgbmVlZCBpdCwgb3IgaGVscGluZyBwZW9wbGUgc3VwcG9ydCBlYWNoIG90aGVyIHRocm91Z2gga25vd2xlZGdlLXNoYXJpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtDb250aW51b3VzbHkgaW1wcm92ZS4mbHQ7L3N0cm9uZyZndDsgV2UgY2FuIHVzZSByZXRyb3NwZWN0aXZlcyB0byBkaXNjdXNzIGFuZCBpbXByb3ZlIGhvdyB3ZSB3b3JrIHRvZ2V0aGVyLiBCbGFtZWxlc3MgcG9zdG1vcnRlbXMgYXJlIGFsc28gYSBncmVhdCB0b29sIHRvIGhlbHAgdW5kZXJzdGFuZCBwcm9ibGVtcyBhbmQgZHJpdmUgdG93YXJkcyBzb2x1dGlvbnMuIENvZGUgcmV2aWV3cywgbWVudG9yaW5nLCBvciBrbm93bGVkZ2Ugc2hhcmluZyBjYW4gaGVscCB0ZWFtIG1lbWJlcnMgbGVhcm4gZnJvbSBlYWNoIG90aGVyLiBUaGUgd2F5IHdlIHRhbGsgYWJvdXQgbGVhcm5pbmcgbWF0dGVycyDigJMgZXNwZWNpYWxseSB0aGUgd2F5IHdlIGRpc2N1c3MgbWlzdGFrZXMuIFRoZXNlIGRlY2lzaW9ucyB3aWxsIGZ1bmRhbWVudGFsbHkgc2hhcGUgdGhlIGN1bHR1cmUgb2Ygb3VyIHRlYW1zLCBhbmQgZGV0ZXJtaW5lIHdoZXRoZXIgcGVvcGxlIGZlZWwgc2FmZSBvciB0aHJlYXRlbmVkIGluIHRoZWlyIGNvcmUgbmVlZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtEcml2ZSB0b3dhcmQgYWxpZ25tZW50LiZsdDsvc3Ryb25nJmd0OyBDb21tdW5pY2F0ZSBzdHJhdGVneSwgZGlyZWN0aW9uLCBhbmQgcmVsZXZhbnQgdGFjdGljYWwgZGV0YWlscyB0byBvdXIgdGVhbXMg4oCTIGFuZCByZW1lbWJlciBpdOKAmXMgYWxtb3N0IGltcG9zc2libGUgdG8gb3Zlci1jb21tdW5pY2F0ZSB0aGVzZSBkZXRhaWxzLiBBbHdheXMgcmVwZWF0IHdoYXTigJlzIGltcG9ydGFudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBlbmdpbmVlcmluZyBtYW5hZ2Vycywgd2UgYXJlIGxpa2UgbW9ydGFyOiBXZSBjb25uZWN0IHN0cnVjdHVyZXMsIHRlYW1zLCBhbmQgcGVvcGxlLiBXZSBob2xkIHRoZW0gdG9nZXRoZXIsIGJ1dCBhbHNvIGlkZW50aWZ5IGFuZCBmaWxsIGdhcHMgYXMgbmVlZGVkLiBIYW5kbGluZyBhbWJpZ3VpdHkgaXMgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgZGlmZmljdWx0IGFzcGVjdHMgb2YgZW5naW5lZXJpbmcgbWFuYWdlbWVudC4uIEZvciBhIGxvdCBvZiB3b3JrIGluIG91ciBmaWVsZCwgdGhlcmUgYXJlIG5vIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLCBsZXQgYWxvbmUgcmVzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T3VyIHdvcmsgaXNu4oCZdCBzbyBtdWNoIGFib3V0IHVzOyBpdOKAmXMgYWJvdXQgdGhlIHBlb3BsZSwgdGVhbXMsIGFuZCBvcmdhbml6YXRpb25zIHdlIHN1cHBvcnQuIFdlIGJ1aWxkIHN0cnVjdHVyZXMgdG8gaGVscCBvdGhlcnMgc2hpbmUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1N1cHBvcnRpbmcgb3JnYW5pemF0aW9uYWwgY2hhbmdlJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7TGFzdGx5LCBjcmVhdGluZyBlbnZpcm9ubWVudHMgaW4gd2hpY2ggZW5naW5lZXJzIGNhbiB0aHJpdmUgaXMgYWJvdXQgc3VwcG9ydGluZyBvdXIgb3JnYW5pemF0aW9uLiBXZSBuZWVkIHRvIHVzZSBvdXIgcG93ZXIgYXMgbWFuYWdlcnMgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLCBubyBtYXR0ZXIgdGhlIHNpemUgb2Ygb3VyIGJ1c2luZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtBZHZvY2F0ZSBmb3IgY2hhbmdlLiZsdDsvc3Ryb25nJmd0OyBUbyBiZSBlZmZlY3RpdmUgYXMgbWFuYWdlcnMsIHdlIG5lZWQgdG8gcHVzaCBmb3Igb3JnYW5pemF0aW9uYWwgY2hhbmdlIHRvIGltcHJvdmUgdGhlIGxhcmdlciBzdHJ1Y3R1cmVzIGFyb3VuZCB1cy4gRm9yIGV4YW1wbGUsIHdlIG1heSBuZWVkIHRvIGFkdm9jYXRlIGZvciBtb3JlIGNsYXJpdHkgYXJvdW5kIGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMsIGhhdmUgY29udmVyc2F0aW9ucyBhYm91dCB3aGF0IGVuZ2luZWVyaW5nIG1hbmFnZW1lbnQgc2hvdWxkIGJlIGxpa2UgaW4gb3VyIGNvbXBhbnksIGFuZCBkZXRlcm1pbmUgcmVxdWlyZW1lbnRzIGZvciBoaXJpbmcgZW5naW5lZXJpbmcgbWFuYWdlcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtNYW5hZ2UgdXAuJmx0Oy9zdHJvbmcmZ3Q7IE1hbmFnaW5nIG91ciBvd24gbWFuYWdlcnMgaXMgYSB1c2VmdWwgYnV0IGRpZmZpY3VsdCBza2lsbC4gRHJpdmluZyBvcmdhbml6YXRpb25hbCBjaGFuZ2UgYWxzbyBtZWFucyBtYWtpbmcgc3VyZSB0aGF0IG91ciBlbmdpbmVlcnPigJkgY29uY2VybnMgYXJlIGhlYXJkIGF0IHRoZSBoaWdoZXN0IGxldmVscywgYW5kIHRoYXQgd2UgdXNlIG91ciBwb3dlciB0byBtYWtlIHN1cmUgZW5naW5lZXJzIGhhdmUgYSB2b2ljZSBpbiB0aGUgcmVzdCBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgZnJhbWV3b3JrcyBhbmQgc3RhbmRhcmRzLiZsdDsvc3Ryb25nJmd0OyBXaGlsZSBpdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIG1ha2Ugcm9vbSBmb3IgaW5kaXZpZHVhbCBuZWVkcywgc3RydWN0dXJlcyBhbmQgZnJhbWV3b3JrcyBmb3IgbWFuYWdlcnMgaGVscCB1cyBob2xkIGVhY2ggb3RoZXIgYWNjb3VudGFibGUuIFRoZXkgYWxzbyAgaGVscCBsZXZlbCB0aGUgcGxheWluZyBmaWVsZCBhbmQgYnVpbGQgaW4gZXF1YWxpdHkgZm9yIHRoZSBwZW9wbGUgb24gb3VyIHRlYW1zLiBPbiBteSBjdXJyZW50IHRlYW0sIGV2ZXJ5IHF1YXJ0ZXIgd2UgcGljayBzb21lIGhpZ2gtcHJpb3JpdHkgcHJvamVjdHMgIHRvIGltcHJvdmUgaG93IHdlIHdvcmsgYXMgYW4gb3JnYW5pemF0aW9uLiBNb3N0IHJlY2VudGx5LCB3ZeKAmXZlIHdvcmtlZCBvbiBvdXIgaGlyaW5nIHByb2Nlc3MgYW5kIGluY2lkZW50IHJlbWVkaWF0aW9uOyBsYXN0IHllYXIsIHdlIGRldmVsb3BlZCBhbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvd2h5LXdlLXJlLWRlc2lnbmVkLW91ci1lbmdpbmVlcmluZy1jYXJlZXItcGF0aHMtYXQtY2lyY2xlY2kvJnF1b3Q7Jmd0O2ludGVybmFsIGNhcmVlciBncm93dGggZnJhbWV3b3JrIGZvciBlbmdpbmVlcnMmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtHcm93aW5nIGFzIGEgbGVhZGVyJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7QmVpbmcgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgaXNu4oCZdCBhbHdheXMgYSBzdHJhaWdodGZvcndhcmQgcGF0aDsgYSBsb3QgZGVwZW5kcyBvbiB3aGVyZSB3ZSBhcmUgYXQgaW4gb3VyIGNhcmVlcnMgYW5kIHdoZXJlIHdlIGFyZSBsb29raW5nIHRvIGdvLCBhcyB3ZWxsIGFzIHRoZSBncm93dGggc3RhZ2UsIHNpemUsIGFuZCBuZWVkcyBvZiBvdXIgb3JnYW5pemF0aW9ucy4gSW4gb3VyIGRhaWx5IHdvcmssIHdlIGhvbGQgdmFzdCBhbW91bnRzIG9mIHVuY2VydGFpbnR5IHdoaWxlIGFsc28gdHJ5aW5nIHRvIG1ha2UgcHJvZ3Jlc3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QW4gb3ZlcmFyY2hpbmcgdGhlbWUgaW4gbXkgd29yayBpbiBlbmdpbmVlcmluZyBtYW5hZ2VtZW50ICBoYXMgYmVlbiBncm93dGggYW5kIGltcHJvdmVtZW50LiBXZSByYXJlbHkgZGVhbCB3aXRoIGdyZWVuZmllbGQgcHJvamVjdHMgb3IgYXJlIGFibGUgdG8gYnVpbGQgYSB0ZWFtIG9yIGRlcGFydG1lbnQgZnJvbSBzY3JhdGNoLiBFdmVuIHdoZW4gd2UgZG8sIHdlIGJ1aWxkIG9uIGV4aXN0aW5nIHN0cnVjdHVyZXMgaW4gb3VyIG9yZ2FuaXphdGlvbi4gSSBiZWxpZXZlIG91ciBzdXBwb3J0aW5nIHJvbGUgbGFyZ2VseSBtZWFucyBoZWxwaW5nIGVuZ2luZWVycyBncm93LCBzdXBwb3J0aW5nIHRlYW1zIGF0IGNvbnRpbnVvdXNseSBsZWFybmluZywgYW5kIGhlbHBpbmcgb3JnYW5pemF0aW9ucyBiZWNvbWUgYmV0dGVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVyaW5nIG1hbmFnZXJzLCB3ZSBmcmVxdWVudGx5IGZhY2UgcXVlc3Rpb25zIHRoYXQgZG9u4oCZdCBjbGVhciByaWdodCBvciB3cm9uZyBhbnN3ZXJzLiBNYW55IHllYXJzIGFnbywgbXkgbGVhZGVyc2hpcCBjb2FjaCBlbmNvdXJhZ2VkIG1lIHRvIHVzZSB0aG9zZSBraW5kcyBvZiB1bmNlcnRhaW4gc2l0dWF0aW9ucyB0byBhc2sgbXlzZWxmLCDigJxXaGF0IGtpbmQgb2YgbGVhZGVyIGRvIEkgd2FudCB0byBiZT/igJ0mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJIHdhbnQgdG8gbGVhdmUgdGhlIGxhc3QgY2FsbCB0byBncm93dGggYW5kIGltcHJvdmVtZW50IHdpdGggeW91IChhbmQgbWUpOiBObyBtYXR0ZXIgd2hhdCB5b3VyIHJvbGUgb3IgY29tcGFueSBpcyBsaWtlLCB3b3JrIG9uIHNoYXBpbmcgeW91ciBhcHByb2FjaCB0byBlbmdpbmVlcmluZyBtYW5hZ2VtZW50LiBHZXQgdG8ga25vdyB0aGUgcGVvcGxlIHRoYXQgeW91IHdvcmsgd2l0aCwgYW5kIHVzZSBmZWVkYmFjayB0byBoZWxwIHRoZW0gY291cnNlLWNvcnJlY3QuIEJ1aWxkIHRlYW1zIHRoYXQgYXJlIHBzeWNob2xvZ2ljYWxseSBzYWZlIHBsYWNlcywgd2hlcmUgcGVvcGxlIGZpbmQgbWVhbmluZyBpbiBhIHNoYXJlZCBwdXJwb3NlLiBBbmQgdXNlIHlvdXIgcG93ZXIgYW5kIHByaXZpbGVnZSB0byBkcml2ZSBjaGFuZ2UgaW4geW91ciBvcmdhbml6YXRpb24uIE1ha2UgcGVvcGxlIHRoZSBjZW50ZXIgYW5kIGZvY3VzIG9mIHlvdXIgd29yaywgYW5kIGJ1aWxkIG9uIHRoYXQgZm91bmRhdGlvbiB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhleSBjYW4gdGhyaXZlLiAgQWx3YXlzIHB1c2ggdG8gY29udGludW91c2x5IGltcHJvdmUuIExlYWQgd2l0aCBodW1ibGVuZXNzLCBlbXBhdGh5LCBhbmQgbG90cyBvZiBjdXJpb3NpdHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2hhdCBraW5kIG9mIGxlYWRlciBkbyB5b3Ugd2FudCB0byBiZT8mbHQ7L3AmZ3Q7CgombHQ7aHIgLyZndDsKJmx0O3AmZ3Q7SWYgeW914oCZcmUgY3VyaW91cyBhYm91dCBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IGF0IENpcmNsZUNJIGFuZCB3b3JraW5nIHdpdGggdXM6IGpvaW4gdXMhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9ib2FyZHMuZ3JlZW5ob3VzZS5pby9jaXJjbGVjaSZxdW90OyZndDtXZeKAmXJlIGhpcmluZyBlbmdpbmVlcmluZyBtYW5hZ2VycyZsdDsvYSZndDsuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5CdWlsZGluZyBhbmQgZGVwbG95aW5nIEZsdXR0ZXIgYXBwcyB3aXRoIEZhc3RsYW5lPC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RlcGxveS1mbHV0dGVyLWFuZHJvaWQvPC9saW5rPgogICAgICAgIDxwdWJEYXRlPldlZCwgMjkgQXByIDIwMjAgMTA6MDA6MDAgLTA3MDA8L3B1YkRhdGU+CiAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9InRydWUiPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZGVwbG95LWZsdXR0ZXItYW5kcm9pZC88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5HYWJyaWVsIFNpbW1lcjwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvJnF1b3Q7Jmd0O0ZsdXR0ZXImbHQ7L2EmZ3Q7IGlzIGEgdG9vbGtpdCBwcm92aWRlZCBieSBHb29nbGUgZm9yIGJ1aWxkaW5nIGNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9ucywgaW5jbHVkaW5nIEFuZHJvaWQsIGlPUywgYW5kIHdlYiBhcHBzLiBBcyBtb3JlIGFwcHMgYXJlIHdyaXR0ZW4gdXNpbmcgaXQgYW5kIERhcnQgKHRoZSB1bmRlcmx5aW5nIGxhbmd1YWdlKSwgaXTigJlzIGJlY29taW5nIG1vcmUgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyBkZXZlbG9wZXJzIGNhbiBwYWNrYWdlIGFuZCBkZWxpdmVyIHRoZWlyIGNvZGUgdG8gdGhlaXIgdXNlcnMuIExldmVyYWdpbmcgQ2lyY2xlQ0kgYW5kIEZhc3RsYW5lLCB0aGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcHJvY2VzcyB0aGF0IGNhbiBiZSBhdXRvbWF0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbGluZyBGbHV0dGVyIGFuZCBjcmVhdGluZyB5b3VyIGZpcnN0IGFwcCBjYW4gYmUgZG9uZSBieSBmb2xsb3dpbmcgdGhlc2UgZ3VpZGVzOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvZG9jcy9nZXQtc3RhcnRlZC9pbnN0YWxsJnF1b3Q7Jmd0O0luc3RhbGwmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2ZsdXR0ZXIuZGV2L2RvY3MvZ2V0LXN0YXJ0ZWQvY29kZWxhYiZxdW90OyZndDtXcml0ZSB5b3VyIGZpcnN0IGFwcCZsdDsvYSZndDsuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBkZWZhdWx0IOKAnGhlbGxvIHdvcmxk4oCdIGFwcCB3aWxsIHN1ZmZpY2UuIFdlIHdvbuKAmXQgYmUgZGVhbGluZyBtdWNoIHdpdGggdGhlIGFwcGxpY2F0aW9uIGl0c2VsZi4gUHVzaCBpdCB0byBhIHJlcG9zaXRvcnkgb24gR2l0SHViLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Vuc3VyZSB0aGF0IHlvdSBhcmUgc2V0IHVwIHRvIHB1Ymxpc2ggYXBwcyB1c2luZyBHb29nbGUgUGxheSBvciB0aGUgQXBwbGUgQXBwIFN0b3JlIC0gc3RlcHMgZm9yIGVhY2ggd2lsbCB2YXJ5LCBzbyBiZSBzdXJlIHRvIGZvbGxvdyB0aGUgc3RlcHMgb3V0bGluZWQgZm9yIHRoZSByZXNwZWN0aXZlIHByb3ZpZGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBbmRyb2lkJmx0Oy9oMiZndDsKCiZsdDtwJmd0O1doZW4gcHVibGlzaGluZyBBbmRyb2lkIGFwcHMsIHRoZXJlIGFyZSBhIGZldyByZXF1aXJlbWVudHMgdG8gc2F0aXNmeSBiZWZvcmUgaW1wbGVtZW50aW5nIEZhc3RsYW5lLiBBbiDigJx1cGxvYWQga2V54oCdIGlzIHJlcXVpcmVkIHNvIHRoYXQgR29vZ2xlIGNhbiB2ZXJpZnkgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUgYXBwIGJlZm9yZSBhY2NlcHRpbmcgaXQuIFN0ZXBzIGZvciBzZXR0aW5nIHRoaXMgdXAgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9mbHV0dGVyLmRldi9kb2NzL2RlcGxveW1lbnQvYW5kcm9pZCZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oy4gSXTigJlzIHJlY29tbWVuZGVkIHRvIHVzZSBBcHBCdW5kbGVzIHdoZW4gYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBhcyBpdCBhbGxvd3MgR29vZ2xlIHRvIGJ1aWxkIGluZGl2aWR1YWwgQVBLcyBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyB3aGlsZSBrZWVwaW5nIGZpbGVzaXplIGRvd24uIFRha2Ugbm90ZSBvZiB3aGVyZSB5b3Ugc2F2ZSB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5qa3MmbHQ7L2NvZGUmZ3Q7IGZpbGUuIFdoaWxlIGl0IGNhbiBsaXZlIGluIHlvdXIgaG9tZSBkaXJlY3RvcnksIGhhdmluZyBpdCBzYXZlZCB0byBhIGdpdC1pZ25vcmVkIGRpcmVjdG9yeSBpbiB5b3VyIHByb2plY3Qgd2lsbCBjb21lIGluIGhhbmR5IHdoZW4gY29uZmlndXJpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1R3byB0aGluZ3MgZnJvbSB0aGlzIGd1aWRlIHdpbGwgbmVlZCB0byBiZSBhZGRlZCB0byBDaXJjbGVDSSBhcyAmbHQ7YSBocmVmPSZxdW90Oy9kb2NzLzIuMC9lbnYtdmFycy8mcXVvdDsmZ3Q7ZW52aW9ybm1lbnQgdmFyaWFibGVzJmx0Oy9hJmd0OzogdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlIGFuZCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7a2V5LmprcyZsdDsvY29kZSZndDsgZmlsZS4gVGhpcyB3aWxsIGFsbG93IHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBzaWduIHRoZSBhcHBsaWNhdGlvbi4gU2luY2Ugb25lIGZpbGUgcmVxdWlyZXMgbmV3bGluZXMgdG8gYmUgcHJlc2VudCwgYW5kIGFub3RoZXIgaXMgYSBiaW5hcnkgZmlsZSwgaXTigJlzIHJlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgYmFzZTY0LWVuY29kZWQgcHJpb3IgdG8gYWRkaW5nIHRoZW0gYXMgZW52aW9ybm1lbnQgdmFyaWFibGVzIHRvIHByZXNlcnZlIHRoZSBkYXRhLiZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBjYW4gZW5jb2RlIHRoZW0gYnkgcnVpbm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2F0ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7IHwgYmFzZTY0IC13IDAgIyAtdyAwIHdpbGwgZW5zdXJlIG5vIG5ld2xpbmVzIGFyZSBwcmVzZW50LgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBmaWxlcyBjYW4gdGhlbiBiZSByZS1hZGRlZCBkdXJpbmcgdGhlIGpvYiB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2VjaG8gJnF1b3Q7JEVOVl9WQVJJQUJMRV9OQU1FJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIGFsc28gd2FudCB0byBzZXQgdXAgYSBGYXN0bGFuZSBzZXJ2aWNlIGFjY291bnQgd2hpbGUgY3JlYXRpbmcgeW91ciBBbmRyb2lkIHNldHVwLiBZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5mYXN0bGFuZS50b29scy9nZXR0aW5nLXN0YXJ0ZWQvYW5kcm9pZC9zZXR1cC8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuIEJlIHN1cmUgdG8ga2VlcCB5b3VyIFNlcnZpY2UgQWNjb3VudCBKU09OIGZpbGUgaGFuZHkuIFdl4oCZbGwgYmUgYWRkaW5nIHRoYXQgdG8gdGhlIHBpcGVsaW5lIHNob3J0bHkuIEFsc28gbm90ZSB0aGF0IGNvbW1hbmRzIHNob3VsZCBiZSBydW4gZnJvbSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZCZsdDsvY29kZSZndDsgZGlyZWN0b3J5IHVuZGVyIHlvdXIgRmx1dHRlciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IHJlcXVpcmVkIGJ5IEZhc3RsYW5lIGNhbiBiZSBkb25lIGJ5IGFkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IEpTT04gZmlsZSBjb250ZW50cyBhcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IGVudmlvcm5tZW50IHZhcmlhYmxlLiBUaGlzIGlzIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1NVUFBMWV9KU09OX0tFWSZsdDsvY29kZSZndDsgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgYSBmaWxlIHBhdGggdG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0Zhc3RsYW5lJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05vdyB0aGF0IG91ciBlbnZpb3JubWVudCB2YXJpYWJsZXMgYXJlIGluIHBsYWNlIGFuZCB3ZSBjYW4gYnVpbGQgYSBzaWduZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LmFhYiZsdDsvY29kZSZndDsgZmlsZSB1c2luZyBGbHV0dGVyLCBpdOKAmXMgdGltZSB0byB0ZWxsIEZhc3RsYW5lIGhvdyB0byBkbyB0aGlzIGZvciB1cy4gV2XigJlsbCBzdGFydCB3aXRoIEFuZHJvaWQuIE9wZW5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZC9mYXN0bGFuZS9GYXN0ZmlsZSZsdDsvY29kZSZndDsgd2lsbCByZXZlYWwgc29tZSBkZWZhdWx0cyBmb3IgYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBidXQgdGhleSB3b27igJl0IHdvcmsgZm9yIG91ciB1c2UgY2FzZS4gV2XigJlyZSBidWlsZGluZyB3aXRoIEZsdXR0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rmlyc3QsIGxldOKAmXMgZGVmaW5lIGEgbmV3IOKAnGxhbmXigJ0uIFRoaXMgaXMgYSBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgRmFzdGxhbmUgd2lsbCBleGVjdXRlIHdoZW4gY2FsbGVkLiBGb3Igbm93LCB3ZeKAmWxsIGJlIHB1c2hpbmcgb3VyIGFwcCB0byB0aGUg4oCcYmV0YeKAnSBjaGFubmVsLCBub3QgdG8gcHJvZHVjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwoKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgaXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIGxhbmUuIE5leHQsIHdl4oCZbGwgd2FudCB0byBncmFiIGEgYnVpbGQgbnVtYmVyIHdoaWNoIGlzIGFuIGluY3JlbWVudGluZyBudW1iZXIgdXNlZCBhcyBhIHJlZmVyZW5jZSBmb3IgdGhlIHZlcnNpb24gb2YgdGhlIGFwcCAod2hpY2ggZGlmZmVycyBmcm9tIHRoZSB1c2VyLWZhY2luZyBzZW12ZXIpLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHRvIHRoZSBsYW5lOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ICBidWlsZF9udW1iZXIgPSBudW1iZXJfb2ZfY29tbWl0cygpCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgZW5zdXJlcyB0aGF0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZF9udW1iZXImbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0aGF0IGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBHaXQgcmVwb3NpdG9yeS4gVGhpcyBjYW4gYWxzbyBiZSBtYW51YWxseSBpbmNyZW1lbnRlZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVic3BlYy55YW1sJmx0Oy9jb2RlJmd0OyBmaWxlIHRoYXQgRmx1dHRlciB1c2VzIHRvIGJ1aWxkIHRoZSBwYWNrYWdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdl4oCZbGwgZG8gdGhlIGJ1aWxkaW5nLiBXZSBuZWVkIHRvIGdvIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5LCBydW4gYSBmZXcgc2hlbGwgY29tbWFuZHMgdG8gZmV0Y2ggb3VyIHBhY2thZ2VzLCBjbGVhbiB0aGUgcHJldmlvdXMgYnVpbGQgKGlmIGF2YWlsYWJsZSksIHRoZW4gYnVpbGQgdGhlIGFwcGJ1bmRsZSB3aXRoIG91ciBidWlsZCBudW1iZXIuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIERpci5jaGRpciAmcXVvdDsuLi8uLiZxdW90OyBkbwogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7cGFja2FnZXMmcXVvdDssICZxdW90O2dldCZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2NsZWFuJnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7YnVpbGQmcXVvdDssICZxdW90O2FwcGJ1bmRsZSZxdW90OywgJnF1b3Q7LS1idWlsZC1udW1iZXI9I3tidWlsZF9udW1iZXJ9JnF1b3Q7KQogIGVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtGaW5hbGx5LCB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYXBwIHN0b3JlIG9uIHRoZSBiZXRhIGNoYW5uZWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIHVwbG9hZF90b19wbGF5X3N0b3JlKHRyYWNrOiAnYmV0YScsIGFhYjogJy4uL2J1aWxkL2FwcC9vdXRwdXRzL2J1bmRsZS9yZWxlYXNlL2FwcC5hYWInKQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGxhbmUgd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwogIGJ1aWxkX251bWJlciA9IG51bWJlcl9vZl9jb21taXRzKCkKICBEaXIuY2hkaXIgJnF1b3Q7Li4vLi4mcXVvdDsgZG8KICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O3BhY2thZ2VzJnF1b3Q7LCAmcXVvdDtnZXQmcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtjbGVhbiZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2J1aWxkJnF1b3Q7LCAmcXVvdDthcHBidW5kbGUmcXVvdDssICZxdW90Oy0tYnVpbGQtbnVtYmVyPSN7YnVpbGRfbnVtYmVyfSZxdW90OykKICBlbmQKICB1cGxvYWRfdG9fcGxheV9zdG9yZSh0cmFjazogJ2JldGEnLCBhYWI6ICcuLi9idWlsZC9hcHAvb3V0cHV0cy9idW5kbGUvcmVsZWFzZS9hcHAuYWFiJykKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dvIGFoZWFkIGFuZCBzYXZlIHRoZSBmaWxlLCBhbmQgdGhlbiBydW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZmFzdGxhbmUgYmV0YSZsdDsvY29kZSZndDsuIEl0IHdpbGwgcnVuIHRocm91Z2ggdGhlIHN0ZXBzLCBidWlsZGluZyB0aGUgYXBwIGFuZCBwdXNoaW5nIHRoZSBhcHBsaWNhdGlvbiBmb3IgeW91LiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgd2XigJlsbCBkbyB0aGUgc2FtZSBmb3IgaU9TLCBidXQgcmVwbGFjaW5nIHNvbWUgb2YgdGhlIGNvbW1hbmRzIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBpT1MgY29tbWFuZHMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lvcy9GYXN0bGFuZSZsdDsvY29kZSZndDsgZGlyZWN0b3J5LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZGVzYyAmcXVvdDtEZXBsb3kgYSBuZXcgYnVpbGQgdG8gVGVzdGZsaWdodCZxdW90OwpsYW5lIDpiZXRhIGRvCiAgRGlyLmNoZGlyICZxdW90Oy4uLy4uJnF1b3Q7IGRvCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtwYWNrYWdlcyZxdW90OywgJnF1b3Q7Z2V0JnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7Y2xlYW4mcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtidWlsZCZxdW90OywgJnF1b3Q7aW9zJnF1b3Q7LCAmcXVvdDstLXJlbGVhc2UmcXVvdDssICZxdW90Oy0tbm8tY29kZXNpZ24mcXVvdDspCiAgZW5kCiAgYnVpbGRfaW9zX2FwcChzY2hlbWU6ICZxdW90O015QXBwJnF1b3Q7KQogIHVwbG9hZF90b190ZXN0ZmxpZ2h0CmVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhcHAgaXMgYnVpbHQgdHdpY2UuIFRoZSBmaXJzdCBidWlsZCBidWlsZHMgYWdhaW5zdCB0aGUgbGF0ZXN0IEZsdXR0ZXIgdG9vbGNoYWluLCB3aGlsZSB0aGUgc2Vjb25kIGJ1aWxkIGJ1aWxkcyB0aGUgYWN0dWFsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5pcGEmbHQ7L2NvZGUmZ3Q7IGZpbGUgdGhhdCB3aWxsIGJlIHVwbG9hZGVkIHRvIFRlc3RmbGlnaHQuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O05vdywgd2l0aCBDaXJjbGVDSSZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gcGxhY2UsIGl04oCZcyB0aW1lIHRvIGdldCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB3cml0dGVuIHNvIHRoYXQgYSBwdXNoIHRvIGEgYnJhbmNoIGlzIHRyYW5zbGF0ZWQgdG8gYSBuZXcgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7aU9TJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0ZvciBkZXBsb3lpbmcgd2l0aCBpT1MsIENpcmNsZUNJIGFscmVhZHkgaGFzIGRvY3MgdG8gY292ZXIgdGhpcyEgU3RlcHMgZm9yIHNldHRpbmcgdXAgRmFzdGxhbmUgZGVwbG95bWVudCB3aXRoIEZsdXR0ZXIgaXMgc2ltaWxhciB0byB0aGUgc3RlcHMgb3V0bGluZWQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvaW9zLWNvZGVzaWduaW5nLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OyBhbmQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZGVwbG95aW5nLWlvcy8jYXBwLXN0b3JlLWNvbm5lY3QmcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0FuZHJvaWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7V2hlbiBpdCBjb21lcyB0byB0aGUgRG9ja2VyIGltYWdlIHRvIHBpY2ssIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gRWl0aGVyIHlvdSBjYW4gYnVpbGQgYW5kIHB1c2ggdGhlIERvY2tlciBpbWFnZSB1c2VkIGJ5IHRoZSBGbHV0dGVyIHByb2plY3QgZm91bmQgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2Jsb2IvbWFzdGVyL2Rldi9jaS9kb2NrZXJfbGludXgvRG9ja2VyZmlsZSZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oywgb3IgeW91IGNhbiBwdWxsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dtZW1zdHIvZmx1dHRlci1mYXN0bGFuZTpsYXRlc3QmbHQ7L2NvZGUmZ3Q7LCB3aGljaCBpcyBidWlsdCBvbiB0b3Agb2YgYW4gZXhpc3RpbmcgRmx1dHRlciBEb2NrZXIgaW1hZ2UgYW5kIGluc3RhbGxzIEZhc3RsYW5lIGFsb25nc2lkZSBpdCwgYXZvaWRpbmcgYWRkaXRpb25hbCBvdmVyaGVhZCBvZiBpbnN0YWxsaW5nIGl0IGR1cmluZyBydW50aW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28gZW5zdXJlIHRoYXQgdGhlIGVudmlvcm5tZW50IHZhcmlhYmxlcyBtZW50aW9uZWQgZWFybGllciBhcmUgYWRkZWQgdG8geW91ciBwcm9qZWN0LiBOYW1lbHk6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQTEFZX1NUT1JFX1VQTE9BRF9LRVkmbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtrZXkuamtzJmx0Oy9jb2RlJmd0OyBmaWxlJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7UExBWV9TVE9SRV9VUExPQURfS0VZX0lORk8mbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCBmaWxlIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIGFuZCBvdGhlciBpbmZvIHJlZ2FyZGluZyB0aGUgdXBsb2FkIHNpZ25pbmcga2V5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IC0gWW91ciBHb29nbGUgU2VydmljZSBBY2NvdW50IEpTT04gc3RyaW5nIGZvciBhdXRoZW50aWNhdGlvbiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtJbiB5b3VyIHByb2plY3RzIHJvb3QsIGFkZCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLCBhbmQgaW4gdGhhdCBmb2xkZXIgYWRkIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y2lyY2xlY2kueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLiBBZGQgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSBuZXdseSBjcmVhdGVkIGZpbGU6Jmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7JwogIAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgc25pcHBldCBhYm92ZSBkZWZpbmVzIGFuIGV4ZWN1dG9yIHdlIGNhbiByZXVzZSBsYXRlciBpbiBvdXIgY29uZmlndXJhdGlvbiB0aGFua3MgdG8gdGhlIHVzZSBvZiByZXVzYWJsZSBjb25maWd1cmF0aW9uIGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYnMmbHQ7L2EmZ3Q7IGluIENpcmNsZUNJIDIuMS4gSXQgYWxzbyBpbmNsdWRlcyBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBlbnN1cmUgSmF2YSBkb2VzbuKAmXQgY29uc3VtZSBhbGwgb2Ygb3VyIG1lbW9yeSB3aGlsZSBidWlsZGluZyB0aGUgYXBwLiBOZXh0LCB3ZeKAmWxsIGRlZmluZSB0aGUgam9iIHdlIHdhbnQgdG8gcnVuIHRoZSBjb21tYW5kcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2pvYnM6CiAgYmV0YV9kZXBsb3k6CiAgICBleGVjdXRvcjogYW5kcm9pZC1mbHV0dGVyCiAgICBzdGVwczoKICAgICAgLSBjaGVja291dAogICAgICAtIHJ1bjogZWNobyAmcXVvdDskUExBWV9TVE9SRV9VUExPQURfS0VZJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGtleS5qa3MKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWV9JTkZPJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGFuZHJvaWQva2V5LnByb3BlcnRpZXMKICAgICAgLSBydW46IGNkIGFuZHJvaWQgJmFtcDthbXA7JmFtcDthbXA7IGZhc3RsYW5lIGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgd2XigJlsbCBkZWZpbmUgb3VyIHdvcmtmbG93IHdoaWNoIHdpbGwgb25seSBydW4gdGhlIGpvYiB3aGVuIHRoZSBuZXcgY29kZSBpcyBwdXNoZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2JldGEmbHQ7L2NvZGUmZ3Q7IGJyYW5jaC4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3dvcmtmbG93czoKICBkZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGJldGFfZGVwbG95OgogICAgICAgICAgZmlsdGVyczoKICAgICAgICAgICAgYnJhbmNoZXM6CiAgICAgICAgICAgICAgb25seTogYmV0YQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7Jwpqb2JzOgogIGJldGFfZGVwbG95OgogICAgZXhlY3V0b3I6IGFuZHJvaWQtZmx1dHRlcgogICAgc3RlcHM6CiAgICAgIC0gY2hlY2tvdXQKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWSZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBrZXkuamtzCiAgICAgIC0gcnVuOiBlY2hvICZxdW90OyRQTEFZX1NUT1JFX1VQTE9BRF9LRVlfSU5GTyZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBhbmRyb2lkL2tleS5wcm9wZXJ0aWVzCiAgICAgIC0gcnVuOiBjZCBhbmRyb2lkICZhbXA7YW1wOyZhbXA7YW1wOyBmYXN0bGFuZSBiZXRhCgp3b3JrZmxvd3M6CiAgZGVwbG95OgogICAgam9iczoKICAgICAgLSBiZXRhX2RlcGxveToKICAgICAgICAgIGZpbHRlcnM6CiAgICAgICAgICAgIGJyYW5jaGVzOgogICAgICAgICAgICAgIG9ubHk6IGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvcHJvamVjdHMvJnF1b3Q7Jmd0O1NldCB1cCB5b3VyIHByb2plY3Qgb24gQ2lyY2xlQ0kmbHQ7L2EmZ3Q7LiBPbmNlIHlvdSBjbGljayAmbHQ7c3Ryb25nJmd0O1NldCBVcCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7LCB5b3Ugd2lsbCBiZSBicm91Z2h0IHRvIGEgdGV4dCBlZGl0b3IgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBjb3B5IGluIHRoZSBjb25maWcgZnJvbSBhYm92ZS4gQ2xpY2sgJmx0O3N0cm9uZyZndDtTdGFydCBCdWlsZGluZyZsdDsvc3Ryb25nJmd0Oy4gTm93IGV2ZXJ5IG5ldyBjb21taXQgdG8gdGhlIGJldGEgYnJhbmNoIHdpbGwgcmVzdWx0IGluIGEgZGVwbG95LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIGFuIEV4cHJlc3MgR3JhcGhRTCBzZXJ2ZXIgdG8gSGVyb2t1PC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1hbi1leHByZXNzLWdyYXBocWwtc2VydmVyLXRvLWhlcm9rdS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VHVlLCAyOCBBcHIgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtYW4tZXhwcmVzcy1ncmFwaHFsLXNlcnZlci10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dyYXBocWwub3JnLyZxdW90OyZndDtHcmFwaFFMJmx0Oy9hJmd0OyBjb250aW51ZXMgdG8gZ3JvdyBpbiBwb3B1bGFyaXR5IHdpdGggZWFjaCBwYXNzaW5nIGRheSwgc2luY2UgaXRzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9lbmdpbmVlcmluZy5mYi5jb20vY29yZS1kYXRhL2dyYXBocWwtYS1kYXRhLXF1ZXJ5LWxhbmd1YWdlLyZxdW90OyZndDtwdWJsaWMgcmVsZWFzZSBieSBGYWNlYm9vayZsdDsvYSZndDsgaW4gMjAxNS4gVGhlIHRlY2hub2xvZ3kgZW5hYmxlcyBmcm9udCBlbmQgY2xpZW50cyB0byBxdWVyeSBleGFjdGx5IHdoYXQgdGhleSBuZWVkIGZyb20gdGhlIGJhY2tlbmQsIGFuZCBpcyBnYWluaW5nIHdpZGUgcmVjb2duaXRpb24gYW5kIGFkb3B0aW9uIGJ5IHJlcHV0YWJsZSBjb21wYW5pZXMgc3VjaCBhcyBQaW50ZXJlc3QsIENvdXJzZXJhLCBBaXJibmIsIGFuZCBGYWNlYm9vayBpdHNlbGYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBwb3N0LCB3ZSB3aWxsIGxlYXJuIGhvdyB0byBkZXBsb3kgYSBzaW1wbGUgR3JhcGhRTCBzZXJ2ZXIgd3JpdHRlbiBpbiBOb2RlLmpzIHRvIEhlcm9rdSB2aWEgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IChDSSkgcGlwZWxpbmUgdXNpbmcgQ2lyY2xlQ0kuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1ByZXJlcXVpc2l0ZXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUbyBmb2xsb3cgYWxvbmcgd2l0aCB0aGlzIHBvc3QsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhbHJlYWR5IHNldCB1cDombHQ7L3AmZ3Q7CiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL25vZGVqcy5vcmcvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlIC12Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsIHRvIHByaW50IG91dCB5b3VyIHZlcnNpb24gb2YgTm9kZS5qcyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdC1zY20uY29tLyZxdW90OyZndDtHaXQmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnaXQmbHQ7L2NvZGUmZ3Q7IG9uIHlvdXIgdGVybWluYWw7IHRoaXMgc2hvdWxkIHByaW50IG91dCBhdmFpbGFibGUgZ2l0IGNvbW1hbmRzKSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5oZXJva3UuY29tLyZxdW90OyZndDtIZXJva3UmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tLyZxdW90OyZndDtHaXRIdWImbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vc2lnbnVwLyZxdW90OyZndDtDaXJjbGVDSSZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDsjI1NjYWZmb2xkaW5nIHRoZSBHcmFwaFFMIHNlcnZlciBwcm9qZWN0ClRvIGJlZ2luIHNldHRpbmcgdXAgYSBHcmFwaFFMIHNlcnZlciwgY3JlYXRlIGEgbmV3IGZvbGRlciBmb3IgdGhlIHByb2plY3QgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtta2RpciBncmFwaHFsLXRlc3Qtc2VydmVyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7Tm93IGdvIGludG8gdGhlIHJvb3Qgb2YgdGhlIGZvbGRlciBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBzY2FmZm9sZCBhIG5ldyBOb2RlLmpzIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5pdCAteQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDtwJmd0O1RoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsteSZsdDsvY29kZSZndDsgb3B0aW9uYWwgZmxhZyBhbGxvd3MgeW91IHRvIHNraXAgY29uZmlybWluZyB0aGUgZGVmYXVsdCBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwYWNrYWdlLmpzb24mbHQ7L2NvZGUmZ3Q7IGZpbGUgYW5kIGp1c3QgYWNjZXB0cyB0aGVtLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGFyZSBnb2luZyB0byBjcmVhdGUgYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2V4cHJlc3Nqcy5jb20vJnF1b3Q7Jmd0O0V4cHJlc3NKUyZsdDsvYSZndDsgTm9kZS5qcyBhcHBsaWNhdGlvbiBhbmQgYnVpbGQgdGhlIEdyYXBoUUwgc2VydmVyLiBUbyBkbyB0aGlzLCB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIGZvbGxvd2luZyBwYWNrYWdlczombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2V4cHJlc3MmbHQ7L2NvZGUmZ3Q7OiB0byBjcmVhdGUgb3VyIEV4cHJlc3NKUyBOb2RlLmpzIGFwcGxpY2F0aW9uJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z3JhcGhxbCZsdDsvY29kZSZndDs6IHRoZSBHcmFwaFFMIG5wbSBwYWNrYWdlIGZvciBOb2RlLmpzJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OzogRXhwcmVzc0pTIG1pZGRsZXdhcmUgZm9yIEdyYXBoUUwmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbCB0aGVzZSBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBpbnN0YWxsIC0tc2F2ZSBleHByZXNzIGdyYXBocWwgZXhwcmVzcy1ncmFwaHFsCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIHRoZSByZXF1aXJlZCBwYWNrYWdlcyB0byBzdGFydCBwdXR0aW5nIHRvZ2V0aGVyIG91ciBHcmFwaFFMIHNlcnZlci4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgdGhlIEdyYXBoUUwgc2NoZW1hJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7Q3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bWtkaXIgc3JjCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1dpdGhpbiB0aGlzIGZvbGRlciwgY3JlYXRlIGEgbmV3IGZpbGUgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEuanMmbHQ7L2NvZGUmZ3Q7IGFuZCBwYXN0ZSBpbiB0aGUgY29kZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Owpjb25zdCB7IGJ1aWxkU2NoZW1hIH0gPSByZXF1aXJlKCZxdW90O2dyYXBocWwmcXVvdDspOwoKY29uc3Qgc2NoZW1hID0gYnVpbGRTY2hlbWEoYAogICAgdHlwZSBRdWVyeSB7CiAgICAgICAgdXNlcnM6IFtVc2VyIV0hLAogICAgICAgIHVzZXIoaWQ6IEludCEpOiBVc2VyIQogICAgfQoKICAgIHR5cGUgTXV0YXRpb24gewogICAgICAgIGVkaXRVc2VyKGlkOiBJbnQhLCBuYW1lOiBTdHJpbmchLCBlbWFpbDogU3RyaW5nISk6IFVzZXIhCiAgICB9CgogICAgdHlwZSBVc2VyIHsKICAgICAgICBpZDogSUQhCiAgICAgICAgbmFtZTogU3RyaW5nIQogICAgICAgIGVtYWlsOiBTdHJpbmcKICAgICAgICBwb3N0czogW1Bvc3QhXQogICAgfQoKICAgIHR5cGUgUG9zdCB7CiAgICAgICAgaWQ6IElEIQogICAgICAgIHRpdGxlOiBTdHJpbmchCiAgICAgICAgcHVibGlzaGVkOiBCb29sZWFuIQogICAgICAgIGxpbms6IFN0cmluZwogICAgfQpgKTsKCm1vZHVsZS5leHBvcnRzID0gc2NoZW1hOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBhYm92ZSBjb2RlLCB3ZSBoYXZlIGNyZWF0ZWQgZm91ciB0eXBlcywgY29uc2lzdGluZyBvZiB0d28gYnVpbHQtaW4gdHlwZXMgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7KSBhbmQgdHdvIGN1c3RvbSB0eXBlcyAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXNlciZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1Bvc3QmbHQ7L2NvZGUmZ3Q7KS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWdpbm5pbmcgd2l0aCB0aGUgY3VzdG9tIHR5cGVzLCB3ZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmc6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VyJmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHVzZXIgaW4gdGhlIGFwcGxpY2F0aW9uIHdpdGggaXRzIHJlc3BlY3RpdmUgZmllbGRzIGFuZCBhIHJlbGF0aW9uYWwgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cG9zdHMmbHQ7L2NvZGUmZ3Q7IGZpZWxkLCB3aGljaCByZXR1cm5zIGFuIGFycmF5IG9mIHBvc3RzIGNyZWF0ZWQgYnkgdGhlIHVzZXImbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQb3N0Jmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHB1YmxpY2F0aW9uIGNyZWF0ZWQgYnkgYSB1c2VyIGluIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGl0cyByZXNwZWN0aXZlIGZpZWxkcyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OzogaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyB0eXBlLCB3ZSBkZWZpbmVkIHR3byBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgcXVlcmllZCBmcm9tIG91ciBHcmFwaFFMIHNlcnZlciBhcyBmb2xsb3dzOgogICAgJmx0O3VsJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlcnMmbHQ7L2NvZGUmZ3Q7OiBhbiBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VycyZsdDsvY29kZSZndDsmbHQ7L2xpJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlciZsdDsvY29kZSZndDs6IGEgc2luZ2xlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1VzZXImbHQ7L2NvZGUmZ3Q7IHdpdGggdGhlIHNwZWNpZmllZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgaW4gdGhlIGFyZ3VtZW50cyBsaXN0Jmx0Oy9saSZndDsKICAgICZsdDsvdWwmZ3Q7CiAgJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7OiBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7IHR5cGUsIHdlIGRlZmluZWQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VkaXRVc2VyJmx0Oy9jb2RlJmd0OyBtdXRhdGlvbiwgd2hpY2gsIGdpdmVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgb2YgdGhlIHVzZXIsIGNhbiBiZSBjYWxsZWQgdG8gZWRpdCBhIHVzZXIgYW5kIHRoZW4gdXBkYXRlIHRoZSBpbmZvcm1hdGlvbiAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bmFtZSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VtYWlsJmx0Oy9jb2RlJmd0OykmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhlIHNjaGVtYSBpcyBjcmVhdGVkIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZFNjaGVtYSZsdDsvY29kZSZndDsgb2YgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dyYXBocWwmbHQ7L2NvZGUmZ3Q7IHBhY2thZ2UgYW5kIGV4cG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O01vY2tpbmcgZGF0YSZsdDsvaDImZ3Q7CiZsdDtwJmd0O0luIG9yZGVyIHRvIGhhdmUgcmVzdWx0cyBmb3Igb3VyIHF1ZXJpZXMsIHdlIG5lZWQgZGF0YS4gRm9yIHRoaXMgZXhlcmNpc2UsIHdlIHdpbGwgYmUgdXNpbmcgTW9uZ29EQi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIb3dldmVyLCBzaW5jZSB0aGUgZ29hbCBvZiB0aGlzIHBvc3QgaXMgdG8gZGVtb25zdHJhdGUgZGVwbG95aW5nIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyLCB3ZSB3b27igJl0IGJvdGhlciB3aXRoIHNldHRpbmcgdXAgYSBNb25nb0RCIHNlcnZlci4gSW5zdGVhZCwgd2Ugd2lsbCAgdXNlIGEgbW9ja2VkIHZlcnNpb24gdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O21vbmdvZGItbWVtb3J5LXNlcnZlciZsdDsvY29kZSZndDsuIFRoaXMgcGFja2FnZSBhbGxvd3MgdXMgdG8gY3JlYXRlIGFuZCB1c2UgYW4gaW4tbWVtb3J5IE1vbmdvREIgZGF0YWJhc2Ugc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHNldCB0aGlzIHVwLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhdCB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5zdGFsbCAtLXNhdmUgbW9uZ29kYiBtb25nb2RiLW1lbW9yeS1zZXJ2ZXIKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwombHQ7cCZndDtUaGlzIGluc3RhbGxhdGlvbiBtaWdodCB0YWtlIGEgd2hpbGUsIGRlcGVuZGluZyBvbiB5b3VyIGRvd25sb2FkIHNwZWVkLiBNb25nb0RCIHdhcyBhdCBsZWFzdCA2NiBtZWdhYnl0ZXMgaW4gc2l6ZSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhLmpzJmx0Oy9jb2RlJmd0OyBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3JjJmx0Oy9jb2RlJmd0OyBmb2xkZXIuIFRoaXMgZmlsZSB3aWxsIGV4cG9ydCBhbiBhcnJheSBvZiBoYXJkLWNvZGVkIHVzZXIgZGF0YS4gUGFzdGUgdGhlIGZvbGxvd2luZyBjb2RlIGJlbG93IGludG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBVc2VycyA9IFsKICB7CiAgICBpZDogMSwKICAgIG5hbWU6ICZxdW90O0Zpa2F5byBBZGVwb2p1JnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2ZpazRjaHJpc3RAeWFob28uY29tJnF1b3Q7LAogICAgcG9zdHM6IFsKICAgICAgewogICAgICAgIGlkOiAxLAogICAgICAgIHRpdGxlOiAmcXVvdDtDcmVhdGluZyBhbiBFbW9qaSBHYW1lIHdpdGggVnVlLCBBdXRoMCwgYW5kIEdvb2dsZSBWaXNpb24gQVBJJnF1b3Q7LAogICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSwKICAgICAgICBsaW5rOgogICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hdXRoMC5jb20vYmxvZy9jcmVhdGluZy1hbi1lbW9qaS1nYW1lLXdpdGgtdnVlLWF1dGgwLWFuZC1nb29nbGUtdmlzaW9uLWFwaS8mcXVvdDssCiAgICAgICAgYXV0aG9yOiAxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBpZDogMiwKICAgICAgICB0aXRsZTogJnF1b3Q7RWxlY3Ryb24gVHV0b3JpYWw6IEJ1aWxkaW5nIE1vZGVybiBEZXNrdG9wIEFwcHMgd2l0aCBWdWUuanMmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2F1dGgwLmNvbS9ibG9nL2VsZWN0cm9uLXR1dG9yaWFsLWJ1aWxkaW5nLW1vZGVybi1kZXNrdG9wLWFwcHMtd2l0aC12dWUtanMvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDMsCiAgICAgICAgdGl0bGU6ICZxdW90O1N0YXRlIE1hbmFnZW1lbnQgd2l0aCBWdWV4OiBhIFByYWN0aWNhbCBUdXRvcmlhbCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazoKICAgICAgICAgICZxdW90O2h0dHBzOi8vYXV0aDAuY29tL2Jsb2cvc3RhdGUtbWFuYWdlbWVudC13aXRoLXZ1ZXgtYS1wcmFjdGljYWwtdHV0b3JpYWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMiwKICAgIG5hbWU6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2pvaG5AY29tcGFueS5jb20mcXVvdDssCiAgICBwb3N0czogWwogICAgICB7CiAgICAgICAgaWQ6IDQsCiAgICAgICAgdGl0bGU6ICZxdW90O0J1aWxkIGEgQ0kgcG93ZXJlZCBSRVNUZnVsIEFQSSB3aXRoIExhcmF2ZWwmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2J1aWxkLWEtY2ktcG93ZXJlZC1yZXN0ZnVsLWFwaS13aXRoLWxhcmF2ZWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDUsCiAgICAgICAgdGl0bGU6ICZxdW90O0F1dG9tYXRlIHlvdXIgTnV4dC5qcyBhcHAgZGVwbG95bWVudCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazogJnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hdXRvbWF0ZS15b3VyLW51eHQtanMtYXBwLWRlcGxveW1lbnQvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMywKICAgIG5hbWU6ICZxdW90O0phbmUgUGF1bCZxdW90OywKICAgIGVtYWlsOiAmcXVvdDtqYW5lQGNvbXBhbnkuY29tJnF1b3Q7LAogICAgcG9zdHM6IFtdCiAgfQpdOwoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgVXNlcnMKfTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBjb2RlIGFib3ZlLCB3ZSBoYXZlIGFuIGFycmF5IG9mIHVzZXIgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgcG9zdHMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIHNlZWQgb3VyIGluLW1lbW9yeSBkYXRhYmFzZSBvbmNlIGl0IGlzIGluc3RhbnRpYXRlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCB0YXNrIGlzIHRvIHNldCB1cCBvdXIgbW9jayBNb25nb0RCIGRhdGFiYXNlIHNlcnZlci4gSW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhYmFzZS5qcyZsdDsvY29kZSZndDsgYW5kIGluc2VydCB0aGUgZm9sbG93aW5nIGNvZGUgaW50byB0aGUgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O01vbmdvTWVtb3J5U2VydmVyJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtyZXF1aXJlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtzMiZxdW90OyZndDsmcXVvdDttb25nb2RiLW1lbW9yeS1zZXJ2ZXImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O21vbmdvZGImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtjb25zdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bm8mcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90Oy4vZGF0YSZxdW90OyZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0Oyk7Jmx0Oy9zcGFuJmd0OwoKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7bGV0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDtudWxsJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXN5bmMmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7ZnVuY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25mJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoKSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDt7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7bmV3Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtNb25nb01lbW9yeVNlcnZlciZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygpOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtubyZxdW90OyZndDttb25nb0RCVVJMJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXdhaXQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7LiZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtnZXRDb25uZWN0aW9uU3RyaW5nJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3QmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvREJVUkwmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDssJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7CiAgICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDt1c2VOZXdVcmxQYXJzZXImbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs6Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDt0cnVlJmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSk7Jmx0Oy9zcGFuJmd0OwoKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtjMSZxdW90OyZndDsvL1NlZWQgRGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7CiAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtpZiZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7ISZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OykmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsKICAgICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RhdGFiYXNlJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RiJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbGxlY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O3VzZXJzJnF1b3Q7Jmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7aW5zZXJ0TWFueSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7VXNlcnMmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7CgogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7cmV0dXJuJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OzsmbHQ7L3NwYW4mZ3Q7CiZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vZHVsZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZXhwb3J0cyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtzdGFydERhdGFiYXNlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGNvZGUgYWJvdmUsIHdlIGV4cG9ydCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L2NvZGUmZ3Q7IGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBzdGFydHMgYSBuZXcgKG1vY2tlZCkgTW9uZ29EQiBzZXJ2ZXIgaW5zdGFuY2UgYW5kIGdldHMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuIEl0IHRoZW4gY3JlYXRlcyBhIG5ldyBNb25nb0RCIGNsaWVudCBjb25uZWN0aW9uIHVzaW5nIHRoZSBjb25uZWN0aW9uIHN0cmluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwgd2Ugc2VlZCBpdCB3aXRoIG91ciB1c2VyIGRhdGEgZXhwb3J0ZWQgZnJvbSBvdXIgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZGF0YS5qcyZsdDsvY29kZSZndDsgZmlsZS4gQSBjaGVjayBpcyBtYWRlIHRvIHNlZSBpZiB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIGlzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O251bGwmbHQ7L2NvZGUmZ3Q7IGJlZm9yZSBzZWVkaW5nIGl0IHdpdGggZGF0YSwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBmcm9tIGJlaW5nIGVudGVyZWQgaW50byB0aGUgZGF0YWJhc2UgZWFjaCB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdXAuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGRhdGFiYXNlIHJlZmVyZW5jZS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgb3VyIHJlc29sdmVycyZsdDsvaDImZ3Q7CiZsdDtwJmd0O05leHQgdXAsIHdlIG5lZWQgdG8gZGVmaW5lIHJlc29sdmVycyBmb3Igb3VyIEdyYXBoUUwgcXVlcmllcyBpbiBvcmRlciB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGRhdGEgZm9yIGVhY2ggcXVlcnkgb3BlcmF0aW9uLiBXZSB3aWxsIGRlZmluZSByZXNvbHZlcnMgZm9yIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt1c2VycyZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3VzZXImbHQ7L2NvZGUmZ3Q7IHF1ZXJpZXMgYW5kIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtlZGl0VXNlciZsdDsvY29kZSZndDsgbXV0YXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Jlc29sdmVycy5qcyZsdDsvY29kZSZndDsgYW5kIHBhc3RlIGluIHRoZSBmb2xsb3dpbmcgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IHJlc29sdmVycyA9IHsKICB1c2VyczogYXN5bmMgKF8sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIKICAgICAgLmNvbGxlY3Rpb24oJnF1b3Q7dXNlcnMmcXVvdDspCiAgICAgIC5maW5kKCkKICAgICAgLnRvQXJyYXkoKTsKICB9LAogIHVzZXI6IGFzeW5jICh7IGlkIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIuY29sbGVjdGlvbigmcXVvdDt1c2VycyZxdW90OykuZmluZE9uZSh7IGlkIH0pOwogIH0sCiAgLy9NdXRhdGlvbiByZXNvbHZlcnMKICBlZGl0VXNlcjogYXN5bmMgKHsgaWQsIG5hbWUsIGVtYWlsIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CgogICAgcmV0dXJuIGRiCiAgICAgIC5jb2xsZWN0aW9uKCZxdW90O3VzZXJzJnF1b3Q7KQogICAgICAuZmluZE9uZUFuZFVwZGF0ZSgKICAgICAgICB7IGlkIH0sCiAgICAgICAgeyAkc2V0OiB7IG5hbWUsIGVtYWlsIH0gfSwKICAgICAgICB7IHJldHVybk9yaWdpbmFsOiBmYWxzZSB9CiAgICAgICkKICAgICAgLnRoZW4ocmVzcCA9JmFtcDtndDsgcmVzcC52YWx1ZSk7CiAgfSAKfTsKCm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZXJzOwoKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgc2VlbiBhYm92ZSwgd2Ugbm93IGhhdmUgcmVzb2x2ZXJzIGZvciB0aGUgdGhyZWUgR3JhcGhRTCByZXF1ZXN0cyBhdmFpbGFibGUgb24gb3VyIHNlcnZlci4gVGhlc2UgcmVzb2x2ZXJzIGZldGNoIGFuZCB1cGRhdGUgZGF0YSB1c2luZyB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIHdlIGNyZWF0ZWQgZWFybGllciBieSByZWZlcmVuY2luZyBpdCBmcm9tIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb250ZXh0Jmx0Oy9jb2RlJmd0OyBvYmplY3Qgb2YgdGhlIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgcmVmZXJlbmNlIHdpbGwgYmUgYWRkZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbnRleHQmbHQ7L2NvZGUmZ3Q7IG9iamVjdCBvZiBvdXIgR3JhcGhRTCBzZXJ2ZXIgc2V0dXAgaW4gdGhlIG5leHQgc2VjdGlvbiB3aGVuIHdlIHB1dCBldmVyeXRoaW5nIHRvZ2V0aGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTZXR0aW5nIHVwIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O0l0IGlzIHRpbWUgdG8gcHV0IGV2ZXJ5IGNvbXBvbmVudCB3ZSBidWlsdCB0b2dldGhlciB0byBzZXQgdXAgb3VyIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlZm9yZSB3ZSBiZWdpbiwgd2UgbmVlZCB0byBpbnN0YWxsIG9uZSBtb3JlIHBhY2thZ2UuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIGNvbWVzIHdpdGggdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0dyYXBoaVFMJmx0Oy9jb2RlJmd0OyBhcHBsaWNhdGlvbiwgd2hpY2ggYWxsb3dzIHlvdSB0byBxdWVyeSB5b3VyIEdyYXBoUUwgZW5kcG9pbnQsIGJ1dCBsZXTigJlzIGFkZCBhIHRvb2wgdGhhdCBpcyBtb3JlIHJvYnVzdC4gV2Ugd2lsbCBpbnN0YWxsIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIHRvIGdpdmUgdXMgYSBmYW5jaWVyIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgb3VyIEdyYXBoUUwgZW5kcG9pbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSBmb2xsb3dpbmcgY29kZSB0byBpbnN0YWxsIHRoZSBwYWNrYWdlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGluc3RhbGwgLS1zYXZlIGdyYXBocWwtcGxheWdyb3VuZC1taWRkbGV3YXJlLWV4cHJlc3MKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7V2Ugd2lsbCB1c2UgdGhpcyBtaWRkbGV3YXJlIHRvIHNldCB1cCB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kIGZvciBxdWVyeWluZyBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0xldOKAmXMgc2V0IHVwIG91ciBzZXJ2ZXIgYnkgY3JlYXRpbmcgYSBmaWxlIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2luZGV4LmpzJmx0Oy9jb2RlJmd0OyBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBhbmQgcGxhY2luZyB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBleHByZXNzID0gcmVxdWlyZSgmcXVvdDtleHByZXNzJnF1b3Q7KTsKY29uc3QgZ3JhcGhxbEhUVFAgPSByZXF1aXJlKCZxdW90O2V4cHJlc3MtZ3JhcGhxbCZxdW90Oyk7CmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoJnF1b3Q7Li9zcmMvc2NoZW1hJnF1b3Q7KTsKY29uc3QgcmVzb2x2ZXJzID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9yZXNvbHZlcnMmcXVvdDspOwpjb25zdCBzdGFydERhdGFiYXNlID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9kYXRhYmFzZSZxdW90Oyk7CmNvbnN0IGV4cHJlc3NQbGF5Z3JvdW5kID0gcmVxdWlyZSgmcXVvdDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJnF1b3Q7KS5kZWZhdWx0OwoKLy8gQ3JlYXRlIGEgY29udGV4dCBmb3IgaG9sZGluZyBjb250ZXh0dWFsIGRhdGEgCmNvbnN0IGNvbnRleHQgPSBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IGRiID0gYXdhaXQgc3RhcnREYXRhYmFzZSgpOwoKICByZXR1cm4geyBkYiB9Owp9OwoKY29uc3QgYXBwID0gZXhwcmVzcygpOwoKYXBwLnVzZSgKICAmcXVvdDsvZ3JhcGhxbCZxdW90OywKICBncmFwaHFsSFRUUCh7CiAgICBzY2hlbWEsCiAgICByb290VmFsdWU6IHJlc29sdmVycywKICAgIGNvbnRleHQKICB9KQopOwoKLy9HcmFwaHFsIFBsYXlncm91bmQgcm91dGUKYXBwLmdldCgmcXVvdDsvcGxheWdyb3VuZCZxdW90OywgZXhwcmVzc1BsYXlncm91bmQoeyBlbmRwb2ludDogJnF1b3Q7L2dyYXBocWwmcXVvdDsgfSkpOwoKY29uc3QgcG9ydCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgJnF1b3Q7NDAwMCZxdW90OzsKCmFwcC5saXN0ZW4ocG9ydCk7Cgpjb25zb2xlLmxvZyhg8J+agCBTZXJ2ZXIgcmVhZHkgYXQgaHR0cDovL2xvY2FsaG9zdDo0MDAwL2dyYXBocWxgKTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBmaWxlIGFib3ZlLCB3ZSBzdGFydCBieSBpbXBvcnRpbmcgYWxsIG5lY2Vzc2FyeSBtb2R1bGVzLiBUaGVuLCB3ZSBjcmVhdGUgb3VyIEdyYXBoUUwgY29udGV4dCBhbmQgcmV0dXJuIGFuIG9iamVjdCBmcm9tIGl0IGNvbnRhaW5pbmcgdGhlIHJlZmVyZW5jZSB0byBvdXIgTW9uZ29EQiBpbnN0YW5jZS4gTmV4dCwgd2UgY3JlYXRlIG91ciBFeHByZXNzSlMgYXBwbGljYXRpb24gYW5kIHNldCB1cCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OyBtaWRkbGV3YXJlIHdpdGggR3JhcGhRTCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEmbHQ7L2NvZGUmZ3Q7LCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtyZXNvbHZlcnMmbHQ7L2NvZGUmZ3Q7LCBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29udGV4dCZsdDsvY29kZSZndDsuIFdlIHRoZW4gc2V0IHVwIHRoZSBHcmFwaFFMIFBsYXlncm91bmQgYXQgdGhlIHJvdXRlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBsb2FkIG91ciBHcmFwaFFMIGVuZHBvaW50LiBGaW5hbGx5LCB3ZSBzdGFydCBvdXIgRXhwcmVzc0pTIHNlcnZlciB0byBsaXN0ZW4gYXQgcG9ydCA0MDAwIGFuZCBwcmludCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1F1ZXJ5aW5nIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O05vdyB0aGF0IHdlIGhhdmUgb3VyIHNlcnZlciBzZXQgdXAsIGxldOKAmXMgdGFrZSBpdCBmb3IgYSBzcGluLiBGaXJzdCwgbGV04oCZcyBjcmVhdGUgYSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzdGFydCZsdDsvY29kZSZndDsgc2NyaXB0IGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3BhY2thZ2UuanNvbiZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHNjcmlwdCB0byB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2NyaXB0cyZsdDsvY29kZSZndDsgc2VjdGlvbiBvZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Li4uCgrigJxzY3JpcHRz4oCdIDogewoJLi4uLAoJ4oCcc3RhcnTigJ0gOiDigJxub2RlIGluZGV4Lmpz4oCdCn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25wbSBzdGFydCZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCB0aGUgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNlcnZlciBpcyB1cCBhbmQgcnVubmluZywgb3BlbiB1cCB5b3VyIGJyb3dzZXIgYW5kIHZpc2l0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMC9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBvcGVuIHVwIHRoZSBwbGF5Z3JvdW5kLiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDEucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgcGxheWdyb3VuZCBhdXRvbWF0aWNhbGx5IHBvaW50cyB0byBvdXIgR3JhcGhRTCBlbmRwb2ludC4gRnJvbSBoZXJlIHdlIGNhbiB3cml0ZSBxdWVyaWVzIGFnYWluc3Qgb3VyIGVuZHBvaW50IGFuZCBnZXQgdGhlIHJlc3VsdHMuIFBhc3RlIHRoZSBxdWVyeSBiZWxvdyBpbnRvIHRoZSBxdWVyeSBzZWN0aW9uIG9mIHRoZSBwbGF5Z3JvdW5kIGFuZCBoaXQgUGxheSB0byBydW4gaXQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt7CiAgdXNlcnMgewogICAgbmFtZQogICAgZW1haWwKICAgIHBvc3RzIHsKICAgICAgdGl0bGUKICAgICAgcHVibGlzaGVkCiAgICB9CiAgfQp9CgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtSdW5uaW5nIHRoZSBhYm92ZSBxdWVyeSB3aWxsIHByb2R1Y2UgdGhlIHJlc3VsdCBzaG93biBvbiB0aGUgc2NyZWVuIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsMi5wbmcmcXVvdDsgd2lkdGg9JnF1b3Q7ODc1JnF1b3Q7IC8mZ3Q7CiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIHNlZW4gYWJvdmUsIG91ciBHcmFwaFFMIHNlcnZlciBpcyB3b3JraW5nIGZpbmUgYW5kIHJldHVybmluZyB0aGUgZXhwZWN0ZWQgZGF0YS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRvIEhlcm9rdSB3aXRoIENpcmNsZUNJJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7T3VyIGZpbmFsIHRhc2sgaXMgdG8gZGVwbG95IG91ciBHcmFwaFFMIHNlcnZlciB0aHJvdWdoIGEgQ0kgcGlwZWxpbmUgd2l0aCBDaXJjbGVDSSBvbiB0aGUgSGVyb2t1IGhvc3RpbmcgcGxhdGZvcm0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2UgYXJlIGdvaW5nIHRvIHRha2UgdGhlIGZvbGxvd2luZyBzdGVwcyB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7UHVzaCB0aGUgcHJvamVjdCB0byBhIEdpdEh1YiByZXBvc2l0b3J5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgbmV3IEhlcm9rdSBhcHAgYW5kIGdldCB0aGUgSGVyb2t1IEFQSSBrZXkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgYSBuZXcgcHJvamVjdCB0byBvdXIgQ2lyY2xlQ0kgYWNjb3VudCBhbmQgY29ubmVjdCBpdCB0byB0aGUgR2l0SHViIHJlcG8mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgb3VyIEhlcm9rdSBhcHAgbmFtZSBhbmQgQVBJIGtleSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gb3VyIG5ldyBwcm9qZWN0Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7V3JpdGUgb3VyIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgZGVwbG95bWVudCB0byBIZXJva3UmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIHRoZSBjb25maWd1cmF0aW9uIHRvIG91ciBHaXRIdWIgcmVwbyB0byBkZXBsb3kgdG8gSGVyb2t1Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0xldOKAmXMgYmVnaW4uIEZpcnN0LCBwdXNoIHRoZSBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG8uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY3JlYXRlIGEgSGVyb2t1IGFwcGxpY2F0aW9uIGFzIHNob3duIGJlbG93LiBUaGUgbmFtZSB5b3UgZW50ZXIgaXMgdGhlIG5hbWUgeW91IHdpbGwgc2F2ZSBhcyB5b3VyIEhlcm9rdSBhcHAgbmFtZSBvbiBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWwzLnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7WW91IGNhbiBnZXQgeW91ciBIZXJva3UgQVBJIGtleSBieSBnb2luZyB0byAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgYW5kIHNjcm9sbGluZyBkb3duIHRvIHRoZSAmbHQ7c3Ryb25nJmd0O0FQSSBLZXkmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIHRvIGRlcGxveWluZyBvdXIgYXBwbGljYXRpb24gdG8gSGVyb2t1IGlzIHRvIGNvbm5lY3QgdGhlIGFwcGxpY2F0aW9uIG9uIG91ciBHaXRIdWIgcmVwb3NpdG9yeSB0byBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIZWFkIHRvIHlvdXIgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9kYXNoYm9hcmQmcXVvdDsmZ3Q7Q2lyY2xlQ0kgZGFzaGJvYXJkJmx0Oy9hJmd0OyBhbmQgYWRkIHRoZSBwcm9qZWN0IGluIHRoZSAmbHQ7c3Ryb25nJmd0O0FkZCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7IHNlY3Rpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsNC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCAoaW4gdGhpcyBjYXNlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NpbXBsZS1ncmFwaHFsLW5vZGUtc2VydmVyJmx0Oy9jb2RlJmd0OyksIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0IFVwIFByb2plY3QmbHQ7L3N0cm9uZyZndDsuIFRoaXMgd2lsbCBicmluZyB5b3UgdG8gYSBwYWdlIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDUucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IGJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIHByb2plY3QuIFRoaXMgd2lsbCBpbW1lZGlhdGVseSBnaXZlIHVzIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCBhIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIHByb2plY3QuIFRoaXMgaXMgdW5kZXJzdGFuZGFibGUsIGFzIHdlIGFyZSB5ZXQgdG8gaW5jbHVkZSBvdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlLiBXZSB3aWxsIGJlIGRvaW5nIHRoYXQgbGF0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIG5leHQgc3RlcCBpcyB0byBhZGQgb3VyIEhlcm9rdSBkZXRhaWxzIGFzICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wL2Vudi12YXJzLyZxdW90OyZndDtlbnZpcm9ubWVudCB2YXJpYWJsZXMmbHQ7L2EmZ3Q7IHRvIHRoZSBuZXdseSBzZXQgdXAgcHJvamVjdC4KSW4gb3JkZXIgdG8gcHVzaCBvdXIgcHJvamVjdCB0byBIZXJva3UgZnJvbSBDaXJjbGVDSSwgd2UgbmVlZCB0byBjb25maWd1cmUgYW4gYXV0aGVudGljYXRlZCBoYW5kc2hha2UgYmV0d2VlbiBDaXJjbGVDSSBhbmQgSGVyb2t1LiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcgdHdvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgc2V0dGluZ3MgZm9yIHlvdXIgQ2lyY2xlQ0kgcHJvamVjdC4gVGhlIHR3byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtIRVJPS1VfQVBQX05BTUUmbHQ7L2NvZGUmZ3Q7OiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIChpbiB0aGlzIGNhc2UgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2ltcGxlLWdyYXBocWwtbm9kZS1zZXJ2ZXImbHQ7L2NvZGUmZ3Q7KSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OzogWW91ciBIZXJva3UgYWNjb3VudCBBUEkga2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBvbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50Jmx0Oy9zdHJvbmcmZ3Q7IHRhYiBvZiB5b3VyIEhlcm9rdSBhY2NvdW50IHVuZGVyICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VG8gYWRkIHRoZXNlIGRldGFpbHMsIGhlYWQgb3ZlciB0byB5b3VyIENpcmNsZUNJIGRhc2hib2FyZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBmb3IgeW91ciBwcm9qZWN0LiBPbiB0aGUgc2lkZWJhciBtZW51IG9uIHRoZSBzZXR0aW5ncyBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O0Vudmlyb25tZW50IFZhcmlhYmxlcyZsdDsvc3Ryb25nJmd0OyB1bmRlciAmbHQ7c3Ryb25nJmd0O0J1aWxkIFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDYucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIHBhZ2UsIGNyZWF0ZSB0d28gdmFyaWFibGVzIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OyBhbmQgYWRkIHRoZSByZXNwZWN0aXZlIHZhbHVlcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZXNlIGluIHBsYWNlLCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBjYW4gdXNlIHRoZW0gdG8gbWFrZSBhdXRoZW50aWNhdGVkIGRlcGxveW1lbnRzIHRvIHRoZSBIZXJva3UgcGxhdGZvcm0uCk5vdywgbGV04oCZcyB3cml0ZSBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyIHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtDcmVhdGUgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsuY2lyY2xlY2kmbHQ7L2NvZGUmZ3Q7IGF0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCBhbmQgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgaXQuIEFkZCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uJmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpvcmJzOgogIGhlcm9rdTogY2lyY2xlY2kvaGVyb2t1QDAuMC4xMAp3b3JrZmxvd3M6CiAgaGVyb2t1X2RlcGxveToKICAgIGpvYnM6CiAgICAgIC0gaGVyb2t1L2RlcGxveS12aWEtZ2l0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7VGhlIGNvZGUgYWJvdmUgdXNlcyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7SGVyb2t1IG9yYiZsdDsvYSZndDsgdG8gcGVyZm9ybSBhIHNlYW1sZXNzIGRlcGxveW1lbnQgdG8gSGVyb2t1LiBBbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYiZsdDsvYSZndDsgaXMgYSByZXVzYWJsZSBwYWNrYWdlIG9mIGEgWUFNTCBjb25maWd1cmF0aW9uIHRoYXQgY29uZGVuc2VzIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoaXMgb25lIG1ha2VzIGl0IHZlcnkgZWFzeSB0byBkZXBsb3kgdG8gSGVyb2t1IHdpdGhvdXQgd3JpdGluZyBhIHNvcGhpc3RpY2F0ZWQgY29uZmlnIHlvdXJzZWxmLiZsdDsvcCZndDsKCiZsdDtwJmd0O1NhdmUgdGhpcyBmaWxlIGFuZCBwdXNoIHlvdXIgY2hhbmdlcyB0byB0aGUgR2l0SHViIHJlcG9zaXRvcnkuIFRoZW4gd2F0Y2ggeW91ciBDaXJjbGVDSSBkYXNoYm9hcmQgdHJpZ2dlciBhIGRlcGxveW1lbnQgYWZ0ZXIgdGhlIHN1Y2Nlc3NmdWwgcHVzaC4gWW91IHdpbGwgc2VlIGEgc3VjY2Vzc2Z1bCBkZXBsb3ltZW50IG9uIHlvdXIgZGFzaGJvYXJkIHNpbWlsYXIgdG8gdGhlIHNjcmVlbiBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWw3LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXdlc29tZSEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXTigJlzIG5vdyB2aXNpdCBvdXIgUGxheWdyb3VuZCBvbiB0aGUgbGl2ZSBhcHBsaWNhdGlvbiB0byBjb25maXJtIHRoYXQgb3VyIGRlcGxveW1lbnQgaXMgZmluZS4gVmlzaXQgdGhlIGxpbmsgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9ZT1VSX0hFUk9LVV9BUFBfTkFNRS5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7LiBGb3Igb3VyIGV4ZXJjaXNlLCB0aGlzIHdpbGwgYmUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9zaW1wbGUtZ3JhcGhxbC1ub2RlLXNlcnZlci5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7IGFzIHNlZW4gYmVsb3cuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsOC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SW4gdGhpcyBhcnRpY2xlLCB3ZSBoYXZlIGJlZW4gYWJsZSB0byBzdWNjZXNzZnVsbHkgcHV0IHRvZ2V0aGVyIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyIGFuZCBhdXRvbWF0ZSBpdHMgZGVwbG95bWVudCB1c2luZyBDaXJjbGVDSS4gR3JhcGhRTCBpcyBoZXJlIHRvIHN0YXkgYW5kIGlzIGV4cGVjdGVkIHRvIGdhaW4gbW9yZSBhZG9wdGlvbiwgc2luY2UgaXRzIG1hbnkgYmVuZWZpdHMgbWFrZSBpdCB3b3J0aHkgb2YgaW5jcmVhc2VkIHVzZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIYXBweSBjb2RpbmchJmx0Oy9wJmd0OwoKJmx0O2hyIC8mZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Eb2NrZXIgYW5kIENJL0NEIHR1dG9yaWFsOiBhIGRlZXAgZGl2ZSBpbnRvIGNvbnRhaW5lcnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZG9ja2VyLWFuZC1jaWNkLXR1dG9yaWFsLWEtZGVlcC1kaXZlLWludG8tY29udGFpbmVycy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+RnJpLCAyNCBBcHIgMjAyMCAxMjowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9kb2NrZXItYW5kLWNpY2QtdHV0b3JpYWwtYS1kZWVwLWRpdmUtaW50by1jb250YWluZXJzLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkFuZ2VsIFJpdmVyYTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtUaGlzIGlzIGEgZm9sbG93LXVwIHRvIGEgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7IHRoYXQgSSB3cm90ZSBhZnRlciBDaXJjbGVDSSAyLjAgd2FzIHJlbGVhc2VkLiBUaGlzIHJlbGVhc2UgaW1wbGVtZW50ZWQgYnVpbGQgc3VwcG9ydCB1c2luZyBEb2NrZXIgZXhlY3V0b3JzLiBBZnRlciB0aGUgcmVsZWFzZSwgd2UgcmVhbGl6ZWQgdGhhdCBvbmUgb2YgdGhlIGJpZ2dlc3QgYmFycmllcnMgdGhhdCBDaXJjbGVDSSB1c2VycyBlbmNvdW50ZXJlZCB3YXMgYSBsYWNrIG9mIGV4cGVyaWVuY2Ugd2l0aCBEb2NrZXIuIFRoaXMgd2FzIGNvbmZpcm1lZCB0aHJvdWdoIG15IGNvbnZlcnNhdGlvbnMgd2l0aCBudW1lcm91cyBkZXZlbG9wZXJzLCBpbiB0aGUgY29tbXVuaXR5IGFuZCBhdCBldmVudHMsIGFib3V0IHRoZWlyIHVzZSBvZiBjb250YWluZXIgdGVjaG5vbG9naWVzIGluIHRoZWlyICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmVzLiBUaGVzZSBjb252ZXJzYXRpb25zIGhhdmUgaGlnaGxpZ2h0ZWQgdGhhdCBtYW55IGRldmVsb3BlcnMgZG9u4oCZdCBoYXZlIGEgZnVsbCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byB1c2UgY29udGFpbmVyIHRlY2hub2xvZ2llcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgd2lsbCBleHBhbmQgb24gYW5kIGRlbW9uc3RyYXRlIHNvbWUgb2YgdGhlIG1vcmUgdXNlZnVsIERvY2tlciBjb21tYW5kcyBkaXNjdXNzZWQgaW4gbXkgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtXaGF0IGlzIERvY2tlcj8mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZSBpcyB0aGUgc2ltcGxpZmllZCBkZWZpbml0aW9uIG9mIERvY2tlciB0aGF0IEkgdXNlZCBpbiBteSBwcmV2aW91cyBwb3N0OiZsdDsvcCZndDsKCiZsdDtibG9ja3F1b3RlJmd0OwogICZsdDtwJmd0O0RvY2tlciBpcyBhIHBsYXRmb3JtIGZvciBkZXZlbG9wZXJzIGFuZCBzeXNhZG1pbnMgdG8gZGV2ZWxvcCwgZGVwbG95LCBhbmQgcnVuIGFwcGxpY2F0aW9ucyB1c2luZyBjb250YWluZXJzLiZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7RG9ja2VyIGlzIGFsc28gcmVmZXJyZWQgdG8gYXMgYW4gYXBwbGljYXRpb24gcGFja2FnaW5nIHRvb2wgdGhhdCBlbmFibGVzIGFwcGxpY2F0aW9ucyB0byBiZSBjb25maWd1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZC8jaW1hZ2VzLWFuZC1jb250YWluZXJzJnF1b3Q7Jmd0O0RvY2tlciBpbWFnZSZsdDsvYSZndDsgdGhhdCBjYW4gYmUgdXNlZCB0byBzcGF3biAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyNpbWFnZXMtYW5kLWNvbnRhaW5lcnMmcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IHRoYXQgcnVuIGluc3RhbmNlcyBvZiB0aGUgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIG1hbnkgYmVuZWZpdHMgaW5jbHVkaW5nIHJ1bnRpbWUgZW52aXJvbm1lbnQgaXNvbGF0aW9uLCBjb25zaXN0ZW5jeSB2aWEgY29kZSwgYW5kIHBvcnRhYmlsaXR5LiBEb2NrZXIgY29udGFpbmVycyBjYW4gcnVuIG9uIGFueSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgc3VwcG9ydHMgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZW5naW5lJnF1b3Q7Jmd0O0RvY2tlciBFbmdpbmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtCYXNpYyBEb2NrZXIgdGVybWlub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZeKAmXMgYSBsaXN0IG9mIGJhc2ljIERvY2tlciBjb21tYW5kcyBhbmQgdGVybXMgd2l0aCBsaW5rcyB0byBtb3JlIGluZm9ybWF0aW9uLiBUaGVzZSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgRG9ja2VyIGFuZCBjb250cm9sIHRoZSBleGVjdXRvci4gVGhlIGNvbW1hbmRzIGNhbiBiZSBydW4gbG9jYWxseSBvbiBhbnkgY29tcHV0ZXIgdGhhdCBoYXMgdGhlIERvY2tlciBlbmdpbmUgaW5zdGFsbGVkLiZsdDsvcCZndDsKCiZsdDtoMyZndDtCdWlsZGluZyBEb2NrZXIgaW1hZ2VzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBhIHRleHQgZG9jdW1lbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNvbW1hbmRzIGEgdXNlciBjb3VsZCBjYWxsIG9uIHRoZSBjb21tYW5kIGxpbmUgdG8gYXNzZW1ibGUgYW4gaW1hZ2UuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBEb2NrZXJmaWxlIGlzIGEgYmx1ZXByaW50IGZvciBidWlsZGluZyBEb2NrZXIgaW1hZ2VzLiBEb2NrZXJmaWxlIHRlbXBsYXRlcyBob2xkIGVsZW1lbnRzIHN1Y2ggYXMgdGhlIGJhc2Ugb3BlcmF0aW5nIHN5c3RlbSBpbWFnZSB1c2VkIGFzIGEgZm91bmRhdGlvbiwgZXhlY3V0aW9uIGNvbW1hbmRzIHRoYXQgaW5zdGFsbC9jb25maWd1cmUgZGVwZW5kZW5jaWVzLCBhbmQgY29weSBjb21tYW5kcyB0aGF0IHB1c2ggbG9jYWwgc291cmNlIGNvZGUgb3IgYXJ0aWZhY3RzIGludG8gdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBEb2NrZXJmaWxlIGZvciBhIHNpbXBsZSBOb2RlLmpzIGFwcGxpY2F0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7RlJPTSBub2RlOjEwCgojIENyZWF0ZSBhcHAgZGlyZWN0b3J5CldPUktESVIgL3Vzci9zcmMvYXBwCgojIEluc3RhbGwgYXBwIGRlcGVuZGVuY2llcwojIEEgd2lsZGNhcmQgaXMgdXNlZCB0byBlbnN1cmUgYm90aCBwYWNrYWdlLmpzb24gQU5EIHBhY2thZ2UtbG9jay5qc29uIGFyZSBjb3BpZWQKIyB3aGVyZSBhdmFpbGFibGUgKG5wbUA1KykKQ09QWSBwYWNrYWdlKi5qc29uIC4vCgpSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIyBJZiB5b3UgYXJlIGJ1aWxkaW5nIHlvdXIgY29kZSBmb3IgcHJvZHVjdGlvbgojIFJVTiBucG0gaW5zdGFsbCAtLW9ubHk9cHJvZHVjdGlvbgoKIyBCdW5kbGUgYXBwIHNvdXJjZQpDT1BZIC4gLgoKRVhQT1NFIDUwMDAKQ01EIFsgJnF1b3Q7bnBtJnF1b3Q7LCAmcXVvdDtzdGFydCZxdW90OyBdCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2ltYWdlcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7IGxpc3RzIERvY2tlciBpbWFnZXMgZm91bmQgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gbGlzdCBhbGwgb2YgdGhlIERvY2tlciBpbWFnZXMgYW5kIHJlbGF0ZWQgZGF0YSB0aGF0IGN1cnJlbnRseSBleGlzdCBvbiB0aGUgbG9jYWwgbWFjaGluZS4gSXTigJlzIGNvbXBhcmFibGUgdG8gYSBsaW51eCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtscyZsdDsvY29kZSZndDsgb3Igd2luZG93cyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkaXImbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdXNlZCB0byBzaG93IHRoZSBjb250ZW50cyBvZiBkaXJlY3RvcmllcyBpbiBhIHRlcm1pbmFsLiBUaGlzIGNvbW1hbmQgaXMgdmVyeSB1c2VmdWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRvIG1hbmFnZSwgbWFpbnRhaW4sIGFuZCBidWlsZCBEb2NrZXIgaW1hZ2VzIGxvY2FsbHkuIEJlbG93IGlzIGFuIGV4YW1wbGUgcmVzdWx0IG9mIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgZXhlY3V0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UkVQT1NJVE9SWSAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHICAgICAgICAgICAgICAgICBJTUFHRSBJRCAgICAgICAgICAgIENSRUFURUQgICAgICAgICAgICAgU0laRQphcml2M3JhL25vZGVqcy1jaXJjbGVjaSAgICAgICAgICAgICBsYXRlc3QgICAgICAgICAgICAgIGY0MTllNGE2YjFiOCAgICAgICAgMTEgZGF5cyBhZ28gICAgICAgICA5NDNNQgpub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAgICAgICAgICAgICAgICAgIDAxYjgxNjA1MWQzNCAgICAgICAgMiB3ZWVrcyBhZ28gICAgICAgICA5MTFNQgpjaXJjbGVjaS9weXRob24gICAgICAgICAgICAgICAgICAgICAzLjcuNiAgICAgICAgICAgICAgIDBkMjk3NTg5NmM3MyAgICAgICAgNSB3ZWVrcyBhZ28gICAgICAgICAxLjQzR0IKYXJpdjNyYS9pbmZyYXN0cnVjdHVyZS1hcy1jb2RlMTAxICAgbGF0ZXN0ICAgICAgICAgICAgICBjYjIxYTM2YTI5NzMgICAgICAgIDggd2Vla3MgYWdvICAgICAgICAgOTI5TUIKcHl0aG9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43LjYgICAgICAgICAgICAgICA4NzkxNjU1MzVhNTQgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgOTE5TUIKY2lyY2xlY2kvcnVzdCAgICAgICAgICAgICAgICAgICAgICAgMS1idXN0ZXIgICAgICAgICAgICAyMTgzMjliOTI5Y2YgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgMS42OEdCCnJ1c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtYnVzdGVyICAgICAgICAgICAgZjVmZGUwOTJhMWNkICAgICAgICAyIG1vbnRocyBhZ28gICAgICAgIDEuMTlHQgpweXRob24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcuNCAgICAgICAgICAgICAgIDlmYTU2ZDBhZGRhZSAgICAgICAgNiBtb250aHMgYWdvICAgICAgICA5MThNQgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGJ1aWxkIC10ICZhbXA7bHQ7aW1hZ2UgbmFtZSZhbXA7Z3Q7IC4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBjcmVhdGVzIGEgRG9ja2VyIGltYWdlIHdpdGggYSB0YWcgdXNpbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LXQmbHQ7L2NvZGUmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhYm92ZSBjb21tYW5kLCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgdmFsaWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDssIGJ1aWxkcyBhIERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgZXhlY3V0aW9uIGNvbW1hbmRzIGRlZmluZWQgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7LiBPbmUgY3JpdGljYWwgZWxlbWVudCB0byBidWlsZGluZyBpbWFnZXMgYW5kIHN0YXJ0aW5nIGNvbnRhaW5lcnMgaXMgdW5kZXJzdGFuZGluZyB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9hJmd0Oy4gQnVpbGRpbmcgRG9ja2VyIGltYWdlcyB1c2luZyB0aGlzIGNvbW1hbmQgc3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIERvY2tlciBpbWFnZXMgdXRpbGl6ZXMgYSBuYW1pbmcgY29udmVudGlvbiBtYWRlIHVwIG9mIHNsYXNoLXNlcGFyYXRlZCBuYW1lIGNvbXBvbmVudHMgdGhhdCBtYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgc2VwYXJhdG9ycy4gQSBzZXBhcmF0b3IgaXMgZGVmaW5lZCBhcyBhIHBlcmlvZCwgb25lIG9yIHR3byB1bmRlcnNjb3Jlcywgb3Igb25lIG9yIG1vcmUgZGFzaGVzLiBBIG5hbWUgY29tcG9uZW50IG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggYSBzZXBhcmF0b3IuIEEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7ZG9ja2VyIHRhZyZsdDsvYSZndDsgbmFtZSBtdXN0IGJlIHZhbGlkIEFTQ0lJIGFuZCBtYXkgY29udGFpbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHVuZGVyc2NvcmVzLCBwZXJpb2RzLCBhbmQgZGFzaGVzLiBBIHRhZyBuYW1lIG1heSBub3Qgc3RhcnQgd2l0aCBhIHBlcmlvZCBvciBhIGRhc2ggYW5kIG1heSBjb250YWluIGEgbWF4aW11bSBvZiAxMjggY2hhcmFjdGVycy4gWW91IGNhbiBncm91cCB5b3VyIGltYWdlcyB0b2dldGhlciB1c2luZyBuYW1lcyBhbmQgdGFncy4gSW4gdGhpcyBwb3N0LCB3ZSB3aWxsIHVzZSB0aGlzIG5hbWluZyBjb252ZW50aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB0aGF0IHdl4oCZdmUgZGlzY3Vzc2VkIG5hbWluZyBjb252ZW50aW9ucyBsZXTigJlzIGJ1aWxkIGEgRG9ja2VyIGltYWdlIGJhc2VkIG9uIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXJmaWxlJmx0Oy9jb2RlJmd0OyBpbiBvdXIgZXhhbXBsZSBhYm92ZS4gSW4gdGhpcyBwb3N0IHdlIGNhbiB1dGlsaXplIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9wdW5rZGF0YS9ub2RlanMtY2lyY2xlY2kmcXVvdDsmZ3Q7cHVua2RhdGEvbm9kZWpzLWNpcmNsZWNpJmx0Oy9hJmd0OyBnaXQgcmVwby4gQ2xvbmUgaXQgbG9jYWxseSBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7JCBjZCZsdDsvY29kZSZndDsgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlbiBydW4gdGhpcyBjb21tYW5kIHRvIGJ1aWxkIGEgbmV3IERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgcHJvamVjdCBzb3VyY2UgY29kZSBhbmQgdGhlIGV4YW1wbGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgYnVpbGQgLXQgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0FmdGVyIHJ1bm5pbmcgdGhpcyBidWlsZCBjb21tYW5kLCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtTZW5kaW5nIGJ1aWxkIGNvbnRleHQgdG8gRG9ja2VyIGRhZW1vbiAgOTguMDdNQgpTdGVwIDEvNyA6IEZST00gbm9kZToxMAogLS0tJmFtcDtndDsgMDFiODE2MDUxZDM0ClN0ZXAgMi83IDogV09SS0RJUiAvdXNyL3NyYy9hcHAKIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyAxMmIyZWRjMmI5N2MKU3RlcCAzLzcgOiBDT1BZIHBhY2thZ2UqLmpzb24gLi8KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyA1M2I1YjhlNGU2NTQKU3RlcCA0LzcgOiBSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyBlZWZkZjU2MGJjNGQKU3RlcCA1LzcgOiBDT1BZIC4gLgogLS0tJmFtcDtndDsgYWE3ZDU0ZTk1NWM2ClN0ZXAgNi83IDogRVhQT1NFIDUwMDAKIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gY2M0MjdkYmFmZGNjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgY2M0MjdkYmFmZGNjCiAtLS0mYW1wO2d0OyA0Y2U5MDg0ZTM5ZWIKU3RlcCA3LzcgOiBDTUQgWyAmcXVvdDtucG0mcXVvdDssICZxdW90O3N0YXJ0JnF1b3Q7IF0KIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gZjZlODU0NTk5ZGRjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgZjZlODU0NTk5ZGRjCiAtLS0mYW1wO2d0OyA3OWE4ZDk0Y2JmNDIKU3VjY2Vzc2Z1bGx5IGJ1aWx0IDc5YThkOTRjYmY0MgpTdWNjZXNzZnVsbHkgdGFnZ2VkIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2VzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgeW91ciBuZXdseSBjcmVhdGVkIERvY2tlciBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDskIGRvY2tlciBpbWFnZXMKClJFUE9TSVRPUlkgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRyAgICAgICAgICAgICAgICAgSU1BR0UgSUQgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNJWkUKdHV0b3JpYWwvY2lyY2xlY2ktbm9kZSAgICAgICAgICAgICAgMTAgICAgICAgICAgICAgICAgICA3OWE4ZDk0Y2JmNDIgICAgICAgIDQgbWludXRlcyBhZ28gICAgICAgMS4wM0dCCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyB5b3UgaGF2ZSBhbiBhd2Vzb21lIERvY2tlciBpbWFnZSBidWlsdCBhbmQgcmVhZHkgdG8gdXNlLiBJbiB0aGUgbmV4dCBzZWN0aW9uIEnigJlsbCBjcmVhdGUgbmV3IGluc3RhbmNlcyBvZiB0aGlzIERvY2tlciBpbWFnZSBpbiB0aGUgZm9ybSBvZiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvY29udGFpbmVyLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXIgY29udGFpbmVycyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBjb250YWluZXJzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IGFyZSBkZXNpZ25lZCB0byBydW4gYXBwbGljYXRpb25zIGluIGlzb2xhdGlvbiBhbmQgYXQgc2NhbGUuICBUaGV5IGFsbG93IGZvciBzdHJlYW1saW5pbmcgdGhlIG1hbmFnZW1lbnQgYW5kIGltcGxlbWVudGF0aW9uIG9mIGFwcGxpY2F0aW9ucy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7QmVmb3JlIHdlIHN0YXJ0IGNyZWF0aW5nIGFuZCBydW5uaW5nIERvY2tlciBjb250YWluZXJzLCBJ4oCZbGwgYWRkIHNvbWUgY29udGV4dC4gRG9ja2VyIGNvbnRhaW5lcnMgYXJlIG9iamVjdHMgdGhhdCBhcmUgYmFzZWQgb24gYW5kIHNwYXduZWQgZnJvbSBEb2NrZXIgaW1hZ2VzLiBEb2NrZXIgaW1hZ2VzIGFyZSB0ZW1wbGF0ZXMuIEkgbGlrZW4gdGhlbSB0byBjb29raWUgY3V0dGVyIG1vbGRzLiBDb29raWUgY3V0dGVyIG1vbGRzIGVuYWJsZSB5b3UgdG8gcXVpY2tseSBhbmQgY29uc2lzdGVudGx5IHByb2R1Y2UgaW5kaXZpZHVhbCBjb29raWVzIGZyb20gZG91Z2guIEkgbGlrZW4gdGhlc2UgY29va2llcyB0byBEb2NrZXIgY29udGFpbmVycyB3aGljaCBhcmUgZGlzdGluZ3Vpc2hlZCBpbiBzaGFwZSBieSB0aGUgdHlwZSBvZiBjb29raWUgbW9sZCwgb3IgRG9ja2VyIGNvbnRhaW5lciwgdXNlZCBpbiB0aGUgY3V0dGluZy9idWlsZGluZyBwcm9jZXNzLiBTbyB1c2luZyBteSBjb29raWUgY3V0dGVyIGFuYWxvZ3ksIERvY2tlciBpbWFnZXMgYXJlIHRoZSBjb29raWUgY3V0dGVyIGFuZCB0aGUgaW5kaXZpZHVhbCBjb29raWVzIGN1dCB1c2luZyB0aGF0IGN1dHRlciBhcmUgZXF1aXZhbGVudCB0byBEb2NrZXIgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCBJ4oCZdmUgcHJvYmFibHkgbWFkZSB5b3UgYSBiaXQgaHVuZ2FyeSBmb3IgY29va2llcywgbGV04oCZcyBzdGFydCBydW5uaW5nIHNvbWUgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBydW5zIGEgY29tbWFuZCBpbiBhIG5ldyBjb250YWluZXIuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY29tbWFuZCBvZiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgc3RhcnRpbmcgRG9ja2VyIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCBhIG5ldyBjb250YWluZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcnVuIC1kIC1wIDUwMDA6NTAwMCAtLW5hbWUgbm9kZXRlc3QwMSB0dXRvcmlhbC9jaXJjbGVjaS1ub2RlOjEwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NvbmdyYXRzISBZb3Ugc2hvdWxkIG5vdyBoYXZlIHRoZSBOb2RlLmpzIGltYWdlIHJ1bm5pbmcgaW4gdGhlIG5ldyBjb250YWluZXIgdGhhdCB5b3UganVzdCBjcmVhdGVkIGF2YWlsYWJsZSBvbiBwb3J0IDUwMDAuIE9wZW4gYSB3ZWIgYnJvd3NlciBhbmQgZ28gdG8gdGhpcyBhZGRyZXNzOiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtodHRwOi8vbG9jYWxob3N0OjUwMDAmbHQ7L2NvZGUmZ3Q7LiBJdCB3aWxsIHRha2UgeW91IHRoZSBzdGF0aWMg4oCcV2VsY29tZSB0byBDSS9DRCAxMDEgdXNpbmcgQ2lyY2xlQ0kh4oCdIHdlYiBwYWdlIHNlcnZlZCBieSB0aGlzIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsc28gdmVyaWZ5IHlvdXIgY29udGFpbmVyIGlzIHJ1bm5pbmcgYnkgZXhlY3V0aW5nIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbC4gV2XigJlsbCBkaXNjdXNzIHRoaXMgaW4gdGhlIG5leHQgc2VjdGlvbi4gQmVmb3JlIHRoYXQsIGxldOKAmXMgc3RhcnQgYW4gb3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGFwcGxpY2F0aW9uIGJ5IHJ1bm5pbmcgYW5vdGhlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnRlZCBvdXIgZmlyc3QgY29udGFpbmVyIHdpdGggdGhlIG5hbWUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDsgYW5kIHNpbmNlIGNvbnRhaW5lciBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgd2XigJlyZSBnb2luZyB0byBuYW1lIG91ciBuZXcgY29udGFpbmVyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7LiBBbm90aGVyIGNoYW5nZSB0aGF0IG11c3QgYmUgbWFkZSBpbiBvdXIgbmV3IGNvbnRhaW5lciBpcyB0aGUgcG9ydCBudW1iZXIuIFdl4oCZbGwgY2hhbmdlIGl0IGZyb20gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMCZsdDsvY29kZSZndDsgdG8gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMSZsdDsvY29kZSZndDsgc2luY2UgYXBwbGljYXRpb25zIGNhbm5vdCBvY2N1cHkgdGhlIHNhbWUgcG9ydCBudW1iZXIgb24gdGhlIHNhbWUgbmV0d29yayBpbnRlcmZhY2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RXhlY3V0ZSB0aGUgZm9sbG93aW5nICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtZCAtcCA1MDAxOjUwMDAgLS1uYW1lIG5vZGV0ZXN0MDIgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISBZb3Ugbm93IGhhdmUgdHdvIGNvbnRhaW5lcnMgcnVubmluZyBvbiB5b3VyIGxvY2FsIG1hY2hpbmUuIFlvdSBjYW4gZ28gdG8gdGhpcyBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMSZsdDsvY29kZSZndDsgaW4gYSBicm93c2VyIGFuZCBzZWUgdGhlIGFwcCBydW5uaW5nIGluIHlvdXIgc2Vjb25kIERvY2tlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaXMgdmVyeSByb2J1c3QgYW5kIGhhcyBtYW55IHByb3BlcnR5IGFuZCBjb25maWd1cmF0aW9uIGZsYWdzIHdoaWNoIEkgd29u4oCZdCBiZSBhYmxlIHRvIGFkZHJlc3Mgb3IgZGVtb25zdHJhdGUgaW4gdGhpcyBwb3N0LiBJIGhpZ2hseSByZWNvbW1lbmQgdGhhdCB5b3UgcmVhZCBhbmQgZmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgbWFueSB3YXlzIHRoYXQgeW91IGNhbiBleGVjdXRlIGFuZCBydW4gRG9ja2VyIGNvbnRhaW5lcnMuIFlvdSBjYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7cmVhZCB1cCBvbiBEb2NrZXIgY29udGFpbmVycyBjb21tYW5kcyBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9wcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbGlzdHMgYWxsIG9mIHRoZSBydW5uaW5nIERvY2tlciBjb250YWluZXJzLiBUaGlzIGNvbW1hbmQgc2VydmVzIGEgc2ltaWxhciBwdXJwb3NlIGFzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2UmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgYW5kIGxpc3RzIGFjdGl2ZWx5IHJ1bm5pbmcgY29udGFpbmVycy4gVXNlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDstYSZsdDsvY29kZSZndDsgZmxhZyB0byBzaG93IGFsbCBvZiB0aGUgcnVubmluZyBhbmQgbm90IHJ1bm5pbmcgY29udGFpbmVycy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoaXMgY29tbWFuZCBpbiBhIHRlcm1pbmFsIGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIGJvdGggb2YgdGhlIHByZXZpb3VzbHkgY3JlYXRlZCBjb250YWluZXJzIHJ1bm5pbmcgaW4gdGhlIHJlc3VsdHM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlIHJlc3VsdHMgd2lsbCBiZSBzaW1pbGFyIHRvIHRoaXMgc2hvd2luZyBib3RoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDEmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcnMgc3RpbGwgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0NPTlRBSU5FUiBJRCAgICAgICAgSU1BR0UgICAgICAgICAgICAgICAgICAgICAgIENPTU1BTkQgICAgICAgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNUQVRVUyAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICAgICAgIE5BTUVTCmRmZDMwMTgxZTE1YyAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAxMiBtaW51dGVzIGFnbyAgICAgIFVwIDEyIG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAxLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAyOCBtaW51dGVzIGFnbyAgICAgIFVwIDI4IG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAwLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7CiAgICAmbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvc3RhcnQvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdGFydHMgYW4gZXhpc3RpbmcgY29udGFpbmVyLiZsdDsvcCZndDsKICAmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsKICAgICZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9zdG9wLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdG9wcyBhbiBleGlzdGluZyBjb250YWluZXIuJmx0Oy9wJmd0OwogICZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgaXMgb25seSB1c2VkIHRvIHN0YXJ0ICZsdDtzdHJvbmcmZ3Q7ZXhpc3RpbmcmbHQ7L3N0cm9uZyZndDsgY29udGFpbmVycyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcnVuJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBVbmxlc3MgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy0tcm09dHJ1ZSZsdDsvY29kZSZndDsgZmxhZyBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgbmV3bHkgY3JlYXRlZCBjb250YWluZXJzIHdpbGwgcGVyc2lzdCBhbmQgY2FuIGJlIHJldXNlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RhcnQmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCZsdDsvY29kZSZndDsgY29tbWFuZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdG9wIHNvbWUgcnVubmluZyBjb250YWluZXJzIGJ5IGV4ZWN1dGluZyB0aGVzZSBjb21tYW5kczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBzdG9wIG5vZGV0ZXN0MDEgbm9kZXRlc3QwMgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBydW5uaW5nIGNvbnRhaW5lcnMgc2hvdWxkIG5vdyBiZSBpbmFjdGl2ZSBhbmQgc3RvcHBlZC4gU2luY2UgdGhleeKAmXJlIHN0b3BwZWQsIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgaW5kaWNhdGluZyBzdG9wcGVkIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtDT05UQUlORVIgSUQgICAgICAgIElNQUdFICAgICAgICAgICAgICAgICAgICAgICBDT01NQU5EICAgICAgICAgICAgICAgICAgQ1JFQVRFRCAgICAgICAgICAgICBTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICBOQU1FUwpkZmQzMDE4MWUxNWMgICAgICAgIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAgICAmcXVvdDtkb2NrZXItZW50cnlwb2ludC5z4oCmJnF1b3Q7ICAgMzEgbWludXRlcyBhZ28gICAgICBFeGl0ZWQgKDApIDM4IHNlY29uZHMgYWdvICAgICAgICAgICAgICAgICAgICAgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICBBYm91dCBhbiBob3VyIGFnbyAgIEV4aXRlZCAoMCkgMzggc2Vjb25kcyBhZ28gICAgICAgICAgICAgICAgICAgICAgIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhvdWdoIHRoZXNlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQgdGhleSB3aWxsIHBlcnNpc3QgYW5kIGNhbiBiZSByZXN0YXJ0ZWQgdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCZsdDsvY29kZSZndDsgY29tbWFuZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXRzIHN0YXJ0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAxJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgc28gd2UgY2FuIGxlYXJuIGhvdyB0byB1c2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBmZWF0dXJlcyBpbiB0aGUgbmV4dCBzZWN0aW9uLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHN0YXJ0IG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Tm93IHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBOb3RpY2UgdGhlIHN0YXR1cyBmb3IgdGhpcyBjb250YWluZXIgcmVhZHMgc2ltaWxhciB0byAgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXAgYWJvdXQgYSAzMCBzZWNvbmRzJmx0Oy9jb2RlJmd0OyBvciBzb21ldGhpbmcgdG8gdGhhdCBlZmZlY3QuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9ncy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ3MmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBmZXRjaGVzIGEgY29udGFpbmVy4oCZcyBsb2dzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIHNlZSBsb2dzIHRoYXQgYXJlIHByZXNlbnQgYXQgdGhlIHRpbWUgb2YgZXhlY3V0aW9uLiBTaW5jZSB5b3VyIGFwcHMgYXJlIHJ1bm5pbmcgaW5zaWRlIHRoZXNlIGNvbnRhaW5lcnMsIHRoZSBsb2dzIGNvbW1hbmQgaXMgdXNlZnVsIGZvciByZWFkaW5nIG91dCBjcml0aWNhbCBhcHAgb3V0cHV0cy4gVGhpcyBoZWxwcyBpbiB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgYXBwIGlzIHBlcmZvcm1pbmcgYW5kIGFueSBkZWJ1Z2dpbmcvdHJvdWJsZXNob290aW5nIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBydW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDEmbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBsb2dzIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIGNvbW1hbmQgeW91IHNob3VsZCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHdoYXTigJlzIHNob3duIGJlbG93LiBJdCBzaG93cyB0aGF0IHRoZSBhcHAgaW5zaWRlIGNvbnRhaW5lciBpcyB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O05vZGUgc2VydmVyIGlzIHJ1bm5pbmcuLgoKJmFtcDtndDsgbm9kZWpzLWNpcmNsZWNpQDAuMC4xIHN0YXJ0IC91c3Ivc3JjL2FwcAomYW1wO2d0OyBub2RlIGFwcC5qcwoKTm9kZSBzZXJ2ZXIgaXMgcnVubmluZy4uCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0gJmFtcDtsdDtjb250YWluZXIgbmFtZSZhbXA7Z3Q7Jmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgZGVsZXRlcyBhIGNvbnRhaW5lciBvciBtdWx0aXBsZSBjb250YWluZXJzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtQZXJzaXN0aW5nIERvY2tlciBjb250YWluZXJzIGNvbnN1bWVzIGRpc2sgc3BhY2UgYW5kIHJlc291cmNlcyBvbiBpdHMgaG9zdC4gT3BlcmF0aW9uYWxseSwgaXQgZG9lc27igJl0IG1ha2UgbXVjaCBzZW5zZSB0byBwZXJzaXN0IGV2ZXJ5IGNvbnRhaW5lciBvbiBkaXNrIHNpbmNlIGluIG1vc3QgY2FzZXMgY29udGFpbmVycyBhcmUgZGlzcG9zYWJsZSBhbmQgc2hvdWxkIGJlIHVzZWQgdGhhdCB3YXkuIFNvIHdoZW4gYSBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpdCBzaG91bGQgYmUgcGVybWFuZW50bHkgZGlzY2FyZGVkIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgcGVybWFuZW50bHkgZGVsZXRlcyBjb250YWluZXJzIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAyJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBzbyBsZXTigJlzIHNhdmUgc29tZSBkaXNrIHNwYWNlIGFuZCBkZWxldGUgaXQuIE5vdGUgdGhpcyBjb21tYW5kIHdpbGwgb25seSBkZWxldGUgaW5hY3RpdmUvc3RvcHBlZCBjb250YWluZXJzIGFuZCB3aWxsIGVycm9yIG91dCBpZiBpdOKAmXMgcnVuIGFnYWluc3QgYW4gYWN0aXZlL3J1bm5pbmcgY29udGFpbmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBybSBub2RldGVzdDAyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm8gbG9uZ2VyIHNlZSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMiZsdDsvY29kZSZndDsgY29udGFpbmVyIG9uIHRoZSBob3N0IGFmdGVyIHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGhhcyBvdGhlciBwcm9wZXJ0aWVzIGFuZCBmbGFncyBhbmQgeW91IHNob3VsZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcm0vJnF1b3Q7Jmd0O2ZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggdGhlbSBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ybWkvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBybWkmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBkZWxldGVzIERvY2tlciBpbWFnZXMgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGFwcGxpZXMgdG8gZGVsZXRpbmcgRG9ja2VyIGltYWdlcyBmcm9tIGEgaG9zdC4gSWYgdGhlcmUgYXJlIGV4aXN0aW5nIGNvbnRhaW5lcnMgb24gdGhlIGhvc3QgdGhhdCBhcmUgYmFzZWQgb24gYSBzcGVjaWZpYyBpbWFnZSwgdGhlbiB0aGlzIGNvbW1hbmQgd2lsbCBub3QgYWxsb3cgdGhlIGRlbGV0aW9uIG9mIHRoZSBjb250YWluZXIgYmFzZWQgb24gdGhlIGltYWdlLiBZb3UgbXVzdCBmaXJzdCBlbnN1cmUgdGhlIGNvbnRhaW5lciBpcyBzdG9wcGVkIGFuZCBkZWxldGVkIGJlZm9yZSB5b3UgY2FuIGRlbGV0ZSBEb2NrZXIgaW1hZ2VzIHVzaW5nIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtaSZsdDsvY29kZSZndDsgY29tbWFuZC4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtaS8mcXVvdDsmZ3Q7UmVhZCB1cCBvbiB0aGUgZG9ja2VyIHJtaSBjb21tYW5kIGhlcmUmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBpbWFnZSBkZXBsb3ltZW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtNYW55IERvY2tlciBpbWFnZXMgYXJlIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgaG9zdGVkIG9uIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2RvY2tlci1odWIvJnF1b3Q7Jmd0O0RvY2tlciBIdWIgUmVnaXN0cnkmbHQ7L2EmZ3Q7IHdoaWNoIGlzIGFuIG9ubGluZSBjZW50cmFsIGhvc3Rpbmcgc29sdXRpb24gZm9yIERvY2tlciBpbWFnZXMuIERvY2tlciBIdWIgZW5hYmxlcyBhbnlvbmUgd2l0aCBhbiBpbnRlcm5ldCBjb25uZWN0aW9uIHRvIHB1bGwgZG93biBwdWJsaWNseSBhdmFpbGFibGUgaW1hZ2VzIGZyb20gdGhlIHJlZ2lzdHJ5IHRvIHRoZWlyIGxvY2FsIG1hY2hpbmVzIG9yIHNlcnZlcnMuIEl0IGFsc28gZW5hYmxlcyByZWdpc3RlcmVkIHVzZXJzIHRvIHVwbG9hZCBhbmQgcHVibGljbHkgc2hhcmUgYW55IG9mIHRoZWlyIGNvbnRhaW5lcnMgc28gdGhhdCBhbnlvbmUgY2FuIHB1bGwgZG93biB0aGF0IGltYWdlIGZyb20gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2h1Yi5kb2NrZXIuY29tLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIEnigJlsbCBicmllZmx5IGRpc2N1c3Mgc29tZSBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItaHViLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0OyByZWxhdGVkIGNvbW1hbmRzLiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3B1bGwvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBwdWxsJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgcHVsbHMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IGZyb20gYSByZWdpc3RyeS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGVuYWJsZXMgeW91IHRvIGRvd25sb2FkIGEgdmFsaWQgRG9ja2VyIGltYWdlIGZyb20gRG9ja2VyIEh1Yi4gUHVibGljbHkgYXZhaWxhYmxlIERvY2tlciBpbWFnZXMgZG8gbm90IHJlcXVpcmUgYXV0aGVudGljYXRpb24uIElmIHRoZSByZWdpc3RyeSBpcyBwcml2YXRlIHlvdSB3aWxsIG5lZWQgdG8gYXV0aGVudGljYXRlIHVzaW5nIGFuIGFzc2lnbmVkIGNyZWRlbnRpYWwgdXN1YWxseSBpbiB0aGUgZm9ybSBvZiBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ2luJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbG9ncyBpbnRvIGEgRG9ja2VyIHJlZ2lzdHJ5LiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyB5b3UgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgYSBEb2NrZXIgUmVnaXN0cnkuIElmIHlvdeKAmXJlIHVzaW5nIHRoaXMgbG9naW4gY29tbWFuZCB5b3Ugc2hvdWxkICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8jcHJvdmlkZS1hLXBhc3N3b3JkLXVzaW5nLXN0ZGluJnF1b3Q7Jmd0O3BvcHVsYXRlIGEgLnR4dCBmaWxlJmx0Oy9hJmd0OyB3aXRoIHlvdXIgRG9ja2VyIEh1YiBhY2NvdW50IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBwcm90ZWN0IHRoZXNlIGNyZWRlbnRpYWxzIGZyb20gZXhwb3N1cmUuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcHVzaC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHB1c2gmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBwdXNoZXMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IHRvIGEgcmVnaXN0cnkuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBlbmFibGVzIHVzZXJzIHRvIHVwbG9hZCBpbWFnZXMgdG8gYSBEb2NrZXIgcmVnaXN0cnkgYW5kIHJlcXVpcmVzIHZhbGlkIGNyZWRlbnRpYWxzLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O1NvIHRoZXJlIHlvdSBoYXZlIGl0LiBJbiB0aGlzIHBvc3QgSSB3ZW50IGEgYml0IGRlZXBlciBpbiBleHBsYWluaW5nIERvY2tlciB0ZXJtaW5vbG9neSBhbmQgY29tbWFuZHMgYXMgd2VsbCBhcyBjb250YWluZXJzIGFuZCB0aGVpciB1c2FnZS4gVGhlIGNvbW1hbmRzIEkgZGlzY3Vzc2VkIGFuZCBkZW1vbnN0cmF0ZWQsIGFyZSB0aGUgbW9zdCB3aWRlbHkgdXNlZCBjb21tYW5kcyBpbiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGxlYXJuaW5nIGEgYml0IG1vcmUgYWJvdXQgdGhlbSBhbmQgdGhlaXIgcHJvcGVydGllcyBhbmQgZmxhZ3Mgd2lsbCBkZWZpbml0ZWx5IGhlbHAgeW91IGxldmVsIHVwIHlvdXIgRG9ja2VyIGFuZCBjb250YWluZXIgc2tpbGxzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZhbWlsaWFyaXppbmcgeW91cnNlbGYgd2l0aCB0aGVzZSBiYXNpYyBjb21tYW5kcyB3aWxsIHJlbW92ZSBvbmUgb2YgdGhlIGxhcmdlciBiYXJyaWVycyB0aGF0IG5ldyB1c2VycyBvZiBDaXJjbGVDSSBlbmNvdW50ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SWYgeW91IHdhbnQgdG8gbGVhcm4gbW9yZSBhYm91dCBDaXJjbGVDSSBjaGVjayBvdXQgdGhlICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wLyZxdW90OyZndDtkb2N1bWVudGF0aW9uIHNpdGUmbHQ7L2EmZ3Q7LCBhbmQgaWYgeW91IHJlYWxseSBnZXQgc3R1Y2sgeW91IGNhbiByZWFjaCBvdXQgdG8gdGhlIENpcmNsZUNJIGNvbW11bml0eSB2aWEgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mbHQ7L2EmZ3Q7IGNvbW11bml0eS9mb3J1bSBzaXRlLiZsdDsvcCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogIDwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:54:41 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:54:41 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"083773ef3b164188","ot-tracer-traceid":"04e0383f0439bb59","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889281935:c73131111cc6
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:09:41 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595d9febbc91e903-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce6247540000e90332a4a200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:54:42 GMT
+recorded_with: VCR 5.1.0
diff --git a/spec/support/fixtures/vcr_cassettes/rss_reader_fetch_medium_feed.yml b/spec/support/fixtures/vcr_cassettes/rss_reader_fetch_medium_feed.yml
new file mode 100644
index 000000000..818af6246
--- /dev/null
+++ b/spec/support/fixtures/vcr_cassettes/rss_reader_fetch_medium_feed.yml
@@ -0,0 +1,310 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 12:02:00 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"59c3d2453665e7ad","ot-tracer-traceid":"4476ea1046b2dd8d","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889720222:ac29e0d573a1
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:17:00 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595daa9d087ad608-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce68f6240000d608561dc200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDExOjQ4OjUyIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 12:02:00 GMT
+- request:
+ method: get
+ uri: https://circleci.com/blog/feed.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/xml
+ Date:
+ - Tue, 19 May 2020 12:02:01 GMT
+ Etag:
+ - '"d148e5f0c8f6530989f97099948abd37"'
+ Last-Modified:
+ - Tue, 19 May 2020 02:33:22 GMT
+ Server:
+ - nginx
+ Strict-Transport-Security:
+ - max-age=15724800
+ X-Amz-Id-2:
+ - xpmfTPbXgE2tMjg8pnV1CacxCxbdhelHYQ0AB1UFwIpCTSF8IAVnYhHRXZoq3Tl26WCFvXa1VSs=
+ X-Amz-Request-Id:
+ - 3E8826C1B256ADC6
+ X-Frame-Options:
+ - SAMEORIGIN
+ Content-Length:
+ - '183502'
+ Connection:
+ - keep-alive
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiCiAgeG1sOmJhc2U9Imh0dHBzOi8vY2lyY2xlY2kuY29tLyIKICB4bWxuczphdG9tPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8Y2hhbm5lbD4KICAgIDx0aXRsZT5UaGUgQ2lyY2xlQ0kgQmxvZyBGZWVkIC0gQ2lyY2xlQ0k8L3RpdGxlPgogICAgPGRlc2NyaXB0aW9uPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgbmV3cywgdXBkYXRlcywgYW5kIGhhY2tzIGZyb20gQ2lyY2xlQ0kuPC9kZXNjcmlwdGlvbj4KICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvPC9saW5rPgogICAgPGF0b206bGluayBocmVmPSJodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2ZlZWQueG1sIiByZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Db250aW51b3VzIGludGVncmF0aW9uIGZvciBJb25pYyBhcHBsaWNhdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvY29udGlub3VzLWludGVncmF0aW9uLWZvci1pb25pYy1hcHBzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDE4IE1heSAyMDIwIDE3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbm91cy1pbnRlZ3JhdGlvbi1mb3ItaW9uaWMtYXBwcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5GaWtheW8gQWRlcG9qdTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtJbiB0aGUgd29ybGQgb2YgaHlicmlkIG1vYmlsZSBkZXZlbG9wbWVudCwgbm8gb3RoZXIgZnJhbWV3b3JrIGhhcyBkb25lIG1vcmUgZm9yIHRoZSBpbmR1c3RyeSB0aGFuIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tLyZxdW90OyZndDtJb25pYyBmcmFtZXdvcmsmbHQ7L2EmZ3Q7LiBDcmVhdGVkIGluIDIwMTMgYW5kIG9yaWdpbmFsbHkgYnVpbHQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXJqcy5vcmcvJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7IGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY29yZG92YS5hcGFjaGUub3JnLyZxdW90OyZndDtBcGFjaGUgQ29yZG92YSZsdDsvYSZndDssIElvbmljIGhhcyBncm93biB0byBhIGZ1bGwtZmVhdHVyZWQgYXBwbGljYXRpb24gZnJhbWV3b3JrIGZvciBkZXZlbG9waW5nIG1vYmlsZSwgZGVza3RvcCwgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93ZWIuZGV2L3Byb2dyZXNzaXZlLXdlYi1hcHBzLyZxdW90OyZndDtwcm9ncmVzc2l2ZSB3ZWIgYXBwbGljYXRpb25zJmx0Oy9hJmd0Oy4gSW9uaWMgaGFzIGFsc28gYmVjb21lIGZyYW1ld29yay1hZ25vc3RpYywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byB1c2UgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXIuaW8vJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oywgb3IgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3Z1ZWpzLm9yZy8mcXVvdDsmZ3Q7VnVlLmpzJmx0Oy9hJmd0OyBmb3IgZGV2ZWxvcG1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2Ugd2lsbCBiZSBidWlsZGluZyBhIGhhbmR5IHRhc2sgbWFuYWdlci4gV2Ugd2lsbCB3cml0ZSB0ZXN0cyBmb3IgZmVhdHVyZXMgaW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBzZXQgdXAgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbm91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgKENJKSBwaXBlbGluZSB0byBhdXRvbWF0ZSBvdXIgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFdlIHdpbGwgYmUgZGV2ZWxvcGluZyBvdXIgYXBwbGljYXRpb24gdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9yZWFjdCZxdW90OyZndDtJb25pYyBSZWFjdCZsdDsvYSZndDssIHRoZSBJb25pYyB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgZGV2ZWxvcGluZyB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBmb2xsb3cgdGhpcyBwb3N0LCBhIGZldyB0aGluZ3MgYXJlIHJlcXVpcmVkOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QmFzaWMga25vd2xlZGdlIG9mIFJlYWN0LmpzIChOb3QgYSBkZWFsLWJyZWFrZXIsIHlvdSBvbmx5IGhhdmUgdG8gY29weS1wYXN0ZSB0aGUgY29kZSBzbmlwcGV0cykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbm9kZWpzLm9yZyZxdW90OyZndDtOb2RlLmpzJmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtUaGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2NsaSZxdW90OyZndDtJb25pYyBDTEkmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L29sJmd0OwoKJmx0O2gyJmd0O1NjYWZmb2xkaW5nIHRoZSBJb25pYyBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBiZWdpbiwgbGV04oCZcyBzY2FmZm9sZCBhIG5ldyBJb25pYyBhcHBsaWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2lvbmljIHN0YXJ0IHRhc2stbWFuYWdlciB0YWJzIC0tdHlwZT1yZWFjdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgSW9uaWMgQ0xJIHRvIHNjYWZmb2xkIGEgbmV3IHByb2plY3QgZm9yIHVzIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0YWJzJmx0Oy9jb2RlJmd0OyB0ZW1wbGF0ZSBpbnNpZGUgYSBmb2xkZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGFzay1tYW5hZ2VyJmx0Oy9jb2RlJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1lvdSBtaWdodCBiZSBwcm9tcHRlZCBhdCBzb21lIHBvaW50IHdpdGggJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Q3JlYXRlIGZyZWUgSW9uaWMgYWNjb3VudD8mbHQ7L2NvZGUmZ3Q7LiBIaXQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7biZsdDsvY29kZSZndDsgdG8gZGVjbGluZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYW4gSW9uaWMgYWNjb3VudCBzZWUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9hcHBmbG93JnF1b3Q7Jmd0O2hlcmUmbHQ7L2EmZ3Q7LiZsdDsvaSZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmNlIHRoaXMgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb24gKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIHRhc2stbWFuYWdlciZsdDsvY29kZSZndDspIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHNlcnZlIHRoZSBhcHBsaWNhdGlvbiBpbiB5b3VyIHdlYiBicm93c2VyOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7aW9uaWMgc2VydmUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGlzIGNvbW1hbmQgaGFzIGNvbXBsZXRlZCwgeW91IHdpbGwgc2VlIGFuIGFwcGxpY2F0aW9uIHZpZXcgaW4geW91ciBicm93c2VyIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O0kgYW0gdXNpbmcgYSBtb2JpbGUgcHJldmlldyBhY3RpdmF0ZWQgaW4gQ2hyb21l4oCZcyBkZXZlbG9wbWVudCB0b29scy4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXNjYWZmb2xkLXByZXZpZXcucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtEb27igJl0IGJlIHN1cnByaXNlZCBpZiB5b3VycyBoYXMgYSBibGFjayBiYWNrZ3JvdW5kIGFuZCB3aGl0ZSBmb250LiBJdCB1c2VzIHRoZSBkZWZhdWx0IG1vZGUgb2YgeW91ciBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMiZndDtCdWlsZGluZyB0aGUgVGFzayBNYW5hZ2VyIGFwcGxpY2F0aW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05leHQsIGxldOKAmXMgYmVnaW4gYnVpbGRpbmcgdGhlIG1haW4gYXBwbGljYXRpb24uIEdvIGludG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyIG9mIHlvdXIgYXBwbGljYXRpb24gYW5kIG9wZW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGhvbWUgcGFnZSBmb3IgdGhlIG5ld2x5IHNjYWZmb2xkZWQgYXBwbGljYXRpb24uIFJlbW92ZSBldmVyeXRoaW5nIGluIHRoaXMgZmlsZSBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRzeAoKaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsKICBJb25Db250ZW50LAogIElvbkhlYWRlciwKICBJb25QYWdlLAogIElvblRpdGxlLAogIElvblRvb2xiYXIsCiAgSW9uTGlzdCwKICBJb25JdGVtU2xpZGluZywKICBJb25JdGVtLAogIElvbkxhYmVsLAogIElvbkl0ZW1PcHRpb25zLAogIElvbkl0ZW1PcHRpb24sCiAgSW9uRmFiLAogIElvbkZhYkJ1dHRvbiwKICBJb25JY29uLAogIElvbk1vZGFsLAogIElvbkJ1dHRvbiwKICBJb25DYXJkLAogIElvbkNhcmRDb250ZW50LAogIElvbklucHV0LAp9IGZyb20gJnF1b3Q7QGlvbmljL3JlYWN0JnF1b3Q7OwoKaW1wb3J0IHsgYWRkIH0gZnJvbSAmcXVvdDtpb25pY29ucy9pY29ucyZxdW90OzsKCmltcG9ydCAmcXVvdDsuL1RhYjEuY3NzJnF1b3Q7OwoKaW50ZXJmYWNlIFRhc2sgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwp9Cgpjb25zdCBUYWIxOiBSZWFjdC5GQyA9ICgpID0mYW1wO2d0OyB7CiAgY29uc3QgW3Rhc2tzLCBzZXRUYXNrc10gPSB1c2VTdGF0ZSZhbXA7bHQ7VGFza1tdJmFtcDtndDsoW10pOwogIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7CiAgY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKCiAgZnVuY3Rpb24gYWRkTmV3VGFzaygpIHsKICAgIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogICAgY29uc3QgbmV3VGFzayA9IHsKICAgICAgaWQ6IG5ld19pZCwKICAgICAgbmFtZTogdGFza05hbWUsCiAgICB9OwoKICAgIHRhc2tzLnB1c2gobmV3VGFzayk7CgogICAgc2V0VGFza3ModGFza3MpOwoKICAgIHNldFRhc2tOYW1lKCZxdW90OyZxdW90Oyk7CgogICAgc2V0U2hvd01vZGFsKGZhbHNlKTsKICB9CgogIHJldHVybiAoCiAgICAmYW1wO2x0O0lvblBhZ2UmYW1wO2d0OwogICAgICAmYW1wO2x0O0lvbkhlYWRlciZhbXA7Z3Q7CiAgICAgICAgJmFtcDtsdDtJb25Ub29sYmFyJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uVGl0bGUmYW1wO2d0O1Rhc2sgTWFuYWdlciZhbXA7bHQ7L0lvblRpdGxlJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25Ub29sYmFyJmFtcDtndDsKICAgICAgJmFtcDtsdDsvSW9uSGVhZGVyJmFtcDtndDsKICAgICAgJmFtcDtsdDtJb25Db250ZW50JmFtcDtndDsKICAgICAgICAmYW1wO2x0O0lvbkxpc3QmYW1wO2d0OwogICAgICAgICAge3Rhc2tzLmxlbmd0aCAmYW1wO2d0OyAwID8gKAogICAgICAgICAgICB0YXNrcy5tYXAoKGl0ZW06IFRhc2spID0mYW1wO2d0OyB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbVNsaWRpbmcga2V5PXtpdGVtLmlkfSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbSBjbGFzc05hbWU9JnF1b3Q7dG9kby1pdGVtJnF1b3Q7JmFtcDtndDsKICAgICAgICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDt7aXRlbS5uYW1lfSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbnMgc2lkZT0mcXVvdDtlbmQmcXVvdDsmYW1wO2d0OwogICAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsge319JmFtcDtndDtEb25lJmFtcDtsdDsvSW9uSXRlbU9wdGlvbiZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1PcHRpb25zJmFtcDtndDsKICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1TbGlkaW5nJmFtcDtndDsKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KQogICAgICAgICAgKSA6ICgKICAgICAgICAgICAgJmFtcDtsdDtJb25JdGVtJmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICApfQogICAgICAgICZhbXA7bHQ7L0lvbkxpc3QmYW1wO2d0OwoKICAgICAgICB7LyogTW9kYWwqL30KICAgICAgICAmYW1wO2x0O0lvbk1vZGFsIGlzT3Blbj17c2hvd01vZGFsfSZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkNhcmQmYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICZhbXA7bHQ7SW9uTGFiZWwmYW1wO2d0O0FkZCBOZXcgVGFzayZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAmYW1wO2x0O0lvbkNhcmRDb250ZW50JmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICAgJmFtcDtsdDtJb25JbnB1dAogICAgICAgICAgICAgICAgICB2YWx1ZT17dGFza05hbWV9CiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSZxdW90O0VudGVyIFRhc2sgTmFtZS4uLiZxdW90OwogICAgICAgICAgICAgICAgICBvbklvbkNoYW5nZT17KGUpID0mYW1wO2d0OyBzZXRUYXNrTmFtZShlLmRldGFpbC52YWx1ZSEpfQogICAgICAgICAgICAgICAgJmFtcDtndDsmYW1wO2x0Oy9Jb25JbnB1dCZhbXA7Z3Q7CiAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uCiAgICAgICAgICAgICAgICBleHBhbmQ9JnF1b3Q7ZnVsbCZxdW90OwogICAgICAgICAgICAgICAgY29sb3I9JnF1b3Q7cHJpbWFyeSZxdW90OwogICAgICAgICAgICAgICAgb25DbGljaz17KCkgPSZhbXA7Z3Q7IGFkZE5ld1Rhc2soKX0KICAgICAgICAgICAgICAmYW1wO2d0OwogICAgICAgICAgICAgICAgQWRkIFRhc2sKICAgICAgICAgICAgICAmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkQ29udGVudCZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uIG9uQ2xpY2s9eygpID0mYW1wO2d0OyBzZXRTaG93TW9kYWwoZmFsc2UpfSZhbXA7Z3Q7Q2xvc2UgTW9kYWwmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICZhbXA7bHQ7L0lvbk1vZGFsJmFtcDtndDsKCiAgICAgICAgey8qIEFkZCBUYXNrIEJ1dHRvbiAqL30KICAgICAgICAmYW1wO2x0O0lvbkZhYiB2ZXJ0aWNhbD0mcXVvdDtib3R0b20mcXVvdDsgaG9yaXpvbnRhbD0mcXVvdDtlbmQmcXVvdDsgc2xvdD0mcXVvdDtmaXhlZCZxdW90OyZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkZhYkJ1dHRvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsgc2V0U2hvd01vZGFsKHRydWUpfSZhbXA7Z3Q7CiAgICAgICAgICAgICZhbXA7bHQ7SW9uSWNvbiBpY29uPXthZGR9IC8mYW1wO2d0OwogICAgICAgICAgJmFtcDtsdDsvSW9uRmFiQnV0dG9uJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25GYWImYW1wO2d0OwogICAgICAmYW1wO2x0Oy9Jb25Db250ZW50JmFtcDtndDsKICAgICZhbXA7bHQ7L0lvblBhZ2UmYW1wO2d0OwogICk7Cn07CgpleHBvcnQgZGVmYXVsdCBUYWIxOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyBsZXTigJlzIGdvIHRocm91Z2ggdGhlIGNvZGUgc25pcHBldCBhYm92ZS4gVGhpcyBpcyB0aGUgZW50aXJlIGNvZGUgZm9yIG91ciBUYXNrIE1hbmFnZXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnQgYnkgaW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzIGluY2x1ZGluZyB0aGUgY3NzIGZpbGUgZm9yIG91ciBwYWdlLiBXZSB0aGVuIGRlZmluZSBhbiBpbnRlcmZhY2UgdG8gZGVmaW5lIG91ciB0YXNrIG9iamVjdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtpbnRlcmZhY2UgVGFzayB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7Cn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7TmV4dCwgd2UgY3JlYXRlIG91ciBjb21wb25lbnQgYXMgYSBSZWFjdCBmdW5jdGlvbiBjb21wb25lbnQgdHlwZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtSZWFjdC5GQyZsdDsvY29kZSZndDsgYW5kIGJlZ2luIHRoZSBmdW5jdGlvbiBieSBkZWZpbmluZyB0aGUgZGF0YSB3ZSB3YW50IHRvIGhvbGQgaW4gb3VyIHN0YXRlIHVzaW5nIGhvb2tzOiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tzJmx0Oy9jb2RlJmd0OyBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYXNrJmx0Oy9jb2RlJmd0O3MsIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2hvd01vZGFsJmx0Oy9jb2RlJmd0OyBib29sZWFuIHRvIGNvbnRyb2wgdGhlIG9wZW5pbmcgYW5kIGNsb3Npbmcgb2Ygb3VyIHRhc2sgY3JlYXRpb24gZm9ybSwgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tOYW1lJmx0Oy9jb2RlJmd0OyB3aGljaCBob2xkcyB0aGUgdmFsdWUgb2YgYSBuZXcgdGFzayBpbiB0aGUgcHJvY2VzcyBvZiBjcmVhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IFt0YXNrcywgc2V0VGFza3NdID0gdXNlU3RhdGUmYW1wO2x0O1Rhc2tbXSZhbXA7Z3Q7KFtdKTsKY29uc3QgW3Nob3dNb2RhbCwgc2V0U2hvd01vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTsKY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Rm9sbG93aW5nIHRoZXNlIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdlIGNhbGwgdG8gYWRkIGEgbmV3IHRhc2suIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyB0YXNrIGJ5IHNldHRpbmcgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lkJmx0Oy9jb2RlJmd0OyBiYXNlZCBvbiB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBhbmQgY2xlYXJzIHRoZSBmb3JtIGFmdGVyIGFkZGluZyB0aGUgbmV3IHRhc2sgdG8gb3VyIGV4aXN0aW5nIGxpc3Qgb2YgdGFza3MuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtmdW5jdGlvbiBhZGROZXdUYXNrKCkgewogIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogIGNvbnN0IG5ld1Rhc2sgPSB7CiAgICBpZDogbmV3X2lkLAogICAgbmFtZTogdGFza05hbWUsCiAgfTsKCiAgdGFza3MucHVzaChuZXdUYXNrKTsKCiAgc2V0VGFza3ModGFza3MpOwoKICBzZXRUYXNrTmFtZSgmcXVvdDsmcXVvdDspOwoKICBzZXRTaG93TW9kYWwoZmFsc2UpOwp9CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05leHQsIHdlIHJlbmRlciBvdXIgdGVtcGxhdGUgdG8gZGlzcGxheSBvdXIgbGlzdCBvZiB0YXNrcyBhbmQgYWxzbyBkaXNwbGF5IGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgcmVhZHMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmbHQ7L2NvZGUmZ3Q7IHdoZW4gdGhlIHRhc2sgbGlzdCBpcyBlbXB0eS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtGb2xsb3dpbmcgdGhlIGxpc3QgaXMgYSBtb2RhbCBjb21wb25lbnQgdGhhdCBjb250YWlucyBvdXIgdGFzayBmb3JtIGZvciBhZGRpbmcgbmV3IHRhc2tzLiBCZWxvdyB0aGUgY29tcG9uZW50IGlzIGEgZmxvYXRpbmcgYWN0aW9uIGJ1dHRvbiB0aGF0IHRoZSB1c2VyIGNsaWNrcyB0byBvcGVuIHRoZSBtb2RhbC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWZvcmUgd2UgcHJldmlldyB0aGlzLCBvcGVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEuY3NzJmx0Oy9jb2RlJmd0OyBsb2NhdGVkIGluIHRoZSBzYW1lIGZvbGRlciBhcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRzeCZsdDsvY29kZSZndDsgYW5kIHJlcGxhY2UgaXRzIGNvbnRlbnRzIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Lyogc3JjL3BhZ2VzL1RhYjEuY3NzICovCgoudG9kby1pdGVtIHsKICAtLW1pbi1oZWlnaHQ6IDcwcHg7CiAgZm9udC1zaXplOiAxLjJlbTsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHNpbXBseSBidW1wcyB1cCB0aGUgaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgdGhlIGxpc3QgaXRlbXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm93LCBnbyB0byB5b3VyIGJyb3dzZXIgYW5kIGxvYWQgdGhlIGhvbWVwYWdlIG9mIHlvdXIgYXBwbGljYXRpb24gKFRhYjEpLiBZb3Ugd2lsbCBzZWUgdGhlIHBhZ2UgZGlzcGxheWVkIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1ob21lLW5vLXRhc2tzLnBuZyZxdW90OyAvJmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QmVjYXVzZSB3ZSBoYXZlbuKAmXQgYWRkZWQgYW55IHRhc2tzIHlldCwgd2UgaGF2ZSB0aGUgbWVzc2FnZSAmbHQ7c3Ryb25nJmd0O1lvdSBoYXZlIHlldCB0byBhZGQgdGFza3MgZm9yIHRvZGF5Jmx0Oy9zdHJvbmcmZ3Q7IGRpc3BsYXllZC4gV2UgYWxzbyBoYXZlIG91ciAmbHQ7c3Ryb25nJmd0O0FkZCBUYXNrJmx0Oy9zdHJvbmcmZ3Q7IGJ1dHRvbiBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lciB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwbHVzJmx0Oy9jb2RlJmd0OyBzeW1ib2wuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0FkZGluZyB0YXNrcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBhZGQgYSBuZXcgdGFzaywgY2xpY2sgdGhlIGJvdHRvbS1yaWdodCBibHVlIGJ1dHRvbiB0byBwdWxsIHVwIHRoZSB0YXNrIGNyZWF0aW9uIGZvcm0gYW5kIHR5cGUgaW4gYSB0YXNrIGFzIHNob3duIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtdGFzay5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7QUREIFRBU0smbHQ7L3N0cm9uZyZndDsgdG8gYWRkIHRoZSB0YXNrIGFuZCBnbyBhaGVhZCB0byBhZGQgMiB0byAzIG1vcmUgdGFza3MuIFdlIHNob3VsZCBub3cgaGF2ZSBlbm91Z2ggdGFza3Mgb24gdGhlIHBhZ2UgZm9yIG91ciBhcHBsaWNhdGlvbiB0byBsb29rIGZ1bmN0aW9uYWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXRhc2stbGlzdC5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB3ZSBoYXZlIGEgZnVuY3Rpb25hbCBhcHBsaWNhdGlvbi4gTm90IHByb2R1Y3Rpb24tcmVhZHksIGJ1dCBnb29kIGVub3VnaCB0byBzdGFydCB0ZXN0aW5nLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBZGRpbmcgdGVzdHMgdG8gdGhlIFRhc2sgTWFuYWdlciBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtPbmUgYWR2YW50YWdlIHRoYXQgd2UgaGF2ZSB3aXRoIHRlc3Rpbmcgb3VyIElvbmljIGFwcGxpY2F0aW9ucyBpcyB0aGF0IHdoaWxlIHNjYWZmb2xkaW5nIHRoZSBhcHBsaWNhdGlvbiwgdGhlIElvbmljIENMSSBoYXMgc2V0IHVwIGFsbCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcywgaW4gdGVybXMgb2YgcGFja2FnZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCBmb3IgdGVzdGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUZXN0aW5nIElvbmljIFJlYWN0IGFwcGxpY2F0aW9ucyBpcyBkb25lIHVzaW5nIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vamVzdGpzLmlvLyZxdW90OyZndDtKZXN0Jmx0Oy9hJmd0OyB0ZXN0aW5nIGZyYW1ld29yayB0b2dldGhlciB3aXRoIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdGVzdGluZy1saWJyYXJ5LmNvbS9kb2NzL3JlYWN0LXRlc3RpbmctbGlicmFyeS9pbnRybyZxdW90OyZndDtSZWFjdCBUZXN0aW5nIExpYnJhcnkmbHQ7L2EmZ3Q7IGFuZCB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1yZWFjdC10ZXN0LXV0aWxzJnF1b3Q7Jmd0O0lvbmljIFJlYWN0IFRlc3QgVXRpbHMmbHQ7L2EmZ3Q7IGxpYnJhcnkgd2hpY2ggaXMgYSBzbWFsbCBzdWl0ZSBvZiB1dGlsaXRpZXMgdG8gc2ltdWxhdGUgY29tbW9uIGZlYXR1cmVzIGluIElvbmljIGxpa2UgZmlyaW5nIGN1c3RvbSBJb25pYyBldmVudHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIHByb2plY3QgYWxyZWFkeSBjb21lcyB3aXRoIGEgdGVzdCBmaWxlIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7QXBwLnRzeCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLiBBcyB5b3UgbWF5IGhhdmUgZ3Vlc3NlZCwgdGhlIHRlc3QgZmlsZSBpcyBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtBcHAudGVzdC50c3gmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGZvbGxvd3MgdGhlIGNvbnZlbnRpb24gZm9yIEplc3QgdGVzdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsvLyBzcmMvQXBwLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgQXBwIGZyb20gJnF1b3Q7Li9BcHAmcXVvdDs7Cgp0ZXN0KCZxdW90O3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZyZxdW90OywgKCkgPSZhbXA7Z3Q7IHsKICBjb25zdCB7IGJhc2VFbGVtZW50IH0gPSByZW5kZXIoJmFtcDtsdDtBcHAgLyZhbXA7Z3Q7KTsKICBleHBlY3QoYmFzZUVsZW1lbnQpLnRvQmVEZWZpbmVkKCk7Cn0pOwombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHRlc3Qgc2ltcGx5IGNoZWNrcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiByZW5kZXJzIHByb3Blcmx5IGFuZCBkb2VzIG5vdCBjcmFzaC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBydW4gdGhpcyB0ZXN0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBpbnZva2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2plc3QmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gcnVuIHRoZSB0ZXN0IGRlZmluZWQgaW4gdGhlIGZpbGUuIEFzIGRpcmVjdGVkLCBwcmVzcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDthJmx0Oy9jb2RlJmd0OyB0byBydW4gYWxsIHRlc3RzLiBUaGUgYWJvdmUgY29tbWFuZCBpcyB0aGUgY29tbWFuZCB3ZSB3aWxsIGJlIHVzaW5nIHRvIHJ1biBhbGwgdGVzdHMgaW4gb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgbGV04oCZcyBhZGQgc29tZSB0ZXN0cyBvZiBvdXIgb3duLiBXZSB3aWxsIGJlIGNyZWF0aW5nIGEgdGVzdCBmaWxlIHRvIHRlc3QgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIHdlIGhhdmUgaW4gb3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlIHdoaWNoIGhvdXNlcyBvdXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRlc3QudHN4Jmx0Oy9jb2RlJmd0OyBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyLiBJdOKAmXMgdGhlIHNhbWUgcGxhY2UgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VGFiMS50c3gmbHQ7L2NvZGUmZ3Q7IGZpbGUgaXMgbG9jYXRlZC4gSW5zaWRlIHRoZSBuZXdseSBjcmVhdGVkIGZpbGUsIHBsYWNlIGluIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgVGFiMSBmcm9tICZxdW90Oy4vVGFiMSZxdW90OzsKCnRlc3QoJnF1b3Q7UGFnZSB0aXRsZSBpcyBUYXNrIE1hbmFnZXImcXVvdDssIGFzeW5jICgpID0mYW1wO2d0OyB7CiAgY29uc3QgeyBmaW5kQnlUZXh0IH0gPSByZW5kZXIoJmFtcDtsdDtUYWIxIC8mYW1wO2d0Oyk7CiAgYXdhaXQgZmluZEJ5VGV4dCgmcXVvdDtUYXNrIE1hbmFnZXImcXVvdDspOwp9KTsKCnRlc3QoJnF1b3Q7V2hlbiB0aGVyZSBhcmUgbm8gVGFza3MsIGluZm9ybSB0aGUgdXNlciB0aGF0IG5vIHRhc2tzIGhhdmUgYmVlbiBjcmVhdGVkJnF1b3Q7LCBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IHsgZmluZEJ5VGV4dCB9ID0gcmVuZGVyKCZhbXA7bHQ7VGFiMSAvJmFtcDtndDspOwogIGF3YWl0IGZpbmRCeVRleHQoJnF1b3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmcXVvdDspOwp9KTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBmaWxlLCB3ZSBoYXZlIGFkZGVkIHR3byB0ZXN0cy4gVGhlIGZpcnN0IHRlc3QgY2hlY2tzIGlmIG91ciBwYWdlIGRpc3BsYXlzIHdpdGggdGhlIGNvcnJlY3QgdGl0bGUgd2hpY2ggaXMgJmx0O3N0cm9uZyZndDtUYXNrIE1hbmFnZXImbHQ7L3N0cm9uZyZndDsuIFRoZSBzZWNvbmQgdGVzdCBjaGVja3MgaWYgb3VyIGFwcGxpY2F0aW9uIGluaXRpYWxseSBsb2FkcyB3aXRob3V0IHRhc2tzLCBhbmQgaWYgaXQgZG9lcywgaXQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgJmx0O3N0cm9uZyZndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3csIGxldOKAmXMgcnVuIHRoZXNlIHRlc3RzIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGF0IHRoZSByb290IG9mIG91ciBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSBhIHNjcmVlbiBzaW1pbGFyIHRvIHRoZSBvbmUgYmVsb3cgb24geW91ciBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi10ZXN0cy1sb2NhbC1ydW4ucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIG91ciB0ZXN0cyBydW5uaW5nIGFzIGV4cGVjdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBdXRvbWF0aW5nIG91ciB0ZXN0aW5nJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBmaW5hbCB0YXNrIGlzIHRvIGF1dG9tYXRlIG91ciBjb250aW51b3VzIGludGVncmF0aW9uIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhhdCwgd2Ugd2lsbCBiZSBkb2luZyB0aGUgZm9sbG93aW5nOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QWRkIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgdG8gb3VyIHByb2plY3QgdG8gc2V0IHVwIGEgQ0kgcGlwZWxpbmUgb24gQ2lyY2xlQ0kmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIG91ciBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG9zaXRvcnkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDcmVhdGUgYSBDaXJjbGVDSSBwcm9qZWN0IGZvciBvdXIgYXBwbGljYXRpb24mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtSdW4gdGhlIENJIHBpcGVsaW5lIG9uIENpcmNsZUNJJmx0Oy9saSZndDsKJmx0Oy9vbCZndDsKCiZsdDtwJmd0O0xldOKAmXMgZ2V0IHRvIGl0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZpcnN0LCBsZXTigJlzIGFkZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3Igb3VyIENJIHBpcGVsaW5lIHRvIG91ciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLiBJbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbmZpZy55bWwmbHQ7L2NvZGUmZ3Q7IGZpbGUsIGVudGVyIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpqb2JzOgogIGJ1aWxkOgogICAgd29ya2luZ19kaXJlY3Rvcnk6IH4vcmVwbwogICAgZG9ja2VyOgogICAgICAtIGltYWdlOiBjaW1nL25vZGU6MTIuMTYKICAgIHN0ZXBzOgogICAgICAtIGNoZWNrb3V0CiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdXBkYXRlLW5wbQogICAgICAgICAgY29tbWFuZDogJnF1b3Q7c3VkbyBucG0gaW5zdGFsbCAtZyBucG1ANSZxdW90OwogICAgICAtIHJlc3RvcmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgLSBydW46CiAgICAgICAgICBuYW1lOiBpbnN0YWxsLXBhY2thZ2VzCiAgICAgICAgICBjb21tYW5kOiBucG0gaW5zdGFsbAogICAgICAtIHNhdmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgICAgIHBhdGhzOgogICAgICAgICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdGVzdAogICAgICAgICAgY29tbWFuZDogbnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgY29uZmlndXJhdGlvbiBwdWxscyBpbiBhIE5vZGUuanMgaW1hZ2UgYW5kIGluc3RhbGxzIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGRlZmluZWQgaW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0Oy4gT25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCB0aGUgdGVzdCBzY3JpcHQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bnBtIHJ1biB0ZXN0Jmx0Oy9jb2RlJmd0OyBpcyB0aGVuIGV4ZWN1dGVkIHRvIHJ1biBhbGwgdGhlIHRlc3RzIGluIG91ciBhcHBsaWNhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGdvb2QgdG8gZ28uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY29tbWl0IGFsbCB5b3VyIGNoYW5nZXMgYW5kIHB1c2ggdGhlIHByb2plY3QgdG8gYSBHaXRIdWIgcmVwb3NpdG9yeSBvbiB0aGUgR2l0SHViIGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgQ2lyY2xlQ0kgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIGlzIHRvIHNldCB1cCB0aGUgcmVwb3NpdG9yeSBmb3Igb3VyIHByb2plY3QgYXMgYSBDaXJjbGVDSSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBDaXJjbGVDSSBjb25zb2xlLCBnbyB0byB0aGUgJmx0O3N0cm9uZyZndDtBZGQgUHJvamVjdHMmbHQ7L3N0cm9uZyZndDsgcGFnZSB0byBhZGQgdGhlIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtcHJvamVjdC5wbmcmcXVvdDsgYWx0PSZxdW90O0FkZCBQcm9qZWN0JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0Oy4gVGhpcyB3aWxsIGxvYWQgdGhlIG5leHQgc2NyZWVuLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3N0YXJ0LWJ1aWxkaW5nMS5wbmcmcXVvdDsgYWx0PSZxdW90O1N0YXJ0IEJ1aWxkaW5nIC0gQ29uZmlnIHNhbXBsZSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBzZXR1cCBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7LiBCZWZvcmUgdGhlIGJ1aWxkIHN0YXJ0cywgeW91IGdldCBhIHByb21wdCB0byBlaXRoZXIgZG93bmxvYWQgYW5kIHVzZSB0aGUgcHJvdmlkZWQgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBoYXZlIGl0IG9uIGEgc2VwYXJhdGUgYnJhbmNoIG9yIHNldCB1cCBvbmUgbWFudWFsbHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzIucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIEFkZCBtYW51YWxseSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1NlbGVjdCAmbHQ7c3Ryb25nJmd0O0FkZCBNYW51YWxseSZsdDsvc3Ryb25nJmd0OyB0byBwcm9jZWVkLiBUaGlzIHdpbGwgcHJvbXB0IGFub3RoZXIgZGlhbG9nIHRoYXQgY2hlY2tzIHRvIGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXQgdXAgdG8gYmVnaW4gYnVpbGRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzMucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIENvbmZpcm0gY29uZmlndXJhdGlvbiZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsgdG8gY29tcGxldGUgdGhlIHNldHVwLiBUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgcGlwZWxpbmUgdXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBvdXIgcHJvamVjdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGUgYnVpbGQgaXMgZG9uZSBydW5uaW5nLCB5b3Ugd2lsbCBnZXQgYSBzdWNjZXNzZnVsIGJ1aWxkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtc3VjY2Vzc2Z1bC5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHN1Y2Nlc3NmdWwmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O2J1aWxkJmx0Oy9zdHJvbmcmZ3Q7IHRvIHNlZSB0aGUgYmVoaW5kLXRoZS1zY2VuZXMgcHJvY2VzcyhJIGhhdmUgY29sbGFwc2VkIHRoZSAmbHQ7ZW0mZ3Q7dGVzdCZsdDsvZW0mZ3Q7IHN0ZXApLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtcHJvY2Vzcy5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHByb2Nlc3MmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBzY3JlZW4sIG91ciBwcm9qZWN0IGlzIHByb3Blcmx5IHNldCB1cCBhbmQgYWxsIG91ciB0ZXN0cyBhcmUgcnVubmluZyBmaW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgYXMgeW91IGRldmVsb3AsIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgbW9yZSBmZWF0dXJlcywgYWRkIHRlc3RzIHRvIHRoZW0gYW5kIHB1c2ggdG8gR2l0SHViLiBPbmNlIHlvdSBwdXNoLCB0aGUgQ0kgcGlwZWxpbmUgd2lsbCBydW4gYW5kIGFsbCB5b3VyIHRlc3RzIHdpbGwgYmUgZXhlY3V0ZWQuIElmIGFueSB0ZXN0IGZhaWxzLCB5b3VyIGJ1aWxkIHdpbGwgZmFpbCB3aGljaCB3aWxsIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbiB0byBiZSBmaXhlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW914oCZcmUgbm90IHB1c2hpbmcgYW55IGJ1Z3MgaW50byB5b3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIHRoaXMgYXJ0aWNsZSwgd2UgaGF2ZSBzZXQgdXAgYW4gYXV0b21hdGVkIENJIHBpcGVsaW5lIGZvciBvdXIgSW9uaWMgYXBwbGljYXRpb25zIHRvIGltcHJvdmUgb3VyIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGF1dG9tYXRpbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4gSGF2aW5nIGEgQ0kgcGlwZWxpbmUgdGhhdCBwcm9wZXJseSBydW5zIG91ciB0ZXN0cyBwcm90ZWN0cyB1cyBhZ2FpbnN0IG91cnNlbHZlcyBieSBlbnN1cmluZyB0aGF0IHdlIGRvbuKAmXQgZW5kIHVwIHdpdGggYnJva2VuIGFwcGxpY2F0aW9ucyBvciB0aGF0IHdlIGRvbuKAmXQgcHVzaCBidWdneSBjb2RlIHRvIG91ciB0ZWFt4oCZcyByZXBvc2l0b3J5IHdoaWxlIHdvcmtpbmcgdG9nZXRoZXIgb24gYSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyA6KSZsdDsvcCZndDsKCiZsdDtociAvJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3R3aXR0ZXIuY29tL2NvZGVyb25mbGVlaz9sYW5nPWVuJnF1b3Q7Jmd0O0Zpa2F5byZsdDsvYSZndDsgaXMgYSBmdWxsc3RhY2sgZGV2ZWxvcGVyIGFuZCBhdXRob3Igd2l0aCBvdmVyIGEgZGVjYWRlIG9mIGV4cGVyaWVuY2UgZGV2ZWxvcGluZyB3ZWIgYW5kIG1vYmlsZSBzb2x1dGlvbnMuIEhlIGlzIGN1cnJlbnRseSB0aGUgU29mdHdhcmUgTGVhZCBhdCBUZWNoIFNwZWNpYWxpc3QgQ29uc3VsdGluZyBhbmQgZGV2ZWxvcHMgY291cnNlcyBmb3IgUGFja3QgYW5kIFVkZW15LiBIZSBoYXMgYSBzdHJvbmcgcGFzc2lvbiBmb3IgdGVhY2hpbmcgYW5kIGhvcGVzIHRvIGJlY29tZSBhIGZ1bGwtdGltZSBhdXRob3IuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5EcmF3biBPdXQgQ29udmVyc2F0aW9ucywgZmVhdHVyaW5nIENpcmNsZUNJIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlciwgUGF0IFNoaWVsZHM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZHJhd24tb3V0LWNvbnZlcnNhdGlvbi1mZWF0dXJpbmctY2lyY2xlY2ktcHJpbmNpcGFsLXNvZnR3YXJlLWVuZ2luZWVyLXBhdC1zaGllbGRzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5GcmksIDE1IE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RyYXduLW91dC1jb252ZXJzYXRpb24tZmVhdHVyaW5nLWNpcmNsZWNpLXByaW5jaXBhbC1zb2Z0d2FyZS1lbmdpbmVlci1wYXQtc2hpZWxkcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Db3JleSBMZXdpczwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtPbiB0aGlzIGVwaXNvZGUgb2YgRHJhd24gT3V0IENvbnZlcnNhdGlvbnMsIHdlIHRhbGsgYWJvdXQgc29tZXRoaW5nIG5lYXIgYW5kIGRlYXIgdG8gb3VyIGhlYXJ0cyDigJMgQ2lyY2xlQ0kuIFdlLCBhbG9uZyB3aXRoIGh1bmRyZWQgb2YgdGhvdXNhbmRzIG9mIG90aGVyIGRldmVsb3BlcnMgYXQgY29tcGFuaWVzIGxpa2UgU3BvdGlmeSwgRmFjZWJvb2ssIEZvcmQgYW5kIEFldG5hLCB1c2UgQ2lyY2xlQ0kgZXZlcnkgZGF5IHRvIG1ha2Ugc3VyZSB0aGF0IHdl4oCZcmUgZGVwbG95aW5nIHF1YWxpdHkgY29kZSwgYW5kIGJ1aWxkaW5nIGVmZmljaWVuY2llcyBpbnRvIG91ciBlbmdpbmVlcmluZyBwcm9jZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0LCB3aGF0IGV4YWN0bHkgaXMgdW5kZXJuZWF0aCBvdXIgcGxhdGZvcm3igJlzIGhvb2Q/Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Sm9pbiBvdXIgQ1RPIFJvYiBadWJlciBhcyBoZSBob3N0cyBDaXJjbGVDSeKAmXMgUHJpbmNpcGFsIFNvZnR3YXJlIEVuZ2luZWVyIFBhdCBTaGllbGRzIHRvIGRpc2N1c3MgdGhlIGlubmVyLXdvcmtpbmdzIG9mIG91ciB0ZWNobm9sb2d5IGFuZCBwbGF0Zm9ybS4gVGhleSBkaXNjdXNzIGV2ZXJ5dGhpbmcgZnJvbSBwcm9kdWN0IGZlYXR1cmVzIHRvIGFyY2hpdGVjdHVyZSBhbmQgdGFsayBhYm91dCBob3cgYW5kIHdoeSB0aGUgY29yZSBlbGVtZW50cyBvZiBvdXIgcGxhdGZvcm0gZ290IGJ1aWx0LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3JvYi1wYXQucG5nJnF1b3Q7IGFsdD0mcXVvdDtyb2ItcGF0LnBuZyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1JvYiBldmVuIHRha2VzIGEgdHVybiB3aXRoIHRoZSBtYXJrZXJzIHRvIGRpc2N1c3MgZG9tYWluLWRyaXZlbiBkZXNpZ24sIGF1dGhlbnRpY2F0aW9uIGFuZCBtb3JlLiBMZWFybiBldmVyeXRoaW5nIHlvdSBldmVyIHdhbnRlZCB0byBrbm93IGFib3V0IENpcmNsZUNJIGFuZCBtb3JlIGluIHRvZGF54oCZcyBjb252ZXJzYXRpb24uJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXImcXVvdDsmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3lvdXR1LmJlL1dMOVJRNmZNbGUwJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvY2lyY2xlY2kuZ2lmJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsKICAmbHQ7L2EmZ3Q7CgombHQ7YnIgLyZndDsKCiAgJmx0O3AmZ3Q7CiAgICAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8veW91dHUuYmUvV0w5UlE2Zk1sZTAmcXVvdDsgc3R5bGU9JnF1b3Q7Y29sb3I6IzAwMDBFRTsmcXVvdDsmZ3Q7CiAgICAgIFdhdGNoIHRoZSBmdWxsIHZpZGVvIGhlcmUKICAgICZsdDsvYSZndDsKICAmbHQ7L3AmZ3Q7CiZsdDsvZGl2Jmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZG8gSSB1c2UgSW5mcmFzdHJ1Y3R1cmUgYXMgQ29kZT88L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWRvLWktaWFjLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE1heSAyMDIwIDEyOjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2hvdy1kby1pLWlhYy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5BbmdlbCBSaXZlcmE8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7SW5mcmFzdHJ1Y3R1cmUgYXMgY29kZSAoSWFDKSBpcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBhbmQgcHJvdmlzaW9uaW5nIGNsb3VkIGFuZCBJVCByZXNvdXJjZXMgdmlhIG1hY2hpbmUgcmVhZGFibGUgZGVmaW5pdGlvbiBmaWxlcyBhbmQgaXMgYSBwYXJ0IG9mIG1vZGVybiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lcy4gSWFDIGVuYWJsZXMgb3JnYW5pemF0aW9ucyB0byBwcm92aXNpb24sIG1hbmFnZSwgYW5kIGRlc3Ryb3kgY29tcHV0ZSByZXNvdXJjZXMgdXNpbmcgbW9kZXJuIERldk9wcyB0b29scy4gSWFDIGVuYWJsZXMgdGhpcyBieSBzdGF0aWNhbGx5IGRlZmluaW5nIGFuZCBkZWNsYXJpbmcgdGhlc2UgcmVzb3VyY2VzIGluIGNvZGUsIHRoZW4gZGVwbG95aW5nIGFuZCBkeW5hbWljYWxseSBtYWludGFpbmluZyB0aGVzZSByZXNvdXJjZXMgdmlhIGNvZGUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gcmVjZW50IGludGVyYWN0aW9ucyB3aXRoIGRldmVsb3BlcnMsIEnigJl2ZSByZWFsaXplZCB0aGF0IG1hbnkgYXJlIGVpdGhlciBub3QgYXdhcmUgb2YgSWFDLCBvciBhcmUgYXdhcmUgYnV0IGhhdmUgYWJhbmRvbmVkIHRoZWlyIGluaXRpYWwgZWZmb3J0cyBiZWNhdXNlIHJhbXBpbmcgdXAgd2FzIHRvbyBjdW1iZXJzb21lLiBJbiB0aGlzIHBvc3QsIEkgd2lsbCBkaXNjdXNzIHRoZSBiZW5lZml0cyBvZiBJYUMgYW5kIHNvbWUgb2YgdGhlIHRvb2xpbmcgb3B0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgYWxvbmcgd2l0aCBhIGJyaWVmIGRlbW9uc3RyYXRpb24gb24gaG93IHRvIHVzZSB0aGVtIGluIGhvcGVzIG9mIGVhc2luZyB0aGUgdHJhbnNpdGlvbiB0byB1c2luZyBJYUMuIEkgd2lsbCBmb2N1cyBvbiB0aGUgdHdvIG1vc3QgcG9wdWxhciBJYUMgdG9vbHMgdXNlZCBpbiB0aGUgaW5kdXN0cnkgdG9kYXk6ICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cudGVycmFmb3JtLmlvLyZxdW90OyZndDtIYXNoaUNvcnDigJlzIFRlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtCZWZvcmUgeW91IGdldCBzdGFydGVkLCB5b3XigJlsbCBuZWVkIHRvIGhhdmUgdGhlc2UgdGhpbmdzOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9mcmVlJnF1b3Q7Jmd0O0dvb2dsZSBDbG91ZCZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NyZWF0ZSBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3Jlc291cmNlLW1hbmFnZXIvZG9jcy9jcmVhdGluZy1tYW5hZ2luZy1wcm9qZWN0cyNjcmVhdGluZ19hX3Byb2plY3QmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIHByb2plY3QmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FwcC5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkgQVBJIHRva2VuJmx0Oy9hJmd0OyBhbmQgc2F2ZSBpdCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgbG9jYWwgaW5zdGFsbCBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vc2RrL2RvY3MvcXVpY2tzdGFydHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIFNESyBDTEkmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSBsb2NhbCBpbnN0YWxsIG9mIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaHViLmRvY2tlci5jb20vc2VhcmNoLz90eXBlPWVkaXRpb24mYW1wO2FtcDtvZmZlcmluZz1jb21tdW5pdHkmcXVvdDsmZ3Q7RG9ja2VyIGNsaWVudCZsdDsvYSZndDsmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBHb29nbGUgQ2xvdWQgcHJvamVjdCBjcmVkZW50aWFscyZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDbG91ZFBsYXRmb3JtL2NvbW11bml0eS9ibG9iL21hc3Rlci90dXRvcmlhbHMvZ2V0dGluZy1zdGFydGVkLW9uLWdjcC13aXRoLXRlcnJhZm9ybS9pbmRleC5tZCNnZXR0aW5nLXByb2plY3QtY3JlZGVudGlhbHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIGNyZWRlbnRpYWxzJmx0Oy9hJmd0OyBpbiBvcmRlciB0byBwZXJmb3JtIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgdXNpbmcgSWFDIHRvb2xpbmcuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9hcGlzL2NyZWRlbnRpYWxzL3NlcnZpY2VhY2NvdW50a2V5JnF1b3Q7Jmd0O0NyZWF0ZSBTZXJ2aWNlIEFjY291bnQgS2V5IHBhZ2UmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7U2VsZWN0IHRoZSBkZWZhdWx0IHNlcnZpY2UgYWNjb3VudCBvciBjcmVhdGUgYSBuZXcgb25lLCBzZWxlY3QgSlNPTiBhcyB0aGUga2V5IHR5cGUsIGFuZCBjbGljayAmbHQ7c3Ryb25nJmd0O0NyZWF0ZSZsdDsvc3Ryb25nJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O1NhdmUgdGhpcyBKU09OIGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgYW5kIHJlbmFtZSB0aGUgZmlsZSB0byAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaWNkX2RlbW9fZ2NwX2NyZWRzLmpzb24mbHQ7L2NvZGUmZ3Q7LiBUaGlzIGlzICZsdDtzdHJvbmcmZ3Q7dmVyeSBpbXBvcnRhbnQmbHQ7L3N0cm9uZyZndDsgZm9yIGVuYWJsaW5nIHRoZSBHb29nbGUgQ2xvdWQgQ0xJIGluIHRoZSBjb250YWluZXIgbGF0ZXIgb24mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBhIFB1bHVtaSBBUEkgdG9rZW4mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7WW91IHdpbGwgbmVlZCB0byBnZXQgYSBQdWx1bWkgQVBJIHRva2VuIHRvIHN0b3JlIHlvdXIgcHJvamVjdCBzdGF0ZSBvbiBQdWx1bWnigJlzIGJhY2tlbmQgY2xvdWQuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vYXBwLnB1bHVtaS5jb20vJnF1b3Q7Jmd0O2FwcC5wdWx1bWkuY29tLyZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1NlbGVjdCBhbiBPcmdhbml6YXRpb24mbHQ7L3N0cm9uZyZndDsgb24gdGhlIHVwcGVyIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSBhbmQgc2VsZWN0IHlvdXIgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O0FjY2VzcyBUb2tlbnMmbHQ7L3N0cm9uZyZndDsgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7TmV3IEFjY2VzcyBUb2tlbiZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7Q3JlYXRlJmx0Oy9zdHJvbmcmZ3Q7IGFuZCBzYXZlIHRoZSBuZXcgQVBJIHRva2VuIHRoYXQgd2FzIGNyZWF0ZWQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemUgeW91ciBQdWx1bWkgcHJvamVjdCBsYXRlciZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7aDImZ3Q7RG9ja2VyIHB1bGwgSWFDMTAxIERvY2tlciBpbWFnZSZsdDsvaDImZ3Q7CgombHQ7cCZndDtBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlZCBhbmQgeW914oCZcmUgcmVhZHkgdG8gcHVsbCB0aGUgZG9ja2VyIGltYWdlIGZvciB0aGlzIHdvcmtzaG9wLiBJbiB0ZXJtaW5hbCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBwdWxsIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm93IGhhdmUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2FyaXYzcmEvaWFjMTAxJmx0Oy9jb2RlJmd0OyBkb2NrZXIgaW1hZ2UgbG9jYWxseS4gWW91IGNhbiB2ZXJpZnkgYnV5IHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgYW5kIHlvdSBzaG91bGQgc2VlIHRoZSBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0RvY2tlciBydW4gSWFDMTAxIGNvbnRhaW5lciZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgd2XigJlsbCBjcmVhdGUgYSBuZXcgRG9ja2VyIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YXJpdjNyYS9pYWMxMDEmbHQ7L2NvZGUmZ3Q7IGltYWdlIHdoaWNoIGhhcyBhbGwgdGhlIElhQyB0b29scyBhbmQgY29kZSBwcmUtYmFrZWQuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O01vdW50aW5nIHRoZSAvLmNvbmZpZy9nY2xvdWQvIGRpcmVjdG9yeSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtCZWZvcmUgcnVubmluZyB0aGUgbmV3IGNvbnRhaW5lciB5b3UgbmVlZCB0aGUgYWJzb2x1dGUgcGF0aCB0byB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkuIE9uIG15IE1hY09TIG1hY2hpbmUsIG15IGFic29sdXRlIHBhdGggaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7L1VzZXJzL2FuZ2VsLy5jb25maWcvZ2Nsb3VkLyZsdDsvY29kZSZndDsuIEJlIHN1cmUgdG8gZ2V0IHlvdXIgYWJzb2x1dGUgZmlsZSBwYXRoIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2Nsb3VkJmx0Oy9jb2RlJmd0OyBkaXJlY3Rvcnkgb24geW91ciBsb2NhbCBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtSdW4gSWFDMTAxIGNvbnRhaW5lciB3aXRoIG1vdW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtSdW4gdGhpcyBjb21tYW5kIGluIGEgdGVybWluYWwgcnVuIGJ1dCBiZSBzdXJlIHRvIHJlcGxhY2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0OyZsdDsvY29kZSZndDsgYml0IHdpdGggeW91ciBhY3R1YWwgYWJzb2x1dGUgcGF0aCB0byB5b3VyIGxvY2FsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dsb2N1ZC8mbHQ7L2NvZGUmZ3Q7ZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtaXQgLS1uYW1lIGlhY3Rlc3QgLS1tb3VudCB0eXBlPWJpbmQsc291cmNlPSZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0Oy5jb25maWcvZ2Nsb3VkLyx0YXJnZXQ9L3Jvb3QvLmNvbmZpZy9nY2xvdWQvIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJYUMxMDEgY29udGFpbmVyIGlzIHJ1bm5pbmcmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGUgcHJldmlvdXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgeW91ciBJYUMxMDEgY29udGFpbmVyIHdpbGwgYmUgdXAgYW5kIHJ1bm5pbmcgYW5kIHlvdXIgdGVybWluYWwgc2hlbGwgaGFzIGRyb3BwZWQgeW91IGludG8gdGhlIHJ1bm5pbmcgY29udGFpbmVyLiBFdmVyeSBjb21tYW5kIHlvdSBydW4gaW4geW91ciB0ZXJtaW5hbCBzaGVsbCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBEb2NrZXIgY29udGFpbmVyIGZyb20gbm93IG9uIHVudGlsIHlvdSBtYW51YWxseSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtleGl0Jmx0Oy9jb2RlJmd0OyB0aGUgY29udGFpbmVyLiBUaGUgY29udGFpbmVyIGhhcyB0aGUgVGVycmFmb3JtIGFuZCBQdWx1bWkgQ0xJIHRvb2xzIGluc3RhbGxlZCwgYXMgd2VsbCBhcyBleGFtcGxlIGNvZGUgZm9yIGVhY2ggdGhhdCBjcmVhdGVzIGluZnJhc3RydWN0dXJlIGluIHRoZWlyIHJlc3BlY3RpdmUgdG9vbHMuIFRoZSBjb250YWluZXIgcHJvamVjdHMgZmlsZXMgYXJlIG1hcHBlZCBhcyBmb2xsb3dzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHJvamVjdHMvCnxfIHRlcnJhZm9ybS9nY3AvY29tcHV0ZS8gICAjIENvbnRhaW5zIHRoZSBUZXJyYWZvcm0gY29kZSBmaWxlcwp8XyBwdWx1bWkvZ2NwL2NvbXB1dGUvICAgICAgIyBDb250YWlucyB0aGUgUHVsdW1pIGNvZGUgZmlsZXMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gyJmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2EmZ3Q7IGlzIGEgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgYnVpbGRpbmcsIGNoYW5naW5nLCBhbmQgdmVyc2lvbmluZyBpbmZyYXN0cnVjdHVyZSBzYWZlbHkgYW5kIGVmZmljaWVudGx5LiBUZXJyYWZvcm0gY2FuIG1hbmFnZSBleGlzdGluZyBzZXJ2aWNlIHByb3ZpZGVycyBhcyB3ZWxsIGFzIGN1c3RvbSBpbi1ob3VzZSBzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q29uZmlndXJhdGlvbiBmaWxlcyBkZXNjcmliZSB0aGUgY29tcG9uZW50cyBuZWVkZWQgdG8gcnVuIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yIHlvdXIgZW50aXJlIGRhdGFjZW50ZXIgb24gVGVycmFmb3JtLiBUZXJyYWZvcm0gZ2VuZXJhdGVzIGFuIGV4ZWN1dGlvbiBwbGFuIGRlc2NyaWJpbmcgd2hhdCBpdCB3aWxsIGRvIHRvIHJlYWNoIHRoZSBkZXNpcmVkIHN0YXRlLCBhbmQgdGhlbiBleGVjdXRlcyBpdCB0byBidWlsZCB0aGUgZGVzY3JpYmVkIGluZnJhc3RydWN0dXJlLiBBcyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBUZXJyYWZvcm0gaXMgYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBjaGFuZ2VkIGFuZCBjcmVhdGUgaW5jcmVtZW50YWwgZXhlY3V0aW9uIHBsYW5zIHdoaWNoIGNhbiBiZSBhcHBsaWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZSBpbmZyYXN0cnVjdHVyZSBUZXJyYWZvcm0gY2FuIG1hbmFnZSBpbmNsdWRlcyBsb3ctbGV2ZWwgY29tcG9uZW50cyBzdWNoIGFzIGNvbXB1dGUgaW5zdGFuY2VzLCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZywgYXMgd2VsbCBhcyBoaWdoLWxldmVsIGNvbXBvbmVudHMgc3VjaCBhcyBETlMgZW50cmllcywgU2FhUyBmZWF0dXJlcywgZXRjLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBUZXJyYWZvcm0mbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCB3aXRoIHByb3Zpc2lvbmluZyBzb21lIHJlc291cmNlcyBpbiBHQ1AgdXNpbmcgVGVycmFmb3JtIGNvZGUuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDttYWluLnRmICZsdDsvY29kZSZndDsgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBjb2RlIHRoYXQgaGFzIG91ciBpbmZyYXN0cnVjdHVyZSBkZWZpbmVkLiBJbiB0aGlzIGZpbGUgd2XigJlyZSBjcmVhdGluZyBhIG5ldyBjb21wdXRlIGluc3RhbmNlIHRoYXQgd2lsbCBpbnN0YWxsIGFuZCBydW4gYSBQeXRob24gRmxhc2sgYXBwIHBhY2thZ2VkIGluIGEgRG9ja2VyIGNvbnRhaW5lci4gVGhlIFRlcnJhZm9ybSBjb2RlIHdpbGwgYWxzbyBjcmVhdGUgc29tZSBmaXJld2FsbCBydWxlcyB0aGF0IHdpbGwgYWxsb3cgcHVibGljIGFjY2VzcyB0byB0aGUgYXBwIG92ZXIgcG9ydCA1MDAwLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHByb3Zpc2lvbiB0aGlzLCBydW4gdGhpcyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NkIH4vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJbml0aWFsaXppbmcgVGVycmFmb3JtJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1doaWxlIGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBydW4gdGhpcyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7dGVycmZvcm0gaW5pdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSByZXN1bHRzIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cm9vdEBkOWNlNzIxMjkzZTI6fi9wcm9qZWN0L3RlcnJhZm9ybS9nY3AvY29tcHV0ZSMgdGVycmFmb3JtIGluaXQKCkluaXRpYWxpemluZyB0aGUgYmFja2VuZC4uLgoKSW5pdGlhbGl6aW5nIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBDaGVja2luZyBmb3IgYXZhaWxhYmxlIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBEb3dubG9hZGluZyBwbHVnaW4gZm9yIHByb3ZpZGVyICZxdW90O2dvb2dsZSZxdW90OyAoaGFzaGljb3JwL2dvb2dsZSkgMy4xMC4wLi4uCgoqIHByb3ZpZGVyLmdvb2dsZTogdmVyc2lvbiA9ICZxdW90O34mYW1wO2d0OyAzLjEwJnF1b3Q7CgpUZXJyYWZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7aDMmZ3Q7UHJldmlld2luZyB3aXRoIFRlcnJhZm9ybSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUZXJyYWZvcm0gaGFzIGEgY29tbWFuZCB0aGF0IGFsbG93cyB5b3UgdG8gZHJ5IHJ1biBhbmQgdmFsaWRhdGUgeW91ciBUZXJyYWZvcm0gY29kZSB3aXRob3V0IGFjdHVhbGx5IGV4ZWN1dGluZyBhbnl0aGluZy4gVGhlIGNvbW1hbmQgaXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybSBwbGFuJmx0Oy9jb2RlJmd0OyB3aGljaCBhbHNvIGdyYXBocyBhbGwgdGhlIGFjdGlvbnMgYW5kIGNoYW5nZXMgdGhhdCBUZXJyYWZvcm0gd2lsbCBleGVjdXRlIGFnYWluc3QgeW91ciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS4gSW4gdGhlIHRlcm1pbmFsIHJ1bjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3RlcnJhZm9ybSBwbGFuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSByZXN1bHRzIHNpbWlsYXIgdG8gdGhpcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0FuIGV4ZWN1dGlvbiBwbGFuIGhhcyBiZWVuIGdlbmVyYXRlZCBhbmQgaXMgc2hvd24gYmVsb3cuClJlc291cmNlIGFjdGlvbnMgYXJlIGluZGljYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKICArIGNyZWF0ZQoKVGVycmFmb3JtIHdpbGwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGFjdGlvbnM6CgogICMgZ29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwuaHR0cC01MDAwIHdpbGwgYmUgY3JlYXRlZAogICsgcmVzb3VyY2UgJnF1b3Q7Z29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwmcXVvdDsgJnF1b3Q7aHR0cC01MDAwJnF1b3Q7IHsKICAgICAgKyBjcmVhdGlvbl90aW1lc3RhbXAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVzdGluYXRpb25fcmFuZ2VzID0gKGtub3duIGFmdGVyIGFwcGx5KQogIH0KCiAgICAjIGdvb2dsZV9jb21wdXRlX2luc3RhbmNlLmRlZmF1bHQgd2lsbCBiZSBjcmVhdGVkCiAgKyByZXNvdXJjZSAmcXVvdDtnb29nbGVfY29tcHV0ZV9pbnN0YW5jZSZxdW90OyAmcXVvdDtkZWZhdWx0JnF1b3Q7IHsKICAgICAgKyBjYW5faXBfZm9yd2FyZCAgICAgICA9IGZhbHNlCiAgICAgICsgY3B1X3BsYXRmb3JtICAgICAgICAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVsZXRpb25fcHJvdGVjdGlvbiAgPSBmYWxzZQogICAgICArIGd1ZXN0X2FjY2VsZXJhdG9yICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGlkICAgICAgICAgICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGluc3RhbmNlX2lkICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVsX2ZpbmdlcnByaW50ICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVscyAgICAgICAgICAgICAgID0gewogICAgICAgICAgKyAmcXVvdDtjb250YWluZXItdm0mcXVvdDsgPSAmcXVvdDtjb3Mtc3RhYmxlLTY5LTEwODk1LTYyLTAmcXVvdDsKICAgICAgICB9CiAgICAgICsgbWFjaGluZV90eXBlICAgICAgICAgPSAmcXVvdDtnMS1zbWFsbCZxdW90OwogIH0KICBQbGFuOiAyIHRvIGFkZCwgMCB0byBjaGFuZ2UsIDAgdG8gZGVzdHJveS4KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgeW91IGNhbiBzZWUsIFRlcnJhZm9ybSBpcyBnb2luZyB0byBjcmVhdGUgbmV3IEdDUCByZXNvdXJjZXMgZm9yIHlvdSBiYXNlZCBvbiB0aGUgY29kZSBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bWFpbi50ZiZsdDsvY29kZSZndDsgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGFwcGx5Jmx0Oy9oMyZndDsKCiZsdDtwJmd0O05vdyB5b3XigJlyZSByZWFkeSB0byBjcmVhdGUgdGhlIG5ldyBpbmZyYXN0cnVjdHVyZSBhbmQgZGVwbG95IHRoZSBhcHBsaWNhdGlvbi4gUnVuIHRoaXMgY29tbWFuZCBpbiB0aGUgdGVybWluYWw6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt0ZXJyYWZvcm0gYXBwbHkKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGVycmFmb3JtIHdpbGwgcHJvbXB0IHlvdSB0byBjb25maXJtIHlvdXIgY29tbWFuZC4gVHlwZSB5ZXMgYW5kIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0RvIHlvdSB3YW50IHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucz8KICBUZXJyYWZvcm0gd2lsbCBwZXJmb3JtIHRoZSBhY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KICBPbmx5ICd5ZXMnIHdpbGwgYmUgYWNjZXB0ZWQgdG8gYXBwcm92ZS4KCiAgRW50ZXIgYSB2YWx1ZTogeWVzCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RlcnJhZm9ybSB3aWxsIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgYW5kIHlvdSB3aWxsIGhhdmUgYW4gYXBwbGljYXRpb24gdXAgYW5kIHJ1bm5pbmcgb24gR0NQIHNob3J0bHkgYWZ0ZXIgaXQgY29tcGxldGVzLiBQbGVhc2Ugbm90ZSB0aGF0IGl0IHdpbGwgdGFrZSAzLTUgbWludXRlcyBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbWUgb25saW5lIGFmdGVyIFRlcnJhZm9ybSBjb21wbGV0ZXMuIEl04oCZcyBub3QgYW4gaW5zdGFudCBwcm9jZXNzIGJlY2F1c2UgdGhlIGJhY2tlbmQgc3lzdGVtcyBhcmUgcHJvdmlzaW9uaW5nIGFuZCBicmluZ2luZyB0aGluZ3Mgb25saW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgZG9uZSwgeW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7bGFuZ3VhZ2Utc2hlbGwgaGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7T3V0cHV0czoKClB1YmxpY19JUF9BZGRyZXNzICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgMzQuNzQuNzUuMTcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1B1YmxpY19JUF9BZGRyZXNzJmx0Oy9jb2RlJmd0OyB2YWx1ZSBpcyB0aGUgSVAgQWRkcmVzcyB0aGF0IHlvdXIgYXBwIGlzIHJ1bm5pbmcgb24sIHNvIGlmIHlvdSBnbyB0byBhIGJyb3dzZXIgYW5kIHBsdWcgdGhhdCBudW1iZXIgaW4gcGx1cyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7OjUwMDAmbHQ7L2NvZGUmZ3Q7IHBvcnQgYWRkcmVzcyAoaXQgd291bGQgbG9vayBsaWtlIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7MzQuNzQuNzUuMTc6NTAwMCZsdDsvY29kZSZndDspIHlvdSB3aWxsIHNlZSB5b3VyIGFwcCBydW5uaW5nIGluIEdDUC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Tm93IHRoYXQgeW91IGhhdmUgcHJvb2YgdGhhdCB5b3VyIEdvb2dsZSBDb21wdXRlIGluc3RhbmNlIGFuZCB5b3VyIGFwcGxpY2F0aW9uIHdvcmssIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gZGVzdHJveSB0aGUgYXNzZXRzIHRoYXQgeW91IGNyZWF0ZWQgaW4gdGhpcyB0dXRvcmlhbC4gWW91IGNhbiBsZWF2ZSBpdCB1cCBhbmQgcnVubmluZywgYnV0IGJlIGF3YXJlIHRoYXQgdGhlcmUgaXMgYSBjb3N0IGFzc29jaWF0ZWQgd2l0aCBhbnkgYXNzZXRzIHJ1bm5pbmcgb24gdGhlIEdvb2dsZSBDbG91ZCBQbGF0Zm9ybSBhbmQgeW91IHdpbGwgYmUgbGlhYmxlIGZvciB0aG9zZSBjb3N0cy4gR29vZ2xlIGdpdmVzIGEgZ2VuZXJvdXMgJDMwMCBjcmVkaXQgZm9yIGl0cyBmcmVlIHRyaWFsIHNpZ24tdXAsIGJ1dCB5b3UgY291bGQgZWFzaWx5IGVhdCB0aHJvdWdoIHRoYXQgaWYgeW91IGxlYXZlIGFzc2V0cyBydW5uaW5nLiBJdOKAmXMgdXAgdG8geW91LCBidXQgcnVubmluZyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0ZXJyYWZvcm0gZGVzdHJveSZsdDsvY29kZSZndDsgd2lsbCB0ZXJtaW5hdGUgYW55IHJ1bm5pbmcgYXNzZXRzLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIEnigJlsbCBkZW1vbnN0cmF0ZSBob3cgdG8gcGVyZm9ybSBpbmZyYXN0cnVjdHVyZSBwcm92aXNpb25pbmcgdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtQdWx1bWkgU0RLJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9wcm9kdWN0LyNzZGsmcXVvdDsmZ3Q7UHVsdW1pIFNESyZsdDsvYSZndDsgaXMgYW4gb3BlbiBzb3VyY2UgZnJhbWV3b3JrIGZvciBkZWZpbmluZyBhbmQgZGVwbG95aW5nIGNsb3VkIGFwcHMgYW5kIElhQy4gUHVsdW1pIGVuYWJsZXMgZGV2ZWxvcGVycyB0byB3cml0ZSBjb2RlIGluIHRoZWlyIGZhdm9yaXRlIGxhbmd1YWdlIHN1Y2ggYXMgVHlwZVNjcmlwdCwgSmF2YVNjcmlwdCwgUHl0aG9uLCBhbmQgR28uIFRoaXMgZW5hYmxlcyBtb2Rlcm4gYXBwcm9hY2hlcyB0byBjbG91ZCBhcHBsaWNhdGlvbnMgYW5kIGluZnJhc3RydWN0dXJlIHdpdGhvdXQgbmVlZGluZyB0byBsZWFybiBhbm90aGVyIFlBTUwgb3IgRFNMIGRpYWxlY3QuIFRoaXMgdW5sb2NrcyBhYnN0cmFjdGlvbnMgYW5kIHJldXNlLCBhcyB3ZWxsIGFzIGFjY2VzcyB0byB5b3VyIGZhdm9yaXRlIElERXMsIHJlZmFjdG9yaW5nLCBhbmQgdGVzdGluZyB0b29scy4gTWFzdGVyIG9uZSB0b29sY2hhaW4gYW5kIHNldCBvZiBmcmFtZXdvcmtzIGFuZCBnbyB0byBhbnkgY2xvdWQgKEFXUywgQXp1cmUsIEdDUCwgb3IgS3ViZXJuZXRlcykgd2l0aCBlYXNlLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBQdWx1bWkmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUgZXhwZXJpZW5jZWQgYnVpbGRpbmcgaW5mcmFzdHJ1Y3R1cmUgdXNpbmcgVGVycmFmb3JtLCBub3cgeW914oCZbGwgbGVhcm4gaG93IHRvIHByb3Zpc2lvbiBhbmQgZGVwbG95IG5ldyBpbmZyYXN0cnVjdHVyZSB1c2luZyBQdWx1bWkuIFRoZSBQdWx1bWkgZXhhbXBsZSB3aWxsIGNyZWF0ZSB0aGUgc2FtZSBHQ1AgcmVzb3VyY2VzIHByZXZpb3VzbHkgdXNpbmcgUHVsdW1pIGNvZGUgYW5kIHRvb2xzLiBQdWx1bWkgZW5hYmxlcyB5b3UgdG8gZGVmaW5lIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgaW4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHdoaWNoIHByb3ZpZGVzIGxvdHMgb2YgZmxleGliaWxpdHkuIEluIHRoaXMgZXhhbXBsZSwgd2XigJlyZSB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vd3d3LnB5dGhvbi5vcmcvJnF1b3Q7Jmd0O1B5dGhvbiZsdDsvYSZndDsgYXMgb3VyIGxhbmd1YWdlLiBUaGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7X19tYWluLnB5X18mbHQ7L2NvZGUmZ3Q7IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC9wdWx1bWkvZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgaXMgd2hlcmUgd2VyZSBnb2luZyB0byBkZWZpbmUgb3VyIGluZnJhc3RydWN0dXJlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlIHN1cmUgdG8gaGF2ZSB5b3VyIFB1bHVtaSBBUEkgdG9rZW4gYXZhaWxhYmxlLiBZb3XigJlsbCBuZWVkIGl0IGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIFB1bHVtaSBleGFtcGxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7fi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGRpcmVjdG9yeS4gUnVuIHRoaXMgY29tbWFuZCB0byBjaGFuZ2UgaW50byB0aGUgUHVsdW1pIGV4YW1wbGUgZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2Qgfi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gzJmd0O0luc3RhbGxpbmcgZGVwZW5kaWVuY2llcyBmb3IgUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1NpbmNlIHdl4oCZcmUgZGVmaW5pbmcgb3VyIElhQyBzcGVjcyB1c2luZyBQeXRob24gd2XigJlsbCBuZWVkIHRvIGZpcnN0IGluc3RhbGwgdGhlIFB1bHVtaSBQeXRob24gU0RLIGRlcGVuZGVuY2llcy4gSW4gdGhlIHRlcm1pbmFsIHJ1biB0aGlzIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtwaXAgaW5zdGFsbCAtciAuLi9yZXF1aXJlbWVudHMudHh0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtQcmV2aWV3aW5nIHdpdGggUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1B1bHVtaSBoYXMgYSBkcnktcnVuIGNvbW1hbmQgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBwcmV2aWV3Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRpc3BsYXlzIGEgcHJldmlldyBvZiB0aGUgdXBkYXRlcyB0byBhbiBleGlzdGluZyBzdGFjayB3aG9zZSBzdGF0ZSBpcyByZXByZXNlbnRlZCBieSBhbiBleGlzdGluZyBzdGF0ZSBmaWxlLiBUaGUgbmV3IGRlc2lyZWQgc3RhdGUgaXMgY29tcHV0ZWQgYnkgcnVubmluZyBhIFB1bHVtaSBwcm9ncmFtLCBhbmQgZXh0cmFjdGluZyBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbnMgZnJvbSBpdHMgcmVzdWx0aW5nIG9iamVjdCBncmFwaC4gVGhlc2UgYWxsb2NhdGlvbnMgYXJlIHRoZW4gY29tcGFyZWQgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc3RhdGUgdG8gZGV0ZXJtaW5lIHdoYXQgb3BlcmF0aW9ucyBtdXN0IHRha2UgcGxhY2UgdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZCBzdGF0ZS4gTm8gY2hhbmdlcyB0byB0aGUgc3RhY2sgd2lsbCBhY3R1YWxseSB0YWtlIHBsYWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGlzIGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHByZXZpZXcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHJlc3VsdHMgcHJvbXB0aW5nIHlvdSBmb3IgdGhlIFB1bHVtaSBBUEkgdG9rZW4geW91IGNyZWF0ZWQgZWFybGllci4gUGFzdGUgdGhlIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLiBBZnRlciB5b3UgcGFzdGUgdGhlIHRva2VuIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O01hbmFnZSB5b3VyIFB1bHVtaSBzdGFja3MgYnkgbG9nZ2luZyBpbi4KUnVuIGBwdWx1bWkgbG9naW4gLS1oZWxwYCBmb3IgYWx0ZXJuYXRpdmUgbG9naW4gb3B0aW9ucy4KRW50ZXIgeW91ciBhY2Nlc3MgdG9rZW4gZnJvbSBodHRwczovL2FwcC5wdWx1bWkuY29tL2FjY291bnQvdG9rZW5zCiAgICBvciBoaXQgJmFtcDtsdDtFTlRFUiZhbXA7Z3Q7IHRvIGxvZyBpbiB1c2luZyB5b3VyIGJyb3dzZXIgICAgICAgICAgICAgICAgICAgOgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1doZW4gcGFzdGluZyB0aGUgQVBJIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLCBubyB2YWx1ZXMgd2lsbCBiZSBkaXNwbGF5ZWQuIEl0IHdpbGwgcmVtYWluIGludmlzaWJsZSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuJmx0Oy9pJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBtYXkgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGEgc3RhY2sgaW4gdGhlIHRlcm1pbmFsLiBJZiBzbywgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkZXYmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB0aGVuIGhpdCBlbnRlci4gWW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UHJldmlld2luZyB1cGRhdGUgKGRldik6CiAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICAgICBQbGFuCiArICAgcHVsdW1pOnB1bHVtaTpTdGFjayAgICAgIGNvbXB1dGUtZGV2ICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6TmV0d29yayAgIG5ldHdvcmsgICAgICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6SW5zdGFuY2UgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJTilIAgZ2NwOmNvbXB1dGU6RmlyZXdhbGwgIGZpcmV3YWxsICAgICAgICAgICAgICAgICAgICBjcmVhdGUKClJlc291cmNlczoKICAgICsgNSB0byBjcmVhdGUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUganVzdCBlbmFibGVkIGFjY2VzcyB0byB0aGUgUHVsdW1pIGJhY2tlbmQgY2xvdWQgd2hpY2gga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXRlIG9mIHlvdXIgaW5mcmFzdHJ1Y3R1cmVzLiBOb3cgeW914oCZcmUgcmVhZHkgdG8gcnVuIHNvbWUgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7UHVsdW1pIHVwJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1RvIGV4ZWN1dGUgdGhlIFB1bHVtaSBjb2RlLCB1c2UgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIHVwJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGNyZWF0ZXMgb3IgdXBkYXRlcyByZXNvdXJjZXMgaW4gYSBzdGFjay4gVGhlIG5ldyBkZXNpcmVkIGdvYWwgc3RhdGUgZm9yIHRoZSB0YXJnZXQgc3RhY2sgaXMgY29tcHV0ZWQgYnkgcnVubmluZyB0aGUgY3VycmVudCBQdWx1bWkgcHJvZ3JhbSBhbmQgb2JzZXJ2aW5nIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9ucyB0byBwcm9kdWNlIGEgcmVzb3VyY2UgZ3JhcGguIFRoaXMgZ29hbCBzdGF0ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIGV4aXN0aW5nIHN0YXRlIHRvIGRldGVybWluZSB3aGF0IGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQvb3IgZGVsZXRlIG9wZXJhdGlvbnMgbXVzdCB0YWtlIHBsYWNlIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgZ29hbCBzdGF0ZSBpbiB0aGUgbW9zdCBtaW5pbWFsbHkgZGlzcnVwdGl2ZSB3YXkuIEFmdGVyd2FyZCwgdGhpcyBjb21tYW5kIHJlY29yZHMgYSBmdWxsIHRyYW5zYWN0aW9uYWwgc25hcHNob3Qgb2YgdGhlIHN0YWNr4oCZcyBuZXcgc3RhdGUgc28gdGhhdCB0aGUgc3RhY2sgbWF5IGJlIHVwZGF0ZWQgaW5jcmVtZW50YWxseSBhZ2FpbiBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgdGVybWluYWwgcnVuOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHVwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1NlbGVjdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7eWVzJmx0Oy9jb2RlJmd0OyBvcHRpb24gYW5kIGhpdCBlbnRlci4gVGhlIFB1bHVtaSBhcHAgd2lsbCBleGVjdXRlLCBhbmQgc2hvcnRseSBhZnRlciB5b3XigJlsbCBoYXZlIGEgY29tcGxldGUgc2VydmVyIHJ1bm5pbmcgYW4gYXBwbGljYXRpb24gb24gR0NQLiBZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtVcGRhdGluZyAoZGV2KToKICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cwogKyAgIHB1bHVtaTpwdWx1bWk6U3RhY2sgICAgICBjb21wdXRlLWRldiAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUnOKUgCBnY3A6Y29tcHV0ZTpOZXR3b3JrICAgbmV0d29yayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGVkCiArICAg4pSc4pSAIGdjcDpjb21wdXRlOkZpcmV3YWxsICBmaXJld2FsbCAgICAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUlOKUgCBnY3A6Y29tcHV0ZTpJbnN0YW5jZSAgd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDEgIGNyZWF0ZWQKCk91dHB1dHM6CiAgICBleHRlcm5hbF9pcCAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICBpbnN0YW5jZV9tZXRhX2RhdGE6IHsKICAgICAgICBnY2UtY29udGFpbmVyLWRlY2xhcmF0aW9uOiAmcXVvdDtzcGVjOlxuICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDFcbiAgICAgIGltYWdlOiBhcml2M3JhL3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxOmxhdGVzdFxuICAgICAgc3RkaW46IGZhbHNlXG4gICAgICB0dHk6IGZhbHNlXG4gIHJlc3RhcnRQb2xpY3k6IEFsd2F5c1xuJnF1b3Q7CiAgICB9CiAgICBpbnN0YW5jZV9uYW1lICAgICA6ICZxdW90O3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxJnF1b3Q7CiAgICBpbnN0YW5jZV9uZXR3b3JrICA6IFsKICAgICAgICBbMF06IHsKICAgICAgICAgICAgYWNjZXNzQ29uZmlncyAgICA6IFsKICAgICAgICAgICAgICAgIFswXTogewogICAgICAgICAgICAgICAgICAgIG5hdElwICAgICAgICAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICAgICAgICAgICAgICAgICAgbmV0d29ya190aWVyICAgICAgIDogJnF1b3Q7UFJFTUlVTSZxdW90OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgOiAmcXVvdDtuaWMwJnF1b3Q7CiAgICAgICAgfQogICAgXQoKUmVzb3VyY2VzOgogICAgKyA1IGNyZWF0ZWQKCkR1cmF0aW9uOiA1OHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlc2UgcmVzdWx0cywgeW914oCZbGwgc2VlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXh0ZXJuYWxfaXAmbHQ7L2NvZGUmZ3Q7IGtleS4gSXTigJlzIHZhbHVlIGlzIHRoZSBJUCBBZGRyZXNzIHRvIHRoZSBwdWJsaWMgZmFjaW5nIGFwcGxpY2F0aW9uIGV4cG9zZWQgb24gcG9ydCA1MDAwLiBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIFRlcnJhZm9ybSBleGFtcGxlLCB5b3UgY2FuIGFjY2VzcyB0aGUgYXBwbGljYXRpb24gaW4gYSBicm93c2VyLiBSZW1lbWJlciB0byBhbGxvdyBmb3IgYSBmZXcgbWludXRlcyBzbyB0aGUgYmFja2VuZCBzeXN0ZW0gY2FuIGJyaW5nIGV2ZXJ5dGhpbmcgb25saW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQdWx1bWkgZGVzdHJveSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtQdWx1bWkgaGFzIGEgY29tbWFuZCB0byB0ZXJtaW5hdGUgYWxsIG9mIHRoZSBjbG91ZCByZXNvdXJjZXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBkZXN0cm95Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRlbGV0ZXMgYW4gZW50aXJlIGV4aXN0aW5nIHN0YWNrIGJ5IG5hbWUuIFRoZSBjdXJyZW50IHN0YXRlIGlzIGxvYWRlZCBmcm9tIHRoZSBhc3NvY2lhdGVkIHN0YXRlIGZpbGUgaW4gdGhlIHdvcmtzcGFjZS4gQWZ0ZXIgcnVubmluZyB0byBjb21wbGV0aW9uLCBhbGwgb2YgdGhpcyBzdGFja+KAmXMgcmVzb3VyY2VzIGFuZCBhc3NvY2lhdGVkIHN0YXRlIHdpbGwgYmUgZ29uZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtSdW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGluIHRoZSB0ZXJtaW5hbCBhbmQgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5ZXMmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB3aGVuIHByb21wdGVkIHRvICZsdDtzdHJvbmcmZ3Q7cGVybWFuZW50bHkmbHQ7L3N0cm9uZyZndDsgZGVzdHJveSB0aGUgR0NQIHJlc291cmNlcyBjcmVhdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O0NvbmdyYXR1bGF0aW9ucyEgWW914oCZdmUganVzdCBsZXZlbGVkIHVwIGFuZCBub3cgaGF2ZSBleHBlcmllbmNlIHByb3Zpc2lvbmluZyBhbmQgZGVwbG95aW5nIGFwcGxpY2F0aW9ucyB0byBHQ1AgdXNpbmcgdGhlIG1vZGVybiBJYUMgdG9vbHMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O1RlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4gVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2lsbCBoZWxwIHlvdSBleHBhbmQgeW91ciBrbm93bGVkZ2UgZnJvbSBoZXJlOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9jbGktaW5kZXguaHRtbCZxdW90OyZndDtUZXJyYWZvcm0gR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9kb2NzL2dldC1zdGFydGVkLyZxdW90OyZndDtQdWx1bWkgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS9vcmIvcHVsdW1pL3B1bHVtaSZxdW90OyZndDtQdWx1bWkgb3JiIGZvciBDaXJjbGVDSSZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyZxdW90OyZndDtEb2NrZXIgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm0vY29tbXVuaXR5L2Jsb2IvbWFzdGVyL3R1dG9yaWFscy9nZXR0aW5nLXN0YXJ0ZWQtb24tZ2NwLXdpdGgtdGVycmFmb3JtL2luZGV4Lm1kI2dldHRpbmctcHJvamVjdC1jcmVkZW50aWFscyZxdW90OyZndDtHb29nbGUgQ2xvdWQgUGxhdGZvcm0mbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogICAgICAKICAgICAgPGl0ZW0+CiAgICAgICAgPHRpdGxlPkEgbG9vayBhdCBDaXJjbGVDSeKAmXMgaW5kdXN0cnktbGVhZGluZyBzdXBwb3J0IGZvciB0cmFuc2l0aW9uLXJlbGF0ZWQgbWVkaWNhbCBsZWF2ZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hLWxvb2stYXQtY2lyY2xlY2ktcy1pbmR1c3RyeS1sZWFkaW5nLXN1cHBvcnQtZm9yLXRyYW5zaXRpb24tcmVsYXRlZC1tZWRpY2FsLWxlYXZlLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5XZWQsIDEzIE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2EtbG9vay1hdC1jaXJjbGVjaS1zLWluZHVzdHJ5LWxlYWRpbmctc3VwcG9ydC1mb3ItdHJhbnNpdGlvbi1yZWxhdGVkLW1lZGljYWwtbGVhdmUvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RWxpemFiZXRoIEJlbGw8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7T25lIG9mIHRoZSBncmVhdCB0aGluZ3MgYWJvdXQgd29ya2luZyBhdCBDaXJjbGVDSSBpcyB0aGF0IHRoZSBjb21wYW55IGJlbGlldmVzIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGJlIGFibGUgdG8gYmUgdGhlaXIgd2hvbGUgc2VsZiBhdCB3b3JrLiBJbmNsdXNpdml0eSwgZGVtb25zdHJhdGluZyB0cnVzdCBhbmQgcmVzcGVjdCwgYW5kIG1ha2luZyBzdXJlIGV2ZXJ5b25lIGhhcyB0aGUgdG9vbHMgYW5kIHN1cHBvcnQgdGhleSBuZWVkIGFyZSBhbGwgYnVyaWVkIGRlZXAgaW4gdGhlIGN1bHR1cmUgaGVyZSDigJMgaXQgaXMgYSBiaWcgcGFydCBvZiBob3cgd2UgZGVsaXZlciB0aGUgYmVzdCB2YWx1ZSBmb3Igb3VyIGN1c3RvbWVycy4gV2l0aCB0aGF0IGluIG1pbmQsIHRoZSBjb21wYW55IHJlY2VudGx5IHJvbGxlZCBvdXQgYSBuZXcgaGVhbHRoY2FyZSBwb2xpY3kgZm9yIG91ciB0cmFuc2dlbmRlciBjby13b3JrZXJzLiBJbiBhIGZpcnN0IGZvciBjb21wYW5pZXMgaW4gdGhlIENJL0NEIHNwYWNlLCBDaXJjbGVDSSBub3cgb2ZmZXJzIGZ1bGx5LWNvbXBlbnNhdGVkIHBhaWQgbGVhdmUgZm9yIGVtcGxveWVlcyByZWNvdmVyaW5nIGZyb20gdHJhbnNpdGlvbi1yZWxhdGVkIG1lZGljYWwgcHJvY2VkdXJlcy4gVGhpcyBwb2xpY3kgaXMgYW4gZXh0cmVtZWx5IGltcG9ydGFudCBhZGRpdGlvbiB0byBDaXJjbGVDSeKAmXMgYmVuZWZpdHMgcGFja2FnZSBhbmQgYW5vdGhlciBleGFtcGxlIG9mIHRoZSBjb21wYW554oCZcyBkZWRpY2F0aW9uIHRvIHRoZSB3ZWxsLWJlaW5nIG9mIGFsbCBlbXBsb3llZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VHJhbnNpdGlvbiBpcyBhbiBpbW1lbnNlbHkgc3RyZXNzZnVsIHByb2Nlc3MsIGFuZCB0aGUgbWVkaWNhbCBwcm9jZWR1cmVzIHJlcXVpcmVkIHRvIHRyZWF0IHRoZSBkeXNwaG9yaWEgZXhwZXJpZW5jZWQgYnkgc29tZSB0cmFuc2dlbmRlciBwZW9wbGUgb2Z0ZW4gbmVlZCBhIHZlcnkgY2FyZWZ1bCBhcHByb2FjaCB0byByZWNvdmVyeS4mbHQ7L3AmZ3Q7CgombHQ7YmxvY2txdW90ZSZndDsKICAmbHQ7cCZndDtUaGUgZ29hbCBvZiB0aGUgcG9saWN5IGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRyYW5zZ2VuZGVyIGVtcGxveWVlcyBmZWVsIHN1cHBvcnRlZCBkdXJpbmcgdGhpcyBkaWZmaWN1bHQgdGltZSwgYW5kIGJ5IGVuc3VyaW5nIHRoYXQgdHJhbnNnZW5kZXIgZW1wbG95ZWVzIGhhdmUgYWNjZXNzIHRvIGFwcHJvcHJpYXRlbHkgY29tcGVuc2F0ZWQgbWVkaWNhbCBsZWF2ZSwgdGhlIGNvbXBhbnkgY2FuIHJlbW92ZSBtYWpvciBzb3VyY2VzIG9mIHVubmVjZXNzYXJ5IHN0cmVzcy4gVGhpcyB3YXksIHdlIGNhbiByZXR1cm4gdG8gd29yayBoYXBwaWVyLCBoZWFsdGhpZXIsIGFuZCBiZXR0ZXIgYWJsZSB0byBkbyBvdXIgYmVzdCBmb3Igb3VyIGN1c3RvbWVycyBhbmQgb3VyIGNvbGxlYWd1ZXMuJmx0Oy9wJmd0OwombHQ7L2Jsb2NrcXVvdGUmZ3Q7CgombHQ7aDImZ3Q7SG93IHRoaXMgcG9saWN5IGNhbWUgdG9nZXRoZXImbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgcHVzaCBmb3IgdGhlIGZvcm1hbGl6YXRpb24gb2YgdGhlc2UgYmVuZWZpdHMgZ3JldyBvdXQgb2YgdGhlIGVmZm9ydHMgb2YgbWFueSBpbmRpdmlkdWFscy4gVG9nZXRoZXIsIHRoZSB0cmFucyBlbXBsb3llZXMgYXQgQ2lyY2xlQ0kgZGlzY3Vzc2VkIHRoZSBpc3N1ZSBhbW9uZ3N0IG91cnNlbHZlcywgb3VyIG1hbmFnZXJzLCBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIHdobyBzdXBwb3J0ZWQgdXMgaW4gYnJpbmdpbmcgdGhlIHRvcGljIHRvIG91ciBleGVjdXRpdmUgdGVhbS4gQnkgYnVpbGRpbmcgY29uc2Vuc3VzLCBib3RoIHdpdGhpbiB0aGUgdHJhbnMgcG9wdWxhdGlvbiBhdCB0aGUgY29tcGFueSBhbmQgb3VyIGNpc2dlbmRlciBjb2xsZWFndWVzLCB3ZSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IGFkdm9jYXRlIGZvciBhIGZvcm1hbGl6YXRpb24gb2YsIGFuZCBhIGNvbW1pdG1lbnQgdG8sIHRoaXMgaW5kdXN0cnktbGVhZGluZyB0cmFucyBoZWFsdGhjYXJlIGJlbmVmaXQuIFF1ZWVyU3BoZXJlLCB0aGUgRW1wbG95ZWUgUmVzb3VyY2UgR3JvdXAgaGVyZSBhdCBDaXJjbGVDSSBmb3IgTEdCVFFJQSsgZW1wbG95ZWVzLCBoZWxwZWQgY29vcmRpbmF0ZSB0aGUgZWZmb3J0IHRvIGFkdm9jYXRlLCBhbmQgdGhlIHJlc3VsdCB3YXMgYSBwb2xpY3kgdGhhdCBoZWxwcyBlbnN1cmUgdHJhbnMgZW1wbG95ZWVzIGdldCB0aGUgc3VwcG9ydCB3ZSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uZSBvZiB0aGUgYmVzdCB0aGluZ3MgZm9yIG1lIGFib3V0IHdvcmtpbmcgYXQgQ2lyY2xlQ0kgaXMgaG93IGVtcG93ZXJlZCBJIGZlZWwgdG8gY2FsbCBhdHRlbnRpb24gdG8gaXNzdWVzIG9yIHByYWN0aWNlcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCBhbmQgYnJpbmcgcGVvcGxlIHRvZ2V0aGVyIHRvIHdvcmsgb24gdGhlbSwgdG8gdGhlIGJlbmVmaXQgb2YgYm90aCB0aGUgY29tcGFueSBhcyBhIHdob2xlIGFuZCB1bmRlcnJlcHJlc2VudGVkIG9yIG1hcmdpbmFsaXplZCBlbXBsb3llZXMuIFRyYW5zIHBlb3BsZSBmYWNlIHN5c3RlbWljIGJpYXM6IHRoZXJlIGFyZSBubyBmZWRlcmFsLWxldmVsIHByb3RlY3Rpb25zIGZyb20gZGlzY3JpbWluYXRpb24gb24gdGhlIGJhc2lzIG9mIGdlbmRlciBpZGVudGl0eSBpbiB0aGUgVW5pdGVkIFN0YXRlcywgYW5kIG9mIHRoZSB0cmFucyBwb3B1bGF0aW9uIHN1cnZleWVkIGJ5IHRoZSBOYXRpb25hbCBDZW50ZXIgZm9yIFRyYW5zZ2VuZGVyIEVxdWFsaXR5IGluIDIwMTUsIDgwJSBvZiB0aG9zZSB3aG8gd2VyZSBlbXBsb3llZCByZXBvcnRlZCBleHBlcmllbmNpbmcgaGFyYXNzbWVudCwgbWlzdHJlYXRtZW50LCBvciBoYWQgdG8gdGFrZSBzdGVwcyB0byBhdm9pZCB0aG9zZSBob3N0aWxlIHdvcmtwbGFjZSBiZWhhdmlvcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SSBrbm93IGZpcnN0aGFuZCBob3cgZGlmZmljdWx0IGJlaW5nIG91dCBhdCB3b3JrIGNhbiBiZS4gQXQgYSBwcmV2aW91cyBlbXBsb3llciBlYXJseSBpbiBteSB0cmFuc2l0aW9uLCBJIGZlbHQgYWxpZW5hdGVkIGFuZCBkaXNsaWtlZCBieSBjb2xsZWFndWVzIHdobyBoYWQgcHJldmlvdXNseSBiZWVuIGZyaWVuZGx5IGJlZm9yZSB0aGV5IGtuZXcgSSB3YXMgdHJhbnNnZW5kZXIuIEkgaGF2ZSBoYWQgdG8gbWluaW1pemUgdGhlIGZhY3QgdGhhdCBJ4oCZbSB0cmFucywgdG9sZXJhdGUgYWN0aXZlIGhvc3RpbGl0eSBmcm9tIGNvd29ya2Vycywgb3IgcHJldGVuZCB0aGF0IEkgd2FzIGNpc2dlbmRlciwgaW4gb3JkZXIgdG8gcHJvdGVjdCBteSBqb2IuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgQ2lyY2xlQ0ksIEkgaGF2ZSBmZWx0IHN1cHBvcnRlZCwgcmVzcGVjdGVkLCBhbmQgYWJsZSB0byBjb25maWRlbnRseSBiZSBteXNlbGYuIEkgZmVlbCBleGNlcHRpb25hbGx5IGZvcnR1bmF0ZSB0byBoYXZlIGEgd29uZGVyZnVsIGdyb3VwIG9mIHRyYW5zZ2VuZGVyIGNvbGxlYWd1ZXMgYW5kIGZyaWVuZHMgKHdlIG1ha2UgdXAgNyUgb2YgdGhlIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0ksIGFuZCAzJSBvZiB0aGUgb3JnIGluIHRvdGFsLCBjb21wYXJlZCB0byAwLjYlIG9mIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24pLCBhbmQgdG8gd29yayBzb21ld2hlcmUgd2hlcmUgb3VyIHZpZXdzIGFuZCBleHBlcmllbmNlcyBhcmUgdmFsdWVkIGF0IHRoZSBoaWdoZXN0IGxldmVscyBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0lmIHlvdSBsaWtlIHRoZSBzb3VuZCBvZiB3b3JraW5nIHNvbWV3aGVyZSB3aXRoIGEgcmVtb3RlLWZpcnN0IGN1bHR1cmUgYW5kIGNvbGxhYm9yYXRpbmcgb24gaW50ZXJlc3RpbmcgcHJvYmxlbXMgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIHRyYW5zIGZvbHggYW5kIGFsbGllcywgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9jYXJlZXJzLyZxdW90OyZndDtjaGVjayBvdXQgb3VyIG9wZW5pbmdzIGhlcmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIEdhdHNieSBhcHBzIHRvIEhlcm9rdTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtZ2F0c2J5LWFwcHMtdG8taGVyb2t1LzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDExIE1heSAyMDIwIDA5OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1nYXRzYnktYXBwcy10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9qYW1zdGFjay5vcmcvJnF1b3Q7Jmd0O0pBTVN0YWNrJmx0Oy9hJmd0OyBpcyBxdWlja2x5IGJlY29taW5nIGEgYmlnIGRlYWwgaW4gdGhlIHdvcmxkIG9mIHdlYiBkZXZlbG9wbWVudC4gSkFNU3RhY2ssIHdoaWNoIHN0YW5kcyBmb3IgSmF2YXNjcmlwdCwgQVBJcywgYW5kIEhUTUwgbWFya3VwLCBpcyBhIG1vZGVybiBhcmNoaXRlY3R1cmUgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMgYW5kIG9uZSBvZiBpdHMgbWFqb3IgZmVhdHVyZXMgaXMgdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBhIGRhdGFiYXNlIGFuZCBhIHdlYiBzZXJ2ZXIgaXMgb3B0aW9uYWwuIFRoZSBKQU1TdGFjayBhcmNoaXRlY3R1cmUgaXMgYWltZWQgYXQgZGVjb3VwbGluZyB0aGUgZnJvbnRlbmQgYW5kIHRoZSBiYWNrZW5kIGJ5IGdlbmVyYXRpbmcgYSBmcm9udGVuZCBtYWRlIG9mIEhUTUwsIENTUywgYW5kIEphdmFzY3JpcHQgYW5kIGEgYmFja2VuZCB0aGF0IGlzIHNpbXBseSBhIGNvbnRlbnQgQVBJIHJldHVybmluZyBKU09OIG9yIFhNTC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmUgb2YgdGhlIGxlYWRpbmcgSkFNU3RhY2sgcGxhdGZvcm1zIHRvZGF5IGlzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnLyZxdW90OyZndDtHYXRzYnkuanMmbHQ7L2EmZ3Q7LiBHYXRzYnkuanMgaXMgYSBmcmVlIGFuZCBvcGVuLXNvdXJjZSBmcmFtZXdvcmsgYmFzZWQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3JlYWN0anMub3JnLyZxdW90OyZndDtSZWFjdC5qcyZsdDsvYSZndDsgdGhhdCBoZWxwcyBkZXZlbG9wZXJzIGJ1aWxkIGhpZ2gtc3BlZWQgd2ViIGFwcGxpY2F0aW9ucy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHR1dG9yaWFsLCB3ZSB3aWxsIGJlIGRlbW9uc3RyYXRpbmcgaG93IHRvIGRlcGxveSBhIEdhdHNieS5qcyBzaXRlIHRvIHRoZSBwb3B1bGFyIEhlcm9rdSBwbGF0Zm9ybSBieSBidWlsZGluZyBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmUgZm9yIGl0cyBkZXBsb3ltZW50IHVzaW5nIENpcmNsZUNJLiZsdDsvcCZndDsKCiZsdDtoMiZndDtQcmVyZXF1aXNpdGVzJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIG9yZGVyIHRvIGZvbGxvdyBhbG9uZyB3aXRoIHRoaXMgcG9zdCwgeW91IHdpbGwgbmVlZCBhIGZldyB0aGluZ3MgaW4gcGxhY2U6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7ICZhbXA7Z3Q7PSAxMC4xNiBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZSAtdiZsdDsvY29kZSZndDsgb24geW91ciB0ZXJtaW5hbCB0byBwcmludCBvdXQgeW91ciB2ZXJzaW9uIG9mIE5vZGVKUyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7R2l0Jmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2l0Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsLiBUaGlzIHNob3VsZCBwcmludCBvdXQgYXZhaWxhYmxlIGdpdCBjb21tYW5kcykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuaGVyb2t1LmNvbS8mcXVvdDsmZ3Q7SGVyb2t1Jmx0Oy9hJmd0OyBhY2NvdW50Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O0dpdEh1YiZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7V2l0aCB0aGVzZSwgeW91IGFyZSByZWFkeSB0byBmb2xsb3cgYWxvbmcuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NyZWF0aW5nIGEgR2F0c2J5LmpzIHByb2plY3QmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7VG8gYmVnaW4sIHdlIG5lZWQgdG8gY3JlYXRlIG91ciBHYXRzYnkuanMgcHJvamVjdC4gSW4gYW4gYXBwcm9wcmlhdGUgbG9jYXRpb24gd2l0aGluIHlvdXIgc3lzdGVtLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGdhdHNieSBuZXcgZ2F0c2J5LWhlcm9rdS1kZXBsb3kKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBwYXJ0IG9mIHRoaXMgY29tbWFuZCBpcyB0aGUgZm9sZGVyIG5hbWUgZm9yIG15IHByb2plY3QgdG8gYmUgc2NhZmZvbGRlZCBpbi4gWW91IGNhbiB1c2UgYW55IHByZWZlcnJlZCBuYW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCB3aWxsIGltbWVkaWF0ZWx5IGJlZ2luIHNjYWZmb2xkaW5nIGEgbmV3IEdhdHNieS5qcyBwcm9qZWN0LiBZb3UgbWlnaHQgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGVpdGhlciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5YXJuJmx0Oy9jb2RlJmd0OyBvciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7IGFzIHlvdXIgcGFja2FnZSBtYW5hZ2VyLCBmb3IgdGhpcyB0dXRvcmlhbCwgZ28gd2l0aCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNjYWZmb2xkaW5nIHByb2Nlc3MgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIGdhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OykgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gYm9vdCB1cCBhIHNlcnZlciB0byBzZXJ2ZSB0aGUgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBydW4gZGV2ZWxvcAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgc2VydmUgdGhlIGFwcGxpY2F0aW9uIGF0IHRoZSBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8mbHQ7L2NvZGUmZ3Q7IGFuZCBkaXNwbGF5IHRoZSBwYWdlIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MS5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIGEgZnVuY3Rpb25hbCBHYXRzYnkuanMgc2l0ZSB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7U2V0dGluZyB1cCBhIEhlcm9rdSBBcHAgZm9yIEdhdHNieSZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBzZXQgdXAgYSBIZXJva3UgYXBwIGZvciBvdXIgR2F0c2J5IGFwcGxpY2F0aW9uLCB3ZSBuZWVkIHRvIGxvZyBpbnRvIEhlcm9rdSBhbmQgY3JlYXRlIGEgbmV3IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5Mi5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdlIG5lZWQgdG8gZ2V0IHRoZSBuYW1lIG9mIG91ciBhcHBsaWNhdGlvbiAodGhpcyB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBmb3IgdGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgYWJvdmUpIGFuZCB0aGUgQVBJIGtleSBmb3Igb3VyIEhlcm9rdSBhY2NvdW50LiBUaGUgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIEhlcm9rdSAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXZSB3aWxsIG5lZWQgdGhlc2UgdHdvIHZhbHVlcyAodGhlIGFwcCBuYW1lIGFuZCBBUEkga2V5KSBsYXRlciBvbiB0byBjcmVhdGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9uIG91ciBDaXJjbGVDSSBwcm9qZWN0IGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiBvdXIgSGVyb2t1IGFjY291bnQgaXMgdG8gaW5zdGFsbCBzb21lIG5lY2Vzc2FyeSBidWlsZHBhY2tzLiBCdWlsZHBhY2tzIGFyZSBzY3JpcHRzIHRoYXQgcnVuIHdoZW4geW91ciBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZC4gV2Ugd2lsbCBuZWVkIHR3byBidWlsZCBwYWNrcyBmb3IgdGhpcyBleGVyY2lzZTombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0O2hlcm9rdS9ub2RlanM6IFJlcXVpcmVkIGZvciBhbGwgTm9kZS5qcyBhcHBsaWNhdGlvbnMmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtoZXJva3UvaGVyb2t1LWJ1aWxkcGFjay1zdGF0aWM6IFRoZSBIZXJva3UgQnVpbGRwYWNrIFN0YXRpYyBwYWNrYWdlIChiZWNhdXNlIEdhdHNieS5qc+KAmXMgYnVpbGQgaXMgbWFkZSB1cCBvZiBzdGF0aWMgZmlsZXMsIHRoaXMgd2lsbCBoZWxwIHVzIHNlcnZlIHRoZSBzdGF0aWMgZmlsZXMgb24gdGhlIEhlcm9rdSBwbGF0Zm9ybSkmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7R28gdG8geW91ciBIZXJva3UgYXBwbGljYXRpb27igJlzICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgcGFnZSBhbmQgc2Nyb2xsIGRvd24gdG8gJmx0O3N0cm9uZyZndDtCdWlsZHBhY2tzJmx0Oy9zdHJvbmcmZ3Q7ICh5b3UgbWlnaHQgYWxyZWFkeSBzZWUgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgYnVpbGRwYWNrIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQpLiBDbGljayAmbHQ7c3Ryb25nJmd0O0FkZCBidWlsZHBhY2smbHQ7L3N0cm9uZyZndDsgYW5kIHlvdSB3aWxsIHNlZSBhIGRpYWxvZyBwb3AgdXAgc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnkzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rm9yIGVhY2ggYnVpbGRwYWNrICgmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3Uvbm9kZWpzJmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L2hlcm9rdS1idWlsZHBhY2stc3RhdGljJmx0Oy9jb2RlJmd0OykgZW50ZXIgdGhlIGlkZW50aWZpZXIgaW50byB0aGUgdGV4dCBmaWVsZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTYXZlIENoYW5nZXMmbHQ7L3N0cm9uZyZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtOb3RlOiZsdDsvc3Ryb25nJmd0OyAmbHQ7aSZndDtJZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCwgb25seSBhZGQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2hlcm9rdS9oZXJva3UtYnVpbGRwYWNrLXN0YXRpYyZsdDsvY29kZSZndDsgYnVpbGQgcGFjay4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgZG9pbmcgdGhpcyBmb3IgYm90aCBidWlsZHBhY2tzLCB5b3Ugd2lsbCBzZWUgdGhlIHR3byBidWlsZCBwYWNrcyBub3cgbGlzdGVkIGluICZsdDtzdHJvbmcmZ3Q7QnVpbGRwYWNrcyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGF0IGNvbXBsZXRlcyB0aGUgc2V0IHVwIHJlcXVpcmVkIGZvciBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1NldHRpbmcgdXAgdGhlIEdhdHNieS5qcyBwcm9qZWN0IG9uIENpcmNsZUNJJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBuZXh0IHRhc2sgaXMgdG8gZ2V0IG91ciBHYXRzYnkuanMgcHJvamVjdCBzZXQgdXAgb24gQ2lyY2xlQ0kuIFdlIG5lZWQgdG8gcHVzaCBvdXIgY29kZSB0byBhIEdpdEh1YiByZXBvc2l0b3J5IG9uIHRoZSBhY2NvdW50IHlvdSBoYXZlIGxpbmtlZCB0byB5b3VyIENpcmNsZUNJIGFjY291bnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgZ28gdG8gdGhlICZsdDtzdHJvbmcmZ3Q7QWRkIFByb2plY3RzJmx0Oy9zdHJvbmcmZ3Q7IHBhZ2UgdG8gYWRkIHRoZSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk0LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0OyB0byBiZWdpbiBzZXR0aW5nIHVwIHRoZSBwcm9qZWN0LiBUaGlzIHdpbGwgbG9hZCB0aGUgbmV4dCBzY3JlZW4uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk1LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhlIHNldHVwIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsuIEJlZm9yZSB0aGUgYnVpbGQgc3RhcnRzLCB5b3Ugd2lsbCBnZXQgYSBwcm9tcHQgdG8gZWl0aGVyIGRvd25sb2FkIGFuZCB1c2UgdGhlIHByb3ZpZGVkIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgaGF2ZSBpdCBhZGRlZCBvbiBhIHNlcGFyYXRlIGJyYW5jaCBvciBzZXQgb25lIHVwIG1hbnVhbGx5LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk2LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U2VsZWN0ICZsdDtzdHJvbmcmZ3Q7QWRkIE1hbnVhbGx5Jmx0Oy9zdHJvbmcmZ3Q7IHRvIHByb2NlZWQuIFRoaXMgd2lsbCBwcm9tcHQgYW5vdGhlciBkaWFsb2cgdGhhdCBjaGVja3MgdG8gY29uZmlybSB0aGF0IHlvdSBoYXZlIGEgY29uZmlndXJhdGlvbiBmaWxlIHNldCB1cCB0byBiZWdpbiBidWlsZGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTcucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGNvbXBsZXRlIHRoZSBzZXR1cC4gVGhlIGJ1aWxkIHdpbGwgc3VyZWx5IGZhaWwgYmVjYXVzZSB3ZSBoYXZlIG5vdCBzZXQgdXAgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB5ZXQsIHRoaXMgd2Ugd2lsbCBkbyBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiB0aGUgQ2lyY2xlQ0kgY29uc29sZSBpcyB0byBzZXQgdXAgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZW52LXZhcnMvJnF1b3Q7Jmd0O2Vudmlyb25tZW50IHZhcmlhYmxlcyZsdDsvYSZndDsgZm9yIHRoZSBwcm9qZWN0IHdlIGp1c3QgYWRkZWQuIFRoaXMgd2lsbCBlbmFibGUgaXQgdG8gaGF2ZSBhdXRoZW50aWNhdGVkIGFjY2VzcyB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIGZvciBkZXBsb3ltZW50cy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHbyB0byB5b3VyIHByb2plY3TigJlzIHNldHRpbmdzIGJ5IGNsaWNraW5nICZsdDtzdHJvbmcmZ3Q7UHJvamVjdCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgJmx0O3N0cm9uZyZndDtQaXBlbGluZXMmbHQ7L3N0cm9uZyZndDsgcGFnZSAobWFrZSBzdXJlIHlvdXIgcHJvamVjdCBpcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2plY3QpLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5OC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBuYXZpZ2F0ZSB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBwYWdlLiBPbiB0aGlzIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7RW52aXJvbm1lbnQgVmFyaWFibGVzJmx0Oy9zdHJvbmcmZ3Q7IG9uIHRoZSBzaWRlIG1lbnUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk5LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFnZSwgY2xpY2sgJmx0O3N0cm9uZyZndDtBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUgYnV0dG9uJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTAucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZGQgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Jmx0Oy9wJmd0OwombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDs6IFRoaXMgaXMgdGhlIG5hbWUgb2YgeW91ciBIZXJva3UgYXBwbGljYXRpb24gKGluIHRoaXMgY2FzZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnYXRzYnktaGVyb2t1LWRlcGxveSZsdDsvY29kZSZndDspJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7SEVST0tVX0FQSV9LRVkmbHQ7L2NvZGUmZ3Q7OiBZb3VyIEhlcm9rdSBhY2NvdW50IEFQSSBrZXkgZm91bmQgdW5kZXIgdGhlICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCZsdDsvc3Ryb25nJmd0OyB0YWIgb2YgeW91ciBIZXJva3UgYWNjb3VudCBpbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50IFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O09uY2UgYWRkZWQsIHlvdSB3aWxsIGhhdmUgZXZlcnl0aGluZyBzZXQgdXAgb24geW91ciBDaXJjbGVDSSBjb25zb2xlIGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRoZSBHYXRic3kuanMgc2l0ZSB1c2luZyBvcmJzJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy8mcXVvdDsmZ3Q7T3JicyZsdDsvYSZndDsgYXJlIHJldXNhYmxlIHBhY2thZ2VzIG9mIFlBTUwgY29uZmlndXJhdGlvbiB0aGF0IGNvbmRlbnNlIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoZXkgZW5hYmxlIGRldmVsb3BlcnMgdG8gZWFzaWx5IHVzZSBwb3dlcmZ1bCBwaXBlbGluZSBmdW5jdGlvbmFsaXRpZXMgd2l0aCBhbGwgdGhlIGJvaWxlcnBsYXRlIGFic3RyYWN0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBleGVyY2lzZSwgd2Ugd2lsbCBiZSB1c2luZyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7b3JiIGZvciBIZXJva3UmbHQ7L2EmZ3Q7IHRvIGNvbmZpZ3VyZSBvdXIgcGlwZWxpbmUgdG8gZGVwbG95IG91ciBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0IGJlZm9yZSB0aGF0LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGZpbGUgdG8gaW5zdHJ1Y3Qgb3VyIEhlcm9rdSBCdWlsZHBhY2sgU3RhdGljIHBhY2thZ2Ugb24gaG93IHRvIGRlcGxveSBhbmQgc2VydmUgb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgbmV3IGZpbGUgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3RhdGljLmpzb24mbHQ7L2NvZGUmZ3Q7IGFuZCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGUgaW50byBpdDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3sKICAmcXVvdDtyb290JnF1b3Q7OiAmcXVvdDtwdWJsaWMvJnF1b3Q7LAogICZxdW90O2hlYWRlcnMmcXVvdDs6IHsKICAgICZxdW90Oy8qKiZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJnF1b3Q7CiAgICB9LAogICAgJnF1b3Q7LyoqLmNzcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy8qKi5qcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy9zdGF0aWMvKiomcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0sCiAgICAmcXVvdDsvaWNvbnMvKi5wbmcmcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0KICB9LAogICZxdW90O2h0dHBzX29ubHkmcXVvdDs6IHRydWUsCiAgJnF1b3Q7ZXJyb3JfcGFnZSZxdW90OzogJnF1b3Q7NDA0Lmh0bWwmcXVvdDsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgbW9zdCBpbXBvcnRhbnQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaGVyZSBpcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkuIFdoZW4gR2F0c2J5LmpzIHJ1bnMgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2J1aWxkJmx0Oy9jb2RlJmd0OyBzY3JpcHQgKHRoaXMgaXMgYWxzbyB0aGUgc2NyaXB0IHVzZWQgYnkgSGVyb2t1IHRvIHJ1biB0aGUgYnVpbGQgYmVmb3JlIGRlcGxveW1lbnQpLCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1YmxpYyZsdDsvY29kZSZndDsgZm9sZGVyIGlzIGdlbmVyYXRlZCBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBjb250YWluaW5nIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb2R1Y3Rpb24gdmVyc2lvbiBpcyB3aGF0IHRoZSBob3N0IHNlcnZlcyB0byB1c2Vycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaHVzLCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkgaXMgdXNlZCB0byBwb2ludCB0byB0aGlzIGZvbGRlciBzbyB0aGF0IHRoZSBob3N0IHNlcnZlcyB0aGUgYXBwcm9wcmlhdGUgY29kZS4gT3RoZXIgcGFyYW1ldGVycyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gYXJlIHNpbXBseSBiZXN0LXByYWN0aWNlIGNvbmZpZ3VyYXRpb25zIGZvciBHYXRzYnkuanMgc2l0ZXMuIEZvciBleGFtcGxlLCBjYWNoaW5nIGd1aWRlbGluZXMgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvY2FjaGluZy8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7R29vZCEgTm93IHdlIGNhbiB3cml0ZSBvdXIgZGVwbG95bWVudCBzY3JpcHQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgdGhlIHJvb3Qgb2YgeW91ciBHYXRzYnkuanMgcHJvamVjdCwgY3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgYW5kIGEgZmlsZSB3aXRoaW4gaXQgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0Oy4gSW5zaWRlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGU6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt2ZXJzaW9uOiAyLjEKb3JiczoKICBoZXJva3U6IGNpcmNsZWNpL2hlcm9rdUAwLjAuMTAKd29ya2Zsb3dzOgogIGhlcm9rdV9kZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGhlcm9rdS9kZXBsb3ktdmlhLWdpdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGF04oCZcyBpdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgY29uZmlndXJhdGlvbiBhYm92ZSwgd2UgcHVsbCBpbiB0aGUgSGVyb2t1IG9yYiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaXJjbGVjaS9oZXJva3VAMC4wLjEwJmx0Oy9jb2RlJmd0OyB3aGljaCBhdXRvbWF0aWNhbGx5IGdpdmVzIHVzIGFjY2VzcyB0byBhIHBvd2VyZnVsIHNldCBvZiBIZXJva3Ugam9icyBhbmQgY29tbWFuZHMuIE9uZSBvZiB0aG9zZSBqb2JzIGlzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3UvZGVwbG95LXZpYS1naXQmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGRlcGxveXMgeW91ciBhcHBsaWNhdGlvbiBzdHJhaWdodCBmcm9tIHlvdXIgR2l0SHViIHJlcG8gdG8geW91ciBIZXJva3UgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIGpvYiBhbHJlYWR5IHRha2VzIGNhcmUgb2YgaW5zdGFsbGluZyB0aGUgSGVyb2t1IENMSSwgaW5zdGFsbGluZyBwcm9qZWN0IGRlcGVuZGVuY2llcywgcnVubmluZyB0aGUgYnVpbGQgc2NyaXB0LCBhbmQgZGVwbG95aW5nIHRoZSBhcHBsaWNhdGlvbi4gSXQgYWxzbyBwaWNrcyB1cCBvdXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGggZGVwbG95bWVudCB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgdGhlIG1vbWVudCBvZiB0cnV0aCAoZHJ1bSByb2xsKS4gTGV04oCZcyBjb21taXQgYWxsIHRoZSBjaGFuZ2VzIHdlIGhhdmUgbWFkZSB0byBvdXIgR2F0c2J5LmpzIHByb2plY3QgYW5kIHB1c2ggdG8gb3VyIHJlcG8gdG8gdHJpZ2dlciB0aGUgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTEucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBzZWUgdGhlIGJlaGluZC10aGUtc2NlbmVzIHpjdGlvbiBvZiB0aGUgZGVwbG95bWVudCwgeW91IGNhbiBjbGljayBpbnRvIHRoZSBidWlsZC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTIucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgZm9yIHRoZSBmaW5hbCBjb25maXJtYXRpb24gdGhhdCB0aGUgZGVwbG95bWVudCBvZiBvdXIgR2F0c2J5LmpzIHNpdGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bCwgdmlzaXQgdGhlIGRlZmF1bHQgSGVyb2t1IGFkZHJlc3MgZm9yIHRoZSBzaXRlIGF0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vW0FQUF9OQU1FXS5oZXJva3VhcHAuY29tJmx0Oy9jb2RlJmd0Oy4gSWYgeW91IHVzZWQgdGhlIHNhbWUgbmFtZSBhcyBJIGRpZCBmb3IgdGhpcyBleGVyY2lzZSwgdGhhdCB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vZ2F0c2J5LWhlcm9rdS1kZXBsb3kuaGVyb2t1YXBwLmNvbS8mbHQ7L2NvZGUmZ3Q7LiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93ICh0aGlzIG1pZ2h0IGJlIGRpZmZlcmVudCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IEdhdHNieS5qcyBzdGFydGVyIHRlbXBsYXRlLCBsZWFybiBtb3JlIGFib3V0IHN0YXJ0ZXJzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvcGx1Z2lucy10aGVtZXMtYW5kLXN0YXJ0ZXJzLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OykuJmx0Oy9wJmd0OwoKJmx0O3AgYWxpZ249JnF1b3Q7Y2VudGVyJnF1b3Q7Jmd0OwogICAmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTEzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NvbmNsdXNpb24mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2UgZGVwbG95ZWQgYSBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UgdXNpbmcgQ2lyY2xlQ0kgb3Jicy4gTm93IHdoZW4gd2UgcHVzaCBvdXIgY29kZSwgYWxsIGNoYW5nZXMgd2lsbCBiZSBkZXBsb3llZCBhdXRvbWF0aWNhbGx5LiBUaGlzIHR1dG9yaWFsIGhhcyBhbHNvIGRlbW9uc3RyYXRlZCBob3cgQ2lyY2xlQ0kgb3JicyBtYWtlcyBkZXBsb3ltZW50IGVhc3kuIEluc3RlYWQgb2Ygd3JpdGluZyBtYW55IGxpbmVzIG9mIGNvbmZpZyBuZWVkIHRvIGRlcGxveSB0byBIZXJva3UsIG9yYnMgYWJzdHJhY3QgYWxsIG9mIHRoYXQgaW50byBjb252ZW5pZW50IGNvbW1hbmRzIGZvciB1cyB0byB1c2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2hlY2sgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kgb3JicyByZWdpc3RyeSZsdDsvYSZndDsgZm9yIG9yYnMgdGhhdCBzdWl0IHlvdXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGRlcGxveW1lbnQgZGVzdGluYXRpb24gb2YgY2hvaWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyEmbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5MZXR0aW5nIGNoYW5nZSBhbmQgdW5jZXJ0YWludHkgYWR2YW5jZSB5b3VyIHNvZnR3YXJlIGFyY2hpdGVjdHVyZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VGh1LCAwNyBNYXkgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Sb2IgWnViZXI8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIGZpcnN0IGxpbmVzIG9mIENpcmNsZUNJ4oCZcyBjb2RlYmFzZSB3ZXJlIHdyaXR0ZW4gbmVhcmx5IG5pbmUgeWVhcnMgYWdvLiBMb29raW5nIGJhY2sgb24gd2hhdCB3ZSBoYXZlIGJ1aWx0IHNvIGZhciB3aXRoIHRoZSBjbGFyaXR5IG9mIGhpbmRzaWdodCBleHBvc2VzIHNvbWUgaW50ZXJlc3RpbmcgdGhlbWVzIHRoYXQgY2FuIGJlIGluc3RydWN0aXZlIGluIGlkZW50aWZ5aW5nIGFwcHJvYWNoZXMgdG8gZGVhbGluZyB3aXRoIGNoYW5nZS4gV2hpbGUgdGhleSB3ZXJlbuKAmXQgYWxsIGludGVudGlvbmFsLCBpdCBkb2VzbuKAmXQgbWFrZSB0aGVtIGFueSBsZXNzIHZhbHVhYmxlLiBUaHJlZSBzdWNoIHRoZW1lcyBhcmU6IGRlZmVycmluZyB0aGUgbmVlZCB0byBoYW5kbGUgY2hhbmdlLCB0aGlua2luZyBsaWtlIGEgcHJvZHVjdCBtYW5hZ2VyLCBhbmQga2VlcGluZyB5b3VyIGhlYWQgdXAuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NoYW5nZSBpcyBhIGNvbnN0YW50IGluIHRlY2hub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Q2hhbmdlIG1pZ2h0IGJlIG9uZSBvZiB0aGUgb25seSBjb25zdGFudHMgZW5naW5lZXJzIHdpbGwgZGVhbCB3aXRoIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGVpciBjYXJlZXJzLiBJdCBjZXJ0YWlubHkgZHJpdmVzIG1hbnkgb2Ygb3VyIG1vc3QgaW50ZXJlc3RpbmcgY2hhbGxlbmdlcy4gVGhlIG1hcmtldCBpcyBjaGFuZ2luZywgb3VyIGJ1c2luZXNzIGlzIGV2b2x2aW5nLCBvdXIgY3VzdG9tZXIgYmFzZSBpcyBncm93aW5nLCBhbmQgb3VyIHRlYW0gaXMgc2NhbGluZy4gV2UgbmVlZCB0byBidWlsZCBhIHNvbHV0aW9uIHRoYXQgbWVldHMgdG9kYXnigJlzIG5lZWRzIGJ1dCBzZXRzIHVzIHVwIGZvciB0aGUgZGVtYW5kcyBvZiB0b21vcnJvdy4gSG93IGRvIHdlIGRlc2lnbiBvdXIgc3lzdGVtcyBpbiBhIG1hbm5lciB0aGF0IGNhbiBhZGFwdCBhbmQgY2hhbmdlIHRvIHRoaW5ncyB0aGF0IGRvbuKAmXQgZXZlbiBleGlzdCB3aGVuIHdlIHN0YXJ0IGJ1aWxkaW5nIGl0PyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZXJlIGhhcyBiZWVuIGEgbG90IG9mIHRhbGsgaW4gcmVjZW50IHllYXJzIGFib3V0IGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGV2b2x2ZSBvciBtb3JlIGVhc2lseSBhZGFwdCB0byBjaGFuZ2UuIFRoZW4gd2Ugc3RhcnQgdG8gZGViYXRlIHRoZSBtZXJpdHMgb2YgdGhlc2UgYXJjaGl0ZWN0dXJlcyB1c2luZyBhIGxpbmUgb2YgdGhpbmtpbmcgdGhhdCBzdWdnZXN0cyB5b3UgYXJlIGNob29zaW5nIHRvIGhhdmUgYSDigJxNaWNyb3NlcnZpY2VzIEFyY2hpdGVjdHVyZeKAnSBvciBhbiDigJxFdmVudC1Ecml2ZW4gQXJjaGl0ZWN0dXJl4oCdIG9yIGEg4oCcU2VydmVybGVzcyBBcmNoaXRlY3R1cmUu4oCdIEkgd291bGQgcG9zaXQgdGhhdCB0aGlzIHR5cGUgb2YgZGVzY3JpcHRpb24gY3JlYXRlcyBhIGZhbHNlIHNlbnNlIG9mIGZpbmFsaXR5IHRoYXQgZG9lc27igJl0IGFjdHVhbGx5IGV4aXN0IGluIG1vc3QgcmVhbC13b3JsZCBzeXN0ZW1zLiZsdDsvcCZndDsKCiZsdDtwJmd0O091dHNpZGUgb2YgdGhlIHlvdW5nZXN0IG9mIHByb2plY3RzLCBpdOKAmXMgdW5saWtlbHkgdGhhdCB5b3UgY2FuIGRlc2NyaWJlIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCB5b3UgaGF2ZSB3aXRoIGFueSBzaW1wbGUgb25lLWxpbmVyLiBJdOKAmXMgbW9yZSBsaWtlbHkganVzdCDigJx5b3VyIGFyY2hpdGVjdHVyZSzigJ0gYW5kIGlmIHlvdeKAmXZlIGJlZW4gd29ya2luZyBvbiBpdCBmb3IgYW55IHNpZ25pZmljYW50IGFtb3VudCBvZiB0aW1lLCB5b3UgbWF5IGhhdmUgYXBwbGllZCBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0dGVybnMgYWxvbmcgdGhlIHdheSB0byBzb2x2ZSBzcGVjaWZpYyBwcm9ibGVtcy4gVGhlcmXigJlzIHByb2JhYmx5IGEgbW9ub2xpdGggc29tZXdoZXJlLCBzb21lIG51bWJlciBvZiBtaWNyb3NlcnZpY2VzLCBhIGZldyBldmVudHMsIGFuZCBhIHNlcnZlcmxlc3MgZWxlbWVudCBvciB0d28uIE9uIHRvcCBvZiBhbGwgdGhhdCwgeW91IG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YgdHJhbnNpdGlvbmluZyBzb21lIG9mIHRob3NlIHBpZWNlcyBmcm9tIG9uZSBwYXR0ZXJuIHRvIGFub3RoZXIuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0Rlc2lnbiBhcmNoaXRlY3R1cmUgdG8gc29sdmUgcHJvYmxlbXMmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gb2Z0ZW4gYXNrZWQgYnkgZm9sa3Mgd2hpY2ggYXJjaGl0ZWN0dXJlIHRoZXkgc2hvdWxkIGNob29zZSwgb3Igd2hlbiB0aGV5IHNob3VsZCBzd2l0Y2ggZnJvbSBvbmUgdG8gYW5vdGhlci4gSSBoYXZlIGEgZ3JlYXQgdGVuZGVuY3kgdG8gZGlzYXBwb2ludCB3aXRoIGFuc3dlcnMgbGlrZSDigJx3aGF0IHByb2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gc29sdmU/4oCdJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28sIHdoYXQgJmx0O3N0cm9uZyZndDtzaG91bGQmbHQ7L3N0cm9uZyZndDsgeW91IGJlIHRoaW5raW5nIGFib3V0IGFzIHlvdXIgcHJvZHVjdCBldm9sdmVzIGFuZCB5b3VyIG5lZWRzIGFyZSBjaGFuZ2luZz8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGVyZSBhcmUgYSBsb3Qgb2YgYXBwcm9hY2hlcyB0aGF0IHdlIGNhbiB1c2UgdG8gZGVzaWduIHNvZnR3YXJlIGFuZCBzeXN0ZW1zIHRvIGJlIG1vcmUgcmVzaWxpZW50IHRvIGNoYW5nZS4gVGhlIGFsbHVyZSBvZiBub3QgaGF2aW5nIHRvIGRvIGNvbXBsZXggcmVmYWN0b3Jpbmcgb3IgcmVidWlsZGluZyBkb3duIHRoZSByb2FkIGxlYWRzIHVzIHRvIHdhbnQgdG8gZGVzaWduIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG93IGNvc3Qgb2YgY2hhbmdlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2hpbGUgZ2VuZXJhbGl6ZWQgYWJzdHJhY3Rpb25zIGFuZCByZXVzYWJsZSBjb21wb25lbnRzIGFyZSBhdCB0aGUgY29yZSBvZiByZWR1Y2luZyB0aGUgaW1wYWN0IG9mIGNoYW5nZSwgdGhleSBhcmUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Jsb2cuY29kaW5naG9ycm9yLmNvbS90aGUtZGVsdXNpb24tb2YtcmV1c2UvJnF1b3Q7Jmd0O2hhcmQgdG8gZ2V0IHJpZ2h0IGluIHRoZSBmaXJzdCBwbGFjZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0l04oCZcyBoYXJkIHRvIHByZWRpY3QgdGhlIGZ1dHVyZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtBdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHRlY2huaWNhbCBsYW5kc2NhcGUgaXMgY2hhbmdpbmcsIHlvdXIgYnVzaW5lc3MgYW5kIHlvdXIgb3JnYW5pemF0aW9uIGFyZSBib3RoIGV2b2x2aW5nIGFzIHdlbGwuIFRoZXNlIGJvdGggaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiB5b3VyIGFyY2hpdGVjdHVyYWwgZGVjaXNpb25zLiBUaGUgc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlIHRoYXQgeW91IGFyZSB1bmRlcmdvaW5nIHdpbGwgaW5mbHVlbmNlIHRoZSBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUgYmVzdCBzdWl0ZWQgdG8gYWJzb3JiIHRob3NlIGNoYW5nZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGVhcmx5IGRheXMgb2YgYSBwcm9qZWN0IG9yIGNvbXBhbnksIGl04oCZcyBwb3NzaWJsZSB0byBtYWtlIHN3ZWVwaW5nIGZ1bmRhbWVudGFsIHNoaWZ0cyBpbiB0aGUgb2JqZWN0aXZlLiBFeHRyZW1lLCBidXQgbm90IHVuY29tbW9uLCBleGFtcGxlcyBpbmNsdWRlIFRpbnkgU3BlY2sgYmVjb21pbmcgU2xhY2sgYW5kIE9kZW8gYmVjb21pbmcgVHdpdHRlci4gV2hlbiB0aGUgZG9tYWluIG9mIHlvdXIgYnVzaW5lc3MgY2FuIG1vdmUgdGhhdCBkcmFzdGljYWxseSwgdGhlIGNsZWFuIGJvdW5kYXJpZXMgb2YgeW91ciBEREQgbW9kZWwgYXJlIG91dCB0aGUgd2luZG93LiBJbiBhIHNldCBvZiBtaWNyb3NlcnZpY2VzLCB0aGVzZSBib3VuZGFyaWVzIHdpbGwgYmUgY29kaWZpZWQsIHNvIGlmIHlvdSBoYXZlIHRvIGN1dCB0aHJvdWdoIHRoZW0sIHlvdeKAmWxsIGxpa2VseSBiZSB0aGFua2Z1bCBmb3IgYSBtb3JlIHBsaWFibGUgbW9ub2xpdGguJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB5b3UgZmluZCBwcm9kdWN0IC8gbWFya2V0IGZpdCwgeW91ciBwcmlvcml0aWVzIHdpbGwgc2hpZnQgdG93YXJkcyBzdXBwb3J0aW5nIHlvdXIgcmFwaWQgZ3Jvd3RoLiBXaXRoIHN5c3RlbSBzY2FsZSBhcyBhIGRyaXZlciBvZiBjaGFuZ2UsIHRoZSBhYmlsaXR5IHRvIHJlc3BvbmQgdG8gY2hhbmdlIGlzIG9mdGVuIHRpZWQgdG8gdGhlIGluZGVwZW5kZW5jZSBvZiBzeXN0ZW1zIGJhc2VkIG9uIHRoZWlyIG9wZXJhdGlvbmFsIGNoYXJhY3RlcmlzdGljcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGF0IHNjYWxpbmcgcGhhc2UsIHlvdeKAmWxsIGhhdmUgYSBsYXJnZXIgb3JnYW5pemF0aW9uIGFuZCBmYXIgbW9yZSB0ZWFtcy4gSWYgeW914oCZcmUgbHVja3kgeW914oCZbGwgYmUgYmFjayB0byBzdXN0YWluYWJsZSBwcm9kdWN0IGV2b2x1dGlvbi4gVGhlbiB0aGUgY29zdCBvZiBjaGFuZ2Ugd2lsbCBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIGFtb3VudCBvZiBjcm9zcy10ZWFtIGNvb3JkaW5hdGlvbiByZXF1aXJlZCB0byBtYWtlIGEgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtoMiZndDtEZWZlciByZXNwb25zZSB0byBjaGFuZ2UmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7V2hlbiBhbiBpbmRpdmlkdWFsIG9yIHRlYW0gaGFzIGEgcHJvYmxlbSB0aGV54oCZcmUgdHJ5aW5nIHRvIHNvbHZlLCB0aGV5IGdlbmVyYWxseSBzdGFydCBvZmYgd2l0aCBhIHByZXR0eSBzaW1wbGUgZGlyZWN0aXZlIOKAkyBsZXTigJlzIGJ1aWxkIHRvIHNvbHZlIHRoYXQgcHJvYmxlbS4gV2hhdOKAmXMgdGhlIG1vc3QgZWZmZWN0aXZlIGFyY2hpdGVjdHVyZSB3ZSBjYW4gdXNlIHRvIGJ1aWxkIGEgdmlhYmxlIHByb2R1Y3QgYXQgdGhlIGxvd2VzdCBjb3N0PyBUaGlzIGlzIGdlbmVyYWxseSB0cnVlIHdoZXRoZXIgaXTigJlzIGEgc3RhcnR1cCBvciBhIGh1Z2UgbXVsdGluYXRpb25hbCBjb3Jwb3JhdGlvbi4gQSBuZXcgcHJvamVjdCB3aWxsIGJlIGJ1aWx0IG9uIGEgc3lzdGVtIHRoYXTigJlzIHJlbGF0aXZlbHkgbmV3LCBhbmQgd2lsbCBiZSB1bmxpa2VseSB0byBoYXZlIHByb2R1Y3QtbWFya2V0IGZpdCBiZWNhdXNlIHRoZSBjb21wYW55IHdvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCBpdHMgYnVzaW5lc3MgZG9tYWluIHlldCwgYW5kIHdvbuKAmXQga25vdyB3aGVyZSB0aGUgcHJpbWFyeSBzb3VyY2VzIG9mIGNoYW5nZSB3aWxsIGNvbWUgZnJvbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHNpdHVhdGlvbiwgZGVzaWduaW5nIGZvciBjaGFuZ2UgYmVjb21lcyBhIGxvdCBoYXJkZXIuIElmIGl04oCZcyBhIGxvdCBtb3JlIGV4cGVuc2l2ZSB0byBtYWtlIHRoaW5ncyByZXNpbGllbnQgdG8gY2hhbmdlIGFuZCB5b3UgY2Fu4oCZdCB0ZWxsIHlldCB3aGljaCBwYXJ0cyBvZiB5b3VyIHN5c3RlbSB3aWxsIGNoYW5nZSwgaG93IGRvIHlvdSBtYWtlIHRoZSBkZWNpc2lvbiBhYm91dCB3aGVyZSB0byBtYWtlIHRoYXQgaW52ZXN0bWVudD8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBjb3VudGVyaW50dWl0aXZlIGFzIGl0IG1heSBzb3VuZCwgdGhlIGFuc3dlciBpcyBwcm9iYWJseSBub3doZXJlLiBBdCBsZWFzdCBub3QgeWV0LiBJbnN0ZWFkIHdhdGNoIGNoYW5nZSBjbG9zZWx5IGFuZCBidWlsZCBpbiBhIHdheSB0aGF0IG1pbmltaXplcyB0aGUgY29zdCBvZiBiZWluZyB3cm9uZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiDigJwmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9zaG9wLm9yZWlsbHkuY29tL3Byb2R1Y3QvOTc4MDU5NjUyMjcwNC5kbyZxdW90OyZndDs5NyBUaGluZ3MgRXZlcnkgU29mdHdhcmUgQXJjaGl0ZWN0IFNob3VsZCBLbm93Jmx0Oy9hJmd0O+KAnSBLZXZsaW4gSGVubmV5LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbWVkaXVtLmNvbS9Aa2V2bGluaGVubmV5L2h0dHBzLW1lZGl1bS1jb20ta2V2bGluaGVubmV5LXVzZS11bmNlcnRhaW50eS1hcy1hLWRyaXZlci00OTNlYmViZDU3NWQmcXVvdDsmZ3Q7ZGVzY3JpYmVzIGFuIGltcG9ydGFudCBhcHByb2FjaCB0byB0aGlua2luZyBhYm91dCB1bmNlcnRhaW50eSZsdDsvYSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2Jsb2NrcXVvdGUmZ3Q7CiAgJmx0O3AmZ3Q74oCcVGhlIHByZXNlbmNlIG9mIHR3byBvcHRpb25zIGlzIGFuIGluZGljYXRvciB0aGF0IHlvdSBuZWVkIHRvIGNvbnNpZGVyIHVuY2VydGFpbnR5IGluIHRoZSBkZXNpZ24uIFVzZSB0aGUgdW5jZXJ0YWludHkgYXMgYSBkcml2ZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHlvdSBjYW4gZGVmZXIgY29tbWl0bWVudCB0byBkZXRhaWxzIGFuZCB3aGVyZSB5b3UgY2FuIHBhcnRpdGlvbiBhbmQgYWJzdHJhY3QgdG8gcmVkdWNlIHRoZSBzaWduaWZpY2FuY2Ugb2YgZGVzaWduIGRlY2lzaW9ucy4gSWYgeW91IGhhcmR3aXJlIHRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQsIHlvdeKAmXJlIG1vcmUgbGlrZWx5IHRvIGJlIHN0dWNrIHdpdGggaXQg4oCTIGluY2lkZW50YWwgZGVjaXNpb25zIGJlY29tZSBzaWduaWZpY2FudCBhbmQgdGhlIHNvZnRuZXNzIG9mIHRoZSBzb2Z0d2FyZSBoYXJkZW5zLuKAnSZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7VGhpcyBmcmFtaW5nIGlzIGdyZWF0IGZvciBleHBsaWNpdCBkZWNpc2lvbnMsIGJ1dCB3aGF0IGlmIHlvdSBkb27igJl0IGtub3cgeW914oCZcmUgbWFraW5nIGEgY2hvaWNlPyZsdDsvcCZndDsKCiZsdDtwJmd0O01hbnkgdGltZXMsIHRoZSBjaG9pY2UgaXNu4oCZdCBldmVuIHZpc2libGUgeWV0LCBidXQgd2lsbCByZXZlYWwgaXRzZWxmIGxhdGVyLiBJbiB0aGVzZSBzaXR1YXRpb25zLCB0aGUgYW5zd2VyIGlzIG5vdCB0byBvdmVyIGdlbmVyYWxpemUsIGJ1aWxkaW5nIGFic3RyYWN0aW9ucyBldmVyeXdoZXJlIGp1c3QgaW4gY2FzZS4gSW5zdGVhZCwga2VlcCB0aGluZ3MgYXMgc2ltcGxlIGFzIHBvc3NpYmxlIHNvIHlvdSBjYW4gdW5kZXJzdGFuZCB0aGVtIGxhdGVyIGlmIHlvdSBoYXZlIHRvIG1ha2UgYSBjaGFuZ2UuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O1NpbXBsaWNpdHkgbWFrZXMgaXQgZWFzaWVyIHRvIGFkYXB0IHRvIGNoYW5nZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZWFybHkgZGF5cywgdGhlIENpcmNsZUNJIGFwcGxpY2F0aW9uIHdhcyBhIG1vbm9saXRoIHRoYXQgdG9vayBhIGN1c3RvbWVy4oCZcyBidWlsZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRhdGEgYW5kIHB1c2hlZCBpdCBpbnRvIG9uZSBvZiBzZXZlcmFsIExYQyBjb250YWluZXJzLiBFdmVyeSBjb250YWluZXIgdGhhdCB3ZSBzcHVuIHVwIHdhcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgc2FtZSBpbWFnZSB0aGF0IGNvbnRhaW5lZCBldmVyeXRoaW5nIHRoYXQgd2UgdGhvdWdodCBhbnlvbmUgd291bGQgZXZlciB3YW50IGluIHRoZWlyIHRlc3QgZW52aXJvbm1lbnQuIEluIGhpbmRzaWdodCwgdGhpcyBzb3VuZHMgbGlrZSBhIHRlcnJpYmxlIGlkZWEsIGJ1dCBhdCB0aGUgdGltZSwgaXQgd2FzIGZhbnRhc3RpYy4gSXQgd2FzIHNpbXBsZSB0byBtYWludGFpbiBhbmQgc3VwcG9ydGVkIHRoZSBuZWVkcyBvZiBvdXIgZWFybHkgY3VzdG9tZXJzLCBtYW55IG9mIHdob20gd2VyZSBidWlsZGluZyBSYWlscyBtb25vbGl0aHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXMgdGltZSBwYXNzZWQgYW5kIG91ciBjdXN0b21lciBiYXNlIGdyZXcsIHNvIGRpZCB0aGUgZGl2ZXJzaXR5IG9mIHRoZWlyIG5lZWRzIGluIHRlcm1zIG9mIHRlc3QgZW52aXJvbm1lbnRzLiBVcGdyYWRlZCB2ZXJzaW9ucyBvZiB0aGVpciB1bmRlcmx5aW5nIGRhdGFiYXNlcywgbm92ZWwgbmV3IGRldmVsb3BtZW50IGZyYW1ld29ya3MsIGV2ZW4gbmV3IG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbnMgYmVjYW1lIG5lY2Vzc2FyeS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgb3JpZ2luYWwgY29udGFpbmVyIG1hbmFnZW1lbnQgaW4gQ2lyY2xlQ0kgd2FzbuKAmXQgZGVzaWduZWQgaW4gYSB3YXkgdGhhdCBhbGxvd2VkIHVzIHRvIGFkYXB0IGVhc2lseSB0byB0aGVzZSBjaGFuZ2luZyBuZWVkcy4gQnV0IGl0IHdhcyBmYWlybHkgc2ltcGxlLiBTbyB3aGVuIHdlIHNldCBvdXQgdG8gc29sdmUgdGhlc2UgcHJvYmxlbXMsIHdlIGtuZXcgd2hlcmUgdG8gc3BsaWNlIGluIGEgbmV3IGFwcHJvYWNoIGFuZCBpdCB3YXMgbWluaW1hbCB3b3JrIHRvIGVuYWJsZSB0aGF0IHNwbGljaW5nLiBXZSBhbHNvIGRpZG7igJl0IGhhdmUgdG8gdW5yYXZlbCBhIHBvb3IgZ2VuZXJhbGl6YXRpb24gdGhhdCBkaWRu4oCZdCBzdXBwb3J0IG91ciBuZXcgcHJvYmxlbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3aGlsZSBzZWVtaW5nbHkgc2ltcGxlLCB3ZSB3ZXJlIGZpdmUgeWVhcnMgaW50byBzdWNjZXNzZnVsIGdyb3d0aCBhcyBhIGNvbXBhbnkgbWVldGluZyB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycyBvbiB0aGF0IHNpbXBsZSBzeXN0ZW0gYmVmb3JlIG91ciBmaXJzdCBjdXN0b21lcnMgdGVzdGVkIGl0cyByZXBsYWNlbWVudC4gSW4gdGhvc2UgZml2ZSB5ZWFycywgRG9ja2VyIHdhcyBjcmVhdGVkLCBhcyB3YXMgSGFzaGlDb3Jw4oCZcyBOb21hZC4gQ29tYmluZWQsIHRob3NlIHRvb2xzIGVsaW1pbmF0ZWQgaHVnZSBwb3J0aW9ucyBvZiB0aGUgd29yayBuZWNlc3NhcnkgdG8gZ2V0IHRoZSBmbGV4aWJsZSBhbmQgc2NhbGFibGUgZW52aXJvbm1lbnRzIHRoYXQgd2Ugc3VwcG9ydCBmb3IgY3VzdG9tZXJzIHRvZGF5LiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28sIGFzIHdlIHJldG9vbGVkIHRoZSBzeXN0ZW0gdG8gYWRhcHQgdG8gdGhlIGNoYW5nZWQgbWFya2V0IHdlIHdlcmUgaW4gYSBwb3NpdGlvbiB0byBhc2sg4oCcSG93IGRvIHdlIGRvIHRoaXMgaW4gYSB3YXkgdGhhdCBiZXR0ZXIgcG9zaXRpb25zIHVzIGZvciBpbmNyZW1lbnRhbCBjaGFuZ2U/4oCdIEl0IHdvdWxkIGJlIGRpZmZpY3VsdCB0byBvdmVyc3RhdGUgaG93IG11Y2ggdmFsdWUgdGhhdCBmaXZlIHllYXJzIG9mIGV4cGVyaWVuY2UgcHJvdmlkZWQgd2hlbiBkZXNpZ25pbmcgYSBzb2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdCBzb3VuZHMgd2VpcmQgYW5kIGdyb3NzbHkgdW5mYWlyIHRvIHNheSB0aGlzLCBidXQgbW9zdCBvZiB0aGUgdGltZSB3ZSBkb27igJl0IGV2ZW4ga25vdyB0aGF0IHdl4oCZcmUgbWFraW5nIGEgbW9udW1lbnRhbCBkZXNpZ24gZGVjaXNpb24gYmVjYXVzZSB0aGUgYWx0ZXJuYXRlIHBhdGggaGFzbuKAmXQgc2hvd24gdXAgeWV0LiBIb3cgZG8geW91IGd1YXJkIGFnYWluc3QgdGhpcz8mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7RGVmZXIsIGRlZmVyLCBkZWZlciZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUaGUgY29ycmVjdCBzb2x1dGlvbnMgaGF2ZSBhIGhhYml0IG9mIHJldmVhbGluZyB0aGVtc2VsdmVzIGlmIHlvdSBjYW4gZmluZCBhIHdheSB0byB3YWl0IGxvbmcgZW5vdWdoLiBUZWNobm9sb2d5IGdhaW5zIHRyYWN0aW9uIG9yIGRpZXMuIElmIHlvdSBjaG9zZSBhIGNvbnRhaW5lciBvcmNoZXN0cmF0aW9uIGVuZ2luZSBpbiAyMDE2LCB0aGVyZeKAmXMgYSByb3VnaGx5IDIwJSBjaGFuY2UgdGhhdCB5b3Ugd291bGQgaGF2ZSBjaG9zZW4gS3ViZXJuZXRlcy4gVGhhdCBtZWFucyBieSB0aGUgYmVnaW5uaW5nIG9mIDIwMTgsIGFsbW9zdCA4MCUgb2YgY29tcGFuaWVzIHdlcmUgc3dpdGNoaW5nLiBUaG9zZSBhcmUgbm90IGdyZWF0IG9kZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28gZGVmZXJyaW5nIGNhbiBiZSBnb29kLiBEZWZlcnJpbmcgdG8gdGhlIHBvaW50IG9mIGNyZWF0aW5nIGEgY3Jpc2lzIGlzIG5vdC4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7VGhpbmsgbGlrZSBhIHByb2R1Y3QgbWFuYWdlciZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3VyIGFyY2hpdGVjdHVyZSBpcyBhIGxlYWt5IGFic3RyYWN0aW9uLiBXaGlsZSBDaXJjbGVDSSBpcyBwcm9iYWJseSBhbiBleHRyZW1lIGV4YW1wbGUgb2YgdGhpcyBjYXNlIGR1ZSB0byB0aGUgYWNjZXNzIG91ciBjdXN0b21lcnMgaGF2ZSB0byBzeXN0ZW1zIGluIG91ciBwbGF0Zm9ybSwgdGhlcmUgaXMgYWx3YXlzIHNvbWUgaW1wbGljYXRpb24gZm9yIGN1c3RvbWVycyBvZiB0aGUgZGVjaXNpb25zIHlvdSBtYWtlIGluIGRlZmluaW5nIHlvdXIgYXJjaGl0ZWN0dXJlLiBSZWNvZ25pemluZyB0aGlzIGltcGFjdCBhbmQgYmVpbmcgYWJsZSB0byBjb2hlcmVudGx5IGRpc2N1c3MgYXBwcm9hY2hlcyBhbmQgYWx0ZXJuYXRpdmVzIGlzIGEgaHVnZSBhc3NldCB0aGF0IGFuIGVuZ2luZWVyIGNhbiBicmluZyB0byB0aGVpciBQTSBhbmQgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaGlsZSB3ZSB3ZXJlIHdpdG5lc3NpbmcgYWxsIG9mIHRoaXMgY2hhbmdlIGluIGhvdyBvdXIgY3VzdG9tZXJzIHdlcmUgYnVpbGRpbmcgc29mdHdhcmUsIG9uZSB0aGluZyB3ZSBpZ25vcmVkIGZvciB0b28gbG9uZyB3YXMgdGhlIHJpc2Ugb2YgRG9ja2VyLiBEb2NrZXIgZGlkbuKAmXQgZXZlbiBleGlzdCB3aGVuIENpcmNsZUNJIHN0YXJ0ZWQgaW4gMjAxMSwgdGhlbiBieSAyMDE0IGl0IHdhcyBldmVyeXdoZXJlLiBNYW55IG9mIG91ciBjdXN0b21lcnMgaGFkIHN0YXJ0ZWQgYnVpbGRpbmcgRG9ja2VyIGltYWdlcyBhcyBwYXJ0IG9mIHRoZWlyIGJ1aWxkIHRvIHByZXBhcmUgZm9yIGRlcGxveS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtEb2NrZXIgd2FzIG9yaWdpbmFsbHkgYnVpbHQgb24gdG9wIG9mIExYQywgYW5kIHRoYXQgbWVhbnQgaW4gdGhvc2UgZWFybHkgZGF5cyB3ZSBjb3VsZCBzdXBwb3J0IHRoZSB1c2Ugb2YgRG9ja2VyIGNvbW1hbmRzIHRvIGJ1aWxkIGltYWdlcyBhbmQgcHVzaCB0aGVtIHRvIHJlcG9zaXRvcmllcyBhbGwgaW5zaWRlIG9mIG9uZSBvZiBvdXIgTFhDIGNvbnRhaW5lcnMuIEluIDIwMTQsIERvY2tlciBsYXVuY2hlZCBzb21ldGhpbmcgY2FsbGVkIGxpYmNvbnRhaW5lciBhbmQgdGhleSBwdWxsZWQgYXBhcnQgdGhlIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBzeXN0ZW0gYW5kIGNyZWF0ZWQgZXhlY3V0aW9uIGRyaXZlcnMsIHdoaWNoIHNvb24gbGVkIHRvIHRoZSBkZXByZWNhdGlvbiBvZiB0aGUgTFhDIGRyaXZlci4gRGlzYXBwb2ludGluZywgYnV0IGl0IHN0aWxsIHdvcmtlZC4gVGhlbiBEb2NrZXIgZGVsZXRlZCBhbGwgTFhDIHN1cHBvcnQuIFRoYXQgd2FzIGJhZC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QWx3YXlzIHRoaW5rIGFib3V0IHVzZXJzJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVycyBhbmQgYXJjaGl0ZWN0cywgd2Ugc2F3IHRoaXMgY29taW5nLCBhbmQgZnJhbmtseSwgaXQgd2FzIHVuZGVyIHRoZSByYWRhciBvZiBvdXIgcHJvZHVjdCB0ZWFtLiBPdXIgbm9uLXRlY2huaWNhbCBwcm9kdWN0IGZvbGtzIGRpZG7igJl0IG5lY2Vzc2FyaWx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBidXQgb3VyIGVuZ2luZWVycyB3ZXJlIHRhbGtpbmcgYWJvdXQgaXQgZXZlcnkgZGF5LiBTbyBhcyBhbiBlbmdpbmVlciwgYW4gYXJjaGl0ZWN0LCBvciBhIGxlYWRlciBpbiB0ZWNobm9sb2d5LCB5b3UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBwcm9kdWN0IGFuZCB3b3JraW5nIHdpdGggeW91ciBwcm9kdWN0IG1hbmFnZXJzIHRvIGVuc3VyZSBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGUgaW1wbGljYXRpb25zIG9mIHRlY2huaWNhbCBjaG9pY2VzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0l04oCZcyBpbXBvcnRhbnQgdG8gc2VwYXJhdGUgdGhpcyBkaXNjdXNzaW9uIGZyb20gdGVjaG5pY2FsIGludmVzdG1lbnRzLiBUaGVyZSBpcyBhYnNvbHV0ZWx5IGEgcGxhY2UgZm9yIHRoaXMgdHlwZSBvZiBpbnZlc3RtZW50LCBhbmQsIGFuIGFyZ3VtZW50IHRoYXQgZnJhbWluZyB0aGVzZSBpbnZlc3RtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB5b3UgZnJhbWUgcHJvZHVjdCBpbnZlc3RtZW50cyBtYWtlcyBpdCBtdWNoIGVhc2llciB0byBtYWtlIHRyYWRlb2ZmIGRlY2lzaW9ucy4gSG93ZXZlciwgaWRlbnRpZnlpbmcgdGhlIGRpcmVjdGx5IGN1c3RvbWVyLXZpc2libGUgZmVhdHVyZSBpbXBhY3Qgb2YgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBtb3JlIGNvbW1vbmx5IGRpc2N1c3NlZCBpbXBhY3RzIG9mIGNvc3QsIHBlcmZvcm1hbmNlLCBzZWN1cml0eSwgZXRjLiZsdDsvcCZndDsKCiZsdDtwJmd0O0J1aWxkaW5nIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHlvdXIgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgdmFsdWUgYWNoaWV2ZWQgYnkgeW91ciBjdXN0b21lcnMgd2lsbCBwdXQgeW91IGluIGEgcG9zaXRpb24gdG8gbWFrZSBtb3JlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB3aGF0IGFuZCBob3cgdG8gYnVpbGQgYXMgeW91ciBidXNpbmVzcyBldm9sdmVzLiBUaGVuIHlvdSBjYW4gZm9jdXMgb24gZ2V0dGluZyBhaGVhZCBvZiB0aGF0IGV2b2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7S2VlcCB5b3VyIGhlYWQgdXAmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gQ2FuYWRpYW4gYW5kLCB1bnN1cnByaXNpbmdseSwgSSBncmV3IHVwIHBsYXlpbmcgaWNlIGhvY2tleS4gVGhyb3VnaG91dCBteSBjaGlsZGhvb2QsIEkgc3BlbnQgYW4gZW5kbGVzcyBhbW91bnQgb2YgdGltZSBhdCBwcmFjdGljZSBqdXN0IHNrYXRpbmc6IGZvcndhcmRzLCBiYWNrd2FyZHMsIHR1cm5pbmcsIHN0b3BwaW5nLCBmaWd1cmUgZWlnaHRzIGFyb3VuZCBjb25lcy4gVGhlbiBjYW1lIHN0aWNrIGhhbmRsaW5nLiBUaGUgaWRlYSB3YXMgdG8gaGF2ZSB0aGUgbW92ZW1lbnQgb24gdGhlIGljZSBiZWNvbWUgc2Vjb25kIG5hdHVyZSBzbyBJIGNvdWxkIGZvY3VzIG9uIHdoYXQgcmVhbGx5IG1hdHRlcmVkOiBzZWVpbmcgdGhlIHBsYXkgZGV2ZWxvcCwgZ2V0dGluZyBpbnRvIHNwYWNlLCBhbmQgdHJ5aW5nIHRvIHNjb3JlLiBNYWtlIHRoZSBmdW5kYW1lbnRhbHMgYWxtb3N0IGVmZm9ydGxlc3Mgc28geW91IGNhbiBwdXQgeW91ciBlbmVyZ3kgaW50byB0aGUgbm92ZWwgc3R1ZmYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gc29mdHdhcmUsIHdlIGhhdmUgYSBiYWQgdGVuZGVuY3kgdG8gbWFrZSB0aGUgZnVuZGFtZW50YWxzIGEgbG90IGhhcmRlciB0aGFuIHRoZXkgc2hvdWxkIGJlIGJ5IGFkb3B0aW5nIG5ldyB0ZWNobm9sb2d5IHRoYXQgd2UgdGhpbmsgaXMgZ29pbmcgdG8gYmUgZ2FtZSBjaGFuZ2luZywgYnV0IGVuZHMgdXAgaGF2aW5nIG1vZGVzdCB1cHNpZGUgaWYgYW55LiBUbyBtYWtlIHRoaW5ncyB3b3JzZSwgdGhlIGRvd25zaWRlIGlzIG9mdGVuIHVuYm91bmRlZCBhcyB3ZSBnZXQgb3VyIHRlYW1zIHVwIHRoZSBsZWFybmluZyBjdXJ2ZSwgZmluZCB1bnRlc3RlZCBlZGdlIGNhc2VzIGR1cmluZyBwcm9kdWN0aW9uIGluY2lkZW50cywgYW5kIGludmVudCBvdXIgb3duIOKAnGJlc3QgcHJhY3RpY2VzLuKAnSBBIHdvcmxkIHdoZXJlIFN0YWNrIE92ZXJmbG93IGhhcyBubyBhbnN3ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1doaWxlIHdl4oCZcmUgcHV0dGluZyB0aGlzIGVmZm9ydCBpbnRvIG91ciBub3ZlbCB0ZWNoLCB3ZeKAmXJlIG5vdCBmb2N1c2luZyBvbiBob3cgb3VyIHN5c3RlbXMgbmVlZCB0byBldm9sdmUgdG8gbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QSB0aW1lIHNpbXBsaWNpdHkgd291bGQgaGF2ZSBoZWxwZWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Q2lyY2xlQ0kgaXMgYSBDbG9qdXJlIHNob3AgYW5kLCBpbiBvdXIgZWFybHkgZGF5cywgd2UgZGVjaWRlZCB3ZeKAmWQgYmUgYmV0dGVyIGF0IGZyb250IGVuZCBkZXZlbG9wbWVudCBpZiB3ZSB1c2VkIHRoZSBzYW1lIGxhbmd1YWdlIHRoYXQgd2UgdXNlZCBpbiB0aGUgYmFja2VuZC4gU28gd2UgYWRvcHRlZCBPbSwgYSBDbG9qdXJlU2NyaXB0IHdyYXBwZXIgYXJvdW5kIFJlYWN0LiBBIGZldyB5ZWFycyBsYXRlciwgRGF2aWQgTm9sZW4sIHRoZSBwZXJzb24gd2hvIHN0YXJ0ZWQgT20sIGRlY2lkZWQgaGUgZGlkbuKAmXQgbGlrZSB0aGUgbW9kZWwgc28gaGUgcmVwbGFjZWQgaXQgd2l0aCBzb21ldGhpbmcgaW5jb21wYXRpYmxlIGNhbGxlZCBPbSBOZXh0LiBXZSB0cmllZCB0byBtaWdyYXRlIGluY3JlbWVudGFsbHkgdG8gT20gTmV4dCBhbmQgZW5kZWQgdXAgd2l0aCBhbiBvdmVybHkgY29tcGxleCBmcm9udGVuZCB3aXRoIHR3byBzdGF0ZSBtb2RlbHMgYW5kIG1hc3NpdmUgb3ZlcmhlYWQgdG8gZXZlcnkgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGVuZGVkIHVwIHJld3JpdGluZyBpdCBpbiBSZWFjdC4gSW4gcmV0cm9zcGVjdCwgT20gaGFkIGJvdGggaGlnaCByaXNrIGFuZCBoaWdoIGNvc3QgdG8gY2hhbmdlIGFuZCB3ZSBwYWlkIHRoZSBwcmljZS4gQW5kIHdlIHNwZW50IHRoYXQgdGltZSBsb29raW5nIGF0IG91ciBmZWV0LCBub3QgYWhlYWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm8gY29tcGFueSBoYXMgZXZlciB3b24gYmVjYXVzZSBvZiBhbiBhbWF6aW5nbHkgbm92ZWwgb3IgZXNvdGVyaWMgdGVjaG5vbG9neSBjaG9pY2UuIFRoZXJlIGlzIGFuIGVuZGxlc3MgbGlzdCwgaG93ZXZlciwgb2YgY29tcGFuaWVzIHRoYXQgaGF2ZSB3b24gYmVjYXVzZSB0aGV5IGNhbiBtb3ZlIHF1aWNrbHkgYW5kIHdpdGggYWdpbGl0eSwgYWRhcHRpbmcgdG8gY2hhbmdlIGFzIGl0IGhhcHBlbnMuIFRlY2hub2xvZ3kgc2hvdWxkIGJlIGFuIGFjY2VsZXJhdG9yIGhlbHBpbmcgdXMgbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4gV2VsbC11bmRlcnN0b29kLCBwcm9kdWN0aW9uLXRlc3RlZCB0b29scyBhcmUgZmFyIG1vcmUgbGlrZWx5IHRvIGZpdCB0aGF0IGJpbGwuIEFzIG15IGNvbGxlYWd1ZSBCZWFyIHNheXMsIOKAnElmIGEgdG9vbCBpc27igJl0IGhlbHBpbmcsIGl04oCZcyBub3QgYSB0b29sLCBpdOKAmXMgYSBjaG9yZS4gRHJvcCBpdC7igJ0mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7Q29uY2x1c2lvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtVbmZvcmVzZWVuIGNoYW5nZSBpcyB0b3Atb2YtbWluZCBmb3Igc28gbWFueSBvZiB1cyByaWdodCBub3csIGFuZCBpdOKAmXMgbW9yZSBvYnZpb3VzIHRoYW4gZXZlciB0aGF0LCBpbiBidXNpbmVzcywgbm9ib2R5IGNhbiBwcmVkaWN0IHRoZSBmdXR1cmUuIEl04oCZcyBhIHNhZmUgYmV0IHRoYXQgZm9sa3MgYXQgR00gZGlkbuKAmXQgc3RhcnQgdGhlIHllYXIgdGhpbmtpbmcgYWJvdXQgaG93IHRvIHVzZSB0aGVpciBmYWN0b3JpZXMgdG8gbWFrZSB2ZW50aWxhdG9ycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWluZyBwcmVwYXJlZCB0byBhZGFwdCBpbiB0aGUgZmFjZSBvZiBjaGFuZ2UgcmVxdWlyZXMgdGhpbmtpbmcgYWJvdXQgY2hhbmdlIGFzIGEgZHJpdmVyIGluIGV2ZXJ5dGhpbmcgeW91IGRvLiBXYXRjaCBob3cgeW91ciBtYXJrZXQgaXMgY2hhbmdpbmcgYW5kIHJlZmxlY3Q9IG9uIGhvdyB0aGF0IGltcGFjdHMgeW91ciBhcmNoaXRlY3R1cmUgc28gdGhhdCB5b3UgY2FuIG1ha2UgdGFyZ2V0ZWQsIGluY3JlbWVudGFsIGltcHJvdmVtZW50cyBpbiBpdHMgYWRhcHRhYmlsaXR5LiBUaGlzIHdpbGwgaGVscCBrZWVwIHlvdSBmb2N1c2VkIG9uIGV2b2x1dGlvbiB3aXRob3V0IHdhc3RpbmcgdGltZSBvciBtb25leSBvbiBhcmVhcyB0aGF0IHdvbuKAmXQgbmVlZCBpdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCbGFjayBTd2FuIGV2ZW50cyBhcmUgc28gdW51c3VhbCB0aGF0IHN0dWR5aW5nIHRoZSBzcGVjaWZpY3MgY2FuIGJlIGxvdyB2YWx1ZSwgYnV0IHRoZXkgcmVtaW5kIHVzIGhvdyBmYXIgcmVhbGl0eSBjYW4gYmUgZnJvbSBvdXIgcGxhbnMuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZW5naW5lZXJpbmcgbWFuYWdlcnMgY2FuIGVmZmVjdGl2ZWx5IHN1cHBvcnQgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWVuZ2luZWVyaW5nLW1hbmFnZXJzLWNhbi1lZmZlY3RpdmVseS1zdXBwb3J0LWVuZ2luZWVycy10ZWFtcy1hbmQtb3JnYW5pemF0aW9ucy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+V2VkLCAyOSBBcHIgMjAyMCAxNTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9ob3ctZW5naW5lZXJpbmctbWFuYWdlcnMtY2FuLWVmZmVjdGl2ZWx5LXN1cHBvcnQtZW5naW5lZXJzLXRlYW1zLWFuZC1vcmdhbml6YXRpb25zLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkxlbmEgUmVpbmhhcmQ8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIHR5cGljYWwgam9iIGRlc2NyaXB0aW9uIGZvciBtYW55IGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMgaXMgYWN0aW9uLXBhY2tlZC4gSXQgaXMgYSBtaXggb2YgaGFuZHMtb24gY29kaW5nLCB0ZWNobmljYWwgbGVhZGVyc2hpcCBhbmQgZGVjaXNpb24gbWFraW5nLCBwcm9jZXNzIGFuZCBwcm9qZWN0IG1hbmFnZW1lbnQsIHByb2R1Y3Qgb3ZlcnNpZ2h0LCBwZW9wbGUgbWFuYWdlbWVudCwgZmluZGluZyBhbmQgaGlyaW5nIHRhbGVudCDigKYgdGhlIGxpc3QgZ29lcyBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiBvdXIgd29yaywgd2UgZGVhbCB3aXRoIGJvdGggdGVjaG5pY2FsIGFuZCBwZW9wbGUgc3lzdGVtczogd2Ugc3VwcG9ydCBpbmRpdmlkdWFsIGVuZ2luZWVyc+KAmSBncm93dGg7IGhlbHAgdGVhbXMgYmVjb21lIHN1Y2Nlc3NmdWw7IGFuZCBtYWtlIHRoZSBvcmdhbml6YXRpb24gbW9yZSBwcm9kdWN0aXZlLCBmdW5jdGlvbmFsLCBhbmQgaW5ub3ZhdGl2ZS4gQWJvdmUgYWxsLCBhbiBlbmdpbmVlcmluZyBtYW5hZ2VyIGlzIGEgc2VydmljZSBvciBzdXBwb3J0IHJvbGUgYWNyb3NzIHRoZXNlIHZhcmlvdXMgbGF5ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1BlcmhhcHMgbW9zdCBmYXNjaW5hdGluZyBhbmQgZGlmZmljdWx0IGlzIHRoZSBoaWdoLWxldmVsIG9mIGFtYmlndWl0eSB0aGF0IGNvbWVzIHdpdGggZW5naW5lZXJpbmcgbWFuYWdlbWVudC4gTWFueSBwcm9ibGVtcyBvciBxdWVzdGlvbnMgZG9u4oCZdCBoYXZlIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLiBUaGVyZSBhcmVu4oCZdCBhYnNvbHV0ZSBhbnN3ZXJzIHRvIHdoYXQgaXQgbWVhbnMgdG8gYmUgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgZWl0aGVyLCBidXQgdGhlcmUgYXJlIGNlcnRhaW4gdmFsdWVzIGFuZCBndWlkZXBvc3RzIHRvIGZvbGxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgbG9vayBhdCB3aGF0IGNhbiBzaGFwZSBvdXIgdGhpbmtpbmcgYWJvdXQgb3VyIHJvbGUgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgYW5kIGhvdyB0byBlZmZlY3RpdmVseSBzdXBwb3J0IGluZGl2aWR1YWwgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1doYXQgZG8gZW5naW5lZXJzIG5lZWQgdG8gdGhyaXZlIGF0IHdvcms/Jmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SXQgaGVscHMgdG8gc3RhcnQgc2hhcGluZyBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IHJvbGVzIGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCBlbmdpbmVlcnMgbmVlZCwgYW5kIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGV5IHRocml2ZS4gUmVzZWFyY2ggZnJvbSBwZXJmb3JtYW5jZSBjb2FjaCBhbmQgdHJhaW5lciBQYWxvbWEgTWVkaW5hIGV4cG9zZXMgc2l4IGNvcmUgbmVlZHMgaHVtYW5zIGhhdmUgKGluY2x1ZGluZyBhdCB3b3JrKS4gU2hlIGNhbGxzIHRoaXMgcmVzZWFyY2ggdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGFsb21hbWVkaW5hLmNvbS9iaWNlcHMmcXVvdDsmZ3Q7QklDRVBTIG1vZGVsJmx0Oy9hJmd0OzombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7QmVsb25naW5nLiZsdDsvc3Ryb25nJmd0OyBBcyBodW1hbnMsIHdlIHN0cml2ZSB0byBiZSBwYXJ0IG9mIGEgY29tbXVuaXR5IG9mIGxpa2UtbWluZGVkIHBlb3BsZSB3aGVyZSB3ZSB1bmRlcnN0YW5kIGFuZCBzdXBwb3J0IGVhY2ggb3RoZXIuIFdlIGFsc28gd2FudCB0byBmZWVsIGFzIGlmIHdlIGFyZSBub3QgYmVpbmcgZGlzY3JpbWluYXRlZCBhZ2FpbnN0IG9yIG1hcmdpbmFsaXplZC4gQmVsb25naW5nIGlzIHJlYWxseSBpbXBvcnRhbnQgdG8gbWUgcGVyc29uYWxseTogSSBsb3ZlIHdvcmtpbmcgYXMgcGFydCBvZiBhIGRpc3RyaWJ1dGVkIHRlYW0sIGJ1dCBJIGFsc28gcmVhbGx5IGVuam95IHNlZWluZyBwZW9wbGUgaW4gcGVyc29uIGV2ZXJ5IG9uY2UgaW4gYSB3aGlsZS4gSXQgbWFrZXMgbWUgZmVlbCBtb3JlIGNvbm5lY3RlZCB0byB0aGVtLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7SW1wcm92ZW1lbnQuJmx0Oy9zdHJvbmcmZ3Q7IFdlIGFsc28gc2VlayB0byBjb250aW51b3VzbHkgbGVhcm4sIGltcHJvdmUsIGFuZCBncm93IGluIGFyZWFzIHRoYXQgbWF0dGVyIHRvIHVzLCBhcyB3ZWxsIGFzIHRvIG91ciB0ZWFtIG9yIGNvbXBhbnkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtDaG9pY2UuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8gaGF2ZSBjaG9pY2UsIGNvbnRyb2wsIGFuZCBhdXRvbm9teSBvdmVyIGltcG9ydGFudCBwYXJ0cyBvZiBvdXIgbGl2ZXMuIEluIG9uZSBvZiBteSBwcmV2aW91cyByb2xlcywgSSB0b29rIG9uIGEgbG90IG9mIHdvcmsgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLiBCdXQgdWx0aW1hdGVseSwgdGhlIGNvbnRyb2wgSSBoYWQgb3ZlciBteSBkb21haW4gd2FzIGxpbWl0ZWQgZHVlIHRvIG9yZ2FuaXphdGlvbmFsIGlzc3VlcyDigJMgd2hpY2ggbGVkIG1lIHRvIGxlYXZlIHRoZSBjb21wYW55LiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7RXF1YWxpdHkuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8ga25vdyB0aGF0IG91ciBhY2Nlc3MgdG8gaW5mb3JtYXRpb24sIG1vbmV5LCB0aW1lLCBhbmQgb3RoZXIgcmVzb3VyY2VzIGlzIGZhaXIgYW5kIGVxdWFsIGZvciBldmVyeW9uZSDigJMgbm90IGp1c3QgZm9yIG91cnNlbHZlcywgYnV0IGFsc28gZm9yIHRoZSBwZW9wbGUgYXJvdW5kIHVzLiBFdmVyeW9uZeKAmXMgbmVlZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZXF1YWxseSBpbXBvcnRhbnQuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtQcmVkaWN0YWJpbGl0eS4mbHQ7L3N0cm9uZyZndDsgV2UgbG9vayBmb3IgY2VydGFpbnR5LCBzYWZldHksIGFuZCBzdGFiaWxpdHkgaW4gb3VyIGxpdmVzLiBXZSBhbHNvIHdhbnQgZ29hbHMsIHN0cmF0ZWd5LCBhbmQgZGlyZWN0aW9uIHRvIGJlIGNvbnNpc3RlbnQg4oCTIGFuZCB0byBub3QgY2hhbmdlIHRvbyBxdWlja2x5LiBJ4oCZdmUgYmVlbiBsZWFkaW5nIHRlYW1zIGluIGZhc3QtZ3Jvd2luZyBzdGFydHVwcyBmb3IgdGhlIGxhc3QgY291cGxlIG9mIHllYXJzLCBhbmQgd2hlbiB0aGVyZeKAmXMgYSBsb3Qgb2YgY2hhbmdlIGhhcHBlbmluZywgaXTigJlzIGEgY2hhbGxlbmdlIHRvIGluc3RpbGwgcHJlZGljdGFiaWxpdHkgaW4gdGVhbXMuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtTaWduaWZpY2FuY2UuJmx0Oy9zdHJvbmcmZ3Q7IERlZXAgZG93biwgYWxsIG9mIHVzIHNlZWsgbWVhbmluZywgaW1wb3J0YW5jZSwgYW5kIHN0YXR1cy4gV2UgYWxzbyB3YW50IHRvIGJlIGFwcHJlY2lhdGVkIGZvciBvdXIgd29yayBieSBwZW9wbGUgd2hvc2Ugb3BpbmlvbnMgbWVhbiBzb21ldGhpbmcgdG8gdXMuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0lmIG91ciBjb3JlIG5lZWRzIGFyZSB0aHJlYXRlbmVkLCBwZW9wbGUgcmVzb3J0IHRvIGZpZ2h0LW9yLWZsaWdodCBtb2RlcyBvZiByZWFjdGlvbiwgd2hpY2ggYXJlIHZlcnkgc3RyZXNzZnVsLiBUaGUgZmFpbHVyZSB0byBtZWV0IGNvcmUgbmVlZHMgaGFzIGhpZ2ggY29zdHMgZm9yIG9yZ2FuaXphdGlvbnMgYnkgaGFybWluZyBwZW9wbGUgb24gb3VyIHRlYW1zLiBTbyBob3cgY2FuIGVuZ2luZWVyaW5nIG1hbmFnZXJzIHB1dCB0aGUgQklDRVBTIG1vZGVsIGludG8gYWN0aW9uIHRvIGhlbHAgdGhlaXIgdGVhbXMgdGhyaXZlPyZsdDsvcCZndDsKCiZsdDtoMiZndDtVc2luZyB0cnVzdC1iYXNlZCByZWxhdGlvbnNoaXBzIHRvIGhlbHAgZW5naW5lZXJzIGdyb3cmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgZm91bmRhdGlvbiBvZiBiZWluZyBhIGdvb2QgZW5naW5lZXJpbmcgbWFuYWdlciBpcyBnZXR0aW5nIHRvIGtub3cgb3VyIHRlYW1tYXRlcyBhbmQgdW5kZXJzdGFuZGluZyB3aGF0IGlzIGltcG9ydGFudCB0byB0aGVtLiBIZXJlIGFyZSBhIGZldyBwbGFjZXMgdG8gc3RhcnQgYnVpbGRpbmcgdHJ1c3Qgd2l0aGluIHlvdXIgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0FzayBxdWVzdGlvbnMuJmx0Oy9zdHJvbmcmZ3Q7IE9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCB0b29scyBtYW5hZ2VycyBoYXZlIGlzIGFza2luZyBnb29kIHF1ZXN0aW9ucy4gVGhlIGJhc2lzIGZvciBkb2luZyBvdXIgam9icyB3ZWxsIGlzIGxpc3RlbmluZywgb2JzZXJ2aW5nLCB0YWtpbmcgbm90ZSBvZiB3aGF0IG1vdGl2YXRlcyBvdXIgdGVhbW1hdGVzLCBhbmQgcmVhbGx5IGRpZ2dpbmcgaW50byB0aGVpciByZXNwb25zZXMgdG8gb3VyIHF1ZXN0aW9ucy4gSSB1c3VhbGx5IGdhdGhlciBxdWVzdGlvbnMgYmVmb3JlIEkgbWVldCB3aXRoIG15IHRlYW1tYXRlcyBvbmUtb24tb25lLCBzbyBJIGFtIHByZXBhcmVkIGFuZCBJIGNhbiBndWlkZSB0aGUgY29udmVyc2F0aW9uIHRvd2FyZHMgdW5kZXJzdGFuZGluZyB0aGVtIGJldHRlci4gT3ZlciB0aW1lLCBJIGhhdmUgYnVpbHQgYSBraXQgb2Ygb25lLW9uLW9uZSBxdWVzdGlvbnMgdGhhdCBJIHB1bGwgb3V0IHdoZW4gSSBuZWVkIHNvbWUgaW5zcGlyYXRpb24gZm9yIHRoZXNlIGNvbnZlcnNhdGlvbnMuIEFza2luZyBxdWVzdGlvbnMgaGVscHMgdXMgYWRqdXN0IG91ciBsZWFkZXJzaGlwIHN0eWxlIHRvIHRoZSBwZW9wbGUgd2UgYXJlIGxlYWRpbmcuIEl0IGFsc28gZW5zdXJlcyB0aGF0IHRoZXkgZmVlbCB1bmRlcnN0b29kIGFuZCBoZWFyZCwgd2hpY2ggYXJlIHJlYWxseSBpbXBvcnRhbnQgcGlsbGFycyBvZiBpbmNsdXNpb24gYW5kIGJlbG9uZ2luZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0JlIGN1cmlvdXMuJmx0Oy9zdHJvbmcmZ3Q7IFBlb3BsZSBhcmUgZnVsbCBvZiBzdXJwcmlzZXMsIGFuZCBzb21ldGltZXMgb3VyIHRlYW1tYXRlc+KAmSByZWFjdGlvbnMgbWF5IGJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBleHBlY3RlZC4gSSBvbmNlIHJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIGVuZ2luZWVyIG9uIG15IHRlYW0gd2hvIHdhcyBkZWVwbHkgdXBzZXQgYWJvdXQgdGhlIHNwZWNpZmljIHdvcmRpbmcgdXNlZCBpbiBhIHByb2R1Y3QtcmVsZWFzZSBub3RlIHRvIGN1c3RvbWVycy4gQXQgZmlyc3QgSSBkaWQgbm90IHVuZGVyc3RhbmQgdGhlaXIgc3Ryb25nIHJlYWN0aW9uLiBCdXQgd2hlbiB3ZSB0YWxrZWQsIEkgbGVhcm5lZCB0aGUgZW5naW5lZXIgaGFkIGJlZW4gb3ZlcnJ1bGVkIGJ5IHNvbWVvbmUgd2l0aCBtb3JlIHBvd2VyLCBtYWtpbmcgdGhlbSBmZWVsIGhlbHBsZXNzLCBhbmQgdGhyZWF0ZW5pbmcgdGhlaXIgY29yZSBuZWVkIGZvciBjaG9pY2UgYW5kIGVxdWFsaXR5LiZsdDsvcCZndDsKCiZsdDtwJmd0O1doYXQgbWFuYWdlcnMgbWlnaHQgcGVyY2VpdmUgYXMgbm8gYmlnIGRlYWwgY2FuIGJlIGVub3Jtb3VzIHRocmVhdHMgdG8gb3RoZXIgcGVvcGxlLiBDYXNlcyB3aGVyZSB3ZeKAmXJlIHN1cnByaXNlZCBieSBvdXIgdGVhbW1hdGVz4oCZIHJlYWN0aW9ucyBhcmUgZ29vZCBvcHBvcnR1bml0aWVzIHRvIGZvY3VzIG9uIGh1bWFuLWNlbnRyaWMgcmVzcG9uc2VzLCBsaWtlIGdpdmluZyBwZW9wbGUgdGhlIG9wcG9ydHVuaXR5IHRvIHRhbGsgdGhyb3VnaCB0aGVpciBmZWVsaW5ncy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0Nvbm5lY3QgdG8gdGhlIGJpZ2dlciBwaWN0dXJlLiZsdDsvc3Ryb25nJmd0OyBDcmVhdGluZyBhbiBpbXBhY3QgaXMgYSB2ZXJ5IGdvb2QgbW90aXZhdG9yIGZvciBhbGwgb2YgdXMsIHNvIGhlbHBpbmcgZW5naW5lZXJzIHVuZGVyc3RhbmQgaG93IHRoZWlyIHdvcmsgY29ubmVjdHMgdG8gdGhlIGJpZ2dlciBwaWN0dXJlIChob3cgaXQgaGVscHMgdXNlcnMgb3Igc3VwcG9ydHMgb3RoZXIgdGVhbXMpIGlzIGFuIGV4dHJlbWVseSBpbXBvcnRhbnQgYW5kIHN0cmF0ZWdpYyBza2lsbCBmb3IgbWFuYWdlcnMuIFdoaWxlIGdvYWwtc2V0dGluZyBmcmFtZXdvcmtzIGxpa2UgT0tScyBjYW4gaGVscCwgaXQgaXMgYWxzbyBjcnVjaWFsIHRvIGFsaWduIGVuZ2luZWVyaW5nIGluaXRpYXRpdmVzIHdpdGggaGlnaGVyLWxldmVsIGdvYWxzLCBhbmQgY29ubmVjdCB0aGVtIGNsZWFybHkgd2l0aCB1c2VyIHZhbHVlLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7SW52b2x2ZSBlbmdpbmVlcnMgaW4gZGVjaXNpb24gbWFraW5nLiZsdDsvc3Ryb25nJmd0OyBGZWVsaW5nIHRoYXQgZGVjaXNpb25zIGFyZSBmYWlyIGFuZCBlcXVpdGFibGUgaXMgYW4gaW1wb3J0YW50IGNvbXBvbmVudCBvZiB0aGUgQklDRVBTIG1vZGVsLiBXaGVuIHdlIG1ha2UgZGVjaXNpb25zLCBpdCBpcyBoZWxwZnVsIHRvIGFzayBldmVyeW9uZSBmb3IgdGhlaXIgb3BpbmlvbnMgZmlyc3QsIGFuZCB0YWtlIHRoZWlyIG9waW5pb25zIGludG8gYWNjb3VudC4gSXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBnbyB3aXRoIHdoYXQgZXZlcnlvbmUgd2FudHMuIEJ1dCB3ZSBjYW4gc3RpbGwgZG8gYSBnb29kIGpvYiBhdCBjb250ZXh0dWFsaXppbmcgdGhlIGRlY2lzaW9ucyB3ZSBtYWtlLCBhbmQgaGVscGluZyBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IHRoZWlyIGZlZWRiYWNrIHdhcyBjb25zaWRlcmVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7R2l2ZSBmZWVkYmFjayBmb3IgZ3Jvd3RoLiZsdDsvc3Ryb25nJmd0OyBPbmUgb2YgdGhlIGJlc3QgdGhpbmdzIHdlIGdldCB0byBkbyBhcyBlbmdpbmVlcmluZyBtYW5hZ2VycyBpcyBzdXBwb3J0IGVuZ2luZWVyc+KAmSBncm93dGguIEdpdmUgZmVlZGJhY2sgcmVndWxhcmx5IHRvIGhlbHAgdGhlIHBlb3BsZSBvbiB5b3VyIHRlYW0gdW5kZXJzdGFuZCB3aGVyZSB0aGV5IGFyZSBhdCBhbmQgZ3JvdyDigJMgYnkgY291cnNlLWNvcnJlY3Rpbmcgd2hlcmUgbmVlZGVkLCBhcyB3ZWxsIGFzIGJ5IGRvaW5nIG1vcmUgaW4gdGhlIGFyZWFzIGluIHdoaWNoIHRoZXkgYXJlIGFscmVhZHkgZG9pbmcgZ3JlYXQuIE1hbmFnZXJzIG5lZWQgZmVlZGJhY2sgYXMgd2VsbDogaXTigJlzIGltcG9ydGFudCB0byByZWd1bGFybHkgYXNrIHlvdXIgdGVhbSBmb3IgZmVlZGJhY2sgc28geW91IGNhbiBtYWtlIGFkanVzdG1lbnRzLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Q29hY2ggZW5naW5lZXJzLiZsdDsvc3Ryb25nJmd0OyBDb2FjaGluZyBoZWxwcyBwZW9wbGUgZmluZCBhbnN3ZXJzIHRoZW1zZWx2ZXMsIGltcHJvdmVzIHRoZWlyIHByb2JsZW0tc29sdmluZyBhbmQgbGVhZGVyc2hpcCBza2lsbHMsIGFuZCBpbmNyZWFzZXMgbGVhcm5pbmcsIHJlc2lsaWVuY2UsIGFuZCBzZWxmLW1hbmFnZW1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTcG9uc29yIGVuZ2luZWVycy4mbHQ7L3N0cm9uZyZndDsgVGhpbmsgYmFjayBvbiB5b3VyIGNhcmVlciwgYW5kIHdoZXRoZXIgeW91IGhhdmUgaGFkIGEgbWVudG9yIHdobyBjb25uZWN0ZWQgeW91IHdpdGggc29tZW9uZSwgcHV0IHlvdXIgbmFtZSBmb3J3YXJkLCBhbmQgdXNlZCB0aGVpciBpbmZsdWVuY2UgdG8gbWFrZSBhIGRpZmZlcmVuY2UgaW4geW91ciBjYXJlZXIuIEJlIHRoYXQgcGVyc29uIGZvciBzb21lb25lIGVsc2U6IGludmVzdCBpbiB0aGVpciBncm93dGgsIGxpZnQgdGhlbSB1cCwgYW5kIHB1dCB5b3VyIHdlaWdodCBiZWhpbmQgdGhlaXIgc3VjY2Vzcy4gU3VwcG9ydGluZyB5b3VyIHRlYW3igJlzIHN1Y2Nlc3MgY2FuIG1ha2UgYSByZWFsIGRpZmZlcmVuY2UgZm9yIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhpcyBpcyB0aGUgZm91bmRhdGlvbiBvZiBvdXIgd29yayBhcyBlbmdpbmVlcmluZyBtYW5hZ2Vycy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RHJpdmluZyBhIGN1bHR1cmUgb2YgdHJ1c3QgYW5kIGNvbnRpbnVvdXMgaW1wcm92ZW1lbnQgb24gdGVhbXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgbmV4dCBpbXBvcnRhbnQgYnVpbGRpbmcgYmxvY2sgaW4gb3VyIHdvcmsgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgaXMgdGhlIHRlYW0uIEFjY29yZGluZyB0byByZXNlYXJjaCwgaGlnaC1wZXJmb3JtaW5nIHRlYW1zIG5lZWQgdGhlIGZvbGxvd2luZyBlbGVtZW50cy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7UHN5Y2hvbG9naWNhbCBzYWZldHkuJmx0Oy9zdHJvbmcmZ3Q7IFRoaXMgaXMgYWJvdXQgYmVsaWV2aW5nIHRoYXQgd2Ugd2lsbCBub3QgYmUgcmVqZWN0ZWQsIGFuZCBmZWVsaW5nIGZyZWUgdG8gZXhwcmVzcyBvdXIgd29yay1yZWxhdGVkIHRob3VnaHRzIGFuZCBmZWVsaW5ncyB0byB0aGUgcGVvcGxlIGFyb3VuZCB1cy4gSXQgYWxzbyBtZWFucyBiZWxpZXZpbmcgdGhhdCBvdGhlcnMgd29u4oCZdCB0aGluayBsZXNzIG9mIHVzIGlmIHdlIG1ha2UgYSB3ZWxsLWludGVudGlvbmVkIG1pc3Rha2Ugb3IgYXNrIGZvciBoZWxwLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7U3RydWN0dXJlIGFuZCBjbGFyaXR5LiZsdDsvc3Ryb25nJmd0OyBFdmVyeW9uZSBvbiB0aGUgdGVhbSBzaG91bGQgdW5kZXJzdGFuZCBleHBlY3RhdGlvbnMsIGdvYWxzLCBhbmQgYWNjb3VudGFiaWxpdHkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtNZWFuaW5nIGFuZCBpbXBhY3QuJmx0Oy9zdHJvbmcmZ3Q7IEhpZ2gtcGVyZm9ybWluZyB0ZWFtcyBmaW5kIGEgc2Vuc2Ugb2YgcHVycG9zZSBpbiB0aGVpciB3b3JrLCBhbmQga25vdyB0aGF0IHRoZWlyIHdvcmsgaGFzIGFuIGltcGFjdC4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7THVja2lseSBmb3IgbWFuYWdlcnMsIHRoaXMgcmVzZWFyY2ggbmVhdGx5IGFsaWducyB3aXRoIHRoZSBCSUNFUFMgbW9kZWwuIEFsbCBodW1hbiBjb3JlIG5lZWRzIGFyZSByZXByZXNlbnRlZCBhbmQgaGF2ZSBpbXBhY3QgYXQgdGhlIHRlYW0gbGV2ZWwgYXMgd2VsbC4gQnkgdW5kZXJzdGFuZGluZyBhbmQgcmVzcG9uZGluZyB0byBwZW9wbGXigJlzIG1vdGl2YXRpb25zLCBsZWFkZXJzIGNyZWF0ZSB0aGUgYmFzaXMgZm9yIHRlYW1zICB0byBleHByZXNzIHRoZW1zZWx2ZXMg4oCTIGFuZCBwcm92aWRlIHRoZSBzdHJ1Y3R1cmUsIG1lYW5pbmcsIGFuZCBpbXBhY3QgdGhleSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgdHJ1c3QuJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBmaXJzdCBzdGVwIGluIGNyZWF0aW5nIHN0cnVjdHVyZSBpcyBidWlsZGluZyByZWxhdGlvbnNoaXBzLiBGb3Igb3VyIGRpc3RyaWJ1dGVkIHRlYW1zIGF0IENpcmNsZUNJLCB3ZeKAmXZlIGJ1aWx0IGRpZmZlcmVudCBzdHJ1Y3R1cmVzIHRvIGhlbHAgdGVhbW1hdGVzIGRvIHRoYXQsIHN1Y2ggYXMgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucyBhbmQgZW5naW5lZXJpbmcgdGFsa3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTdHJ1Y3R1cmUgYXJvdW5kIGhvdyB3ZSBjb2xsYWJvcmF0ZS4mbHQ7L3N0cm9uZyZndDsgT3VyIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0kgaGFzIGRvdWJsZWQgaW4gc2l6ZSBmb3IgdGhyZWUgeWVhcnMgaW4gYSByb3cuIE92ZXIgdGhpcyB0aW1lLCB3ZeKAmXZlIG1vdmVkIHRvIGEgbW9yZSBzdHJlYW1saW5lZCBlbmdpbmVlcmluZyBkZWxpdmVyeSBwcm9jZXNzIGZvciBhbGwgdGVhbXMuIEJ1dCB3ZSBzdGlsbCBsZWF2ZSBpdCB0byB0aGUgdGVhbXMgdG8gZGVjaWRlIGhvdyB0byBpbXBsZW1lbnQgdCBkYXktdG8tZGF5IHByb2Nlc3NlcywgaW5jbHVkaW5nIGRhaWx5IHN0YW5kdXAgbWVldGluZ3MsIHBsYW5uaW5nIHNlc3Npb25zLCBvciBjb2xsYWJvcmF0aW9uLiBFdmVyeSB0ZWFtIGhhcyBzcGVjaWZpYyBuZWVkcywgYW5kIHRoZXkga25vdyBiZXN0IGhvdyB0byBhZGRyZXNzIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtSZW1vdmUgYmxvY2tlcnMuJmx0Oy9zdHJvbmcmZ3Q7IFN0cnVjdHVyZXMgY2FuIGFsc28gaGVscCBtaXRpZ2F0ZSB0aGUgaW1wYWN0IG9mIGdldHRpbmcgYmxvY2tlZCBhdCB3b3JrLiBXZSBhbGwga25vdyBob3cgZnJ1c3RyYXRpbmcgaXQgaXMgdG8gYmUgc3R1Y2suIFB1dHRpbmcgdXAgcGF0aHdheXMgdG8gaGVscCBwZW9wbGUgZ2V0IHVuYmxvY2tlZCBjYW4gYmUgcmVhbGx5IGltcG9ydGFudCDigJMgZm9yIGV4YW1wbGUsIHNldHRpbmcgdXAgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucywgaW52ZXN0aW5nIGluIHNlbGYtc2VydmUgaW5mb3JtYXRpb24gYWNjZXNzLCBzdXBwb3J0aW5nIGVhY2ggb3RoZXIgYWNyb3NzIHRlYW1zLCBwdXR0aW5nIHVwIGVzY2FsYXRpb24gcGF0aHMgZm9yIHBlb3BsZSB0byBnZXQgaGVscCB3aGVuIHRoZXkgbmVlZCBpdCwgb3IgaGVscGluZyBwZW9wbGUgc3VwcG9ydCBlYWNoIG90aGVyIHRocm91Z2gga25vd2xlZGdlLXNoYXJpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtDb250aW51b3VzbHkgaW1wcm92ZS4mbHQ7L3N0cm9uZyZndDsgV2UgY2FuIHVzZSByZXRyb3NwZWN0aXZlcyB0byBkaXNjdXNzIGFuZCBpbXByb3ZlIGhvdyB3ZSB3b3JrIHRvZ2V0aGVyLiBCbGFtZWxlc3MgcG9zdG1vcnRlbXMgYXJlIGFsc28gYSBncmVhdCB0b29sIHRvIGhlbHAgdW5kZXJzdGFuZCBwcm9ibGVtcyBhbmQgZHJpdmUgdG93YXJkcyBzb2x1dGlvbnMuIENvZGUgcmV2aWV3cywgbWVudG9yaW5nLCBvciBrbm93bGVkZ2Ugc2hhcmluZyBjYW4gaGVscCB0ZWFtIG1lbWJlcnMgbGVhcm4gZnJvbSBlYWNoIG90aGVyLiBUaGUgd2F5IHdlIHRhbGsgYWJvdXQgbGVhcm5pbmcgbWF0dGVycyDigJMgZXNwZWNpYWxseSB0aGUgd2F5IHdlIGRpc2N1c3MgbWlzdGFrZXMuIFRoZXNlIGRlY2lzaW9ucyB3aWxsIGZ1bmRhbWVudGFsbHkgc2hhcGUgdGhlIGN1bHR1cmUgb2Ygb3VyIHRlYW1zLCBhbmQgZGV0ZXJtaW5lIHdoZXRoZXIgcGVvcGxlIGZlZWwgc2FmZSBvciB0aHJlYXRlbmVkIGluIHRoZWlyIGNvcmUgbmVlZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtEcml2ZSB0b3dhcmQgYWxpZ25tZW50LiZsdDsvc3Ryb25nJmd0OyBDb21tdW5pY2F0ZSBzdHJhdGVneSwgZGlyZWN0aW9uLCBhbmQgcmVsZXZhbnQgdGFjdGljYWwgZGV0YWlscyB0byBvdXIgdGVhbXMg4oCTIGFuZCByZW1lbWJlciBpdOKAmXMgYWxtb3N0IGltcG9zc2libGUgdG8gb3Zlci1jb21tdW5pY2F0ZSB0aGVzZSBkZXRhaWxzLiBBbHdheXMgcmVwZWF0IHdoYXTigJlzIGltcG9ydGFudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBlbmdpbmVlcmluZyBtYW5hZ2Vycywgd2UgYXJlIGxpa2UgbW9ydGFyOiBXZSBjb25uZWN0IHN0cnVjdHVyZXMsIHRlYW1zLCBhbmQgcGVvcGxlLiBXZSBob2xkIHRoZW0gdG9nZXRoZXIsIGJ1dCBhbHNvIGlkZW50aWZ5IGFuZCBmaWxsIGdhcHMgYXMgbmVlZGVkLiBIYW5kbGluZyBhbWJpZ3VpdHkgaXMgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgZGlmZmljdWx0IGFzcGVjdHMgb2YgZW5naW5lZXJpbmcgbWFuYWdlbWVudC4uIEZvciBhIGxvdCBvZiB3b3JrIGluIG91ciBmaWVsZCwgdGhlcmUgYXJlIG5vIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLCBsZXQgYWxvbmUgcmVzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T3VyIHdvcmsgaXNu4oCZdCBzbyBtdWNoIGFib3V0IHVzOyBpdOKAmXMgYWJvdXQgdGhlIHBlb3BsZSwgdGVhbXMsIGFuZCBvcmdhbml6YXRpb25zIHdlIHN1cHBvcnQuIFdlIGJ1aWxkIHN0cnVjdHVyZXMgdG8gaGVscCBvdGhlcnMgc2hpbmUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1N1cHBvcnRpbmcgb3JnYW5pemF0aW9uYWwgY2hhbmdlJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7TGFzdGx5LCBjcmVhdGluZyBlbnZpcm9ubWVudHMgaW4gd2hpY2ggZW5naW5lZXJzIGNhbiB0aHJpdmUgaXMgYWJvdXQgc3VwcG9ydGluZyBvdXIgb3JnYW5pemF0aW9uLiBXZSBuZWVkIHRvIHVzZSBvdXIgcG93ZXIgYXMgbWFuYWdlcnMgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLCBubyBtYXR0ZXIgdGhlIHNpemUgb2Ygb3VyIGJ1c2luZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtBZHZvY2F0ZSBmb3IgY2hhbmdlLiZsdDsvc3Ryb25nJmd0OyBUbyBiZSBlZmZlY3RpdmUgYXMgbWFuYWdlcnMsIHdlIG5lZWQgdG8gcHVzaCBmb3Igb3JnYW5pemF0aW9uYWwgY2hhbmdlIHRvIGltcHJvdmUgdGhlIGxhcmdlciBzdHJ1Y3R1cmVzIGFyb3VuZCB1cy4gRm9yIGV4YW1wbGUsIHdlIG1heSBuZWVkIHRvIGFkdm9jYXRlIGZvciBtb3JlIGNsYXJpdHkgYXJvdW5kIGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMsIGhhdmUgY29udmVyc2F0aW9ucyBhYm91dCB3aGF0IGVuZ2luZWVyaW5nIG1hbmFnZW1lbnQgc2hvdWxkIGJlIGxpa2UgaW4gb3VyIGNvbXBhbnksIGFuZCBkZXRlcm1pbmUgcmVxdWlyZW1lbnRzIGZvciBoaXJpbmcgZW5naW5lZXJpbmcgbWFuYWdlcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtNYW5hZ2UgdXAuJmx0Oy9zdHJvbmcmZ3Q7IE1hbmFnaW5nIG91ciBvd24gbWFuYWdlcnMgaXMgYSB1c2VmdWwgYnV0IGRpZmZpY3VsdCBza2lsbC4gRHJpdmluZyBvcmdhbml6YXRpb25hbCBjaGFuZ2UgYWxzbyBtZWFucyBtYWtpbmcgc3VyZSB0aGF0IG91ciBlbmdpbmVlcnPigJkgY29uY2VybnMgYXJlIGhlYXJkIGF0IHRoZSBoaWdoZXN0IGxldmVscywgYW5kIHRoYXQgd2UgdXNlIG91ciBwb3dlciB0byBtYWtlIHN1cmUgZW5naW5lZXJzIGhhdmUgYSB2b2ljZSBpbiB0aGUgcmVzdCBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgZnJhbWV3b3JrcyBhbmQgc3RhbmRhcmRzLiZsdDsvc3Ryb25nJmd0OyBXaGlsZSBpdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIG1ha2Ugcm9vbSBmb3IgaW5kaXZpZHVhbCBuZWVkcywgc3RydWN0dXJlcyBhbmQgZnJhbWV3b3JrcyBmb3IgbWFuYWdlcnMgaGVscCB1cyBob2xkIGVhY2ggb3RoZXIgYWNjb3VudGFibGUuIFRoZXkgYWxzbyAgaGVscCBsZXZlbCB0aGUgcGxheWluZyBmaWVsZCBhbmQgYnVpbGQgaW4gZXF1YWxpdHkgZm9yIHRoZSBwZW9wbGUgb24gb3VyIHRlYW1zLiBPbiBteSBjdXJyZW50IHRlYW0sIGV2ZXJ5IHF1YXJ0ZXIgd2UgcGljayBzb21lIGhpZ2gtcHJpb3JpdHkgcHJvamVjdHMgIHRvIGltcHJvdmUgaG93IHdlIHdvcmsgYXMgYW4gb3JnYW5pemF0aW9uLiBNb3N0IHJlY2VudGx5LCB3ZeKAmXZlIHdvcmtlZCBvbiBvdXIgaGlyaW5nIHByb2Nlc3MgYW5kIGluY2lkZW50IHJlbWVkaWF0aW9uOyBsYXN0IHllYXIsIHdlIGRldmVsb3BlZCBhbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvd2h5LXdlLXJlLWRlc2lnbmVkLW91ci1lbmdpbmVlcmluZy1jYXJlZXItcGF0aHMtYXQtY2lyY2xlY2kvJnF1b3Q7Jmd0O2ludGVybmFsIGNhcmVlciBncm93dGggZnJhbWV3b3JrIGZvciBlbmdpbmVlcnMmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtHcm93aW5nIGFzIGEgbGVhZGVyJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7QmVpbmcgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgaXNu4oCZdCBhbHdheXMgYSBzdHJhaWdodGZvcndhcmQgcGF0aDsgYSBsb3QgZGVwZW5kcyBvbiB3aGVyZSB3ZSBhcmUgYXQgaW4gb3VyIGNhcmVlcnMgYW5kIHdoZXJlIHdlIGFyZSBsb29raW5nIHRvIGdvLCBhcyB3ZWxsIGFzIHRoZSBncm93dGggc3RhZ2UsIHNpemUsIGFuZCBuZWVkcyBvZiBvdXIgb3JnYW5pemF0aW9ucy4gSW4gb3VyIGRhaWx5IHdvcmssIHdlIGhvbGQgdmFzdCBhbW91bnRzIG9mIHVuY2VydGFpbnR5IHdoaWxlIGFsc28gdHJ5aW5nIHRvIG1ha2UgcHJvZ3Jlc3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QW4gb3ZlcmFyY2hpbmcgdGhlbWUgaW4gbXkgd29yayBpbiBlbmdpbmVlcmluZyBtYW5hZ2VtZW50ICBoYXMgYmVlbiBncm93dGggYW5kIGltcHJvdmVtZW50LiBXZSByYXJlbHkgZGVhbCB3aXRoIGdyZWVuZmllbGQgcHJvamVjdHMgb3IgYXJlIGFibGUgdG8gYnVpbGQgYSB0ZWFtIG9yIGRlcGFydG1lbnQgZnJvbSBzY3JhdGNoLiBFdmVuIHdoZW4gd2UgZG8sIHdlIGJ1aWxkIG9uIGV4aXN0aW5nIHN0cnVjdHVyZXMgaW4gb3VyIG9yZ2FuaXphdGlvbi4gSSBiZWxpZXZlIG91ciBzdXBwb3J0aW5nIHJvbGUgbGFyZ2VseSBtZWFucyBoZWxwaW5nIGVuZ2luZWVycyBncm93LCBzdXBwb3J0aW5nIHRlYW1zIGF0IGNvbnRpbnVvdXNseSBsZWFybmluZywgYW5kIGhlbHBpbmcgb3JnYW5pemF0aW9ucyBiZWNvbWUgYmV0dGVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVyaW5nIG1hbmFnZXJzLCB3ZSBmcmVxdWVudGx5IGZhY2UgcXVlc3Rpb25zIHRoYXQgZG9u4oCZdCBjbGVhciByaWdodCBvciB3cm9uZyBhbnN3ZXJzLiBNYW55IHllYXJzIGFnbywgbXkgbGVhZGVyc2hpcCBjb2FjaCBlbmNvdXJhZ2VkIG1lIHRvIHVzZSB0aG9zZSBraW5kcyBvZiB1bmNlcnRhaW4gc2l0dWF0aW9ucyB0byBhc2sgbXlzZWxmLCDigJxXaGF0IGtpbmQgb2YgbGVhZGVyIGRvIEkgd2FudCB0byBiZT/igJ0mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJIHdhbnQgdG8gbGVhdmUgdGhlIGxhc3QgY2FsbCB0byBncm93dGggYW5kIGltcHJvdmVtZW50IHdpdGggeW91IChhbmQgbWUpOiBObyBtYXR0ZXIgd2hhdCB5b3VyIHJvbGUgb3IgY29tcGFueSBpcyBsaWtlLCB3b3JrIG9uIHNoYXBpbmcgeW91ciBhcHByb2FjaCB0byBlbmdpbmVlcmluZyBtYW5hZ2VtZW50LiBHZXQgdG8ga25vdyB0aGUgcGVvcGxlIHRoYXQgeW91IHdvcmsgd2l0aCwgYW5kIHVzZSBmZWVkYmFjayB0byBoZWxwIHRoZW0gY291cnNlLWNvcnJlY3QuIEJ1aWxkIHRlYW1zIHRoYXQgYXJlIHBzeWNob2xvZ2ljYWxseSBzYWZlIHBsYWNlcywgd2hlcmUgcGVvcGxlIGZpbmQgbWVhbmluZyBpbiBhIHNoYXJlZCBwdXJwb3NlLiBBbmQgdXNlIHlvdXIgcG93ZXIgYW5kIHByaXZpbGVnZSB0byBkcml2ZSBjaGFuZ2UgaW4geW91ciBvcmdhbml6YXRpb24uIE1ha2UgcGVvcGxlIHRoZSBjZW50ZXIgYW5kIGZvY3VzIG9mIHlvdXIgd29yaywgYW5kIGJ1aWxkIG9uIHRoYXQgZm91bmRhdGlvbiB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhleSBjYW4gdGhyaXZlLiAgQWx3YXlzIHB1c2ggdG8gY29udGludW91c2x5IGltcHJvdmUuIExlYWQgd2l0aCBodW1ibGVuZXNzLCBlbXBhdGh5LCBhbmQgbG90cyBvZiBjdXJpb3NpdHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2hhdCBraW5kIG9mIGxlYWRlciBkbyB5b3Ugd2FudCB0byBiZT8mbHQ7L3AmZ3Q7CgombHQ7aHIgLyZndDsKJmx0O3AmZ3Q7SWYgeW914oCZcmUgY3VyaW91cyBhYm91dCBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IGF0IENpcmNsZUNJIGFuZCB3b3JraW5nIHdpdGggdXM6IGpvaW4gdXMhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9ib2FyZHMuZ3JlZW5ob3VzZS5pby9jaXJjbGVjaSZxdW90OyZndDtXZeKAmXJlIGhpcmluZyBlbmdpbmVlcmluZyBtYW5hZ2VycyZsdDsvYSZndDsuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5CdWlsZGluZyBhbmQgZGVwbG95aW5nIEZsdXR0ZXIgYXBwcyB3aXRoIEZhc3RsYW5lPC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RlcGxveS1mbHV0dGVyLWFuZHJvaWQvPC9saW5rPgogICAgICAgIDxwdWJEYXRlPldlZCwgMjkgQXByIDIwMjAgMTA6MDA6MDAgLTA3MDA8L3B1YkRhdGU+CiAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9InRydWUiPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZGVwbG95LWZsdXR0ZXItYW5kcm9pZC88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5HYWJyaWVsIFNpbW1lcjwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvJnF1b3Q7Jmd0O0ZsdXR0ZXImbHQ7L2EmZ3Q7IGlzIGEgdG9vbGtpdCBwcm92aWRlZCBieSBHb29nbGUgZm9yIGJ1aWxkaW5nIGNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9ucywgaW5jbHVkaW5nIEFuZHJvaWQsIGlPUywgYW5kIHdlYiBhcHBzLiBBcyBtb3JlIGFwcHMgYXJlIHdyaXR0ZW4gdXNpbmcgaXQgYW5kIERhcnQgKHRoZSB1bmRlcmx5aW5nIGxhbmd1YWdlKSwgaXTigJlzIGJlY29taW5nIG1vcmUgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyBkZXZlbG9wZXJzIGNhbiBwYWNrYWdlIGFuZCBkZWxpdmVyIHRoZWlyIGNvZGUgdG8gdGhlaXIgdXNlcnMuIExldmVyYWdpbmcgQ2lyY2xlQ0kgYW5kIEZhc3RsYW5lLCB0aGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcHJvY2VzcyB0aGF0IGNhbiBiZSBhdXRvbWF0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbGluZyBGbHV0dGVyIGFuZCBjcmVhdGluZyB5b3VyIGZpcnN0IGFwcCBjYW4gYmUgZG9uZSBieSBmb2xsb3dpbmcgdGhlc2UgZ3VpZGVzOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvZG9jcy9nZXQtc3RhcnRlZC9pbnN0YWxsJnF1b3Q7Jmd0O0luc3RhbGwmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2ZsdXR0ZXIuZGV2L2RvY3MvZ2V0LXN0YXJ0ZWQvY29kZWxhYiZxdW90OyZndDtXcml0ZSB5b3VyIGZpcnN0IGFwcCZsdDsvYSZndDsuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBkZWZhdWx0IOKAnGhlbGxvIHdvcmxk4oCdIGFwcCB3aWxsIHN1ZmZpY2UuIFdlIHdvbuKAmXQgYmUgZGVhbGluZyBtdWNoIHdpdGggdGhlIGFwcGxpY2F0aW9uIGl0c2VsZi4gUHVzaCBpdCB0byBhIHJlcG9zaXRvcnkgb24gR2l0SHViLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Vuc3VyZSB0aGF0IHlvdSBhcmUgc2V0IHVwIHRvIHB1Ymxpc2ggYXBwcyB1c2luZyBHb29nbGUgUGxheSBvciB0aGUgQXBwbGUgQXBwIFN0b3JlIC0gc3RlcHMgZm9yIGVhY2ggd2lsbCB2YXJ5LCBzbyBiZSBzdXJlIHRvIGZvbGxvdyB0aGUgc3RlcHMgb3V0bGluZWQgZm9yIHRoZSByZXNwZWN0aXZlIHByb3ZpZGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBbmRyb2lkJmx0Oy9oMiZndDsKCiZsdDtwJmd0O1doZW4gcHVibGlzaGluZyBBbmRyb2lkIGFwcHMsIHRoZXJlIGFyZSBhIGZldyByZXF1aXJlbWVudHMgdG8gc2F0aXNmeSBiZWZvcmUgaW1wbGVtZW50aW5nIEZhc3RsYW5lLiBBbiDigJx1cGxvYWQga2V54oCdIGlzIHJlcXVpcmVkIHNvIHRoYXQgR29vZ2xlIGNhbiB2ZXJpZnkgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUgYXBwIGJlZm9yZSBhY2NlcHRpbmcgaXQuIFN0ZXBzIGZvciBzZXR0aW5nIHRoaXMgdXAgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9mbHV0dGVyLmRldi9kb2NzL2RlcGxveW1lbnQvYW5kcm9pZCZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oy4gSXTigJlzIHJlY29tbWVuZGVkIHRvIHVzZSBBcHBCdW5kbGVzIHdoZW4gYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBhcyBpdCBhbGxvd3MgR29vZ2xlIHRvIGJ1aWxkIGluZGl2aWR1YWwgQVBLcyBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyB3aGlsZSBrZWVwaW5nIGZpbGVzaXplIGRvd24uIFRha2Ugbm90ZSBvZiB3aGVyZSB5b3Ugc2F2ZSB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5qa3MmbHQ7L2NvZGUmZ3Q7IGZpbGUuIFdoaWxlIGl0IGNhbiBsaXZlIGluIHlvdXIgaG9tZSBkaXJlY3RvcnksIGhhdmluZyBpdCBzYXZlZCB0byBhIGdpdC1pZ25vcmVkIGRpcmVjdG9yeSBpbiB5b3VyIHByb2plY3Qgd2lsbCBjb21lIGluIGhhbmR5IHdoZW4gY29uZmlndXJpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1R3byB0aGluZ3MgZnJvbSB0aGlzIGd1aWRlIHdpbGwgbmVlZCB0byBiZSBhZGRlZCB0byBDaXJjbGVDSSBhcyAmbHQ7YSBocmVmPSZxdW90Oy9kb2NzLzIuMC9lbnYtdmFycy8mcXVvdDsmZ3Q7ZW52aW9ybm1lbnQgdmFyaWFibGVzJmx0Oy9hJmd0OzogdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlIGFuZCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7a2V5LmprcyZsdDsvY29kZSZndDsgZmlsZS4gVGhpcyB3aWxsIGFsbG93IHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBzaWduIHRoZSBhcHBsaWNhdGlvbi4gU2luY2Ugb25lIGZpbGUgcmVxdWlyZXMgbmV3bGluZXMgdG8gYmUgcHJlc2VudCwgYW5kIGFub3RoZXIgaXMgYSBiaW5hcnkgZmlsZSwgaXTigJlzIHJlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgYmFzZTY0LWVuY29kZWQgcHJpb3IgdG8gYWRkaW5nIHRoZW0gYXMgZW52aW9ybm1lbnQgdmFyaWFibGVzIHRvIHByZXNlcnZlIHRoZSBkYXRhLiZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBjYW4gZW5jb2RlIHRoZW0gYnkgcnVpbm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2F0ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7IHwgYmFzZTY0IC13IDAgIyAtdyAwIHdpbGwgZW5zdXJlIG5vIG5ld2xpbmVzIGFyZSBwcmVzZW50LgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBmaWxlcyBjYW4gdGhlbiBiZSByZS1hZGRlZCBkdXJpbmcgdGhlIGpvYiB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2VjaG8gJnF1b3Q7JEVOVl9WQVJJQUJMRV9OQU1FJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIGFsc28gd2FudCB0byBzZXQgdXAgYSBGYXN0bGFuZSBzZXJ2aWNlIGFjY291bnQgd2hpbGUgY3JlYXRpbmcgeW91ciBBbmRyb2lkIHNldHVwLiBZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5mYXN0bGFuZS50b29scy9nZXR0aW5nLXN0YXJ0ZWQvYW5kcm9pZC9zZXR1cC8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuIEJlIHN1cmUgdG8ga2VlcCB5b3VyIFNlcnZpY2UgQWNjb3VudCBKU09OIGZpbGUgaGFuZHkuIFdl4oCZbGwgYmUgYWRkaW5nIHRoYXQgdG8gdGhlIHBpcGVsaW5lIHNob3J0bHkuIEFsc28gbm90ZSB0aGF0IGNvbW1hbmRzIHNob3VsZCBiZSBydW4gZnJvbSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZCZsdDsvY29kZSZndDsgZGlyZWN0b3J5IHVuZGVyIHlvdXIgRmx1dHRlciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IHJlcXVpcmVkIGJ5IEZhc3RsYW5lIGNhbiBiZSBkb25lIGJ5IGFkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IEpTT04gZmlsZSBjb250ZW50cyBhcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IGVudmlvcm5tZW50IHZhcmlhYmxlLiBUaGlzIGlzIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1NVUFBMWV9KU09OX0tFWSZsdDsvY29kZSZndDsgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgYSBmaWxlIHBhdGggdG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0Zhc3RsYW5lJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05vdyB0aGF0IG91ciBlbnZpb3JubWVudCB2YXJpYWJsZXMgYXJlIGluIHBsYWNlIGFuZCB3ZSBjYW4gYnVpbGQgYSBzaWduZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LmFhYiZsdDsvY29kZSZndDsgZmlsZSB1c2luZyBGbHV0dGVyLCBpdOKAmXMgdGltZSB0byB0ZWxsIEZhc3RsYW5lIGhvdyB0byBkbyB0aGlzIGZvciB1cy4gV2XigJlsbCBzdGFydCB3aXRoIEFuZHJvaWQuIE9wZW5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZC9mYXN0bGFuZS9GYXN0ZmlsZSZsdDsvY29kZSZndDsgd2lsbCByZXZlYWwgc29tZSBkZWZhdWx0cyBmb3IgYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBidXQgdGhleSB3b27igJl0IHdvcmsgZm9yIG91ciB1c2UgY2FzZS4gV2XigJlyZSBidWlsZGluZyB3aXRoIEZsdXR0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rmlyc3QsIGxldOKAmXMgZGVmaW5lIGEgbmV3IOKAnGxhbmXigJ0uIFRoaXMgaXMgYSBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgRmFzdGxhbmUgd2lsbCBleGVjdXRlIHdoZW4gY2FsbGVkLiBGb3Igbm93LCB3ZeKAmWxsIGJlIHB1c2hpbmcgb3VyIGFwcCB0byB0aGUg4oCcYmV0YeKAnSBjaGFubmVsLCBub3QgdG8gcHJvZHVjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwoKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgaXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIGxhbmUuIE5leHQsIHdl4oCZbGwgd2FudCB0byBncmFiIGEgYnVpbGQgbnVtYmVyIHdoaWNoIGlzIGFuIGluY3JlbWVudGluZyBudW1iZXIgdXNlZCBhcyBhIHJlZmVyZW5jZSBmb3IgdGhlIHZlcnNpb24gb2YgdGhlIGFwcCAod2hpY2ggZGlmZmVycyBmcm9tIHRoZSB1c2VyLWZhY2luZyBzZW12ZXIpLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHRvIHRoZSBsYW5lOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ICBidWlsZF9udW1iZXIgPSBudW1iZXJfb2ZfY29tbWl0cygpCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgZW5zdXJlcyB0aGF0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZF9udW1iZXImbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0aGF0IGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBHaXQgcmVwb3NpdG9yeS4gVGhpcyBjYW4gYWxzbyBiZSBtYW51YWxseSBpbmNyZW1lbnRlZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVic3BlYy55YW1sJmx0Oy9jb2RlJmd0OyBmaWxlIHRoYXQgRmx1dHRlciB1c2VzIHRvIGJ1aWxkIHRoZSBwYWNrYWdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdl4oCZbGwgZG8gdGhlIGJ1aWxkaW5nLiBXZSBuZWVkIHRvIGdvIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5LCBydW4gYSBmZXcgc2hlbGwgY29tbWFuZHMgdG8gZmV0Y2ggb3VyIHBhY2thZ2VzLCBjbGVhbiB0aGUgcHJldmlvdXMgYnVpbGQgKGlmIGF2YWlsYWJsZSksIHRoZW4gYnVpbGQgdGhlIGFwcGJ1bmRsZSB3aXRoIG91ciBidWlsZCBudW1iZXIuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIERpci5jaGRpciAmcXVvdDsuLi8uLiZxdW90OyBkbwogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7cGFja2FnZXMmcXVvdDssICZxdW90O2dldCZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2NsZWFuJnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7YnVpbGQmcXVvdDssICZxdW90O2FwcGJ1bmRsZSZxdW90OywgJnF1b3Q7LS1idWlsZC1udW1iZXI9I3tidWlsZF9udW1iZXJ9JnF1b3Q7KQogIGVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtGaW5hbGx5LCB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYXBwIHN0b3JlIG9uIHRoZSBiZXRhIGNoYW5uZWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIHVwbG9hZF90b19wbGF5X3N0b3JlKHRyYWNrOiAnYmV0YScsIGFhYjogJy4uL2J1aWxkL2FwcC9vdXRwdXRzL2J1bmRsZS9yZWxlYXNlL2FwcC5hYWInKQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGxhbmUgd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwogIGJ1aWxkX251bWJlciA9IG51bWJlcl9vZl9jb21taXRzKCkKICBEaXIuY2hkaXIgJnF1b3Q7Li4vLi4mcXVvdDsgZG8KICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O3BhY2thZ2VzJnF1b3Q7LCAmcXVvdDtnZXQmcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtjbGVhbiZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2J1aWxkJnF1b3Q7LCAmcXVvdDthcHBidW5kbGUmcXVvdDssICZxdW90Oy0tYnVpbGQtbnVtYmVyPSN7YnVpbGRfbnVtYmVyfSZxdW90OykKICBlbmQKICB1cGxvYWRfdG9fcGxheV9zdG9yZSh0cmFjazogJ2JldGEnLCBhYWI6ICcuLi9idWlsZC9hcHAvb3V0cHV0cy9idW5kbGUvcmVsZWFzZS9hcHAuYWFiJykKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dvIGFoZWFkIGFuZCBzYXZlIHRoZSBmaWxlLCBhbmQgdGhlbiBydW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZmFzdGxhbmUgYmV0YSZsdDsvY29kZSZndDsuIEl0IHdpbGwgcnVuIHRocm91Z2ggdGhlIHN0ZXBzLCBidWlsZGluZyB0aGUgYXBwIGFuZCBwdXNoaW5nIHRoZSBhcHBsaWNhdGlvbiBmb3IgeW91LiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgd2XigJlsbCBkbyB0aGUgc2FtZSBmb3IgaU9TLCBidXQgcmVwbGFjaW5nIHNvbWUgb2YgdGhlIGNvbW1hbmRzIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBpT1MgY29tbWFuZHMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lvcy9GYXN0bGFuZSZsdDsvY29kZSZndDsgZGlyZWN0b3J5LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZGVzYyAmcXVvdDtEZXBsb3kgYSBuZXcgYnVpbGQgdG8gVGVzdGZsaWdodCZxdW90OwpsYW5lIDpiZXRhIGRvCiAgRGlyLmNoZGlyICZxdW90Oy4uLy4uJnF1b3Q7IGRvCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtwYWNrYWdlcyZxdW90OywgJnF1b3Q7Z2V0JnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7Y2xlYW4mcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtidWlsZCZxdW90OywgJnF1b3Q7aW9zJnF1b3Q7LCAmcXVvdDstLXJlbGVhc2UmcXVvdDssICZxdW90Oy0tbm8tY29kZXNpZ24mcXVvdDspCiAgZW5kCiAgYnVpbGRfaW9zX2FwcChzY2hlbWU6ICZxdW90O015QXBwJnF1b3Q7KQogIHVwbG9hZF90b190ZXN0ZmxpZ2h0CmVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhcHAgaXMgYnVpbHQgdHdpY2UuIFRoZSBmaXJzdCBidWlsZCBidWlsZHMgYWdhaW5zdCB0aGUgbGF0ZXN0IEZsdXR0ZXIgdG9vbGNoYWluLCB3aGlsZSB0aGUgc2Vjb25kIGJ1aWxkIGJ1aWxkcyB0aGUgYWN0dWFsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5pcGEmbHQ7L2NvZGUmZ3Q7IGZpbGUgdGhhdCB3aWxsIGJlIHVwbG9hZGVkIHRvIFRlc3RmbGlnaHQuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O05vdywgd2l0aCBDaXJjbGVDSSZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gcGxhY2UsIGl04oCZcyB0aW1lIHRvIGdldCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB3cml0dGVuIHNvIHRoYXQgYSBwdXNoIHRvIGEgYnJhbmNoIGlzIHRyYW5zbGF0ZWQgdG8gYSBuZXcgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7aU9TJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0ZvciBkZXBsb3lpbmcgd2l0aCBpT1MsIENpcmNsZUNJIGFscmVhZHkgaGFzIGRvY3MgdG8gY292ZXIgdGhpcyEgU3RlcHMgZm9yIHNldHRpbmcgdXAgRmFzdGxhbmUgZGVwbG95bWVudCB3aXRoIEZsdXR0ZXIgaXMgc2ltaWxhciB0byB0aGUgc3RlcHMgb3V0bGluZWQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvaW9zLWNvZGVzaWduaW5nLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OyBhbmQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZGVwbG95aW5nLWlvcy8jYXBwLXN0b3JlLWNvbm5lY3QmcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0FuZHJvaWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7V2hlbiBpdCBjb21lcyB0byB0aGUgRG9ja2VyIGltYWdlIHRvIHBpY2ssIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gRWl0aGVyIHlvdSBjYW4gYnVpbGQgYW5kIHB1c2ggdGhlIERvY2tlciBpbWFnZSB1c2VkIGJ5IHRoZSBGbHV0dGVyIHByb2plY3QgZm91bmQgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2Jsb2IvbWFzdGVyL2Rldi9jaS9kb2NrZXJfbGludXgvRG9ja2VyZmlsZSZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oywgb3IgeW91IGNhbiBwdWxsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dtZW1zdHIvZmx1dHRlci1mYXN0bGFuZTpsYXRlc3QmbHQ7L2NvZGUmZ3Q7LCB3aGljaCBpcyBidWlsdCBvbiB0b3Agb2YgYW4gZXhpc3RpbmcgRmx1dHRlciBEb2NrZXIgaW1hZ2UgYW5kIGluc3RhbGxzIEZhc3RsYW5lIGFsb25nc2lkZSBpdCwgYXZvaWRpbmcgYWRkaXRpb25hbCBvdmVyaGVhZCBvZiBpbnN0YWxsaW5nIGl0IGR1cmluZyBydW50aW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28gZW5zdXJlIHRoYXQgdGhlIGVudmlvcm5tZW50IHZhcmlhYmxlcyBtZW50aW9uZWQgZWFybGllciBhcmUgYWRkZWQgdG8geW91ciBwcm9qZWN0LiBOYW1lbHk6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQTEFZX1NUT1JFX1VQTE9BRF9LRVkmbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtrZXkuamtzJmx0Oy9jb2RlJmd0OyBmaWxlJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7UExBWV9TVE9SRV9VUExPQURfS0VZX0lORk8mbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCBmaWxlIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIGFuZCBvdGhlciBpbmZvIHJlZ2FyZGluZyB0aGUgdXBsb2FkIHNpZ25pbmcga2V5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IC0gWW91ciBHb29nbGUgU2VydmljZSBBY2NvdW50IEpTT04gc3RyaW5nIGZvciBhdXRoZW50aWNhdGlvbiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtJbiB5b3VyIHByb2plY3RzIHJvb3QsIGFkZCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLCBhbmQgaW4gdGhhdCBmb2xkZXIgYWRkIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y2lyY2xlY2kueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLiBBZGQgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSBuZXdseSBjcmVhdGVkIGZpbGU6Jmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7JwogIAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgc25pcHBldCBhYm92ZSBkZWZpbmVzIGFuIGV4ZWN1dG9yIHdlIGNhbiByZXVzZSBsYXRlciBpbiBvdXIgY29uZmlndXJhdGlvbiB0aGFua3MgdG8gdGhlIHVzZSBvZiByZXVzYWJsZSBjb25maWd1cmF0aW9uIGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYnMmbHQ7L2EmZ3Q7IGluIENpcmNsZUNJIDIuMS4gSXQgYWxzbyBpbmNsdWRlcyBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBlbnN1cmUgSmF2YSBkb2VzbuKAmXQgY29uc3VtZSBhbGwgb2Ygb3VyIG1lbW9yeSB3aGlsZSBidWlsZGluZyB0aGUgYXBwLiBOZXh0LCB3ZeKAmWxsIGRlZmluZSB0aGUgam9iIHdlIHdhbnQgdG8gcnVuIHRoZSBjb21tYW5kcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2pvYnM6CiAgYmV0YV9kZXBsb3k6CiAgICBleGVjdXRvcjogYW5kcm9pZC1mbHV0dGVyCiAgICBzdGVwczoKICAgICAgLSBjaGVja291dAogICAgICAtIHJ1bjogZWNobyAmcXVvdDskUExBWV9TVE9SRV9VUExPQURfS0VZJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGtleS5qa3MKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWV9JTkZPJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGFuZHJvaWQva2V5LnByb3BlcnRpZXMKICAgICAgLSBydW46IGNkIGFuZHJvaWQgJmFtcDthbXA7JmFtcDthbXA7IGZhc3RsYW5lIGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgd2XigJlsbCBkZWZpbmUgb3VyIHdvcmtmbG93IHdoaWNoIHdpbGwgb25seSBydW4gdGhlIGpvYiB3aGVuIHRoZSBuZXcgY29kZSBpcyBwdXNoZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2JldGEmbHQ7L2NvZGUmZ3Q7IGJyYW5jaC4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3dvcmtmbG93czoKICBkZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGJldGFfZGVwbG95OgogICAgICAgICAgZmlsdGVyczoKICAgICAgICAgICAgYnJhbmNoZXM6CiAgICAgICAgICAgICAgb25seTogYmV0YQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7Jwpqb2JzOgogIGJldGFfZGVwbG95OgogICAgZXhlY3V0b3I6IGFuZHJvaWQtZmx1dHRlcgogICAgc3RlcHM6CiAgICAgIC0gY2hlY2tvdXQKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWSZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBrZXkuamtzCiAgICAgIC0gcnVuOiBlY2hvICZxdW90OyRQTEFZX1NUT1JFX1VQTE9BRF9LRVlfSU5GTyZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBhbmRyb2lkL2tleS5wcm9wZXJ0aWVzCiAgICAgIC0gcnVuOiBjZCBhbmRyb2lkICZhbXA7YW1wOyZhbXA7YW1wOyBmYXN0bGFuZSBiZXRhCgp3b3JrZmxvd3M6CiAgZGVwbG95OgogICAgam9iczoKICAgICAgLSBiZXRhX2RlcGxveToKICAgICAgICAgIGZpbHRlcnM6CiAgICAgICAgICAgIGJyYW5jaGVzOgogICAgICAgICAgICAgIG9ubHk6IGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvcHJvamVjdHMvJnF1b3Q7Jmd0O1NldCB1cCB5b3VyIHByb2plY3Qgb24gQ2lyY2xlQ0kmbHQ7L2EmZ3Q7LiBPbmNlIHlvdSBjbGljayAmbHQ7c3Ryb25nJmd0O1NldCBVcCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7LCB5b3Ugd2lsbCBiZSBicm91Z2h0IHRvIGEgdGV4dCBlZGl0b3IgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBjb3B5IGluIHRoZSBjb25maWcgZnJvbSBhYm92ZS4gQ2xpY2sgJmx0O3N0cm9uZyZndDtTdGFydCBCdWlsZGluZyZsdDsvc3Ryb25nJmd0Oy4gTm93IGV2ZXJ5IG5ldyBjb21taXQgdG8gdGhlIGJldGEgYnJhbmNoIHdpbGwgcmVzdWx0IGluIGEgZGVwbG95LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIGFuIEV4cHJlc3MgR3JhcGhRTCBzZXJ2ZXIgdG8gSGVyb2t1PC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1hbi1leHByZXNzLWdyYXBocWwtc2VydmVyLXRvLWhlcm9rdS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VHVlLCAyOCBBcHIgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtYW4tZXhwcmVzcy1ncmFwaHFsLXNlcnZlci10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dyYXBocWwub3JnLyZxdW90OyZndDtHcmFwaFFMJmx0Oy9hJmd0OyBjb250aW51ZXMgdG8gZ3JvdyBpbiBwb3B1bGFyaXR5IHdpdGggZWFjaCBwYXNzaW5nIGRheSwgc2luY2UgaXRzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9lbmdpbmVlcmluZy5mYi5jb20vY29yZS1kYXRhL2dyYXBocWwtYS1kYXRhLXF1ZXJ5LWxhbmd1YWdlLyZxdW90OyZndDtwdWJsaWMgcmVsZWFzZSBieSBGYWNlYm9vayZsdDsvYSZndDsgaW4gMjAxNS4gVGhlIHRlY2hub2xvZ3kgZW5hYmxlcyBmcm9udCBlbmQgY2xpZW50cyB0byBxdWVyeSBleGFjdGx5IHdoYXQgdGhleSBuZWVkIGZyb20gdGhlIGJhY2tlbmQsIGFuZCBpcyBnYWluaW5nIHdpZGUgcmVjb2duaXRpb24gYW5kIGFkb3B0aW9uIGJ5IHJlcHV0YWJsZSBjb21wYW5pZXMgc3VjaCBhcyBQaW50ZXJlc3QsIENvdXJzZXJhLCBBaXJibmIsIGFuZCBGYWNlYm9vayBpdHNlbGYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBwb3N0LCB3ZSB3aWxsIGxlYXJuIGhvdyB0byBkZXBsb3kgYSBzaW1wbGUgR3JhcGhRTCBzZXJ2ZXIgd3JpdHRlbiBpbiBOb2RlLmpzIHRvIEhlcm9rdSB2aWEgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IChDSSkgcGlwZWxpbmUgdXNpbmcgQ2lyY2xlQ0kuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1ByZXJlcXVpc2l0ZXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUbyBmb2xsb3cgYWxvbmcgd2l0aCB0aGlzIHBvc3QsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhbHJlYWR5IHNldCB1cDombHQ7L3AmZ3Q7CiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL25vZGVqcy5vcmcvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlIC12Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsIHRvIHByaW50IG91dCB5b3VyIHZlcnNpb24gb2YgTm9kZS5qcyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdC1zY20uY29tLyZxdW90OyZndDtHaXQmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnaXQmbHQ7L2NvZGUmZ3Q7IG9uIHlvdXIgdGVybWluYWw7IHRoaXMgc2hvdWxkIHByaW50IG91dCBhdmFpbGFibGUgZ2l0IGNvbW1hbmRzKSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5oZXJva3UuY29tLyZxdW90OyZndDtIZXJva3UmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tLyZxdW90OyZndDtHaXRIdWImbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vc2lnbnVwLyZxdW90OyZndDtDaXJjbGVDSSZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDsjI1NjYWZmb2xkaW5nIHRoZSBHcmFwaFFMIHNlcnZlciBwcm9qZWN0ClRvIGJlZ2luIHNldHRpbmcgdXAgYSBHcmFwaFFMIHNlcnZlciwgY3JlYXRlIGEgbmV3IGZvbGRlciBmb3IgdGhlIHByb2plY3QgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtta2RpciBncmFwaHFsLXRlc3Qtc2VydmVyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7Tm93IGdvIGludG8gdGhlIHJvb3Qgb2YgdGhlIGZvbGRlciBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBzY2FmZm9sZCBhIG5ldyBOb2RlLmpzIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5pdCAteQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDtwJmd0O1RoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsteSZsdDsvY29kZSZndDsgb3B0aW9uYWwgZmxhZyBhbGxvd3MgeW91IHRvIHNraXAgY29uZmlybWluZyB0aGUgZGVmYXVsdCBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwYWNrYWdlLmpzb24mbHQ7L2NvZGUmZ3Q7IGZpbGUgYW5kIGp1c3QgYWNjZXB0cyB0aGVtLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGFyZSBnb2luZyB0byBjcmVhdGUgYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2V4cHJlc3Nqcy5jb20vJnF1b3Q7Jmd0O0V4cHJlc3NKUyZsdDsvYSZndDsgTm9kZS5qcyBhcHBsaWNhdGlvbiBhbmQgYnVpbGQgdGhlIEdyYXBoUUwgc2VydmVyLiBUbyBkbyB0aGlzLCB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIGZvbGxvd2luZyBwYWNrYWdlczombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2V4cHJlc3MmbHQ7L2NvZGUmZ3Q7OiB0byBjcmVhdGUgb3VyIEV4cHJlc3NKUyBOb2RlLmpzIGFwcGxpY2F0aW9uJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z3JhcGhxbCZsdDsvY29kZSZndDs6IHRoZSBHcmFwaFFMIG5wbSBwYWNrYWdlIGZvciBOb2RlLmpzJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OzogRXhwcmVzc0pTIG1pZGRsZXdhcmUgZm9yIEdyYXBoUUwmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbCB0aGVzZSBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBpbnN0YWxsIC0tc2F2ZSBleHByZXNzIGdyYXBocWwgZXhwcmVzcy1ncmFwaHFsCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIHRoZSByZXF1aXJlZCBwYWNrYWdlcyB0byBzdGFydCBwdXR0aW5nIHRvZ2V0aGVyIG91ciBHcmFwaFFMIHNlcnZlci4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgdGhlIEdyYXBoUUwgc2NoZW1hJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7Q3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bWtkaXIgc3JjCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1dpdGhpbiB0aGlzIGZvbGRlciwgY3JlYXRlIGEgbmV3IGZpbGUgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEuanMmbHQ7L2NvZGUmZ3Q7IGFuZCBwYXN0ZSBpbiB0aGUgY29kZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Owpjb25zdCB7IGJ1aWxkU2NoZW1hIH0gPSByZXF1aXJlKCZxdW90O2dyYXBocWwmcXVvdDspOwoKY29uc3Qgc2NoZW1hID0gYnVpbGRTY2hlbWEoYAogICAgdHlwZSBRdWVyeSB7CiAgICAgICAgdXNlcnM6IFtVc2VyIV0hLAogICAgICAgIHVzZXIoaWQ6IEludCEpOiBVc2VyIQogICAgfQoKICAgIHR5cGUgTXV0YXRpb24gewogICAgICAgIGVkaXRVc2VyKGlkOiBJbnQhLCBuYW1lOiBTdHJpbmchLCBlbWFpbDogU3RyaW5nISk6IFVzZXIhCiAgICB9CgogICAgdHlwZSBVc2VyIHsKICAgICAgICBpZDogSUQhCiAgICAgICAgbmFtZTogU3RyaW5nIQogICAgICAgIGVtYWlsOiBTdHJpbmcKICAgICAgICBwb3N0czogW1Bvc3QhXQogICAgfQoKICAgIHR5cGUgUG9zdCB7CiAgICAgICAgaWQ6IElEIQogICAgICAgIHRpdGxlOiBTdHJpbmchCiAgICAgICAgcHVibGlzaGVkOiBCb29sZWFuIQogICAgICAgIGxpbms6IFN0cmluZwogICAgfQpgKTsKCm1vZHVsZS5leHBvcnRzID0gc2NoZW1hOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBhYm92ZSBjb2RlLCB3ZSBoYXZlIGNyZWF0ZWQgZm91ciB0eXBlcywgY29uc2lzdGluZyBvZiB0d28gYnVpbHQtaW4gdHlwZXMgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7KSBhbmQgdHdvIGN1c3RvbSB0eXBlcyAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXNlciZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1Bvc3QmbHQ7L2NvZGUmZ3Q7KS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWdpbm5pbmcgd2l0aCB0aGUgY3VzdG9tIHR5cGVzLCB3ZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmc6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VyJmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHVzZXIgaW4gdGhlIGFwcGxpY2F0aW9uIHdpdGggaXRzIHJlc3BlY3RpdmUgZmllbGRzIGFuZCBhIHJlbGF0aW9uYWwgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cG9zdHMmbHQ7L2NvZGUmZ3Q7IGZpZWxkLCB3aGljaCByZXR1cm5zIGFuIGFycmF5IG9mIHBvc3RzIGNyZWF0ZWQgYnkgdGhlIHVzZXImbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQb3N0Jmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHB1YmxpY2F0aW9uIGNyZWF0ZWQgYnkgYSB1c2VyIGluIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGl0cyByZXNwZWN0aXZlIGZpZWxkcyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OzogaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyB0eXBlLCB3ZSBkZWZpbmVkIHR3byBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgcXVlcmllZCBmcm9tIG91ciBHcmFwaFFMIHNlcnZlciBhcyBmb2xsb3dzOgogICAgJmx0O3VsJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlcnMmbHQ7L2NvZGUmZ3Q7OiBhbiBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VycyZsdDsvY29kZSZndDsmbHQ7L2xpJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlciZsdDsvY29kZSZndDs6IGEgc2luZ2xlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1VzZXImbHQ7L2NvZGUmZ3Q7IHdpdGggdGhlIHNwZWNpZmllZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgaW4gdGhlIGFyZ3VtZW50cyBsaXN0Jmx0Oy9saSZndDsKICAgICZsdDsvdWwmZ3Q7CiAgJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7OiBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7IHR5cGUsIHdlIGRlZmluZWQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VkaXRVc2VyJmx0Oy9jb2RlJmd0OyBtdXRhdGlvbiwgd2hpY2gsIGdpdmVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgb2YgdGhlIHVzZXIsIGNhbiBiZSBjYWxsZWQgdG8gZWRpdCBhIHVzZXIgYW5kIHRoZW4gdXBkYXRlIHRoZSBpbmZvcm1hdGlvbiAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bmFtZSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VtYWlsJmx0Oy9jb2RlJmd0OykmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhlIHNjaGVtYSBpcyBjcmVhdGVkIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZFNjaGVtYSZsdDsvY29kZSZndDsgb2YgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dyYXBocWwmbHQ7L2NvZGUmZ3Q7IHBhY2thZ2UgYW5kIGV4cG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O01vY2tpbmcgZGF0YSZsdDsvaDImZ3Q7CiZsdDtwJmd0O0luIG9yZGVyIHRvIGhhdmUgcmVzdWx0cyBmb3Igb3VyIHF1ZXJpZXMsIHdlIG5lZWQgZGF0YS4gRm9yIHRoaXMgZXhlcmNpc2UsIHdlIHdpbGwgYmUgdXNpbmcgTW9uZ29EQi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIb3dldmVyLCBzaW5jZSB0aGUgZ29hbCBvZiB0aGlzIHBvc3QgaXMgdG8gZGVtb25zdHJhdGUgZGVwbG95aW5nIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyLCB3ZSB3b27igJl0IGJvdGhlciB3aXRoIHNldHRpbmcgdXAgYSBNb25nb0RCIHNlcnZlci4gSW5zdGVhZCwgd2Ugd2lsbCAgdXNlIGEgbW9ja2VkIHZlcnNpb24gdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O21vbmdvZGItbWVtb3J5LXNlcnZlciZsdDsvY29kZSZndDsuIFRoaXMgcGFja2FnZSBhbGxvd3MgdXMgdG8gY3JlYXRlIGFuZCB1c2UgYW4gaW4tbWVtb3J5IE1vbmdvREIgZGF0YWJhc2Ugc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHNldCB0aGlzIHVwLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhdCB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5zdGFsbCAtLXNhdmUgbW9uZ29kYiBtb25nb2RiLW1lbW9yeS1zZXJ2ZXIKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwombHQ7cCZndDtUaGlzIGluc3RhbGxhdGlvbiBtaWdodCB0YWtlIGEgd2hpbGUsIGRlcGVuZGluZyBvbiB5b3VyIGRvd25sb2FkIHNwZWVkLiBNb25nb0RCIHdhcyBhdCBsZWFzdCA2NiBtZWdhYnl0ZXMgaW4gc2l6ZSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhLmpzJmx0Oy9jb2RlJmd0OyBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3JjJmx0Oy9jb2RlJmd0OyBmb2xkZXIuIFRoaXMgZmlsZSB3aWxsIGV4cG9ydCBhbiBhcnJheSBvZiBoYXJkLWNvZGVkIHVzZXIgZGF0YS4gUGFzdGUgdGhlIGZvbGxvd2luZyBjb2RlIGJlbG93IGludG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBVc2VycyA9IFsKICB7CiAgICBpZDogMSwKICAgIG5hbWU6ICZxdW90O0Zpa2F5byBBZGVwb2p1JnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2ZpazRjaHJpc3RAeWFob28uY29tJnF1b3Q7LAogICAgcG9zdHM6IFsKICAgICAgewogICAgICAgIGlkOiAxLAogICAgICAgIHRpdGxlOiAmcXVvdDtDcmVhdGluZyBhbiBFbW9qaSBHYW1lIHdpdGggVnVlLCBBdXRoMCwgYW5kIEdvb2dsZSBWaXNpb24gQVBJJnF1b3Q7LAogICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSwKICAgICAgICBsaW5rOgogICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hdXRoMC5jb20vYmxvZy9jcmVhdGluZy1hbi1lbW9qaS1nYW1lLXdpdGgtdnVlLWF1dGgwLWFuZC1nb29nbGUtdmlzaW9uLWFwaS8mcXVvdDssCiAgICAgICAgYXV0aG9yOiAxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBpZDogMiwKICAgICAgICB0aXRsZTogJnF1b3Q7RWxlY3Ryb24gVHV0b3JpYWw6IEJ1aWxkaW5nIE1vZGVybiBEZXNrdG9wIEFwcHMgd2l0aCBWdWUuanMmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2F1dGgwLmNvbS9ibG9nL2VsZWN0cm9uLXR1dG9yaWFsLWJ1aWxkaW5nLW1vZGVybi1kZXNrdG9wLWFwcHMtd2l0aC12dWUtanMvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDMsCiAgICAgICAgdGl0bGU6ICZxdW90O1N0YXRlIE1hbmFnZW1lbnQgd2l0aCBWdWV4OiBhIFByYWN0aWNhbCBUdXRvcmlhbCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazoKICAgICAgICAgICZxdW90O2h0dHBzOi8vYXV0aDAuY29tL2Jsb2cvc3RhdGUtbWFuYWdlbWVudC13aXRoLXZ1ZXgtYS1wcmFjdGljYWwtdHV0b3JpYWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMiwKICAgIG5hbWU6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2pvaG5AY29tcGFueS5jb20mcXVvdDssCiAgICBwb3N0czogWwogICAgICB7CiAgICAgICAgaWQ6IDQsCiAgICAgICAgdGl0bGU6ICZxdW90O0J1aWxkIGEgQ0kgcG93ZXJlZCBSRVNUZnVsIEFQSSB3aXRoIExhcmF2ZWwmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2J1aWxkLWEtY2ktcG93ZXJlZC1yZXN0ZnVsLWFwaS13aXRoLWxhcmF2ZWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDUsCiAgICAgICAgdGl0bGU6ICZxdW90O0F1dG9tYXRlIHlvdXIgTnV4dC5qcyBhcHAgZGVwbG95bWVudCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazogJnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hdXRvbWF0ZS15b3VyLW51eHQtanMtYXBwLWRlcGxveW1lbnQvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMywKICAgIG5hbWU6ICZxdW90O0phbmUgUGF1bCZxdW90OywKICAgIGVtYWlsOiAmcXVvdDtqYW5lQGNvbXBhbnkuY29tJnF1b3Q7LAogICAgcG9zdHM6IFtdCiAgfQpdOwoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgVXNlcnMKfTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBjb2RlIGFib3ZlLCB3ZSBoYXZlIGFuIGFycmF5IG9mIHVzZXIgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgcG9zdHMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIHNlZWQgb3VyIGluLW1lbW9yeSBkYXRhYmFzZSBvbmNlIGl0IGlzIGluc3RhbnRpYXRlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCB0YXNrIGlzIHRvIHNldCB1cCBvdXIgbW9jayBNb25nb0RCIGRhdGFiYXNlIHNlcnZlci4gSW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhYmFzZS5qcyZsdDsvY29kZSZndDsgYW5kIGluc2VydCB0aGUgZm9sbG93aW5nIGNvZGUgaW50byB0aGUgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O01vbmdvTWVtb3J5U2VydmVyJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtyZXF1aXJlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtzMiZxdW90OyZndDsmcXVvdDttb25nb2RiLW1lbW9yeS1zZXJ2ZXImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O21vbmdvZGImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtjb25zdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bm8mcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90Oy4vZGF0YSZxdW90OyZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0Oyk7Jmx0Oy9zcGFuJmd0OwoKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7bGV0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDtudWxsJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXN5bmMmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7ZnVuY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25mJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoKSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDt7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7bmV3Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtNb25nb01lbW9yeVNlcnZlciZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygpOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtubyZxdW90OyZndDttb25nb0RCVVJMJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXdhaXQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7LiZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtnZXRDb25uZWN0aW9uU3RyaW5nJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3QmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvREJVUkwmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDssJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7CiAgICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDt1c2VOZXdVcmxQYXJzZXImbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs6Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDt0cnVlJmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSk7Jmx0Oy9zcGFuJmd0OwoKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtjMSZxdW90OyZndDsvL1NlZWQgRGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7CiAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtpZiZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7ISZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OykmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsKICAgICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RhdGFiYXNlJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RiJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbGxlY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O3VzZXJzJnF1b3Q7Jmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7aW5zZXJ0TWFueSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7VXNlcnMmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7CgogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7cmV0dXJuJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OzsmbHQ7L3NwYW4mZ3Q7CiZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vZHVsZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZXhwb3J0cyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtzdGFydERhdGFiYXNlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGNvZGUgYWJvdmUsIHdlIGV4cG9ydCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L2NvZGUmZ3Q7IGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBzdGFydHMgYSBuZXcgKG1vY2tlZCkgTW9uZ29EQiBzZXJ2ZXIgaW5zdGFuY2UgYW5kIGdldHMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuIEl0IHRoZW4gY3JlYXRlcyBhIG5ldyBNb25nb0RCIGNsaWVudCBjb25uZWN0aW9uIHVzaW5nIHRoZSBjb25uZWN0aW9uIHN0cmluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwgd2Ugc2VlZCBpdCB3aXRoIG91ciB1c2VyIGRhdGEgZXhwb3J0ZWQgZnJvbSBvdXIgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZGF0YS5qcyZsdDsvY29kZSZndDsgZmlsZS4gQSBjaGVjayBpcyBtYWRlIHRvIHNlZSBpZiB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIGlzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O251bGwmbHQ7L2NvZGUmZ3Q7IGJlZm9yZSBzZWVkaW5nIGl0IHdpdGggZGF0YSwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBmcm9tIGJlaW5nIGVudGVyZWQgaW50byB0aGUgZGF0YWJhc2UgZWFjaCB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdXAuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGRhdGFiYXNlIHJlZmVyZW5jZS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgb3VyIHJlc29sdmVycyZsdDsvaDImZ3Q7CiZsdDtwJmd0O05leHQgdXAsIHdlIG5lZWQgdG8gZGVmaW5lIHJlc29sdmVycyBmb3Igb3VyIEdyYXBoUUwgcXVlcmllcyBpbiBvcmRlciB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGRhdGEgZm9yIGVhY2ggcXVlcnkgb3BlcmF0aW9uLiBXZSB3aWxsIGRlZmluZSByZXNvbHZlcnMgZm9yIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt1c2VycyZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3VzZXImbHQ7L2NvZGUmZ3Q7IHF1ZXJpZXMgYW5kIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtlZGl0VXNlciZsdDsvY29kZSZndDsgbXV0YXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Jlc29sdmVycy5qcyZsdDsvY29kZSZndDsgYW5kIHBhc3RlIGluIHRoZSBmb2xsb3dpbmcgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IHJlc29sdmVycyA9IHsKICB1c2VyczogYXN5bmMgKF8sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIKICAgICAgLmNvbGxlY3Rpb24oJnF1b3Q7dXNlcnMmcXVvdDspCiAgICAgIC5maW5kKCkKICAgICAgLnRvQXJyYXkoKTsKICB9LAogIHVzZXI6IGFzeW5jICh7IGlkIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIuY29sbGVjdGlvbigmcXVvdDt1c2VycyZxdW90OykuZmluZE9uZSh7IGlkIH0pOwogIH0sCiAgLy9NdXRhdGlvbiByZXNvbHZlcnMKICBlZGl0VXNlcjogYXN5bmMgKHsgaWQsIG5hbWUsIGVtYWlsIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CgogICAgcmV0dXJuIGRiCiAgICAgIC5jb2xsZWN0aW9uKCZxdW90O3VzZXJzJnF1b3Q7KQogICAgICAuZmluZE9uZUFuZFVwZGF0ZSgKICAgICAgICB7IGlkIH0sCiAgICAgICAgeyAkc2V0OiB7IG5hbWUsIGVtYWlsIH0gfSwKICAgICAgICB7IHJldHVybk9yaWdpbmFsOiBmYWxzZSB9CiAgICAgICkKICAgICAgLnRoZW4ocmVzcCA9JmFtcDtndDsgcmVzcC52YWx1ZSk7CiAgfSAKfTsKCm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZXJzOwoKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgc2VlbiBhYm92ZSwgd2Ugbm93IGhhdmUgcmVzb2x2ZXJzIGZvciB0aGUgdGhyZWUgR3JhcGhRTCByZXF1ZXN0cyBhdmFpbGFibGUgb24gb3VyIHNlcnZlci4gVGhlc2UgcmVzb2x2ZXJzIGZldGNoIGFuZCB1cGRhdGUgZGF0YSB1c2luZyB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIHdlIGNyZWF0ZWQgZWFybGllciBieSByZWZlcmVuY2luZyBpdCBmcm9tIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb250ZXh0Jmx0Oy9jb2RlJmd0OyBvYmplY3Qgb2YgdGhlIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgcmVmZXJlbmNlIHdpbGwgYmUgYWRkZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbnRleHQmbHQ7L2NvZGUmZ3Q7IG9iamVjdCBvZiBvdXIgR3JhcGhRTCBzZXJ2ZXIgc2V0dXAgaW4gdGhlIG5leHQgc2VjdGlvbiB3aGVuIHdlIHB1dCBldmVyeXRoaW5nIHRvZ2V0aGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTZXR0aW5nIHVwIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O0l0IGlzIHRpbWUgdG8gcHV0IGV2ZXJ5IGNvbXBvbmVudCB3ZSBidWlsdCB0b2dldGhlciB0byBzZXQgdXAgb3VyIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlZm9yZSB3ZSBiZWdpbiwgd2UgbmVlZCB0byBpbnN0YWxsIG9uZSBtb3JlIHBhY2thZ2UuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIGNvbWVzIHdpdGggdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0dyYXBoaVFMJmx0Oy9jb2RlJmd0OyBhcHBsaWNhdGlvbiwgd2hpY2ggYWxsb3dzIHlvdSB0byBxdWVyeSB5b3VyIEdyYXBoUUwgZW5kcG9pbnQsIGJ1dCBsZXTigJlzIGFkZCBhIHRvb2wgdGhhdCBpcyBtb3JlIHJvYnVzdC4gV2Ugd2lsbCBpbnN0YWxsIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIHRvIGdpdmUgdXMgYSBmYW5jaWVyIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgb3VyIEdyYXBoUUwgZW5kcG9pbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSBmb2xsb3dpbmcgY29kZSB0byBpbnN0YWxsIHRoZSBwYWNrYWdlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGluc3RhbGwgLS1zYXZlIGdyYXBocWwtcGxheWdyb3VuZC1taWRkbGV3YXJlLWV4cHJlc3MKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7V2Ugd2lsbCB1c2UgdGhpcyBtaWRkbGV3YXJlIHRvIHNldCB1cCB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kIGZvciBxdWVyeWluZyBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0xldOKAmXMgc2V0IHVwIG91ciBzZXJ2ZXIgYnkgY3JlYXRpbmcgYSBmaWxlIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2luZGV4LmpzJmx0Oy9jb2RlJmd0OyBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBhbmQgcGxhY2luZyB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBleHByZXNzID0gcmVxdWlyZSgmcXVvdDtleHByZXNzJnF1b3Q7KTsKY29uc3QgZ3JhcGhxbEhUVFAgPSByZXF1aXJlKCZxdW90O2V4cHJlc3MtZ3JhcGhxbCZxdW90Oyk7CmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoJnF1b3Q7Li9zcmMvc2NoZW1hJnF1b3Q7KTsKY29uc3QgcmVzb2x2ZXJzID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9yZXNvbHZlcnMmcXVvdDspOwpjb25zdCBzdGFydERhdGFiYXNlID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9kYXRhYmFzZSZxdW90Oyk7CmNvbnN0IGV4cHJlc3NQbGF5Z3JvdW5kID0gcmVxdWlyZSgmcXVvdDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJnF1b3Q7KS5kZWZhdWx0OwoKLy8gQ3JlYXRlIGEgY29udGV4dCBmb3IgaG9sZGluZyBjb250ZXh0dWFsIGRhdGEgCmNvbnN0IGNvbnRleHQgPSBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IGRiID0gYXdhaXQgc3RhcnREYXRhYmFzZSgpOwoKICByZXR1cm4geyBkYiB9Owp9OwoKY29uc3QgYXBwID0gZXhwcmVzcygpOwoKYXBwLnVzZSgKICAmcXVvdDsvZ3JhcGhxbCZxdW90OywKICBncmFwaHFsSFRUUCh7CiAgICBzY2hlbWEsCiAgICByb290VmFsdWU6IHJlc29sdmVycywKICAgIGNvbnRleHQKICB9KQopOwoKLy9HcmFwaHFsIFBsYXlncm91bmQgcm91dGUKYXBwLmdldCgmcXVvdDsvcGxheWdyb3VuZCZxdW90OywgZXhwcmVzc1BsYXlncm91bmQoeyBlbmRwb2ludDogJnF1b3Q7L2dyYXBocWwmcXVvdDsgfSkpOwoKY29uc3QgcG9ydCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgJnF1b3Q7NDAwMCZxdW90OzsKCmFwcC5saXN0ZW4ocG9ydCk7Cgpjb25zb2xlLmxvZyhg8J+agCBTZXJ2ZXIgcmVhZHkgYXQgaHR0cDovL2xvY2FsaG9zdDo0MDAwL2dyYXBocWxgKTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBmaWxlIGFib3ZlLCB3ZSBzdGFydCBieSBpbXBvcnRpbmcgYWxsIG5lY2Vzc2FyeSBtb2R1bGVzLiBUaGVuLCB3ZSBjcmVhdGUgb3VyIEdyYXBoUUwgY29udGV4dCBhbmQgcmV0dXJuIGFuIG9iamVjdCBmcm9tIGl0IGNvbnRhaW5pbmcgdGhlIHJlZmVyZW5jZSB0byBvdXIgTW9uZ29EQiBpbnN0YW5jZS4gTmV4dCwgd2UgY3JlYXRlIG91ciBFeHByZXNzSlMgYXBwbGljYXRpb24gYW5kIHNldCB1cCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OyBtaWRkbGV3YXJlIHdpdGggR3JhcGhRTCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEmbHQ7L2NvZGUmZ3Q7LCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtyZXNvbHZlcnMmbHQ7L2NvZGUmZ3Q7LCBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29udGV4dCZsdDsvY29kZSZndDsuIFdlIHRoZW4gc2V0IHVwIHRoZSBHcmFwaFFMIFBsYXlncm91bmQgYXQgdGhlIHJvdXRlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBsb2FkIG91ciBHcmFwaFFMIGVuZHBvaW50LiBGaW5hbGx5LCB3ZSBzdGFydCBvdXIgRXhwcmVzc0pTIHNlcnZlciB0byBsaXN0ZW4gYXQgcG9ydCA0MDAwIGFuZCBwcmludCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1F1ZXJ5aW5nIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O05vdyB0aGF0IHdlIGhhdmUgb3VyIHNlcnZlciBzZXQgdXAsIGxldOKAmXMgdGFrZSBpdCBmb3IgYSBzcGluLiBGaXJzdCwgbGV04oCZcyBjcmVhdGUgYSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzdGFydCZsdDsvY29kZSZndDsgc2NyaXB0IGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3BhY2thZ2UuanNvbiZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHNjcmlwdCB0byB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2NyaXB0cyZsdDsvY29kZSZndDsgc2VjdGlvbiBvZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Li4uCgrigJxzY3JpcHRz4oCdIDogewoJLi4uLAoJ4oCcc3RhcnTigJ0gOiDigJxub2RlIGluZGV4Lmpz4oCdCn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25wbSBzdGFydCZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCB0aGUgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNlcnZlciBpcyB1cCBhbmQgcnVubmluZywgb3BlbiB1cCB5b3VyIGJyb3dzZXIgYW5kIHZpc2l0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMC9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBvcGVuIHVwIHRoZSBwbGF5Z3JvdW5kLiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDEucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgcGxheWdyb3VuZCBhdXRvbWF0aWNhbGx5IHBvaW50cyB0byBvdXIgR3JhcGhRTCBlbmRwb2ludC4gRnJvbSBoZXJlIHdlIGNhbiB3cml0ZSBxdWVyaWVzIGFnYWluc3Qgb3VyIGVuZHBvaW50IGFuZCBnZXQgdGhlIHJlc3VsdHMuIFBhc3RlIHRoZSBxdWVyeSBiZWxvdyBpbnRvIHRoZSBxdWVyeSBzZWN0aW9uIG9mIHRoZSBwbGF5Z3JvdW5kIGFuZCBoaXQgUGxheSB0byBydW4gaXQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt7CiAgdXNlcnMgewogICAgbmFtZQogICAgZW1haWwKICAgIHBvc3RzIHsKICAgICAgdGl0bGUKICAgICAgcHVibGlzaGVkCiAgICB9CiAgfQp9CgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtSdW5uaW5nIHRoZSBhYm92ZSBxdWVyeSB3aWxsIHByb2R1Y2UgdGhlIHJlc3VsdCBzaG93biBvbiB0aGUgc2NyZWVuIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsMi5wbmcmcXVvdDsgd2lkdGg9JnF1b3Q7ODc1JnF1b3Q7IC8mZ3Q7CiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIHNlZW4gYWJvdmUsIG91ciBHcmFwaFFMIHNlcnZlciBpcyB3b3JraW5nIGZpbmUgYW5kIHJldHVybmluZyB0aGUgZXhwZWN0ZWQgZGF0YS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRvIEhlcm9rdSB3aXRoIENpcmNsZUNJJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7T3VyIGZpbmFsIHRhc2sgaXMgdG8gZGVwbG95IG91ciBHcmFwaFFMIHNlcnZlciB0aHJvdWdoIGEgQ0kgcGlwZWxpbmUgd2l0aCBDaXJjbGVDSSBvbiB0aGUgSGVyb2t1IGhvc3RpbmcgcGxhdGZvcm0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2UgYXJlIGdvaW5nIHRvIHRha2UgdGhlIGZvbGxvd2luZyBzdGVwcyB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7UHVzaCB0aGUgcHJvamVjdCB0byBhIEdpdEh1YiByZXBvc2l0b3J5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgbmV3IEhlcm9rdSBhcHAgYW5kIGdldCB0aGUgSGVyb2t1IEFQSSBrZXkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgYSBuZXcgcHJvamVjdCB0byBvdXIgQ2lyY2xlQ0kgYWNjb3VudCBhbmQgY29ubmVjdCBpdCB0byB0aGUgR2l0SHViIHJlcG8mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgb3VyIEhlcm9rdSBhcHAgbmFtZSBhbmQgQVBJIGtleSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gb3VyIG5ldyBwcm9qZWN0Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7V3JpdGUgb3VyIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgZGVwbG95bWVudCB0byBIZXJva3UmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIHRoZSBjb25maWd1cmF0aW9uIHRvIG91ciBHaXRIdWIgcmVwbyB0byBkZXBsb3kgdG8gSGVyb2t1Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0xldOKAmXMgYmVnaW4uIEZpcnN0LCBwdXNoIHRoZSBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG8uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY3JlYXRlIGEgSGVyb2t1IGFwcGxpY2F0aW9uIGFzIHNob3duIGJlbG93LiBUaGUgbmFtZSB5b3UgZW50ZXIgaXMgdGhlIG5hbWUgeW91IHdpbGwgc2F2ZSBhcyB5b3VyIEhlcm9rdSBhcHAgbmFtZSBvbiBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWwzLnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7WW91IGNhbiBnZXQgeW91ciBIZXJva3UgQVBJIGtleSBieSBnb2luZyB0byAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgYW5kIHNjcm9sbGluZyBkb3duIHRvIHRoZSAmbHQ7c3Ryb25nJmd0O0FQSSBLZXkmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIHRvIGRlcGxveWluZyBvdXIgYXBwbGljYXRpb24gdG8gSGVyb2t1IGlzIHRvIGNvbm5lY3QgdGhlIGFwcGxpY2F0aW9uIG9uIG91ciBHaXRIdWIgcmVwb3NpdG9yeSB0byBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIZWFkIHRvIHlvdXIgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9kYXNoYm9hcmQmcXVvdDsmZ3Q7Q2lyY2xlQ0kgZGFzaGJvYXJkJmx0Oy9hJmd0OyBhbmQgYWRkIHRoZSBwcm9qZWN0IGluIHRoZSAmbHQ7c3Ryb25nJmd0O0FkZCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7IHNlY3Rpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsNC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCAoaW4gdGhpcyBjYXNlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NpbXBsZS1ncmFwaHFsLW5vZGUtc2VydmVyJmx0Oy9jb2RlJmd0OyksIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0IFVwIFByb2plY3QmbHQ7L3N0cm9uZyZndDsuIFRoaXMgd2lsbCBicmluZyB5b3UgdG8gYSBwYWdlIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDUucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IGJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIHByb2plY3QuIFRoaXMgd2lsbCBpbW1lZGlhdGVseSBnaXZlIHVzIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCBhIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIHByb2plY3QuIFRoaXMgaXMgdW5kZXJzdGFuZGFibGUsIGFzIHdlIGFyZSB5ZXQgdG8gaW5jbHVkZSBvdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlLiBXZSB3aWxsIGJlIGRvaW5nIHRoYXQgbGF0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIG5leHQgc3RlcCBpcyB0byBhZGQgb3VyIEhlcm9rdSBkZXRhaWxzIGFzICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wL2Vudi12YXJzLyZxdW90OyZndDtlbnZpcm9ubWVudCB2YXJpYWJsZXMmbHQ7L2EmZ3Q7IHRvIHRoZSBuZXdseSBzZXQgdXAgcHJvamVjdC4KSW4gb3JkZXIgdG8gcHVzaCBvdXIgcHJvamVjdCB0byBIZXJva3UgZnJvbSBDaXJjbGVDSSwgd2UgbmVlZCB0byBjb25maWd1cmUgYW4gYXV0aGVudGljYXRlZCBoYW5kc2hha2UgYmV0d2VlbiBDaXJjbGVDSSBhbmQgSGVyb2t1LiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcgdHdvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgc2V0dGluZ3MgZm9yIHlvdXIgQ2lyY2xlQ0kgcHJvamVjdC4gVGhlIHR3byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtIRVJPS1VfQVBQX05BTUUmbHQ7L2NvZGUmZ3Q7OiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIChpbiB0aGlzIGNhc2UgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2ltcGxlLWdyYXBocWwtbm9kZS1zZXJ2ZXImbHQ7L2NvZGUmZ3Q7KSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OzogWW91ciBIZXJva3UgYWNjb3VudCBBUEkga2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBvbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50Jmx0Oy9zdHJvbmcmZ3Q7IHRhYiBvZiB5b3VyIEhlcm9rdSBhY2NvdW50IHVuZGVyICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VG8gYWRkIHRoZXNlIGRldGFpbHMsIGhlYWQgb3ZlciB0byB5b3VyIENpcmNsZUNJIGRhc2hib2FyZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBmb3IgeW91ciBwcm9qZWN0LiBPbiB0aGUgc2lkZWJhciBtZW51IG9uIHRoZSBzZXR0aW5ncyBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O0Vudmlyb25tZW50IFZhcmlhYmxlcyZsdDsvc3Ryb25nJmd0OyB1bmRlciAmbHQ7c3Ryb25nJmd0O0J1aWxkIFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDYucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIHBhZ2UsIGNyZWF0ZSB0d28gdmFyaWFibGVzIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OyBhbmQgYWRkIHRoZSByZXNwZWN0aXZlIHZhbHVlcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZXNlIGluIHBsYWNlLCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBjYW4gdXNlIHRoZW0gdG8gbWFrZSBhdXRoZW50aWNhdGVkIGRlcGxveW1lbnRzIHRvIHRoZSBIZXJva3UgcGxhdGZvcm0uCk5vdywgbGV04oCZcyB3cml0ZSBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyIHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtDcmVhdGUgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsuY2lyY2xlY2kmbHQ7L2NvZGUmZ3Q7IGF0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCBhbmQgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgaXQuIEFkZCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uJmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpvcmJzOgogIGhlcm9rdTogY2lyY2xlY2kvaGVyb2t1QDAuMC4xMAp3b3JrZmxvd3M6CiAgaGVyb2t1X2RlcGxveToKICAgIGpvYnM6CiAgICAgIC0gaGVyb2t1L2RlcGxveS12aWEtZ2l0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7VGhlIGNvZGUgYWJvdmUgdXNlcyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7SGVyb2t1IG9yYiZsdDsvYSZndDsgdG8gcGVyZm9ybSBhIHNlYW1sZXNzIGRlcGxveW1lbnQgdG8gSGVyb2t1LiBBbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYiZsdDsvYSZndDsgaXMgYSByZXVzYWJsZSBwYWNrYWdlIG9mIGEgWUFNTCBjb25maWd1cmF0aW9uIHRoYXQgY29uZGVuc2VzIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoaXMgb25lIG1ha2VzIGl0IHZlcnkgZWFzeSB0byBkZXBsb3kgdG8gSGVyb2t1IHdpdGhvdXQgd3JpdGluZyBhIHNvcGhpc3RpY2F0ZWQgY29uZmlnIHlvdXJzZWxmLiZsdDsvcCZndDsKCiZsdDtwJmd0O1NhdmUgdGhpcyBmaWxlIGFuZCBwdXNoIHlvdXIgY2hhbmdlcyB0byB0aGUgR2l0SHViIHJlcG9zaXRvcnkuIFRoZW4gd2F0Y2ggeW91ciBDaXJjbGVDSSBkYXNoYm9hcmQgdHJpZ2dlciBhIGRlcGxveW1lbnQgYWZ0ZXIgdGhlIHN1Y2Nlc3NmdWwgcHVzaC4gWW91IHdpbGwgc2VlIGEgc3VjY2Vzc2Z1bCBkZXBsb3ltZW50IG9uIHlvdXIgZGFzaGJvYXJkIHNpbWlsYXIgdG8gdGhlIHNjcmVlbiBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWw3LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXdlc29tZSEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXTigJlzIG5vdyB2aXNpdCBvdXIgUGxheWdyb3VuZCBvbiB0aGUgbGl2ZSBhcHBsaWNhdGlvbiB0byBjb25maXJtIHRoYXQgb3VyIGRlcGxveW1lbnQgaXMgZmluZS4gVmlzaXQgdGhlIGxpbmsgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9ZT1VSX0hFUk9LVV9BUFBfTkFNRS5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7LiBGb3Igb3VyIGV4ZXJjaXNlLCB0aGlzIHdpbGwgYmUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9zaW1wbGUtZ3JhcGhxbC1ub2RlLXNlcnZlci5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7IGFzIHNlZW4gYmVsb3cuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsOC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SW4gdGhpcyBhcnRpY2xlLCB3ZSBoYXZlIGJlZW4gYWJsZSB0byBzdWNjZXNzZnVsbHkgcHV0IHRvZ2V0aGVyIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyIGFuZCBhdXRvbWF0ZSBpdHMgZGVwbG95bWVudCB1c2luZyBDaXJjbGVDSS4gR3JhcGhRTCBpcyBoZXJlIHRvIHN0YXkgYW5kIGlzIGV4cGVjdGVkIHRvIGdhaW4gbW9yZSBhZG9wdGlvbiwgc2luY2UgaXRzIG1hbnkgYmVuZWZpdHMgbWFrZSBpdCB3b3J0aHkgb2YgaW5jcmVhc2VkIHVzZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIYXBweSBjb2RpbmchJmx0Oy9wJmd0OwoKJmx0O2hyIC8mZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Eb2NrZXIgYW5kIENJL0NEIHR1dG9yaWFsOiBhIGRlZXAgZGl2ZSBpbnRvIGNvbnRhaW5lcnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZG9ja2VyLWFuZC1jaWNkLXR1dG9yaWFsLWEtZGVlcC1kaXZlLWludG8tY29udGFpbmVycy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+RnJpLCAyNCBBcHIgMjAyMCAxMjowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9kb2NrZXItYW5kLWNpY2QtdHV0b3JpYWwtYS1kZWVwLWRpdmUtaW50by1jb250YWluZXJzLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkFuZ2VsIFJpdmVyYTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtUaGlzIGlzIGEgZm9sbG93LXVwIHRvIGEgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7IHRoYXQgSSB3cm90ZSBhZnRlciBDaXJjbGVDSSAyLjAgd2FzIHJlbGVhc2VkLiBUaGlzIHJlbGVhc2UgaW1wbGVtZW50ZWQgYnVpbGQgc3VwcG9ydCB1c2luZyBEb2NrZXIgZXhlY3V0b3JzLiBBZnRlciB0aGUgcmVsZWFzZSwgd2UgcmVhbGl6ZWQgdGhhdCBvbmUgb2YgdGhlIGJpZ2dlc3QgYmFycmllcnMgdGhhdCBDaXJjbGVDSSB1c2VycyBlbmNvdW50ZXJlZCB3YXMgYSBsYWNrIG9mIGV4cGVyaWVuY2Ugd2l0aCBEb2NrZXIuIFRoaXMgd2FzIGNvbmZpcm1lZCB0aHJvdWdoIG15IGNvbnZlcnNhdGlvbnMgd2l0aCBudW1lcm91cyBkZXZlbG9wZXJzLCBpbiB0aGUgY29tbXVuaXR5IGFuZCBhdCBldmVudHMsIGFib3V0IHRoZWlyIHVzZSBvZiBjb250YWluZXIgdGVjaG5vbG9naWVzIGluIHRoZWlyICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmVzLiBUaGVzZSBjb252ZXJzYXRpb25zIGhhdmUgaGlnaGxpZ2h0ZWQgdGhhdCBtYW55IGRldmVsb3BlcnMgZG9u4oCZdCBoYXZlIGEgZnVsbCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byB1c2UgY29udGFpbmVyIHRlY2hub2xvZ2llcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgd2lsbCBleHBhbmQgb24gYW5kIGRlbW9uc3RyYXRlIHNvbWUgb2YgdGhlIG1vcmUgdXNlZnVsIERvY2tlciBjb21tYW5kcyBkaXNjdXNzZWQgaW4gbXkgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtXaGF0IGlzIERvY2tlcj8mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZSBpcyB0aGUgc2ltcGxpZmllZCBkZWZpbml0aW9uIG9mIERvY2tlciB0aGF0IEkgdXNlZCBpbiBteSBwcmV2aW91cyBwb3N0OiZsdDsvcCZndDsKCiZsdDtibG9ja3F1b3RlJmd0OwogICZsdDtwJmd0O0RvY2tlciBpcyBhIHBsYXRmb3JtIGZvciBkZXZlbG9wZXJzIGFuZCBzeXNhZG1pbnMgdG8gZGV2ZWxvcCwgZGVwbG95LCBhbmQgcnVuIGFwcGxpY2F0aW9ucyB1c2luZyBjb250YWluZXJzLiZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7RG9ja2VyIGlzIGFsc28gcmVmZXJyZWQgdG8gYXMgYW4gYXBwbGljYXRpb24gcGFja2FnaW5nIHRvb2wgdGhhdCBlbmFibGVzIGFwcGxpY2F0aW9ucyB0byBiZSBjb25maWd1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZC8jaW1hZ2VzLWFuZC1jb250YWluZXJzJnF1b3Q7Jmd0O0RvY2tlciBpbWFnZSZsdDsvYSZndDsgdGhhdCBjYW4gYmUgdXNlZCB0byBzcGF3biAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyNpbWFnZXMtYW5kLWNvbnRhaW5lcnMmcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IHRoYXQgcnVuIGluc3RhbmNlcyBvZiB0aGUgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIG1hbnkgYmVuZWZpdHMgaW5jbHVkaW5nIHJ1bnRpbWUgZW52aXJvbm1lbnQgaXNvbGF0aW9uLCBjb25zaXN0ZW5jeSB2aWEgY29kZSwgYW5kIHBvcnRhYmlsaXR5LiBEb2NrZXIgY29udGFpbmVycyBjYW4gcnVuIG9uIGFueSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgc3VwcG9ydHMgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZW5naW5lJnF1b3Q7Jmd0O0RvY2tlciBFbmdpbmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtCYXNpYyBEb2NrZXIgdGVybWlub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZeKAmXMgYSBsaXN0IG9mIGJhc2ljIERvY2tlciBjb21tYW5kcyBhbmQgdGVybXMgd2l0aCBsaW5rcyB0byBtb3JlIGluZm9ybWF0aW9uLiBUaGVzZSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgRG9ja2VyIGFuZCBjb250cm9sIHRoZSBleGVjdXRvci4gVGhlIGNvbW1hbmRzIGNhbiBiZSBydW4gbG9jYWxseSBvbiBhbnkgY29tcHV0ZXIgdGhhdCBoYXMgdGhlIERvY2tlciBlbmdpbmUgaW5zdGFsbGVkLiZsdDsvcCZndDsKCiZsdDtoMyZndDtCdWlsZGluZyBEb2NrZXIgaW1hZ2VzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBhIHRleHQgZG9jdW1lbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNvbW1hbmRzIGEgdXNlciBjb3VsZCBjYWxsIG9uIHRoZSBjb21tYW5kIGxpbmUgdG8gYXNzZW1ibGUgYW4gaW1hZ2UuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBEb2NrZXJmaWxlIGlzIGEgYmx1ZXByaW50IGZvciBidWlsZGluZyBEb2NrZXIgaW1hZ2VzLiBEb2NrZXJmaWxlIHRlbXBsYXRlcyBob2xkIGVsZW1lbnRzIHN1Y2ggYXMgdGhlIGJhc2Ugb3BlcmF0aW5nIHN5c3RlbSBpbWFnZSB1c2VkIGFzIGEgZm91bmRhdGlvbiwgZXhlY3V0aW9uIGNvbW1hbmRzIHRoYXQgaW5zdGFsbC9jb25maWd1cmUgZGVwZW5kZW5jaWVzLCBhbmQgY29weSBjb21tYW5kcyB0aGF0IHB1c2ggbG9jYWwgc291cmNlIGNvZGUgb3IgYXJ0aWZhY3RzIGludG8gdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBEb2NrZXJmaWxlIGZvciBhIHNpbXBsZSBOb2RlLmpzIGFwcGxpY2F0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7RlJPTSBub2RlOjEwCgojIENyZWF0ZSBhcHAgZGlyZWN0b3J5CldPUktESVIgL3Vzci9zcmMvYXBwCgojIEluc3RhbGwgYXBwIGRlcGVuZGVuY2llcwojIEEgd2lsZGNhcmQgaXMgdXNlZCB0byBlbnN1cmUgYm90aCBwYWNrYWdlLmpzb24gQU5EIHBhY2thZ2UtbG9jay5qc29uIGFyZSBjb3BpZWQKIyB3aGVyZSBhdmFpbGFibGUgKG5wbUA1KykKQ09QWSBwYWNrYWdlKi5qc29uIC4vCgpSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIyBJZiB5b3UgYXJlIGJ1aWxkaW5nIHlvdXIgY29kZSBmb3IgcHJvZHVjdGlvbgojIFJVTiBucG0gaW5zdGFsbCAtLW9ubHk9cHJvZHVjdGlvbgoKIyBCdW5kbGUgYXBwIHNvdXJjZQpDT1BZIC4gLgoKRVhQT1NFIDUwMDAKQ01EIFsgJnF1b3Q7bnBtJnF1b3Q7LCAmcXVvdDtzdGFydCZxdW90OyBdCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2ltYWdlcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7IGxpc3RzIERvY2tlciBpbWFnZXMgZm91bmQgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gbGlzdCBhbGwgb2YgdGhlIERvY2tlciBpbWFnZXMgYW5kIHJlbGF0ZWQgZGF0YSB0aGF0IGN1cnJlbnRseSBleGlzdCBvbiB0aGUgbG9jYWwgbWFjaGluZS4gSXTigJlzIGNvbXBhcmFibGUgdG8gYSBsaW51eCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtscyZsdDsvY29kZSZndDsgb3Igd2luZG93cyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkaXImbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdXNlZCB0byBzaG93IHRoZSBjb250ZW50cyBvZiBkaXJlY3RvcmllcyBpbiBhIHRlcm1pbmFsLiBUaGlzIGNvbW1hbmQgaXMgdmVyeSB1c2VmdWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRvIG1hbmFnZSwgbWFpbnRhaW4sIGFuZCBidWlsZCBEb2NrZXIgaW1hZ2VzIGxvY2FsbHkuIEJlbG93IGlzIGFuIGV4YW1wbGUgcmVzdWx0IG9mIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgZXhlY3V0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UkVQT1NJVE9SWSAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHICAgICAgICAgICAgICAgICBJTUFHRSBJRCAgICAgICAgICAgIENSRUFURUQgICAgICAgICAgICAgU0laRQphcml2M3JhL25vZGVqcy1jaXJjbGVjaSAgICAgICAgICAgICBsYXRlc3QgICAgICAgICAgICAgIGY0MTllNGE2YjFiOCAgICAgICAgMTEgZGF5cyBhZ28gICAgICAgICA5NDNNQgpub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAgICAgICAgICAgICAgICAgIDAxYjgxNjA1MWQzNCAgICAgICAgMiB3ZWVrcyBhZ28gICAgICAgICA5MTFNQgpjaXJjbGVjaS9weXRob24gICAgICAgICAgICAgICAgICAgICAzLjcuNiAgICAgICAgICAgICAgIDBkMjk3NTg5NmM3MyAgICAgICAgNSB3ZWVrcyBhZ28gICAgICAgICAxLjQzR0IKYXJpdjNyYS9pbmZyYXN0cnVjdHVyZS1hcy1jb2RlMTAxICAgbGF0ZXN0ICAgICAgICAgICAgICBjYjIxYTM2YTI5NzMgICAgICAgIDggd2Vla3MgYWdvICAgICAgICAgOTI5TUIKcHl0aG9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43LjYgICAgICAgICAgICAgICA4NzkxNjU1MzVhNTQgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgOTE5TUIKY2lyY2xlY2kvcnVzdCAgICAgICAgICAgICAgICAgICAgICAgMS1idXN0ZXIgICAgICAgICAgICAyMTgzMjliOTI5Y2YgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgMS42OEdCCnJ1c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtYnVzdGVyICAgICAgICAgICAgZjVmZGUwOTJhMWNkICAgICAgICAyIG1vbnRocyBhZ28gICAgICAgIDEuMTlHQgpweXRob24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcuNCAgICAgICAgICAgICAgIDlmYTU2ZDBhZGRhZSAgICAgICAgNiBtb250aHMgYWdvICAgICAgICA5MThNQgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGJ1aWxkIC10ICZhbXA7bHQ7aW1hZ2UgbmFtZSZhbXA7Z3Q7IC4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBjcmVhdGVzIGEgRG9ja2VyIGltYWdlIHdpdGggYSB0YWcgdXNpbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LXQmbHQ7L2NvZGUmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhYm92ZSBjb21tYW5kLCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgdmFsaWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDssIGJ1aWxkcyBhIERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgZXhlY3V0aW9uIGNvbW1hbmRzIGRlZmluZWQgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7LiBPbmUgY3JpdGljYWwgZWxlbWVudCB0byBidWlsZGluZyBpbWFnZXMgYW5kIHN0YXJ0aW5nIGNvbnRhaW5lcnMgaXMgdW5kZXJzdGFuZGluZyB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9hJmd0Oy4gQnVpbGRpbmcgRG9ja2VyIGltYWdlcyB1c2luZyB0aGlzIGNvbW1hbmQgc3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIERvY2tlciBpbWFnZXMgdXRpbGl6ZXMgYSBuYW1pbmcgY29udmVudGlvbiBtYWRlIHVwIG9mIHNsYXNoLXNlcGFyYXRlZCBuYW1lIGNvbXBvbmVudHMgdGhhdCBtYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgc2VwYXJhdG9ycy4gQSBzZXBhcmF0b3IgaXMgZGVmaW5lZCBhcyBhIHBlcmlvZCwgb25lIG9yIHR3byB1bmRlcnNjb3Jlcywgb3Igb25lIG9yIG1vcmUgZGFzaGVzLiBBIG5hbWUgY29tcG9uZW50IG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggYSBzZXBhcmF0b3IuIEEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7ZG9ja2VyIHRhZyZsdDsvYSZndDsgbmFtZSBtdXN0IGJlIHZhbGlkIEFTQ0lJIGFuZCBtYXkgY29udGFpbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHVuZGVyc2NvcmVzLCBwZXJpb2RzLCBhbmQgZGFzaGVzLiBBIHRhZyBuYW1lIG1heSBub3Qgc3RhcnQgd2l0aCBhIHBlcmlvZCBvciBhIGRhc2ggYW5kIG1heSBjb250YWluIGEgbWF4aW11bSBvZiAxMjggY2hhcmFjdGVycy4gWW91IGNhbiBncm91cCB5b3VyIGltYWdlcyB0b2dldGhlciB1c2luZyBuYW1lcyBhbmQgdGFncy4gSW4gdGhpcyBwb3N0LCB3ZSB3aWxsIHVzZSB0aGlzIG5hbWluZyBjb252ZW50aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB0aGF0IHdl4oCZdmUgZGlzY3Vzc2VkIG5hbWluZyBjb252ZW50aW9ucyBsZXTigJlzIGJ1aWxkIGEgRG9ja2VyIGltYWdlIGJhc2VkIG9uIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXJmaWxlJmx0Oy9jb2RlJmd0OyBpbiBvdXIgZXhhbXBsZSBhYm92ZS4gSW4gdGhpcyBwb3N0IHdlIGNhbiB1dGlsaXplIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9wdW5rZGF0YS9ub2RlanMtY2lyY2xlY2kmcXVvdDsmZ3Q7cHVua2RhdGEvbm9kZWpzLWNpcmNsZWNpJmx0Oy9hJmd0OyBnaXQgcmVwby4gQ2xvbmUgaXQgbG9jYWxseSBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7JCBjZCZsdDsvY29kZSZndDsgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlbiBydW4gdGhpcyBjb21tYW5kIHRvIGJ1aWxkIGEgbmV3IERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgcHJvamVjdCBzb3VyY2UgY29kZSBhbmQgdGhlIGV4YW1wbGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgYnVpbGQgLXQgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0FmdGVyIHJ1bm5pbmcgdGhpcyBidWlsZCBjb21tYW5kLCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtTZW5kaW5nIGJ1aWxkIGNvbnRleHQgdG8gRG9ja2VyIGRhZW1vbiAgOTguMDdNQgpTdGVwIDEvNyA6IEZST00gbm9kZToxMAogLS0tJmFtcDtndDsgMDFiODE2MDUxZDM0ClN0ZXAgMi83IDogV09SS0RJUiAvdXNyL3NyYy9hcHAKIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyAxMmIyZWRjMmI5N2MKU3RlcCAzLzcgOiBDT1BZIHBhY2thZ2UqLmpzb24gLi8KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyA1M2I1YjhlNGU2NTQKU3RlcCA0LzcgOiBSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyBlZWZkZjU2MGJjNGQKU3RlcCA1LzcgOiBDT1BZIC4gLgogLS0tJmFtcDtndDsgYWE3ZDU0ZTk1NWM2ClN0ZXAgNi83IDogRVhQT1NFIDUwMDAKIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gY2M0MjdkYmFmZGNjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgY2M0MjdkYmFmZGNjCiAtLS0mYW1wO2d0OyA0Y2U5MDg0ZTM5ZWIKU3RlcCA3LzcgOiBDTUQgWyAmcXVvdDtucG0mcXVvdDssICZxdW90O3N0YXJ0JnF1b3Q7IF0KIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gZjZlODU0NTk5ZGRjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgZjZlODU0NTk5ZGRjCiAtLS0mYW1wO2d0OyA3OWE4ZDk0Y2JmNDIKU3VjY2Vzc2Z1bGx5IGJ1aWx0IDc5YThkOTRjYmY0MgpTdWNjZXNzZnVsbHkgdGFnZ2VkIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2VzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgeW91ciBuZXdseSBjcmVhdGVkIERvY2tlciBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDskIGRvY2tlciBpbWFnZXMKClJFUE9TSVRPUlkgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRyAgICAgICAgICAgICAgICAgSU1BR0UgSUQgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNJWkUKdHV0b3JpYWwvY2lyY2xlY2ktbm9kZSAgICAgICAgICAgICAgMTAgICAgICAgICAgICAgICAgICA3OWE4ZDk0Y2JmNDIgICAgICAgIDQgbWludXRlcyBhZ28gICAgICAgMS4wM0dCCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyB5b3UgaGF2ZSBhbiBhd2Vzb21lIERvY2tlciBpbWFnZSBidWlsdCBhbmQgcmVhZHkgdG8gdXNlLiBJbiB0aGUgbmV4dCBzZWN0aW9uIEnigJlsbCBjcmVhdGUgbmV3IGluc3RhbmNlcyBvZiB0aGlzIERvY2tlciBpbWFnZSBpbiB0aGUgZm9ybSBvZiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvY29udGFpbmVyLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXIgY29udGFpbmVycyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBjb250YWluZXJzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IGFyZSBkZXNpZ25lZCB0byBydW4gYXBwbGljYXRpb25zIGluIGlzb2xhdGlvbiBhbmQgYXQgc2NhbGUuICBUaGV5IGFsbG93IGZvciBzdHJlYW1saW5pbmcgdGhlIG1hbmFnZW1lbnQgYW5kIGltcGxlbWVudGF0aW9uIG9mIGFwcGxpY2F0aW9ucy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7QmVmb3JlIHdlIHN0YXJ0IGNyZWF0aW5nIGFuZCBydW5uaW5nIERvY2tlciBjb250YWluZXJzLCBJ4oCZbGwgYWRkIHNvbWUgY29udGV4dC4gRG9ja2VyIGNvbnRhaW5lcnMgYXJlIG9iamVjdHMgdGhhdCBhcmUgYmFzZWQgb24gYW5kIHNwYXduZWQgZnJvbSBEb2NrZXIgaW1hZ2VzLiBEb2NrZXIgaW1hZ2VzIGFyZSB0ZW1wbGF0ZXMuIEkgbGlrZW4gdGhlbSB0byBjb29raWUgY3V0dGVyIG1vbGRzLiBDb29raWUgY3V0dGVyIG1vbGRzIGVuYWJsZSB5b3UgdG8gcXVpY2tseSBhbmQgY29uc2lzdGVudGx5IHByb2R1Y2UgaW5kaXZpZHVhbCBjb29raWVzIGZyb20gZG91Z2guIEkgbGlrZW4gdGhlc2UgY29va2llcyB0byBEb2NrZXIgY29udGFpbmVycyB3aGljaCBhcmUgZGlzdGluZ3Vpc2hlZCBpbiBzaGFwZSBieSB0aGUgdHlwZSBvZiBjb29raWUgbW9sZCwgb3IgRG9ja2VyIGNvbnRhaW5lciwgdXNlZCBpbiB0aGUgY3V0dGluZy9idWlsZGluZyBwcm9jZXNzLiBTbyB1c2luZyBteSBjb29raWUgY3V0dGVyIGFuYWxvZ3ksIERvY2tlciBpbWFnZXMgYXJlIHRoZSBjb29raWUgY3V0dGVyIGFuZCB0aGUgaW5kaXZpZHVhbCBjb29raWVzIGN1dCB1c2luZyB0aGF0IGN1dHRlciBhcmUgZXF1aXZhbGVudCB0byBEb2NrZXIgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCBJ4oCZdmUgcHJvYmFibHkgbWFkZSB5b3UgYSBiaXQgaHVuZ2FyeSBmb3IgY29va2llcywgbGV04oCZcyBzdGFydCBydW5uaW5nIHNvbWUgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBydW5zIGEgY29tbWFuZCBpbiBhIG5ldyBjb250YWluZXIuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY29tbWFuZCBvZiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgc3RhcnRpbmcgRG9ja2VyIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCBhIG5ldyBjb250YWluZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcnVuIC1kIC1wIDUwMDA6NTAwMCAtLW5hbWUgbm9kZXRlc3QwMSB0dXRvcmlhbC9jaXJjbGVjaS1ub2RlOjEwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NvbmdyYXRzISBZb3Ugc2hvdWxkIG5vdyBoYXZlIHRoZSBOb2RlLmpzIGltYWdlIHJ1bm5pbmcgaW4gdGhlIG5ldyBjb250YWluZXIgdGhhdCB5b3UganVzdCBjcmVhdGVkIGF2YWlsYWJsZSBvbiBwb3J0IDUwMDAuIE9wZW4gYSB3ZWIgYnJvd3NlciBhbmQgZ28gdG8gdGhpcyBhZGRyZXNzOiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtodHRwOi8vbG9jYWxob3N0OjUwMDAmbHQ7L2NvZGUmZ3Q7LiBJdCB3aWxsIHRha2UgeW91IHRoZSBzdGF0aWMg4oCcV2VsY29tZSB0byBDSS9DRCAxMDEgdXNpbmcgQ2lyY2xlQ0kh4oCdIHdlYiBwYWdlIHNlcnZlZCBieSB0aGlzIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsc28gdmVyaWZ5IHlvdXIgY29udGFpbmVyIGlzIHJ1bm5pbmcgYnkgZXhlY3V0aW5nIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbC4gV2XigJlsbCBkaXNjdXNzIHRoaXMgaW4gdGhlIG5leHQgc2VjdGlvbi4gQmVmb3JlIHRoYXQsIGxldOKAmXMgc3RhcnQgYW4gb3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGFwcGxpY2F0aW9uIGJ5IHJ1bm5pbmcgYW5vdGhlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnRlZCBvdXIgZmlyc3QgY29udGFpbmVyIHdpdGggdGhlIG5hbWUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDsgYW5kIHNpbmNlIGNvbnRhaW5lciBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgd2XigJlyZSBnb2luZyB0byBuYW1lIG91ciBuZXcgY29udGFpbmVyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7LiBBbm90aGVyIGNoYW5nZSB0aGF0IG11c3QgYmUgbWFkZSBpbiBvdXIgbmV3IGNvbnRhaW5lciBpcyB0aGUgcG9ydCBudW1iZXIuIFdl4oCZbGwgY2hhbmdlIGl0IGZyb20gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMCZsdDsvY29kZSZndDsgdG8gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMSZsdDsvY29kZSZndDsgc2luY2UgYXBwbGljYXRpb25zIGNhbm5vdCBvY2N1cHkgdGhlIHNhbWUgcG9ydCBudW1iZXIgb24gdGhlIHNhbWUgbmV0d29yayBpbnRlcmZhY2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RXhlY3V0ZSB0aGUgZm9sbG93aW5nICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtZCAtcCA1MDAxOjUwMDAgLS1uYW1lIG5vZGV0ZXN0MDIgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISBZb3Ugbm93IGhhdmUgdHdvIGNvbnRhaW5lcnMgcnVubmluZyBvbiB5b3VyIGxvY2FsIG1hY2hpbmUuIFlvdSBjYW4gZ28gdG8gdGhpcyBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMSZsdDsvY29kZSZndDsgaW4gYSBicm93c2VyIGFuZCBzZWUgdGhlIGFwcCBydW5uaW5nIGluIHlvdXIgc2Vjb25kIERvY2tlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaXMgdmVyeSByb2J1c3QgYW5kIGhhcyBtYW55IHByb3BlcnR5IGFuZCBjb25maWd1cmF0aW9uIGZsYWdzIHdoaWNoIEkgd29u4oCZdCBiZSBhYmxlIHRvIGFkZHJlc3Mgb3IgZGVtb25zdHJhdGUgaW4gdGhpcyBwb3N0LiBJIGhpZ2hseSByZWNvbW1lbmQgdGhhdCB5b3UgcmVhZCBhbmQgZmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgbWFueSB3YXlzIHRoYXQgeW91IGNhbiBleGVjdXRlIGFuZCBydW4gRG9ja2VyIGNvbnRhaW5lcnMuIFlvdSBjYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7cmVhZCB1cCBvbiBEb2NrZXIgY29udGFpbmVycyBjb21tYW5kcyBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9wcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbGlzdHMgYWxsIG9mIHRoZSBydW5uaW5nIERvY2tlciBjb250YWluZXJzLiBUaGlzIGNvbW1hbmQgc2VydmVzIGEgc2ltaWxhciBwdXJwb3NlIGFzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2UmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgYW5kIGxpc3RzIGFjdGl2ZWx5IHJ1bm5pbmcgY29udGFpbmVycy4gVXNlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDstYSZsdDsvY29kZSZndDsgZmxhZyB0byBzaG93IGFsbCBvZiB0aGUgcnVubmluZyBhbmQgbm90IHJ1bm5pbmcgY29udGFpbmVycy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoaXMgY29tbWFuZCBpbiBhIHRlcm1pbmFsIGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIGJvdGggb2YgdGhlIHByZXZpb3VzbHkgY3JlYXRlZCBjb250YWluZXJzIHJ1bm5pbmcgaW4gdGhlIHJlc3VsdHM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlIHJlc3VsdHMgd2lsbCBiZSBzaW1pbGFyIHRvIHRoaXMgc2hvd2luZyBib3RoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDEmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcnMgc3RpbGwgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0NPTlRBSU5FUiBJRCAgICAgICAgSU1BR0UgICAgICAgICAgICAgICAgICAgICAgIENPTU1BTkQgICAgICAgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNUQVRVUyAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICAgICAgIE5BTUVTCmRmZDMwMTgxZTE1YyAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAxMiBtaW51dGVzIGFnbyAgICAgIFVwIDEyIG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAxLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAyOCBtaW51dGVzIGFnbyAgICAgIFVwIDI4IG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAwLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7CiAgICAmbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvc3RhcnQvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdGFydHMgYW4gZXhpc3RpbmcgY29udGFpbmVyLiZsdDsvcCZndDsKICAmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsKICAgICZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9zdG9wLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdG9wcyBhbiBleGlzdGluZyBjb250YWluZXIuJmx0Oy9wJmd0OwogICZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgaXMgb25seSB1c2VkIHRvIHN0YXJ0ICZsdDtzdHJvbmcmZ3Q7ZXhpc3RpbmcmbHQ7L3N0cm9uZyZndDsgY29udGFpbmVycyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcnVuJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBVbmxlc3MgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy0tcm09dHJ1ZSZsdDsvY29kZSZndDsgZmxhZyBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgbmV3bHkgY3JlYXRlZCBjb250YWluZXJzIHdpbGwgcGVyc2lzdCBhbmQgY2FuIGJlIHJldXNlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RhcnQmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCZsdDsvY29kZSZndDsgY29tbWFuZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdG9wIHNvbWUgcnVubmluZyBjb250YWluZXJzIGJ5IGV4ZWN1dGluZyB0aGVzZSBjb21tYW5kczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBzdG9wIG5vZGV0ZXN0MDEgbm9kZXRlc3QwMgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBydW5uaW5nIGNvbnRhaW5lcnMgc2hvdWxkIG5vdyBiZSBpbmFjdGl2ZSBhbmQgc3RvcHBlZC4gU2luY2UgdGhleeKAmXJlIHN0b3BwZWQsIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgaW5kaWNhdGluZyBzdG9wcGVkIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtDT05UQUlORVIgSUQgICAgICAgIElNQUdFICAgICAgICAgICAgICAgICAgICAgICBDT01NQU5EICAgICAgICAgICAgICAgICAgQ1JFQVRFRCAgICAgICAgICAgICBTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICBOQU1FUwpkZmQzMDE4MWUxNWMgICAgICAgIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAgICAmcXVvdDtkb2NrZXItZW50cnlwb2ludC5z4oCmJnF1b3Q7ICAgMzEgbWludXRlcyBhZ28gICAgICBFeGl0ZWQgKDApIDM4IHNlY29uZHMgYWdvICAgICAgICAgICAgICAgICAgICAgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICBBYm91dCBhbiBob3VyIGFnbyAgIEV4aXRlZCAoMCkgMzggc2Vjb25kcyBhZ28gICAgICAgICAgICAgICAgICAgICAgIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhvdWdoIHRoZXNlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQgdGhleSB3aWxsIHBlcnNpc3QgYW5kIGNhbiBiZSByZXN0YXJ0ZWQgdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCZsdDsvY29kZSZndDsgY29tbWFuZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXRzIHN0YXJ0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAxJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgc28gd2UgY2FuIGxlYXJuIGhvdyB0byB1c2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBmZWF0dXJlcyBpbiB0aGUgbmV4dCBzZWN0aW9uLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHN0YXJ0IG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Tm93IHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBOb3RpY2UgdGhlIHN0YXR1cyBmb3IgdGhpcyBjb250YWluZXIgcmVhZHMgc2ltaWxhciB0byAgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXAgYWJvdXQgYSAzMCBzZWNvbmRzJmx0Oy9jb2RlJmd0OyBvciBzb21ldGhpbmcgdG8gdGhhdCBlZmZlY3QuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9ncy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ3MmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBmZXRjaGVzIGEgY29udGFpbmVy4oCZcyBsb2dzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIHNlZSBsb2dzIHRoYXQgYXJlIHByZXNlbnQgYXQgdGhlIHRpbWUgb2YgZXhlY3V0aW9uLiBTaW5jZSB5b3VyIGFwcHMgYXJlIHJ1bm5pbmcgaW5zaWRlIHRoZXNlIGNvbnRhaW5lcnMsIHRoZSBsb2dzIGNvbW1hbmQgaXMgdXNlZnVsIGZvciByZWFkaW5nIG91dCBjcml0aWNhbCBhcHAgb3V0cHV0cy4gVGhpcyBoZWxwcyBpbiB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgYXBwIGlzIHBlcmZvcm1pbmcgYW5kIGFueSBkZWJ1Z2dpbmcvdHJvdWJsZXNob290aW5nIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBydW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDEmbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBsb2dzIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIGNvbW1hbmQgeW91IHNob3VsZCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHdoYXTigJlzIHNob3duIGJlbG93LiBJdCBzaG93cyB0aGF0IHRoZSBhcHAgaW5zaWRlIGNvbnRhaW5lciBpcyB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O05vZGUgc2VydmVyIGlzIHJ1bm5pbmcuLgoKJmFtcDtndDsgbm9kZWpzLWNpcmNsZWNpQDAuMC4xIHN0YXJ0IC91c3Ivc3JjL2FwcAomYW1wO2d0OyBub2RlIGFwcC5qcwoKTm9kZSBzZXJ2ZXIgaXMgcnVubmluZy4uCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0gJmFtcDtsdDtjb250YWluZXIgbmFtZSZhbXA7Z3Q7Jmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgZGVsZXRlcyBhIGNvbnRhaW5lciBvciBtdWx0aXBsZSBjb250YWluZXJzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtQZXJzaXN0aW5nIERvY2tlciBjb250YWluZXJzIGNvbnN1bWVzIGRpc2sgc3BhY2UgYW5kIHJlc291cmNlcyBvbiBpdHMgaG9zdC4gT3BlcmF0aW9uYWxseSwgaXQgZG9lc27igJl0IG1ha2UgbXVjaCBzZW5zZSB0byBwZXJzaXN0IGV2ZXJ5IGNvbnRhaW5lciBvbiBkaXNrIHNpbmNlIGluIG1vc3QgY2FzZXMgY29udGFpbmVycyBhcmUgZGlzcG9zYWJsZSBhbmQgc2hvdWxkIGJlIHVzZWQgdGhhdCB3YXkuIFNvIHdoZW4gYSBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpdCBzaG91bGQgYmUgcGVybWFuZW50bHkgZGlzY2FyZGVkIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgcGVybWFuZW50bHkgZGVsZXRlcyBjb250YWluZXJzIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAyJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBzbyBsZXTigJlzIHNhdmUgc29tZSBkaXNrIHNwYWNlIGFuZCBkZWxldGUgaXQuIE5vdGUgdGhpcyBjb21tYW5kIHdpbGwgb25seSBkZWxldGUgaW5hY3RpdmUvc3RvcHBlZCBjb250YWluZXJzIGFuZCB3aWxsIGVycm9yIG91dCBpZiBpdOKAmXMgcnVuIGFnYWluc3QgYW4gYWN0aXZlL3J1bm5pbmcgY29udGFpbmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBybSBub2RldGVzdDAyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm8gbG9uZ2VyIHNlZSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMiZsdDsvY29kZSZndDsgY29udGFpbmVyIG9uIHRoZSBob3N0IGFmdGVyIHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGhhcyBvdGhlciBwcm9wZXJ0aWVzIGFuZCBmbGFncyBhbmQgeW91IHNob3VsZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcm0vJnF1b3Q7Jmd0O2ZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggdGhlbSBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ybWkvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBybWkmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBkZWxldGVzIERvY2tlciBpbWFnZXMgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGFwcGxpZXMgdG8gZGVsZXRpbmcgRG9ja2VyIGltYWdlcyBmcm9tIGEgaG9zdC4gSWYgdGhlcmUgYXJlIGV4aXN0aW5nIGNvbnRhaW5lcnMgb24gdGhlIGhvc3QgdGhhdCBhcmUgYmFzZWQgb24gYSBzcGVjaWZpYyBpbWFnZSwgdGhlbiB0aGlzIGNvbW1hbmQgd2lsbCBub3QgYWxsb3cgdGhlIGRlbGV0aW9uIG9mIHRoZSBjb250YWluZXIgYmFzZWQgb24gdGhlIGltYWdlLiBZb3UgbXVzdCBmaXJzdCBlbnN1cmUgdGhlIGNvbnRhaW5lciBpcyBzdG9wcGVkIGFuZCBkZWxldGVkIGJlZm9yZSB5b3UgY2FuIGRlbGV0ZSBEb2NrZXIgaW1hZ2VzIHVzaW5nIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtaSZsdDsvY29kZSZndDsgY29tbWFuZC4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtaS8mcXVvdDsmZ3Q7UmVhZCB1cCBvbiB0aGUgZG9ja2VyIHJtaSBjb21tYW5kIGhlcmUmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBpbWFnZSBkZXBsb3ltZW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtNYW55IERvY2tlciBpbWFnZXMgYXJlIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgaG9zdGVkIG9uIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2RvY2tlci1odWIvJnF1b3Q7Jmd0O0RvY2tlciBIdWIgUmVnaXN0cnkmbHQ7L2EmZ3Q7IHdoaWNoIGlzIGFuIG9ubGluZSBjZW50cmFsIGhvc3Rpbmcgc29sdXRpb24gZm9yIERvY2tlciBpbWFnZXMuIERvY2tlciBIdWIgZW5hYmxlcyBhbnlvbmUgd2l0aCBhbiBpbnRlcm5ldCBjb25uZWN0aW9uIHRvIHB1bGwgZG93biBwdWJsaWNseSBhdmFpbGFibGUgaW1hZ2VzIGZyb20gdGhlIHJlZ2lzdHJ5IHRvIHRoZWlyIGxvY2FsIG1hY2hpbmVzIG9yIHNlcnZlcnMuIEl0IGFsc28gZW5hYmxlcyByZWdpc3RlcmVkIHVzZXJzIHRvIHVwbG9hZCBhbmQgcHVibGljbHkgc2hhcmUgYW55IG9mIHRoZWlyIGNvbnRhaW5lcnMgc28gdGhhdCBhbnlvbmUgY2FuIHB1bGwgZG93biB0aGF0IGltYWdlIGZyb20gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2h1Yi5kb2NrZXIuY29tLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIEnigJlsbCBicmllZmx5IGRpc2N1c3Mgc29tZSBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItaHViLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0OyByZWxhdGVkIGNvbW1hbmRzLiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3B1bGwvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBwdWxsJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgcHVsbHMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IGZyb20gYSByZWdpc3RyeS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGVuYWJsZXMgeW91IHRvIGRvd25sb2FkIGEgdmFsaWQgRG9ja2VyIGltYWdlIGZyb20gRG9ja2VyIEh1Yi4gUHVibGljbHkgYXZhaWxhYmxlIERvY2tlciBpbWFnZXMgZG8gbm90IHJlcXVpcmUgYXV0aGVudGljYXRpb24uIElmIHRoZSByZWdpc3RyeSBpcyBwcml2YXRlIHlvdSB3aWxsIG5lZWQgdG8gYXV0aGVudGljYXRlIHVzaW5nIGFuIGFzc2lnbmVkIGNyZWRlbnRpYWwgdXN1YWxseSBpbiB0aGUgZm9ybSBvZiBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ2luJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbG9ncyBpbnRvIGEgRG9ja2VyIHJlZ2lzdHJ5LiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyB5b3UgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgYSBEb2NrZXIgUmVnaXN0cnkuIElmIHlvdeKAmXJlIHVzaW5nIHRoaXMgbG9naW4gY29tbWFuZCB5b3Ugc2hvdWxkICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8jcHJvdmlkZS1hLXBhc3N3b3JkLXVzaW5nLXN0ZGluJnF1b3Q7Jmd0O3BvcHVsYXRlIGEgLnR4dCBmaWxlJmx0Oy9hJmd0OyB3aXRoIHlvdXIgRG9ja2VyIEh1YiBhY2NvdW50IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBwcm90ZWN0IHRoZXNlIGNyZWRlbnRpYWxzIGZyb20gZXhwb3N1cmUuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcHVzaC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHB1c2gmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBwdXNoZXMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IHRvIGEgcmVnaXN0cnkuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBlbmFibGVzIHVzZXJzIHRvIHVwbG9hZCBpbWFnZXMgdG8gYSBEb2NrZXIgcmVnaXN0cnkgYW5kIHJlcXVpcmVzIHZhbGlkIGNyZWRlbnRpYWxzLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O1NvIHRoZXJlIHlvdSBoYXZlIGl0LiBJbiB0aGlzIHBvc3QgSSB3ZW50IGEgYml0IGRlZXBlciBpbiBleHBsYWluaW5nIERvY2tlciB0ZXJtaW5vbG9neSBhbmQgY29tbWFuZHMgYXMgd2VsbCBhcyBjb250YWluZXJzIGFuZCB0aGVpciB1c2FnZS4gVGhlIGNvbW1hbmRzIEkgZGlzY3Vzc2VkIGFuZCBkZW1vbnN0cmF0ZWQsIGFyZSB0aGUgbW9zdCB3aWRlbHkgdXNlZCBjb21tYW5kcyBpbiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGxlYXJuaW5nIGEgYml0IG1vcmUgYWJvdXQgdGhlbSBhbmQgdGhlaXIgcHJvcGVydGllcyBhbmQgZmxhZ3Mgd2lsbCBkZWZpbml0ZWx5IGhlbHAgeW91IGxldmVsIHVwIHlvdXIgRG9ja2VyIGFuZCBjb250YWluZXIgc2tpbGxzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZhbWlsaWFyaXppbmcgeW91cnNlbGYgd2l0aCB0aGVzZSBiYXNpYyBjb21tYW5kcyB3aWxsIHJlbW92ZSBvbmUgb2YgdGhlIGxhcmdlciBiYXJyaWVycyB0aGF0IG5ldyB1c2VycyBvZiBDaXJjbGVDSSBlbmNvdW50ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SWYgeW91IHdhbnQgdG8gbGVhcm4gbW9yZSBhYm91dCBDaXJjbGVDSSBjaGVjayBvdXQgdGhlICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wLyZxdW90OyZndDtkb2N1bWVudGF0aW9uIHNpdGUmbHQ7L2EmZ3Q7LCBhbmQgaWYgeW91IHJlYWxseSBnZXQgc3R1Y2sgeW91IGNhbiByZWFjaCBvdXQgdG8gdGhlIENpcmNsZUNJIGNvbW11bml0eSB2aWEgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mbHQ7L2EmZ3Q7IGNvbW11bml0eS9mb3J1bSBzaXRlLiZsdDsvcCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogIDwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 12:02:01 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 12:02:01 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"1eddb88712bdc5ee","ot-tracer-traceid":"40f6ec9216651ff6","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889721670:1734c55ffe02
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:17:01 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595daaa7ea69f923-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce68fcf50000f9235bbd9200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 12:02:01 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 12:02:02 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"53fca17e44e44c95","ot-tracer-traceid":"301715fa6564066b","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889721857:6aa1b0192044
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:17:01 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595daaa92aed0e06-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce68fdb800000e062b320200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDExOjQ4OjUyIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 12:02:02 GMT
+recorded_with: VCR 5.1.0
diff --git a/spec/support/fixtures/vcr_cassettes/rss_reader_fetch_multiple_times.yml b/spec/support/fixtures/vcr_cassettes/rss_reader_fetch_multiple_times.yml
new file mode 100644
index 000000000..27d5ef4df
--- /dev/null
+++ b/spec/support/fixtures/vcr_cassettes/rss_reader_fetch_multiple_times.yml
@@ -0,0 +1,1166 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:56:38 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"58aa28bb3ddb367d","ot-tracer-traceid":"222f928127cacbf8","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889398445:f77434255505
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:11:38 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da2c3ddb6f917-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce640e690000f917b3ad5200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDExOjQ4OjUyIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:38 GMT
+- request:
+ method: get
+ uri: https://circleci.com/blog/feed.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/xml
+ Date:
+ - Tue, 19 May 2020 11:56:39 GMT
+ Etag:
+ - '"d148e5f0c8f6530989f97099948abd37"'
+ Last-Modified:
+ - Tue, 19 May 2020 02:33:22 GMT
+ Server:
+ - nginx
+ Strict-Transport-Security:
+ - max-age=15724800
+ X-Amz-Id-2:
+ - m3VjoppN6EW49CvWbfhOjy3hNvOvSejJDHEbb0U8WwoCk7FzqsDXQCNee8IMaMp4RrV4Q5cr6RU=
+ X-Amz-Request-Id:
+ - 8454DC01E7A8E442
+ X-Frame-Options:
+ - SAMEORIGIN
+ Content-Length:
+ - '183502'
+ Connection:
+ - keep-alive
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiCiAgeG1sOmJhc2U9Imh0dHBzOi8vY2lyY2xlY2kuY29tLyIKICB4bWxuczphdG9tPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8Y2hhbm5lbD4KICAgIDx0aXRsZT5UaGUgQ2lyY2xlQ0kgQmxvZyBGZWVkIC0gQ2lyY2xlQ0k8L3RpdGxlPgogICAgPGRlc2NyaXB0aW9uPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgbmV3cywgdXBkYXRlcywgYW5kIGhhY2tzIGZyb20gQ2lyY2xlQ0kuPC9kZXNjcmlwdGlvbj4KICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvPC9saW5rPgogICAgPGF0b206bGluayBocmVmPSJodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2ZlZWQueG1sIiByZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Db250aW51b3VzIGludGVncmF0aW9uIGZvciBJb25pYyBhcHBsaWNhdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvY29udGlub3VzLWludGVncmF0aW9uLWZvci1pb25pYy1hcHBzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDE4IE1heSAyMDIwIDE3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbm91cy1pbnRlZ3JhdGlvbi1mb3ItaW9uaWMtYXBwcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5GaWtheW8gQWRlcG9qdTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtJbiB0aGUgd29ybGQgb2YgaHlicmlkIG1vYmlsZSBkZXZlbG9wbWVudCwgbm8gb3RoZXIgZnJhbWV3b3JrIGhhcyBkb25lIG1vcmUgZm9yIHRoZSBpbmR1c3RyeSB0aGFuIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tLyZxdW90OyZndDtJb25pYyBmcmFtZXdvcmsmbHQ7L2EmZ3Q7LiBDcmVhdGVkIGluIDIwMTMgYW5kIG9yaWdpbmFsbHkgYnVpbHQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXJqcy5vcmcvJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7IGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY29yZG92YS5hcGFjaGUub3JnLyZxdW90OyZndDtBcGFjaGUgQ29yZG92YSZsdDsvYSZndDssIElvbmljIGhhcyBncm93biB0byBhIGZ1bGwtZmVhdHVyZWQgYXBwbGljYXRpb24gZnJhbWV3b3JrIGZvciBkZXZlbG9waW5nIG1vYmlsZSwgZGVza3RvcCwgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93ZWIuZGV2L3Byb2dyZXNzaXZlLXdlYi1hcHBzLyZxdW90OyZndDtwcm9ncmVzc2l2ZSB3ZWIgYXBwbGljYXRpb25zJmx0Oy9hJmd0Oy4gSW9uaWMgaGFzIGFsc28gYmVjb21lIGZyYW1ld29yay1hZ25vc3RpYywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byB1c2UgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXIuaW8vJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oywgb3IgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3Z1ZWpzLm9yZy8mcXVvdDsmZ3Q7VnVlLmpzJmx0Oy9hJmd0OyBmb3IgZGV2ZWxvcG1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2Ugd2lsbCBiZSBidWlsZGluZyBhIGhhbmR5IHRhc2sgbWFuYWdlci4gV2Ugd2lsbCB3cml0ZSB0ZXN0cyBmb3IgZmVhdHVyZXMgaW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBzZXQgdXAgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbm91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgKENJKSBwaXBlbGluZSB0byBhdXRvbWF0ZSBvdXIgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFdlIHdpbGwgYmUgZGV2ZWxvcGluZyBvdXIgYXBwbGljYXRpb24gdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9yZWFjdCZxdW90OyZndDtJb25pYyBSZWFjdCZsdDsvYSZndDssIHRoZSBJb25pYyB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgZGV2ZWxvcGluZyB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBmb2xsb3cgdGhpcyBwb3N0LCBhIGZldyB0aGluZ3MgYXJlIHJlcXVpcmVkOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QmFzaWMga25vd2xlZGdlIG9mIFJlYWN0LmpzIChOb3QgYSBkZWFsLWJyZWFrZXIsIHlvdSBvbmx5IGhhdmUgdG8gY29weS1wYXN0ZSB0aGUgY29kZSBzbmlwcGV0cykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbm9kZWpzLm9yZyZxdW90OyZndDtOb2RlLmpzJmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtUaGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2NsaSZxdW90OyZndDtJb25pYyBDTEkmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L29sJmd0OwoKJmx0O2gyJmd0O1NjYWZmb2xkaW5nIHRoZSBJb25pYyBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBiZWdpbiwgbGV04oCZcyBzY2FmZm9sZCBhIG5ldyBJb25pYyBhcHBsaWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2lvbmljIHN0YXJ0IHRhc2stbWFuYWdlciB0YWJzIC0tdHlwZT1yZWFjdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgSW9uaWMgQ0xJIHRvIHNjYWZmb2xkIGEgbmV3IHByb2plY3QgZm9yIHVzIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0YWJzJmx0Oy9jb2RlJmd0OyB0ZW1wbGF0ZSBpbnNpZGUgYSBmb2xkZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGFzay1tYW5hZ2VyJmx0Oy9jb2RlJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1lvdSBtaWdodCBiZSBwcm9tcHRlZCBhdCBzb21lIHBvaW50IHdpdGggJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Q3JlYXRlIGZyZWUgSW9uaWMgYWNjb3VudD8mbHQ7L2NvZGUmZ3Q7LiBIaXQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7biZsdDsvY29kZSZndDsgdG8gZGVjbGluZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYW4gSW9uaWMgYWNjb3VudCBzZWUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9hcHBmbG93JnF1b3Q7Jmd0O2hlcmUmbHQ7L2EmZ3Q7LiZsdDsvaSZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmNlIHRoaXMgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb24gKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIHRhc2stbWFuYWdlciZsdDsvY29kZSZndDspIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHNlcnZlIHRoZSBhcHBsaWNhdGlvbiBpbiB5b3VyIHdlYiBicm93c2VyOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7aW9uaWMgc2VydmUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGlzIGNvbW1hbmQgaGFzIGNvbXBsZXRlZCwgeW91IHdpbGwgc2VlIGFuIGFwcGxpY2F0aW9uIHZpZXcgaW4geW91ciBicm93c2VyIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O0kgYW0gdXNpbmcgYSBtb2JpbGUgcHJldmlldyBhY3RpdmF0ZWQgaW4gQ2hyb21l4oCZcyBkZXZlbG9wbWVudCB0b29scy4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXNjYWZmb2xkLXByZXZpZXcucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtEb27igJl0IGJlIHN1cnByaXNlZCBpZiB5b3VycyBoYXMgYSBibGFjayBiYWNrZ3JvdW5kIGFuZCB3aGl0ZSBmb250LiBJdCB1c2VzIHRoZSBkZWZhdWx0IG1vZGUgb2YgeW91ciBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMiZndDtCdWlsZGluZyB0aGUgVGFzayBNYW5hZ2VyIGFwcGxpY2F0aW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05leHQsIGxldOKAmXMgYmVnaW4gYnVpbGRpbmcgdGhlIG1haW4gYXBwbGljYXRpb24uIEdvIGludG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyIG9mIHlvdXIgYXBwbGljYXRpb24gYW5kIG9wZW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGhvbWUgcGFnZSBmb3IgdGhlIG5ld2x5IHNjYWZmb2xkZWQgYXBwbGljYXRpb24uIFJlbW92ZSBldmVyeXRoaW5nIGluIHRoaXMgZmlsZSBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRzeAoKaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsKICBJb25Db250ZW50LAogIElvbkhlYWRlciwKICBJb25QYWdlLAogIElvblRpdGxlLAogIElvblRvb2xiYXIsCiAgSW9uTGlzdCwKICBJb25JdGVtU2xpZGluZywKICBJb25JdGVtLAogIElvbkxhYmVsLAogIElvbkl0ZW1PcHRpb25zLAogIElvbkl0ZW1PcHRpb24sCiAgSW9uRmFiLAogIElvbkZhYkJ1dHRvbiwKICBJb25JY29uLAogIElvbk1vZGFsLAogIElvbkJ1dHRvbiwKICBJb25DYXJkLAogIElvbkNhcmRDb250ZW50LAogIElvbklucHV0LAp9IGZyb20gJnF1b3Q7QGlvbmljL3JlYWN0JnF1b3Q7OwoKaW1wb3J0IHsgYWRkIH0gZnJvbSAmcXVvdDtpb25pY29ucy9pY29ucyZxdW90OzsKCmltcG9ydCAmcXVvdDsuL1RhYjEuY3NzJnF1b3Q7OwoKaW50ZXJmYWNlIFRhc2sgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwp9Cgpjb25zdCBUYWIxOiBSZWFjdC5GQyA9ICgpID0mYW1wO2d0OyB7CiAgY29uc3QgW3Rhc2tzLCBzZXRUYXNrc10gPSB1c2VTdGF0ZSZhbXA7bHQ7VGFza1tdJmFtcDtndDsoW10pOwogIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7CiAgY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKCiAgZnVuY3Rpb24gYWRkTmV3VGFzaygpIHsKICAgIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogICAgY29uc3QgbmV3VGFzayA9IHsKICAgICAgaWQ6IG5ld19pZCwKICAgICAgbmFtZTogdGFza05hbWUsCiAgICB9OwoKICAgIHRhc2tzLnB1c2gobmV3VGFzayk7CgogICAgc2V0VGFza3ModGFza3MpOwoKICAgIHNldFRhc2tOYW1lKCZxdW90OyZxdW90Oyk7CgogICAgc2V0U2hvd01vZGFsKGZhbHNlKTsKICB9CgogIHJldHVybiAoCiAgICAmYW1wO2x0O0lvblBhZ2UmYW1wO2d0OwogICAgICAmYW1wO2x0O0lvbkhlYWRlciZhbXA7Z3Q7CiAgICAgICAgJmFtcDtsdDtJb25Ub29sYmFyJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uVGl0bGUmYW1wO2d0O1Rhc2sgTWFuYWdlciZhbXA7bHQ7L0lvblRpdGxlJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25Ub29sYmFyJmFtcDtndDsKICAgICAgJmFtcDtsdDsvSW9uSGVhZGVyJmFtcDtndDsKICAgICAgJmFtcDtsdDtJb25Db250ZW50JmFtcDtndDsKICAgICAgICAmYW1wO2x0O0lvbkxpc3QmYW1wO2d0OwogICAgICAgICAge3Rhc2tzLmxlbmd0aCAmYW1wO2d0OyAwID8gKAogICAgICAgICAgICB0YXNrcy5tYXAoKGl0ZW06IFRhc2spID0mYW1wO2d0OyB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbVNsaWRpbmcga2V5PXtpdGVtLmlkfSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbSBjbGFzc05hbWU9JnF1b3Q7dG9kby1pdGVtJnF1b3Q7JmFtcDtndDsKICAgICAgICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDt7aXRlbS5uYW1lfSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbnMgc2lkZT0mcXVvdDtlbmQmcXVvdDsmYW1wO2d0OwogICAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsge319JmFtcDtndDtEb25lJmFtcDtsdDsvSW9uSXRlbU9wdGlvbiZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1PcHRpb25zJmFtcDtndDsKICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1TbGlkaW5nJmFtcDtndDsKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KQogICAgICAgICAgKSA6ICgKICAgICAgICAgICAgJmFtcDtsdDtJb25JdGVtJmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICApfQogICAgICAgICZhbXA7bHQ7L0lvbkxpc3QmYW1wO2d0OwoKICAgICAgICB7LyogTW9kYWwqL30KICAgICAgICAmYW1wO2x0O0lvbk1vZGFsIGlzT3Blbj17c2hvd01vZGFsfSZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkNhcmQmYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICZhbXA7bHQ7SW9uTGFiZWwmYW1wO2d0O0FkZCBOZXcgVGFzayZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAmYW1wO2x0O0lvbkNhcmRDb250ZW50JmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICAgJmFtcDtsdDtJb25JbnB1dAogICAgICAgICAgICAgICAgICB2YWx1ZT17dGFza05hbWV9CiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSZxdW90O0VudGVyIFRhc2sgTmFtZS4uLiZxdW90OwogICAgICAgICAgICAgICAgICBvbklvbkNoYW5nZT17KGUpID0mYW1wO2d0OyBzZXRUYXNrTmFtZShlLmRldGFpbC52YWx1ZSEpfQogICAgICAgICAgICAgICAgJmFtcDtndDsmYW1wO2x0Oy9Jb25JbnB1dCZhbXA7Z3Q7CiAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uCiAgICAgICAgICAgICAgICBleHBhbmQ9JnF1b3Q7ZnVsbCZxdW90OwogICAgICAgICAgICAgICAgY29sb3I9JnF1b3Q7cHJpbWFyeSZxdW90OwogICAgICAgICAgICAgICAgb25DbGljaz17KCkgPSZhbXA7Z3Q7IGFkZE5ld1Rhc2soKX0KICAgICAgICAgICAgICAmYW1wO2d0OwogICAgICAgICAgICAgICAgQWRkIFRhc2sKICAgICAgICAgICAgICAmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkQ29udGVudCZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uIG9uQ2xpY2s9eygpID0mYW1wO2d0OyBzZXRTaG93TW9kYWwoZmFsc2UpfSZhbXA7Z3Q7Q2xvc2UgTW9kYWwmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICZhbXA7bHQ7L0lvbk1vZGFsJmFtcDtndDsKCiAgICAgICAgey8qIEFkZCBUYXNrIEJ1dHRvbiAqL30KICAgICAgICAmYW1wO2x0O0lvbkZhYiB2ZXJ0aWNhbD0mcXVvdDtib3R0b20mcXVvdDsgaG9yaXpvbnRhbD0mcXVvdDtlbmQmcXVvdDsgc2xvdD0mcXVvdDtmaXhlZCZxdW90OyZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkZhYkJ1dHRvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsgc2V0U2hvd01vZGFsKHRydWUpfSZhbXA7Z3Q7CiAgICAgICAgICAgICZhbXA7bHQ7SW9uSWNvbiBpY29uPXthZGR9IC8mYW1wO2d0OwogICAgICAgICAgJmFtcDtsdDsvSW9uRmFiQnV0dG9uJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25GYWImYW1wO2d0OwogICAgICAmYW1wO2x0Oy9Jb25Db250ZW50JmFtcDtndDsKICAgICZhbXA7bHQ7L0lvblBhZ2UmYW1wO2d0OwogICk7Cn07CgpleHBvcnQgZGVmYXVsdCBUYWIxOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyBsZXTigJlzIGdvIHRocm91Z2ggdGhlIGNvZGUgc25pcHBldCBhYm92ZS4gVGhpcyBpcyB0aGUgZW50aXJlIGNvZGUgZm9yIG91ciBUYXNrIE1hbmFnZXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnQgYnkgaW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzIGluY2x1ZGluZyB0aGUgY3NzIGZpbGUgZm9yIG91ciBwYWdlLiBXZSB0aGVuIGRlZmluZSBhbiBpbnRlcmZhY2UgdG8gZGVmaW5lIG91ciB0YXNrIG9iamVjdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtpbnRlcmZhY2UgVGFzayB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7Cn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7TmV4dCwgd2UgY3JlYXRlIG91ciBjb21wb25lbnQgYXMgYSBSZWFjdCBmdW5jdGlvbiBjb21wb25lbnQgdHlwZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtSZWFjdC5GQyZsdDsvY29kZSZndDsgYW5kIGJlZ2luIHRoZSBmdW5jdGlvbiBieSBkZWZpbmluZyB0aGUgZGF0YSB3ZSB3YW50IHRvIGhvbGQgaW4gb3VyIHN0YXRlIHVzaW5nIGhvb2tzOiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tzJmx0Oy9jb2RlJmd0OyBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYXNrJmx0Oy9jb2RlJmd0O3MsIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2hvd01vZGFsJmx0Oy9jb2RlJmd0OyBib29sZWFuIHRvIGNvbnRyb2wgdGhlIG9wZW5pbmcgYW5kIGNsb3Npbmcgb2Ygb3VyIHRhc2sgY3JlYXRpb24gZm9ybSwgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tOYW1lJmx0Oy9jb2RlJmd0OyB3aGljaCBob2xkcyB0aGUgdmFsdWUgb2YgYSBuZXcgdGFzayBpbiB0aGUgcHJvY2VzcyBvZiBjcmVhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IFt0YXNrcywgc2V0VGFza3NdID0gdXNlU3RhdGUmYW1wO2x0O1Rhc2tbXSZhbXA7Z3Q7KFtdKTsKY29uc3QgW3Nob3dNb2RhbCwgc2V0U2hvd01vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTsKY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Rm9sbG93aW5nIHRoZXNlIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdlIGNhbGwgdG8gYWRkIGEgbmV3IHRhc2suIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyB0YXNrIGJ5IHNldHRpbmcgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lkJmx0Oy9jb2RlJmd0OyBiYXNlZCBvbiB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBhbmQgY2xlYXJzIHRoZSBmb3JtIGFmdGVyIGFkZGluZyB0aGUgbmV3IHRhc2sgdG8gb3VyIGV4aXN0aW5nIGxpc3Qgb2YgdGFza3MuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtmdW5jdGlvbiBhZGROZXdUYXNrKCkgewogIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogIGNvbnN0IG5ld1Rhc2sgPSB7CiAgICBpZDogbmV3X2lkLAogICAgbmFtZTogdGFza05hbWUsCiAgfTsKCiAgdGFza3MucHVzaChuZXdUYXNrKTsKCiAgc2V0VGFza3ModGFza3MpOwoKICBzZXRUYXNrTmFtZSgmcXVvdDsmcXVvdDspOwoKICBzZXRTaG93TW9kYWwoZmFsc2UpOwp9CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05leHQsIHdlIHJlbmRlciBvdXIgdGVtcGxhdGUgdG8gZGlzcGxheSBvdXIgbGlzdCBvZiB0YXNrcyBhbmQgYWxzbyBkaXNwbGF5IGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgcmVhZHMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmbHQ7L2NvZGUmZ3Q7IHdoZW4gdGhlIHRhc2sgbGlzdCBpcyBlbXB0eS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtGb2xsb3dpbmcgdGhlIGxpc3QgaXMgYSBtb2RhbCBjb21wb25lbnQgdGhhdCBjb250YWlucyBvdXIgdGFzayBmb3JtIGZvciBhZGRpbmcgbmV3IHRhc2tzLiBCZWxvdyB0aGUgY29tcG9uZW50IGlzIGEgZmxvYXRpbmcgYWN0aW9uIGJ1dHRvbiB0aGF0IHRoZSB1c2VyIGNsaWNrcyB0byBvcGVuIHRoZSBtb2RhbC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWZvcmUgd2UgcHJldmlldyB0aGlzLCBvcGVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEuY3NzJmx0Oy9jb2RlJmd0OyBsb2NhdGVkIGluIHRoZSBzYW1lIGZvbGRlciBhcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRzeCZsdDsvY29kZSZndDsgYW5kIHJlcGxhY2UgaXRzIGNvbnRlbnRzIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Lyogc3JjL3BhZ2VzL1RhYjEuY3NzICovCgoudG9kby1pdGVtIHsKICAtLW1pbi1oZWlnaHQ6IDcwcHg7CiAgZm9udC1zaXplOiAxLjJlbTsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHNpbXBseSBidW1wcyB1cCB0aGUgaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgdGhlIGxpc3QgaXRlbXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm93LCBnbyB0byB5b3VyIGJyb3dzZXIgYW5kIGxvYWQgdGhlIGhvbWVwYWdlIG9mIHlvdXIgYXBwbGljYXRpb24gKFRhYjEpLiBZb3Ugd2lsbCBzZWUgdGhlIHBhZ2UgZGlzcGxheWVkIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1ob21lLW5vLXRhc2tzLnBuZyZxdW90OyAvJmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QmVjYXVzZSB3ZSBoYXZlbuKAmXQgYWRkZWQgYW55IHRhc2tzIHlldCwgd2UgaGF2ZSB0aGUgbWVzc2FnZSAmbHQ7c3Ryb25nJmd0O1lvdSBoYXZlIHlldCB0byBhZGQgdGFza3MgZm9yIHRvZGF5Jmx0Oy9zdHJvbmcmZ3Q7IGRpc3BsYXllZC4gV2UgYWxzbyBoYXZlIG91ciAmbHQ7c3Ryb25nJmd0O0FkZCBUYXNrJmx0Oy9zdHJvbmcmZ3Q7IGJ1dHRvbiBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lciB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwbHVzJmx0Oy9jb2RlJmd0OyBzeW1ib2wuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0FkZGluZyB0YXNrcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBhZGQgYSBuZXcgdGFzaywgY2xpY2sgdGhlIGJvdHRvbS1yaWdodCBibHVlIGJ1dHRvbiB0byBwdWxsIHVwIHRoZSB0YXNrIGNyZWF0aW9uIGZvcm0gYW5kIHR5cGUgaW4gYSB0YXNrIGFzIHNob3duIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtdGFzay5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7QUREIFRBU0smbHQ7L3N0cm9uZyZndDsgdG8gYWRkIHRoZSB0YXNrIGFuZCBnbyBhaGVhZCB0byBhZGQgMiB0byAzIG1vcmUgdGFza3MuIFdlIHNob3VsZCBub3cgaGF2ZSBlbm91Z2ggdGFza3Mgb24gdGhlIHBhZ2UgZm9yIG91ciBhcHBsaWNhdGlvbiB0byBsb29rIGZ1bmN0aW9uYWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXRhc2stbGlzdC5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB3ZSBoYXZlIGEgZnVuY3Rpb25hbCBhcHBsaWNhdGlvbi4gTm90IHByb2R1Y3Rpb24tcmVhZHksIGJ1dCBnb29kIGVub3VnaCB0byBzdGFydCB0ZXN0aW5nLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBZGRpbmcgdGVzdHMgdG8gdGhlIFRhc2sgTWFuYWdlciBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtPbmUgYWR2YW50YWdlIHRoYXQgd2UgaGF2ZSB3aXRoIHRlc3Rpbmcgb3VyIElvbmljIGFwcGxpY2F0aW9ucyBpcyB0aGF0IHdoaWxlIHNjYWZmb2xkaW5nIHRoZSBhcHBsaWNhdGlvbiwgdGhlIElvbmljIENMSSBoYXMgc2V0IHVwIGFsbCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcywgaW4gdGVybXMgb2YgcGFja2FnZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCBmb3IgdGVzdGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUZXN0aW5nIElvbmljIFJlYWN0IGFwcGxpY2F0aW9ucyBpcyBkb25lIHVzaW5nIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vamVzdGpzLmlvLyZxdW90OyZndDtKZXN0Jmx0Oy9hJmd0OyB0ZXN0aW5nIGZyYW1ld29yayB0b2dldGhlciB3aXRoIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdGVzdGluZy1saWJyYXJ5LmNvbS9kb2NzL3JlYWN0LXRlc3RpbmctbGlicmFyeS9pbnRybyZxdW90OyZndDtSZWFjdCBUZXN0aW5nIExpYnJhcnkmbHQ7L2EmZ3Q7IGFuZCB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1yZWFjdC10ZXN0LXV0aWxzJnF1b3Q7Jmd0O0lvbmljIFJlYWN0IFRlc3QgVXRpbHMmbHQ7L2EmZ3Q7IGxpYnJhcnkgd2hpY2ggaXMgYSBzbWFsbCBzdWl0ZSBvZiB1dGlsaXRpZXMgdG8gc2ltdWxhdGUgY29tbW9uIGZlYXR1cmVzIGluIElvbmljIGxpa2UgZmlyaW5nIGN1c3RvbSBJb25pYyBldmVudHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIHByb2plY3QgYWxyZWFkeSBjb21lcyB3aXRoIGEgdGVzdCBmaWxlIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7QXBwLnRzeCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLiBBcyB5b3UgbWF5IGhhdmUgZ3Vlc3NlZCwgdGhlIHRlc3QgZmlsZSBpcyBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtBcHAudGVzdC50c3gmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGZvbGxvd3MgdGhlIGNvbnZlbnRpb24gZm9yIEplc3QgdGVzdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsvLyBzcmMvQXBwLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgQXBwIGZyb20gJnF1b3Q7Li9BcHAmcXVvdDs7Cgp0ZXN0KCZxdW90O3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZyZxdW90OywgKCkgPSZhbXA7Z3Q7IHsKICBjb25zdCB7IGJhc2VFbGVtZW50IH0gPSByZW5kZXIoJmFtcDtsdDtBcHAgLyZhbXA7Z3Q7KTsKICBleHBlY3QoYmFzZUVsZW1lbnQpLnRvQmVEZWZpbmVkKCk7Cn0pOwombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHRlc3Qgc2ltcGx5IGNoZWNrcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiByZW5kZXJzIHByb3Blcmx5IGFuZCBkb2VzIG5vdCBjcmFzaC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBydW4gdGhpcyB0ZXN0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBpbnZva2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2plc3QmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gcnVuIHRoZSB0ZXN0IGRlZmluZWQgaW4gdGhlIGZpbGUuIEFzIGRpcmVjdGVkLCBwcmVzcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDthJmx0Oy9jb2RlJmd0OyB0byBydW4gYWxsIHRlc3RzLiBUaGUgYWJvdmUgY29tbWFuZCBpcyB0aGUgY29tbWFuZCB3ZSB3aWxsIGJlIHVzaW5nIHRvIHJ1biBhbGwgdGVzdHMgaW4gb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgbGV04oCZcyBhZGQgc29tZSB0ZXN0cyBvZiBvdXIgb3duLiBXZSB3aWxsIGJlIGNyZWF0aW5nIGEgdGVzdCBmaWxlIHRvIHRlc3QgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIHdlIGhhdmUgaW4gb3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlIHdoaWNoIGhvdXNlcyBvdXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRlc3QudHN4Jmx0Oy9jb2RlJmd0OyBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyLiBJdOKAmXMgdGhlIHNhbWUgcGxhY2UgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VGFiMS50c3gmbHQ7L2NvZGUmZ3Q7IGZpbGUgaXMgbG9jYXRlZC4gSW5zaWRlIHRoZSBuZXdseSBjcmVhdGVkIGZpbGUsIHBsYWNlIGluIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgVGFiMSBmcm9tICZxdW90Oy4vVGFiMSZxdW90OzsKCnRlc3QoJnF1b3Q7UGFnZSB0aXRsZSBpcyBUYXNrIE1hbmFnZXImcXVvdDssIGFzeW5jICgpID0mYW1wO2d0OyB7CiAgY29uc3QgeyBmaW5kQnlUZXh0IH0gPSByZW5kZXIoJmFtcDtsdDtUYWIxIC8mYW1wO2d0Oyk7CiAgYXdhaXQgZmluZEJ5VGV4dCgmcXVvdDtUYXNrIE1hbmFnZXImcXVvdDspOwp9KTsKCnRlc3QoJnF1b3Q7V2hlbiB0aGVyZSBhcmUgbm8gVGFza3MsIGluZm9ybSB0aGUgdXNlciB0aGF0IG5vIHRhc2tzIGhhdmUgYmVlbiBjcmVhdGVkJnF1b3Q7LCBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IHsgZmluZEJ5VGV4dCB9ID0gcmVuZGVyKCZhbXA7bHQ7VGFiMSAvJmFtcDtndDspOwogIGF3YWl0IGZpbmRCeVRleHQoJnF1b3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmcXVvdDspOwp9KTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBmaWxlLCB3ZSBoYXZlIGFkZGVkIHR3byB0ZXN0cy4gVGhlIGZpcnN0IHRlc3QgY2hlY2tzIGlmIG91ciBwYWdlIGRpc3BsYXlzIHdpdGggdGhlIGNvcnJlY3QgdGl0bGUgd2hpY2ggaXMgJmx0O3N0cm9uZyZndDtUYXNrIE1hbmFnZXImbHQ7L3N0cm9uZyZndDsuIFRoZSBzZWNvbmQgdGVzdCBjaGVja3MgaWYgb3VyIGFwcGxpY2F0aW9uIGluaXRpYWxseSBsb2FkcyB3aXRob3V0IHRhc2tzLCBhbmQgaWYgaXQgZG9lcywgaXQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgJmx0O3N0cm9uZyZndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3csIGxldOKAmXMgcnVuIHRoZXNlIHRlc3RzIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGF0IHRoZSByb290IG9mIG91ciBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSBhIHNjcmVlbiBzaW1pbGFyIHRvIHRoZSBvbmUgYmVsb3cgb24geW91ciBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi10ZXN0cy1sb2NhbC1ydW4ucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIG91ciB0ZXN0cyBydW5uaW5nIGFzIGV4cGVjdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBdXRvbWF0aW5nIG91ciB0ZXN0aW5nJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBmaW5hbCB0YXNrIGlzIHRvIGF1dG9tYXRlIG91ciBjb250aW51b3VzIGludGVncmF0aW9uIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhhdCwgd2Ugd2lsbCBiZSBkb2luZyB0aGUgZm9sbG93aW5nOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QWRkIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgdG8gb3VyIHByb2plY3QgdG8gc2V0IHVwIGEgQ0kgcGlwZWxpbmUgb24gQ2lyY2xlQ0kmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIG91ciBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG9zaXRvcnkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDcmVhdGUgYSBDaXJjbGVDSSBwcm9qZWN0IGZvciBvdXIgYXBwbGljYXRpb24mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtSdW4gdGhlIENJIHBpcGVsaW5lIG9uIENpcmNsZUNJJmx0Oy9saSZndDsKJmx0Oy9vbCZndDsKCiZsdDtwJmd0O0xldOKAmXMgZ2V0IHRvIGl0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZpcnN0LCBsZXTigJlzIGFkZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3Igb3VyIENJIHBpcGVsaW5lIHRvIG91ciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLiBJbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbmZpZy55bWwmbHQ7L2NvZGUmZ3Q7IGZpbGUsIGVudGVyIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpqb2JzOgogIGJ1aWxkOgogICAgd29ya2luZ19kaXJlY3Rvcnk6IH4vcmVwbwogICAgZG9ja2VyOgogICAgICAtIGltYWdlOiBjaW1nL25vZGU6MTIuMTYKICAgIHN0ZXBzOgogICAgICAtIGNoZWNrb3V0CiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdXBkYXRlLW5wbQogICAgICAgICAgY29tbWFuZDogJnF1b3Q7c3VkbyBucG0gaW5zdGFsbCAtZyBucG1ANSZxdW90OwogICAgICAtIHJlc3RvcmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgLSBydW46CiAgICAgICAgICBuYW1lOiBpbnN0YWxsLXBhY2thZ2VzCiAgICAgICAgICBjb21tYW5kOiBucG0gaW5zdGFsbAogICAgICAtIHNhdmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgICAgIHBhdGhzOgogICAgICAgICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdGVzdAogICAgICAgICAgY29tbWFuZDogbnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgY29uZmlndXJhdGlvbiBwdWxscyBpbiBhIE5vZGUuanMgaW1hZ2UgYW5kIGluc3RhbGxzIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGRlZmluZWQgaW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0Oy4gT25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCB0aGUgdGVzdCBzY3JpcHQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bnBtIHJ1biB0ZXN0Jmx0Oy9jb2RlJmd0OyBpcyB0aGVuIGV4ZWN1dGVkIHRvIHJ1biBhbGwgdGhlIHRlc3RzIGluIG91ciBhcHBsaWNhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGdvb2QgdG8gZ28uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY29tbWl0IGFsbCB5b3VyIGNoYW5nZXMgYW5kIHB1c2ggdGhlIHByb2plY3QgdG8gYSBHaXRIdWIgcmVwb3NpdG9yeSBvbiB0aGUgR2l0SHViIGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgQ2lyY2xlQ0kgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIGlzIHRvIHNldCB1cCB0aGUgcmVwb3NpdG9yeSBmb3Igb3VyIHByb2plY3QgYXMgYSBDaXJjbGVDSSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBDaXJjbGVDSSBjb25zb2xlLCBnbyB0byB0aGUgJmx0O3N0cm9uZyZndDtBZGQgUHJvamVjdHMmbHQ7L3N0cm9uZyZndDsgcGFnZSB0byBhZGQgdGhlIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtcHJvamVjdC5wbmcmcXVvdDsgYWx0PSZxdW90O0FkZCBQcm9qZWN0JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0Oy4gVGhpcyB3aWxsIGxvYWQgdGhlIG5leHQgc2NyZWVuLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3N0YXJ0LWJ1aWxkaW5nMS5wbmcmcXVvdDsgYWx0PSZxdW90O1N0YXJ0IEJ1aWxkaW5nIC0gQ29uZmlnIHNhbXBsZSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBzZXR1cCBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7LiBCZWZvcmUgdGhlIGJ1aWxkIHN0YXJ0cywgeW91IGdldCBhIHByb21wdCB0byBlaXRoZXIgZG93bmxvYWQgYW5kIHVzZSB0aGUgcHJvdmlkZWQgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBoYXZlIGl0IG9uIGEgc2VwYXJhdGUgYnJhbmNoIG9yIHNldCB1cCBvbmUgbWFudWFsbHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzIucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIEFkZCBtYW51YWxseSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1NlbGVjdCAmbHQ7c3Ryb25nJmd0O0FkZCBNYW51YWxseSZsdDsvc3Ryb25nJmd0OyB0byBwcm9jZWVkLiBUaGlzIHdpbGwgcHJvbXB0IGFub3RoZXIgZGlhbG9nIHRoYXQgY2hlY2tzIHRvIGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXQgdXAgdG8gYmVnaW4gYnVpbGRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzMucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIENvbmZpcm0gY29uZmlndXJhdGlvbiZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsgdG8gY29tcGxldGUgdGhlIHNldHVwLiBUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgcGlwZWxpbmUgdXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBvdXIgcHJvamVjdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGUgYnVpbGQgaXMgZG9uZSBydW5uaW5nLCB5b3Ugd2lsbCBnZXQgYSBzdWNjZXNzZnVsIGJ1aWxkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtc3VjY2Vzc2Z1bC5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHN1Y2Nlc3NmdWwmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O2J1aWxkJmx0Oy9zdHJvbmcmZ3Q7IHRvIHNlZSB0aGUgYmVoaW5kLXRoZS1zY2VuZXMgcHJvY2VzcyhJIGhhdmUgY29sbGFwc2VkIHRoZSAmbHQ7ZW0mZ3Q7dGVzdCZsdDsvZW0mZ3Q7IHN0ZXApLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtcHJvY2Vzcy5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHByb2Nlc3MmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBzY3JlZW4sIG91ciBwcm9qZWN0IGlzIHByb3Blcmx5IHNldCB1cCBhbmQgYWxsIG91ciB0ZXN0cyBhcmUgcnVubmluZyBmaW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgYXMgeW91IGRldmVsb3AsIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgbW9yZSBmZWF0dXJlcywgYWRkIHRlc3RzIHRvIHRoZW0gYW5kIHB1c2ggdG8gR2l0SHViLiBPbmNlIHlvdSBwdXNoLCB0aGUgQ0kgcGlwZWxpbmUgd2lsbCBydW4gYW5kIGFsbCB5b3VyIHRlc3RzIHdpbGwgYmUgZXhlY3V0ZWQuIElmIGFueSB0ZXN0IGZhaWxzLCB5b3VyIGJ1aWxkIHdpbGwgZmFpbCB3aGljaCB3aWxsIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbiB0byBiZSBmaXhlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW914oCZcmUgbm90IHB1c2hpbmcgYW55IGJ1Z3MgaW50byB5b3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIHRoaXMgYXJ0aWNsZSwgd2UgaGF2ZSBzZXQgdXAgYW4gYXV0b21hdGVkIENJIHBpcGVsaW5lIGZvciBvdXIgSW9uaWMgYXBwbGljYXRpb25zIHRvIGltcHJvdmUgb3VyIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGF1dG9tYXRpbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4gSGF2aW5nIGEgQ0kgcGlwZWxpbmUgdGhhdCBwcm9wZXJseSBydW5zIG91ciB0ZXN0cyBwcm90ZWN0cyB1cyBhZ2FpbnN0IG91cnNlbHZlcyBieSBlbnN1cmluZyB0aGF0IHdlIGRvbuKAmXQgZW5kIHVwIHdpdGggYnJva2VuIGFwcGxpY2F0aW9ucyBvciB0aGF0IHdlIGRvbuKAmXQgcHVzaCBidWdneSBjb2RlIHRvIG91ciB0ZWFt4oCZcyByZXBvc2l0b3J5IHdoaWxlIHdvcmtpbmcgdG9nZXRoZXIgb24gYSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyA6KSZsdDsvcCZndDsKCiZsdDtociAvJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3R3aXR0ZXIuY29tL2NvZGVyb25mbGVlaz9sYW5nPWVuJnF1b3Q7Jmd0O0Zpa2F5byZsdDsvYSZndDsgaXMgYSBmdWxsc3RhY2sgZGV2ZWxvcGVyIGFuZCBhdXRob3Igd2l0aCBvdmVyIGEgZGVjYWRlIG9mIGV4cGVyaWVuY2UgZGV2ZWxvcGluZyB3ZWIgYW5kIG1vYmlsZSBzb2x1dGlvbnMuIEhlIGlzIGN1cnJlbnRseSB0aGUgU29mdHdhcmUgTGVhZCBhdCBUZWNoIFNwZWNpYWxpc3QgQ29uc3VsdGluZyBhbmQgZGV2ZWxvcHMgY291cnNlcyBmb3IgUGFja3QgYW5kIFVkZW15LiBIZSBoYXMgYSBzdHJvbmcgcGFzc2lvbiBmb3IgdGVhY2hpbmcgYW5kIGhvcGVzIHRvIGJlY29tZSBhIGZ1bGwtdGltZSBhdXRob3IuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5EcmF3biBPdXQgQ29udmVyc2F0aW9ucywgZmVhdHVyaW5nIENpcmNsZUNJIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlciwgUGF0IFNoaWVsZHM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZHJhd24tb3V0LWNvbnZlcnNhdGlvbi1mZWF0dXJpbmctY2lyY2xlY2ktcHJpbmNpcGFsLXNvZnR3YXJlLWVuZ2luZWVyLXBhdC1zaGllbGRzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5GcmksIDE1IE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RyYXduLW91dC1jb252ZXJzYXRpb24tZmVhdHVyaW5nLWNpcmNsZWNpLXByaW5jaXBhbC1zb2Z0d2FyZS1lbmdpbmVlci1wYXQtc2hpZWxkcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Db3JleSBMZXdpczwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtPbiB0aGlzIGVwaXNvZGUgb2YgRHJhd24gT3V0IENvbnZlcnNhdGlvbnMsIHdlIHRhbGsgYWJvdXQgc29tZXRoaW5nIG5lYXIgYW5kIGRlYXIgdG8gb3VyIGhlYXJ0cyDigJMgQ2lyY2xlQ0kuIFdlLCBhbG9uZyB3aXRoIGh1bmRyZWQgb2YgdGhvdXNhbmRzIG9mIG90aGVyIGRldmVsb3BlcnMgYXQgY29tcGFuaWVzIGxpa2UgU3BvdGlmeSwgRmFjZWJvb2ssIEZvcmQgYW5kIEFldG5hLCB1c2UgQ2lyY2xlQ0kgZXZlcnkgZGF5IHRvIG1ha2Ugc3VyZSB0aGF0IHdl4oCZcmUgZGVwbG95aW5nIHF1YWxpdHkgY29kZSwgYW5kIGJ1aWxkaW5nIGVmZmljaWVuY2llcyBpbnRvIG91ciBlbmdpbmVlcmluZyBwcm9jZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0LCB3aGF0IGV4YWN0bHkgaXMgdW5kZXJuZWF0aCBvdXIgcGxhdGZvcm3igJlzIGhvb2Q/Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Sm9pbiBvdXIgQ1RPIFJvYiBadWJlciBhcyBoZSBob3N0cyBDaXJjbGVDSeKAmXMgUHJpbmNpcGFsIFNvZnR3YXJlIEVuZ2luZWVyIFBhdCBTaGllbGRzIHRvIGRpc2N1c3MgdGhlIGlubmVyLXdvcmtpbmdzIG9mIG91ciB0ZWNobm9sb2d5IGFuZCBwbGF0Zm9ybS4gVGhleSBkaXNjdXNzIGV2ZXJ5dGhpbmcgZnJvbSBwcm9kdWN0IGZlYXR1cmVzIHRvIGFyY2hpdGVjdHVyZSBhbmQgdGFsayBhYm91dCBob3cgYW5kIHdoeSB0aGUgY29yZSBlbGVtZW50cyBvZiBvdXIgcGxhdGZvcm0gZ290IGJ1aWx0LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3JvYi1wYXQucG5nJnF1b3Q7IGFsdD0mcXVvdDtyb2ItcGF0LnBuZyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1JvYiBldmVuIHRha2VzIGEgdHVybiB3aXRoIHRoZSBtYXJrZXJzIHRvIGRpc2N1c3MgZG9tYWluLWRyaXZlbiBkZXNpZ24sIGF1dGhlbnRpY2F0aW9uIGFuZCBtb3JlLiBMZWFybiBldmVyeXRoaW5nIHlvdSBldmVyIHdhbnRlZCB0byBrbm93IGFib3V0IENpcmNsZUNJIGFuZCBtb3JlIGluIHRvZGF54oCZcyBjb252ZXJzYXRpb24uJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXImcXVvdDsmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3lvdXR1LmJlL1dMOVJRNmZNbGUwJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvY2lyY2xlY2kuZ2lmJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsKICAmbHQ7L2EmZ3Q7CgombHQ7YnIgLyZndDsKCiAgJmx0O3AmZ3Q7CiAgICAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8veW91dHUuYmUvV0w5UlE2Zk1sZTAmcXVvdDsgc3R5bGU9JnF1b3Q7Y29sb3I6IzAwMDBFRTsmcXVvdDsmZ3Q7CiAgICAgIFdhdGNoIHRoZSBmdWxsIHZpZGVvIGhlcmUKICAgICZsdDsvYSZndDsKICAmbHQ7L3AmZ3Q7CiZsdDsvZGl2Jmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZG8gSSB1c2UgSW5mcmFzdHJ1Y3R1cmUgYXMgQ29kZT88L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWRvLWktaWFjLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE1heSAyMDIwIDEyOjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2hvdy1kby1pLWlhYy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5BbmdlbCBSaXZlcmE8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7SW5mcmFzdHJ1Y3R1cmUgYXMgY29kZSAoSWFDKSBpcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBhbmQgcHJvdmlzaW9uaW5nIGNsb3VkIGFuZCBJVCByZXNvdXJjZXMgdmlhIG1hY2hpbmUgcmVhZGFibGUgZGVmaW5pdGlvbiBmaWxlcyBhbmQgaXMgYSBwYXJ0IG9mIG1vZGVybiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lcy4gSWFDIGVuYWJsZXMgb3JnYW5pemF0aW9ucyB0byBwcm92aXNpb24sIG1hbmFnZSwgYW5kIGRlc3Ryb3kgY29tcHV0ZSByZXNvdXJjZXMgdXNpbmcgbW9kZXJuIERldk9wcyB0b29scy4gSWFDIGVuYWJsZXMgdGhpcyBieSBzdGF0aWNhbGx5IGRlZmluaW5nIGFuZCBkZWNsYXJpbmcgdGhlc2UgcmVzb3VyY2VzIGluIGNvZGUsIHRoZW4gZGVwbG95aW5nIGFuZCBkeW5hbWljYWxseSBtYWludGFpbmluZyB0aGVzZSByZXNvdXJjZXMgdmlhIGNvZGUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gcmVjZW50IGludGVyYWN0aW9ucyB3aXRoIGRldmVsb3BlcnMsIEnigJl2ZSByZWFsaXplZCB0aGF0IG1hbnkgYXJlIGVpdGhlciBub3QgYXdhcmUgb2YgSWFDLCBvciBhcmUgYXdhcmUgYnV0IGhhdmUgYWJhbmRvbmVkIHRoZWlyIGluaXRpYWwgZWZmb3J0cyBiZWNhdXNlIHJhbXBpbmcgdXAgd2FzIHRvbyBjdW1iZXJzb21lLiBJbiB0aGlzIHBvc3QsIEkgd2lsbCBkaXNjdXNzIHRoZSBiZW5lZml0cyBvZiBJYUMgYW5kIHNvbWUgb2YgdGhlIHRvb2xpbmcgb3B0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgYWxvbmcgd2l0aCBhIGJyaWVmIGRlbW9uc3RyYXRpb24gb24gaG93IHRvIHVzZSB0aGVtIGluIGhvcGVzIG9mIGVhc2luZyB0aGUgdHJhbnNpdGlvbiB0byB1c2luZyBJYUMuIEkgd2lsbCBmb2N1cyBvbiB0aGUgdHdvIG1vc3QgcG9wdWxhciBJYUMgdG9vbHMgdXNlZCBpbiB0aGUgaW5kdXN0cnkgdG9kYXk6ICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cudGVycmFmb3JtLmlvLyZxdW90OyZndDtIYXNoaUNvcnDigJlzIFRlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtCZWZvcmUgeW91IGdldCBzdGFydGVkLCB5b3XigJlsbCBuZWVkIHRvIGhhdmUgdGhlc2UgdGhpbmdzOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9mcmVlJnF1b3Q7Jmd0O0dvb2dsZSBDbG91ZCZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NyZWF0ZSBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3Jlc291cmNlLW1hbmFnZXIvZG9jcy9jcmVhdGluZy1tYW5hZ2luZy1wcm9qZWN0cyNjcmVhdGluZ19hX3Byb2plY3QmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIHByb2plY3QmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FwcC5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkgQVBJIHRva2VuJmx0Oy9hJmd0OyBhbmQgc2F2ZSBpdCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgbG9jYWwgaW5zdGFsbCBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vc2RrL2RvY3MvcXVpY2tzdGFydHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIFNESyBDTEkmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSBsb2NhbCBpbnN0YWxsIG9mIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaHViLmRvY2tlci5jb20vc2VhcmNoLz90eXBlPWVkaXRpb24mYW1wO2FtcDtvZmZlcmluZz1jb21tdW5pdHkmcXVvdDsmZ3Q7RG9ja2VyIGNsaWVudCZsdDsvYSZndDsmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBHb29nbGUgQ2xvdWQgcHJvamVjdCBjcmVkZW50aWFscyZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDbG91ZFBsYXRmb3JtL2NvbW11bml0eS9ibG9iL21hc3Rlci90dXRvcmlhbHMvZ2V0dGluZy1zdGFydGVkLW9uLWdjcC13aXRoLXRlcnJhZm9ybS9pbmRleC5tZCNnZXR0aW5nLXByb2plY3QtY3JlZGVudGlhbHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIGNyZWRlbnRpYWxzJmx0Oy9hJmd0OyBpbiBvcmRlciB0byBwZXJmb3JtIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgdXNpbmcgSWFDIHRvb2xpbmcuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9hcGlzL2NyZWRlbnRpYWxzL3NlcnZpY2VhY2NvdW50a2V5JnF1b3Q7Jmd0O0NyZWF0ZSBTZXJ2aWNlIEFjY291bnQgS2V5IHBhZ2UmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7U2VsZWN0IHRoZSBkZWZhdWx0IHNlcnZpY2UgYWNjb3VudCBvciBjcmVhdGUgYSBuZXcgb25lLCBzZWxlY3QgSlNPTiBhcyB0aGUga2V5IHR5cGUsIGFuZCBjbGljayAmbHQ7c3Ryb25nJmd0O0NyZWF0ZSZsdDsvc3Ryb25nJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O1NhdmUgdGhpcyBKU09OIGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgYW5kIHJlbmFtZSB0aGUgZmlsZSB0byAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaWNkX2RlbW9fZ2NwX2NyZWRzLmpzb24mbHQ7L2NvZGUmZ3Q7LiBUaGlzIGlzICZsdDtzdHJvbmcmZ3Q7dmVyeSBpbXBvcnRhbnQmbHQ7L3N0cm9uZyZndDsgZm9yIGVuYWJsaW5nIHRoZSBHb29nbGUgQ2xvdWQgQ0xJIGluIHRoZSBjb250YWluZXIgbGF0ZXIgb24mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBhIFB1bHVtaSBBUEkgdG9rZW4mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7WW91IHdpbGwgbmVlZCB0byBnZXQgYSBQdWx1bWkgQVBJIHRva2VuIHRvIHN0b3JlIHlvdXIgcHJvamVjdCBzdGF0ZSBvbiBQdWx1bWnigJlzIGJhY2tlbmQgY2xvdWQuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vYXBwLnB1bHVtaS5jb20vJnF1b3Q7Jmd0O2FwcC5wdWx1bWkuY29tLyZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1NlbGVjdCBhbiBPcmdhbml6YXRpb24mbHQ7L3N0cm9uZyZndDsgb24gdGhlIHVwcGVyIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSBhbmQgc2VsZWN0IHlvdXIgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O0FjY2VzcyBUb2tlbnMmbHQ7L3N0cm9uZyZndDsgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7TmV3IEFjY2VzcyBUb2tlbiZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7Q3JlYXRlJmx0Oy9zdHJvbmcmZ3Q7IGFuZCBzYXZlIHRoZSBuZXcgQVBJIHRva2VuIHRoYXQgd2FzIGNyZWF0ZWQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemUgeW91ciBQdWx1bWkgcHJvamVjdCBsYXRlciZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7aDImZ3Q7RG9ja2VyIHB1bGwgSWFDMTAxIERvY2tlciBpbWFnZSZsdDsvaDImZ3Q7CgombHQ7cCZndDtBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlZCBhbmQgeW914oCZcmUgcmVhZHkgdG8gcHVsbCB0aGUgZG9ja2VyIGltYWdlIGZvciB0aGlzIHdvcmtzaG9wLiBJbiB0ZXJtaW5hbCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBwdWxsIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm93IGhhdmUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2FyaXYzcmEvaWFjMTAxJmx0Oy9jb2RlJmd0OyBkb2NrZXIgaW1hZ2UgbG9jYWxseS4gWW91IGNhbiB2ZXJpZnkgYnV5IHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgYW5kIHlvdSBzaG91bGQgc2VlIHRoZSBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0RvY2tlciBydW4gSWFDMTAxIGNvbnRhaW5lciZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgd2XigJlsbCBjcmVhdGUgYSBuZXcgRG9ja2VyIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YXJpdjNyYS9pYWMxMDEmbHQ7L2NvZGUmZ3Q7IGltYWdlIHdoaWNoIGhhcyBhbGwgdGhlIElhQyB0b29scyBhbmQgY29kZSBwcmUtYmFrZWQuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O01vdW50aW5nIHRoZSAvLmNvbmZpZy9nY2xvdWQvIGRpcmVjdG9yeSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtCZWZvcmUgcnVubmluZyB0aGUgbmV3IGNvbnRhaW5lciB5b3UgbmVlZCB0aGUgYWJzb2x1dGUgcGF0aCB0byB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkuIE9uIG15IE1hY09TIG1hY2hpbmUsIG15IGFic29sdXRlIHBhdGggaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7L1VzZXJzL2FuZ2VsLy5jb25maWcvZ2Nsb3VkLyZsdDsvY29kZSZndDsuIEJlIHN1cmUgdG8gZ2V0IHlvdXIgYWJzb2x1dGUgZmlsZSBwYXRoIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2Nsb3VkJmx0Oy9jb2RlJmd0OyBkaXJlY3Rvcnkgb24geW91ciBsb2NhbCBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtSdW4gSWFDMTAxIGNvbnRhaW5lciB3aXRoIG1vdW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtSdW4gdGhpcyBjb21tYW5kIGluIGEgdGVybWluYWwgcnVuIGJ1dCBiZSBzdXJlIHRvIHJlcGxhY2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0OyZsdDsvY29kZSZndDsgYml0IHdpdGggeW91ciBhY3R1YWwgYWJzb2x1dGUgcGF0aCB0byB5b3VyIGxvY2FsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dsb2N1ZC8mbHQ7L2NvZGUmZ3Q7ZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtaXQgLS1uYW1lIGlhY3Rlc3QgLS1tb3VudCB0eXBlPWJpbmQsc291cmNlPSZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0Oy5jb25maWcvZ2Nsb3VkLyx0YXJnZXQ9L3Jvb3QvLmNvbmZpZy9nY2xvdWQvIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJYUMxMDEgY29udGFpbmVyIGlzIHJ1bm5pbmcmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGUgcHJldmlvdXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgeW91ciBJYUMxMDEgY29udGFpbmVyIHdpbGwgYmUgdXAgYW5kIHJ1bm5pbmcgYW5kIHlvdXIgdGVybWluYWwgc2hlbGwgaGFzIGRyb3BwZWQgeW91IGludG8gdGhlIHJ1bm5pbmcgY29udGFpbmVyLiBFdmVyeSBjb21tYW5kIHlvdSBydW4gaW4geW91ciB0ZXJtaW5hbCBzaGVsbCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBEb2NrZXIgY29udGFpbmVyIGZyb20gbm93IG9uIHVudGlsIHlvdSBtYW51YWxseSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtleGl0Jmx0Oy9jb2RlJmd0OyB0aGUgY29udGFpbmVyLiBUaGUgY29udGFpbmVyIGhhcyB0aGUgVGVycmFmb3JtIGFuZCBQdWx1bWkgQ0xJIHRvb2xzIGluc3RhbGxlZCwgYXMgd2VsbCBhcyBleGFtcGxlIGNvZGUgZm9yIGVhY2ggdGhhdCBjcmVhdGVzIGluZnJhc3RydWN0dXJlIGluIHRoZWlyIHJlc3BlY3RpdmUgdG9vbHMuIFRoZSBjb250YWluZXIgcHJvamVjdHMgZmlsZXMgYXJlIG1hcHBlZCBhcyBmb2xsb3dzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHJvamVjdHMvCnxfIHRlcnJhZm9ybS9nY3AvY29tcHV0ZS8gICAjIENvbnRhaW5zIHRoZSBUZXJyYWZvcm0gY29kZSBmaWxlcwp8XyBwdWx1bWkvZ2NwL2NvbXB1dGUvICAgICAgIyBDb250YWlucyB0aGUgUHVsdW1pIGNvZGUgZmlsZXMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gyJmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2EmZ3Q7IGlzIGEgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgYnVpbGRpbmcsIGNoYW5naW5nLCBhbmQgdmVyc2lvbmluZyBpbmZyYXN0cnVjdHVyZSBzYWZlbHkgYW5kIGVmZmljaWVudGx5LiBUZXJyYWZvcm0gY2FuIG1hbmFnZSBleGlzdGluZyBzZXJ2aWNlIHByb3ZpZGVycyBhcyB3ZWxsIGFzIGN1c3RvbSBpbi1ob3VzZSBzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q29uZmlndXJhdGlvbiBmaWxlcyBkZXNjcmliZSB0aGUgY29tcG9uZW50cyBuZWVkZWQgdG8gcnVuIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yIHlvdXIgZW50aXJlIGRhdGFjZW50ZXIgb24gVGVycmFmb3JtLiBUZXJyYWZvcm0gZ2VuZXJhdGVzIGFuIGV4ZWN1dGlvbiBwbGFuIGRlc2NyaWJpbmcgd2hhdCBpdCB3aWxsIGRvIHRvIHJlYWNoIHRoZSBkZXNpcmVkIHN0YXRlLCBhbmQgdGhlbiBleGVjdXRlcyBpdCB0byBidWlsZCB0aGUgZGVzY3JpYmVkIGluZnJhc3RydWN0dXJlLiBBcyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBUZXJyYWZvcm0gaXMgYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBjaGFuZ2VkIGFuZCBjcmVhdGUgaW5jcmVtZW50YWwgZXhlY3V0aW9uIHBsYW5zIHdoaWNoIGNhbiBiZSBhcHBsaWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZSBpbmZyYXN0cnVjdHVyZSBUZXJyYWZvcm0gY2FuIG1hbmFnZSBpbmNsdWRlcyBsb3ctbGV2ZWwgY29tcG9uZW50cyBzdWNoIGFzIGNvbXB1dGUgaW5zdGFuY2VzLCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZywgYXMgd2VsbCBhcyBoaWdoLWxldmVsIGNvbXBvbmVudHMgc3VjaCBhcyBETlMgZW50cmllcywgU2FhUyBmZWF0dXJlcywgZXRjLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBUZXJyYWZvcm0mbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCB3aXRoIHByb3Zpc2lvbmluZyBzb21lIHJlc291cmNlcyBpbiBHQ1AgdXNpbmcgVGVycmFmb3JtIGNvZGUuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDttYWluLnRmICZsdDsvY29kZSZndDsgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBjb2RlIHRoYXQgaGFzIG91ciBpbmZyYXN0cnVjdHVyZSBkZWZpbmVkLiBJbiB0aGlzIGZpbGUgd2XigJlyZSBjcmVhdGluZyBhIG5ldyBjb21wdXRlIGluc3RhbmNlIHRoYXQgd2lsbCBpbnN0YWxsIGFuZCBydW4gYSBQeXRob24gRmxhc2sgYXBwIHBhY2thZ2VkIGluIGEgRG9ja2VyIGNvbnRhaW5lci4gVGhlIFRlcnJhZm9ybSBjb2RlIHdpbGwgYWxzbyBjcmVhdGUgc29tZSBmaXJld2FsbCBydWxlcyB0aGF0IHdpbGwgYWxsb3cgcHVibGljIGFjY2VzcyB0byB0aGUgYXBwIG92ZXIgcG9ydCA1MDAwLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHByb3Zpc2lvbiB0aGlzLCBydW4gdGhpcyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NkIH4vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJbml0aWFsaXppbmcgVGVycmFmb3JtJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1doaWxlIGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBydW4gdGhpcyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7dGVycmZvcm0gaW5pdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSByZXN1bHRzIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cm9vdEBkOWNlNzIxMjkzZTI6fi9wcm9qZWN0L3RlcnJhZm9ybS9nY3AvY29tcHV0ZSMgdGVycmFmb3JtIGluaXQKCkluaXRpYWxpemluZyB0aGUgYmFja2VuZC4uLgoKSW5pdGlhbGl6aW5nIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBDaGVja2luZyBmb3IgYXZhaWxhYmxlIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBEb3dubG9hZGluZyBwbHVnaW4gZm9yIHByb3ZpZGVyICZxdW90O2dvb2dsZSZxdW90OyAoaGFzaGljb3JwL2dvb2dsZSkgMy4xMC4wLi4uCgoqIHByb3ZpZGVyLmdvb2dsZTogdmVyc2lvbiA9ICZxdW90O34mYW1wO2d0OyAzLjEwJnF1b3Q7CgpUZXJyYWZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7aDMmZ3Q7UHJldmlld2luZyB3aXRoIFRlcnJhZm9ybSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUZXJyYWZvcm0gaGFzIGEgY29tbWFuZCB0aGF0IGFsbG93cyB5b3UgdG8gZHJ5IHJ1biBhbmQgdmFsaWRhdGUgeW91ciBUZXJyYWZvcm0gY29kZSB3aXRob3V0IGFjdHVhbGx5IGV4ZWN1dGluZyBhbnl0aGluZy4gVGhlIGNvbW1hbmQgaXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybSBwbGFuJmx0Oy9jb2RlJmd0OyB3aGljaCBhbHNvIGdyYXBocyBhbGwgdGhlIGFjdGlvbnMgYW5kIGNoYW5nZXMgdGhhdCBUZXJyYWZvcm0gd2lsbCBleGVjdXRlIGFnYWluc3QgeW91ciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS4gSW4gdGhlIHRlcm1pbmFsIHJ1bjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3RlcnJhZm9ybSBwbGFuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSByZXN1bHRzIHNpbWlsYXIgdG8gdGhpcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0FuIGV4ZWN1dGlvbiBwbGFuIGhhcyBiZWVuIGdlbmVyYXRlZCBhbmQgaXMgc2hvd24gYmVsb3cuClJlc291cmNlIGFjdGlvbnMgYXJlIGluZGljYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKICArIGNyZWF0ZQoKVGVycmFmb3JtIHdpbGwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGFjdGlvbnM6CgogICMgZ29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwuaHR0cC01MDAwIHdpbGwgYmUgY3JlYXRlZAogICsgcmVzb3VyY2UgJnF1b3Q7Z29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwmcXVvdDsgJnF1b3Q7aHR0cC01MDAwJnF1b3Q7IHsKICAgICAgKyBjcmVhdGlvbl90aW1lc3RhbXAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVzdGluYXRpb25fcmFuZ2VzID0gKGtub3duIGFmdGVyIGFwcGx5KQogIH0KCiAgICAjIGdvb2dsZV9jb21wdXRlX2luc3RhbmNlLmRlZmF1bHQgd2lsbCBiZSBjcmVhdGVkCiAgKyByZXNvdXJjZSAmcXVvdDtnb29nbGVfY29tcHV0ZV9pbnN0YW5jZSZxdW90OyAmcXVvdDtkZWZhdWx0JnF1b3Q7IHsKICAgICAgKyBjYW5faXBfZm9yd2FyZCAgICAgICA9IGZhbHNlCiAgICAgICsgY3B1X3BsYXRmb3JtICAgICAgICAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVsZXRpb25fcHJvdGVjdGlvbiAgPSBmYWxzZQogICAgICArIGd1ZXN0X2FjY2VsZXJhdG9yICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGlkICAgICAgICAgICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGluc3RhbmNlX2lkICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVsX2ZpbmdlcnByaW50ICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVscyAgICAgICAgICAgICAgID0gewogICAgICAgICAgKyAmcXVvdDtjb250YWluZXItdm0mcXVvdDsgPSAmcXVvdDtjb3Mtc3RhYmxlLTY5LTEwODk1LTYyLTAmcXVvdDsKICAgICAgICB9CiAgICAgICsgbWFjaGluZV90eXBlICAgICAgICAgPSAmcXVvdDtnMS1zbWFsbCZxdW90OwogIH0KICBQbGFuOiAyIHRvIGFkZCwgMCB0byBjaGFuZ2UsIDAgdG8gZGVzdHJveS4KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgeW91IGNhbiBzZWUsIFRlcnJhZm9ybSBpcyBnb2luZyB0byBjcmVhdGUgbmV3IEdDUCByZXNvdXJjZXMgZm9yIHlvdSBiYXNlZCBvbiB0aGUgY29kZSBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bWFpbi50ZiZsdDsvY29kZSZndDsgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGFwcGx5Jmx0Oy9oMyZndDsKCiZsdDtwJmd0O05vdyB5b3XigJlyZSByZWFkeSB0byBjcmVhdGUgdGhlIG5ldyBpbmZyYXN0cnVjdHVyZSBhbmQgZGVwbG95IHRoZSBhcHBsaWNhdGlvbi4gUnVuIHRoaXMgY29tbWFuZCBpbiB0aGUgdGVybWluYWw6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt0ZXJyYWZvcm0gYXBwbHkKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGVycmFmb3JtIHdpbGwgcHJvbXB0IHlvdSB0byBjb25maXJtIHlvdXIgY29tbWFuZC4gVHlwZSB5ZXMgYW5kIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0RvIHlvdSB3YW50IHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucz8KICBUZXJyYWZvcm0gd2lsbCBwZXJmb3JtIHRoZSBhY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KICBPbmx5ICd5ZXMnIHdpbGwgYmUgYWNjZXB0ZWQgdG8gYXBwcm92ZS4KCiAgRW50ZXIgYSB2YWx1ZTogeWVzCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RlcnJhZm9ybSB3aWxsIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgYW5kIHlvdSB3aWxsIGhhdmUgYW4gYXBwbGljYXRpb24gdXAgYW5kIHJ1bm5pbmcgb24gR0NQIHNob3J0bHkgYWZ0ZXIgaXQgY29tcGxldGVzLiBQbGVhc2Ugbm90ZSB0aGF0IGl0IHdpbGwgdGFrZSAzLTUgbWludXRlcyBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbWUgb25saW5lIGFmdGVyIFRlcnJhZm9ybSBjb21wbGV0ZXMuIEl04oCZcyBub3QgYW4gaW5zdGFudCBwcm9jZXNzIGJlY2F1c2UgdGhlIGJhY2tlbmQgc3lzdGVtcyBhcmUgcHJvdmlzaW9uaW5nIGFuZCBicmluZ2luZyB0aGluZ3Mgb25saW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgZG9uZSwgeW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7bGFuZ3VhZ2Utc2hlbGwgaGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7T3V0cHV0czoKClB1YmxpY19JUF9BZGRyZXNzICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgMzQuNzQuNzUuMTcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1B1YmxpY19JUF9BZGRyZXNzJmx0Oy9jb2RlJmd0OyB2YWx1ZSBpcyB0aGUgSVAgQWRkcmVzcyB0aGF0IHlvdXIgYXBwIGlzIHJ1bm5pbmcgb24sIHNvIGlmIHlvdSBnbyB0byBhIGJyb3dzZXIgYW5kIHBsdWcgdGhhdCBudW1iZXIgaW4gcGx1cyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7OjUwMDAmbHQ7L2NvZGUmZ3Q7IHBvcnQgYWRkcmVzcyAoaXQgd291bGQgbG9vayBsaWtlIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7MzQuNzQuNzUuMTc6NTAwMCZsdDsvY29kZSZndDspIHlvdSB3aWxsIHNlZSB5b3VyIGFwcCBydW5uaW5nIGluIEdDUC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Tm93IHRoYXQgeW91IGhhdmUgcHJvb2YgdGhhdCB5b3VyIEdvb2dsZSBDb21wdXRlIGluc3RhbmNlIGFuZCB5b3VyIGFwcGxpY2F0aW9uIHdvcmssIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gZGVzdHJveSB0aGUgYXNzZXRzIHRoYXQgeW91IGNyZWF0ZWQgaW4gdGhpcyB0dXRvcmlhbC4gWW91IGNhbiBsZWF2ZSBpdCB1cCBhbmQgcnVubmluZywgYnV0IGJlIGF3YXJlIHRoYXQgdGhlcmUgaXMgYSBjb3N0IGFzc29jaWF0ZWQgd2l0aCBhbnkgYXNzZXRzIHJ1bm5pbmcgb24gdGhlIEdvb2dsZSBDbG91ZCBQbGF0Zm9ybSBhbmQgeW91IHdpbGwgYmUgbGlhYmxlIGZvciB0aG9zZSBjb3N0cy4gR29vZ2xlIGdpdmVzIGEgZ2VuZXJvdXMgJDMwMCBjcmVkaXQgZm9yIGl0cyBmcmVlIHRyaWFsIHNpZ24tdXAsIGJ1dCB5b3UgY291bGQgZWFzaWx5IGVhdCB0aHJvdWdoIHRoYXQgaWYgeW91IGxlYXZlIGFzc2V0cyBydW5uaW5nLiBJdOKAmXMgdXAgdG8geW91LCBidXQgcnVubmluZyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0ZXJyYWZvcm0gZGVzdHJveSZsdDsvY29kZSZndDsgd2lsbCB0ZXJtaW5hdGUgYW55IHJ1bm5pbmcgYXNzZXRzLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIEnigJlsbCBkZW1vbnN0cmF0ZSBob3cgdG8gcGVyZm9ybSBpbmZyYXN0cnVjdHVyZSBwcm92aXNpb25pbmcgdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtQdWx1bWkgU0RLJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9wcm9kdWN0LyNzZGsmcXVvdDsmZ3Q7UHVsdW1pIFNESyZsdDsvYSZndDsgaXMgYW4gb3BlbiBzb3VyY2UgZnJhbWV3b3JrIGZvciBkZWZpbmluZyBhbmQgZGVwbG95aW5nIGNsb3VkIGFwcHMgYW5kIElhQy4gUHVsdW1pIGVuYWJsZXMgZGV2ZWxvcGVycyB0byB3cml0ZSBjb2RlIGluIHRoZWlyIGZhdm9yaXRlIGxhbmd1YWdlIHN1Y2ggYXMgVHlwZVNjcmlwdCwgSmF2YVNjcmlwdCwgUHl0aG9uLCBhbmQgR28uIFRoaXMgZW5hYmxlcyBtb2Rlcm4gYXBwcm9hY2hlcyB0byBjbG91ZCBhcHBsaWNhdGlvbnMgYW5kIGluZnJhc3RydWN0dXJlIHdpdGhvdXQgbmVlZGluZyB0byBsZWFybiBhbm90aGVyIFlBTUwgb3IgRFNMIGRpYWxlY3QuIFRoaXMgdW5sb2NrcyBhYnN0cmFjdGlvbnMgYW5kIHJldXNlLCBhcyB3ZWxsIGFzIGFjY2VzcyB0byB5b3VyIGZhdm9yaXRlIElERXMsIHJlZmFjdG9yaW5nLCBhbmQgdGVzdGluZyB0b29scy4gTWFzdGVyIG9uZSB0b29sY2hhaW4gYW5kIHNldCBvZiBmcmFtZXdvcmtzIGFuZCBnbyB0byBhbnkgY2xvdWQgKEFXUywgQXp1cmUsIEdDUCwgb3IgS3ViZXJuZXRlcykgd2l0aCBlYXNlLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBQdWx1bWkmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUgZXhwZXJpZW5jZWQgYnVpbGRpbmcgaW5mcmFzdHJ1Y3R1cmUgdXNpbmcgVGVycmFmb3JtLCBub3cgeW914oCZbGwgbGVhcm4gaG93IHRvIHByb3Zpc2lvbiBhbmQgZGVwbG95IG5ldyBpbmZyYXN0cnVjdHVyZSB1c2luZyBQdWx1bWkuIFRoZSBQdWx1bWkgZXhhbXBsZSB3aWxsIGNyZWF0ZSB0aGUgc2FtZSBHQ1AgcmVzb3VyY2VzIHByZXZpb3VzbHkgdXNpbmcgUHVsdW1pIGNvZGUgYW5kIHRvb2xzLiBQdWx1bWkgZW5hYmxlcyB5b3UgdG8gZGVmaW5lIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgaW4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHdoaWNoIHByb3ZpZGVzIGxvdHMgb2YgZmxleGliaWxpdHkuIEluIHRoaXMgZXhhbXBsZSwgd2XigJlyZSB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vd3d3LnB5dGhvbi5vcmcvJnF1b3Q7Jmd0O1B5dGhvbiZsdDsvYSZndDsgYXMgb3VyIGxhbmd1YWdlLiBUaGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7X19tYWluLnB5X18mbHQ7L2NvZGUmZ3Q7IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC9wdWx1bWkvZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgaXMgd2hlcmUgd2VyZSBnb2luZyB0byBkZWZpbmUgb3VyIGluZnJhc3RydWN0dXJlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlIHN1cmUgdG8gaGF2ZSB5b3VyIFB1bHVtaSBBUEkgdG9rZW4gYXZhaWxhYmxlLiBZb3XigJlsbCBuZWVkIGl0IGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIFB1bHVtaSBleGFtcGxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7fi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGRpcmVjdG9yeS4gUnVuIHRoaXMgY29tbWFuZCB0byBjaGFuZ2UgaW50byB0aGUgUHVsdW1pIGV4YW1wbGUgZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2Qgfi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gzJmd0O0luc3RhbGxpbmcgZGVwZW5kaWVuY2llcyBmb3IgUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1NpbmNlIHdl4oCZcmUgZGVmaW5pbmcgb3VyIElhQyBzcGVjcyB1c2luZyBQeXRob24gd2XigJlsbCBuZWVkIHRvIGZpcnN0IGluc3RhbGwgdGhlIFB1bHVtaSBQeXRob24gU0RLIGRlcGVuZGVuY2llcy4gSW4gdGhlIHRlcm1pbmFsIHJ1biB0aGlzIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtwaXAgaW5zdGFsbCAtciAuLi9yZXF1aXJlbWVudHMudHh0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtQcmV2aWV3aW5nIHdpdGggUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1B1bHVtaSBoYXMgYSBkcnktcnVuIGNvbW1hbmQgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBwcmV2aWV3Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRpc3BsYXlzIGEgcHJldmlldyBvZiB0aGUgdXBkYXRlcyB0byBhbiBleGlzdGluZyBzdGFjayB3aG9zZSBzdGF0ZSBpcyByZXByZXNlbnRlZCBieSBhbiBleGlzdGluZyBzdGF0ZSBmaWxlLiBUaGUgbmV3IGRlc2lyZWQgc3RhdGUgaXMgY29tcHV0ZWQgYnkgcnVubmluZyBhIFB1bHVtaSBwcm9ncmFtLCBhbmQgZXh0cmFjdGluZyBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbnMgZnJvbSBpdHMgcmVzdWx0aW5nIG9iamVjdCBncmFwaC4gVGhlc2UgYWxsb2NhdGlvbnMgYXJlIHRoZW4gY29tcGFyZWQgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc3RhdGUgdG8gZGV0ZXJtaW5lIHdoYXQgb3BlcmF0aW9ucyBtdXN0IHRha2UgcGxhY2UgdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZCBzdGF0ZS4gTm8gY2hhbmdlcyB0byB0aGUgc3RhY2sgd2lsbCBhY3R1YWxseSB0YWtlIHBsYWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGlzIGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHByZXZpZXcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHJlc3VsdHMgcHJvbXB0aW5nIHlvdSBmb3IgdGhlIFB1bHVtaSBBUEkgdG9rZW4geW91IGNyZWF0ZWQgZWFybGllci4gUGFzdGUgdGhlIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLiBBZnRlciB5b3UgcGFzdGUgdGhlIHRva2VuIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O01hbmFnZSB5b3VyIFB1bHVtaSBzdGFja3MgYnkgbG9nZ2luZyBpbi4KUnVuIGBwdWx1bWkgbG9naW4gLS1oZWxwYCBmb3IgYWx0ZXJuYXRpdmUgbG9naW4gb3B0aW9ucy4KRW50ZXIgeW91ciBhY2Nlc3MgdG9rZW4gZnJvbSBodHRwczovL2FwcC5wdWx1bWkuY29tL2FjY291bnQvdG9rZW5zCiAgICBvciBoaXQgJmFtcDtsdDtFTlRFUiZhbXA7Z3Q7IHRvIGxvZyBpbiB1c2luZyB5b3VyIGJyb3dzZXIgICAgICAgICAgICAgICAgICAgOgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1doZW4gcGFzdGluZyB0aGUgQVBJIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLCBubyB2YWx1ZXMgd2lsbCBiZSBkaXNwbGF5ZWQuIEl0IHdpbGwgcmVtYWluIGludmlzaWJsZSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuJmx0Oy9pJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBtYXkgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGEgc3RhY2sgaW4gdGhlIHRlcm1pbmFsLiBJZiBzbywgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkZXYmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB0aGVuIGhpdCBlbnRlci4gWW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UHJldmlld2luZyB1cGRhdGUgKGRldik6CiAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICAgICBQbGFuCiArICAgcHVsdW1pOnB1bHVtaTpTdGFjayAgICAgIGNvbXB1dGUtZGV2ICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6TmV0d29yayAgIG5ldHdvcmsgICAgICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6SW5zdGFuY2UgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJTilIAgZ2NwOmNvbXB1dGU6RmlyZXdhbGwgIGZpcmV3YWxsICAgICAgICAgICAgICAgICAgICBjcmVhdGUKClJlc291cmNlczoKICAgICsgNSB0byBjcmVhdGUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUganVzdCBlbmFibGVkIGFjY2VzcyB0byB0aGUgUHVsdW1pIGJhY2tlbmQgY2xvdWQgd2hpY2gga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXRlIG9mIHlvdXIgaW5mcmFzdHJ1Y3R1cmVzLiBOb3cgeW914oCZcmUgcmVhZHkgdG8gcnVuIHNvbWUgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7UHVsdW1pIHVwJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1RvIGV4ZWN1dGUgdGhlIFB1bHVtaSBjb2RlLCB1c2UgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIHVwJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGNyZWF0ZXMgb3IgdXBkYXRlcyByZXNvdXJjZXMgaW4gYSBzdGFjay4gVGhlIG5ldyBkZXNpcmVkIGdvYWwgc3RhdGUgZm9yIHRoZSB0YXJnZXQgc3RhY2sgaXMgY29tcHV0ZWQgYnkgcnVubmluZyB0aGUgY3VycmVudCBQdWx1bWkgcHJvZ3JhbSBhbmQgb2JzZXJ2aW5nIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9ucyB0byBwcm9kdWNlIGEgcmVzb3VyY2UgZ3JhcGguIFRoaXMgZ29hbCBzdGF0ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIGV4aXN0aW5nIHN0YXRlIHRvIGRldGVybWluZSB3aGF0IGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQvb3IgZGVsZXRlIG9wZXJhdGlvbnMgbXVzdCB0YWtlIHBsYWNlIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgZ29hbCBzdGF0ZSBpbiB0aGUgbW9zdCBtaW5pbWFsbHkgZGlzcnVwdGl2ZSB3YXkuIEFmdGVyd2FyZCwgdGhpcyBjb21tYW5kIHJlY29yZHMgYSBmdWxsIHRyYW5zYWN0aW9uYWwgc25hcHNob3Qgb2YgdGhlIHN0YWNr4oCZcyBuZXcgc3RhdGUgc28gdGhhdCB0aGUgc3RhY2sgbWF5IGJlIHVwZGF0ZWQgaW5jcmVtZW50YWxseSBhZ2FpbiBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgdGVybWluYWwgcnVuOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHVwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1NlbGVjdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7eWVzJmx0Oy9jb2RlJmd0OyBvcHRpb24gYW5kIGhpdCBlbnRlci4gVGhlIFB1bHVtaSBhcHAgd2lsbCBleGVjdXRlLCBhbmQgc2hvcnRseSBhZnRlciB5b3XigJlsbCBoYXZlIGEgY29tcGxldGUgc2VydmVyIHJ1bm5pbmcgYW4gYXBwbGljYXRpb24gb24gR0NQLiBZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtVcGRhdGluZyAoZGV2KToKICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cwogKyAgIHB1bHVtaTpwdWx1bWk6U3RhY2sgICAgICBjb21wdXRlLWRldiAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUnOKUgCBnY3A6Y29tcHV0ZTpOZXR3b3JrICAgbmV0d29yayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGVkCiArICAg4pSc4pSAIGdjcDpjb21wdXRlOkZpcmV3YWxsICBmaXJld2FsbCAgICAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUlOKUgCBnY3A6Y29tcHV0ZTpJbnN0YW5jZSAgd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDEgIGNyZWF0ZWQKCk91dHB1dHM6CiAgICBleHRlcm5hbF9pcCAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICBpbnN0YW5jZV9tZXRhX2RhdGE6IHsKICAgICAgICBnY2UtY29udGFpbmVyLWRlY2xhcmF0aW9uOiAmcXVvdDtzcGVjOlxuICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDFcbiAgICAgIGltYWdlOiBhcml2M3JhL3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxOmxhdGVzdFxuICAgICAgc3RkaW46IGZhbHNlXG4gICAgICB0dHk6IGZhbHNlXG4gIHJlc3RhcnRQb2xpY3k6IEFsd2F5c1xuJnF1b3Q7CiAgICB9CiAgICBpbnN0YW5jZV9uYW1lICAgICA6ICZxdW90O3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxJnF1b3Q7CiAgICBpbnN0YW5jZV9uZXR3b3JrICA6IFsKICAgICAgICBbMF06IHsKICAgICAgICAgICAgYWNjZXNzQ29uZmlncyAgICA6IFsKICAgICAgICAgICAgICAgIFswXTogewogICAgICAgICAgICAgICAgICAgIG5hdElwICAgICAgICAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICAgICAgICAgICAgICAgICAgbmV0d29ya190aWVyICAgICAgIDogJnF1b3Q7UFJFTUlVTSZxdW90OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgOiAmcXVvdDtuaWMwJnF1b3Q7CiAgICAgICAgfQogICAgXQoKUmVzb3VyY2VzOgogICAgKyA1IGNyZWF0ZWQKCkR1cmF0aW9uOiA1OHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlc2UgcmVzdWx0cywgeW914oCZbGwgc2VlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXh0ZXJuYWxfaXAmbHQ7L2NvZGUmZ3Q7IGtleS4gSXTigJlzIHZhbHVlIGlzIHRoZSBJUCBBZGRyZXNzIHRvIHRoZSBwdWJsaWMgZmFjaW5nIGFwcGxpY2F0aW9uIGV4cG9zZWQgb24gcG9ydCA1MDAwLiBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIFRlcnJhZm9ybSBleGFtcGxlLCB5b3UgY2FuIGFjY2VzcyB0aGUgYXBwbGljYXRpb24gaW4gYSBicm93c2VyLiBSZW1lbWJlciB0byBhbGxvdyBmb3IgYSBmZXcgbWludXRlcyBzbyB0aGUgYmFja2VuZCBzeXN0ZW0gY2FuIGJyaW5nIGV2ZXJ5dGhpbmcgb25saW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQdWx1bWkgZGVzdHJveSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtQdWx1bWkgaGFzIGEgY29tbWFuZCB0byB0ZXJtaW5hdGUgYWxsIG9mIHRoZSBjbG91ZCByZXNvdXJjZXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBkZXN0cm95Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRlbGV0ZXMgYW4gZW50aXJlIGV4aXN0aW5nIHN0YWNrIGJ5IG5hbWUuIFRoZSBjdXJyZW50IHN0YXRlIGlzIGxvYWRlZCBmcm9tIHRoZSBhc3NvY2lhdGVkIHN0YXRlIGZpbGUgaW4gdGhlIHdvcmtzcGFjZS4gQWZ0ZXIgcnVubmluZyB0byBjb21wbGV0aW9uLCBhbGwgb2YgdGhpcyBzdGFja+KAmXMgcmVzb3VyY2VzIGFuZCBhc3NvY2lhdGVkIHN0YXRlIHdpbGwgYmUgZ29uZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtSdW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGluIHRoZSB0ZXJtaW5hbCBhbmQgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5ZXMmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB3aGVuIHByb21wdGVkIHRvICZsdDtzdHJvbmcmZ3Q7cGVybWFuZW50bHkmbHQ7L3N0cm9uZyZndDsgZGVzdHJveSB0aGUgR0NQIHJlc291cmNlcyBjcmVhdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O0NvbmdyYXR1bGF0aW9ucyEgWW914oCZdmUganVzdCBsZXZlbGVkIHVwIGFuZCBub3cgaGF2ZSBleHBlcmllbmNlIHByb3Zpc2lvbmluZyBhbmQgZGVwbG95aW5nIGFwcGxpY2F0aW9ucyB0byBHQ1AgdXNpbmcgdGhlIG1vZGVybiBJYUMgdG9vbHMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O1RlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4gVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2lsbCBoZWxwIHlvdSBleHBhbmQgeW91ciBrbm93bGVkZ2UgZnJvbSBoZXJlOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9jbGktaW5kZXguaHRtbCZxdW90OyZndDtUZXJyYWZvcm0gR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9kb2NzL2dldC1zdGFydGVkLyZxdW90OyZndDtQdWx1bWkgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS9vcmIvcHVsdW1pL3B1bHVtaSZxdW90OyZndDtQdWx1bWkgb3JiIGZvciBDaXJjbGVDSSZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyZxdW90OyZndDtEb2NrZXIgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm0vY29tbXVuaXR5L2Jsb2IvbWFzdGVyL3R1dG9yaWFscy9nZXR0aW5nLXN0YXJ0ZWQtb24tZ2NwLXdpdGgtdGVycmFmb3JtL2luZGV4Lm1kI2dldHRpbmctcHJvamVjdC1jcmVkZW50aWFscyZxdW90OyZndDtHb29nbGUgQ2xvdWQgUGxhdGZvcm0mbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogICAgICAKICAgICAgPGl0ZW0+CiAgICAgICAgPHRpdGxlPkEgbG9vayBhdCBDaXJjbGVDSeKAmXMgaW5kdXN0cnktbGVhZGluZyBzdXBwb3J0IGZvciB0cmFuc2l0aW9uLXJlbGF0ZWQgbWVkaWNhbCBsZWF2ZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hLWxvb2stYXQtY2lyY2xlY2ktcy1pbmR1c3RyeS1sZWFkaW5nLXN1cHBvcnQtZm9yLXRyYW5zaXRpb24tcmVsYXRlZC1tZWRpY2FsLWxlYXZlLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5XZWQsIDEzIE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2EtbG9vay1hdC1jaXJjbGVjaS1zLWluZHVzdHJ5LWxlYWRpbmctc3VwcG9ydC1mb3ItdHJhbnNpdGlvbi1yZWxhdGVkLW1lZGljYWwtbGVhdmUvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RWxpemFiZXRoIEJlbGw8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7T25lIG9mIHRoZSBncmVhdCB0aGluZ3MgYWJvdXQgd29ya2luZyBhdCBDaXJjbGVDSSBpcyB0aGF0IHRoZSBjb21wYW55IGJlbGlldmVzIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGJlIGFibGUgdG8gYmUgdGhlaXIgd2hvbGUgc2VsZiBhdCB3b3JrLiBJbmNsdXNpdml0eSwgZGVtb25zdHJhdGluZyB0cnVzdCBhbmQgcmVzcGVjdCwgYW5kIG1ha2luZyBzdXJlIGV2ZXJ5b25lIGhhcyB0aGUgdG9vbHMgYW5kIHN1cHBvcnQgdGhleSBuZWVkIGFyZSBhbGwgYnVyaWVkIGRlZXAgaW4gdGhlIGN1bHR1cmUgaGVyZSDigJMgaXQgaXMgYSBiaWcgcGFydCBvZiBob3cgd2UgZGVsaXZlciB0aGUgYmVzdCB2YWx1ZSBmb3Igb3VyIGN1c3RvbWVycy4gV2l0aCB0aGF0IGluIG1pbmQsIHRoZSBjb21wYW55IHJlY2VudGx5IHJvbGxlZCBvdXQgYSBuZXcgaGVhbHRoY2FyZSBwb2xpY3kgZm9yIG91ciB0cmFuc2dlbmRlciBjby13b3JrZXJzLiBJbiBhIGZpcnN0IGZvciBjb21wYW5pZXMgaW4gdGhlIENJL0NEIHNwYWNlLCBDaXJjbGVDSSBub3cgb2ZmZXJzIGZ1bGx5LWNvbXBlbnNhdGVkIHBhaWQgbGVhdmUgZm9yIGVtcGxveWVlcyByZWNvdmVyaW5nIGZyb20gdHJhbnNpdGlvbi1yZWxhdGVkIG1lZGljYWwgcHJvY2VkdXJlcy4gVGhpcyBwb2xpY3kgaXMgYW4gZXh0cmVtZWx5IGltcG9ydGFudCBhZGRpdGlvbiB0byBDaXJjbGVDSeKAmXMgYmVuZWZpdHMgcGFja2FnZSBhbmQgYW5vdGhlciBleGFtcGxlIG9mIHRoZSBjb21wYW554oCZcyBkZWRpY2F0aW9uIHRvIHRoZSB3ZWxsLWJlaW5nIG9mIGFsbCBlbXBsb3llZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VHJhbnNpdGlvbiBpcyBhbiBpbW1lbnNlbHkgc3RyZXNzZnVsIHByb2Nlc3MsIGFuZCB0aGUgbWVkaWNhbCBwcm9jZWR1cmVzIHJlcXVpcmVkIHRvIHRyZWF0IHRoZSBkeXNwaG9yaWEgZXhwZXJpZW5jZWQgYnkgc29tZSB0cmFuc2dlbmRlciBwZW9wbGUgb2Z0ZW4gbmVlZCBhIHZlcnkgY2FyZWZ1bCBhcHByb2FjaCB0byByZWNvdmVyeS4mbHQ7L3AmZ3Q7CgombHQ7YmxvY2txdW90ZSZndDsKICAmbHQ7cCZndDtUaGUgZ29hbCBvZiB0aGUgcG9saWN5IGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRyYW5zZ2VuZGVyIGVtcGxveWVlcyBmZWVsIHN1cHBvcnRlZCBkdXJpbmcgdGhpcyBkaWZmaWN1bHQgdGltZSwgYW5kIGJ5IGVuc3VyaW5nIHRoYXQgdHJhbnNnZW5kZXIgZW1wbG95ZWVzIGhhdmUgYWNjZXNzIHRvIGFwcHJvcHJpYXRlbHkgY29tcGVuc2F0ZWQgbWVkaWNhbCBsZWF2ZSwgdGhlIGNvbXBhbnkgY2FuIHJlbW92ZSBtYWpvciBzb3VyY2VzIG9mIHVubmVjZXNzYXJ5IHN0cmVzcy4gVGhpcyB3YXksIHdlIGNhbiByZXR1cm4gdG8gd29yayBoYXBwaWVyLCBoZWFsdGhpZXIsIGFuZCBiZXR0ZXIgYWJsZSB0byBkbyBvdXIgYmVzdCBmb3Igb3VyIGN1c3RvbWVycyBhbmQgb3VyIGNvbGxlYWd1ZXMuJmx0Oy9wJmd0OwombHQ7L2Jsb2NrcXVvdGUmZ3Q7CgombHQ7aDImZ3Q7SG93IHRoaXMgcG9saWN5IGNhbWUgdG9nZXRoZXImbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgcHVzaCBmb3IgdGhlIGZvcm1hbGl6YXRpb24gb2YgdGhlc2UgYmVuZWZpdHMgZ3JldyBvdXQgb2YgdGhlIGVmZm9ydHMgb2YgbWFueSBpbmRpdmlkdWFscy4gVG9nZXRoZXIsIHRoZSB0cmFucyBlbXBsb3llZXMgYXQgQ2lyY2xlQ0kgZGlzY3Vzc2VkIHRoZSBpc3N1ZSBhbW9uZ3N0IG91cnNlbHZlcywgb3VyIG1hbmFnZXJzLCBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIHdobyBzdXBwb3J0ZWQgdXMgaW4gYnJpbmdpbmcgdGhlIHRvcGljIHRvIG91ciBleGVjdXRpdmUgdGVhbS4gQnkgYnVpbGRpbmcgY29uc2Vuc3VzLCBib3RoIHdpdGhpbiB0aGUgdHJhbnMgcG9wdWxhdGlvbiBhdCB0aGUgY29tcGFueSBhbmQgb3VyIGNpc2dlbmRlciBjb2xsZWFndWVzLCB3ZSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IGFkdm9jYXRlIGZvciBhIGZvcm1hbGl6YXRpb24gb2YsIGFuZCBhIGNvbW1pdG1lbnQgdG8sIHRoaXMgaW5kdXN0cnktbGVhZGluZyB0cmFucyBoZWFsdGhjYXJlIGJlbmVmaXQuIFF1ZWVyU3BoZXJlLCB0aGUgRW1wbG95ZWUgUmVzb3VyY2UgR3JvdXAgaGVyZSBhdCBDaXJjbGVDSSBmb3IgTEdCVFFJQSsgZW1wbG95ZWVzLCBoZWxwZWQgY29vcmRpbmF0ZSB0aGUgZWZmb3J0IHRvIGFkdm9jYXRlLCBhbmQgdGhlIHJlc3VsdCB3YXMgYSBwb2xpY3kgdGhhdCBoZWxwcyBlbnN1cmUgdHJhbnMgZW1wbG95ZWVzIGdldCB0aGUgc3VwcG9ydCB3ZSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uZSBvZiB0aGUgYmVzdCB0aGluZ3MgZm9yIG1lIGFib3V0IHdvcmtpbmcgYXQgQ2lyY2xlQ0kgaXMgaG93IGVtcG93ZXJlZCBJIGZlZWwgdG8gY2FsbCBhdHRlbnRpb24gdG8gaXNzdWVzIG9yIHByYWN0aWNlcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCBhbmQgYnJpbmcgcGVvcGxlIHRvZ2V0aGVyIHRvIHdvcmsgb24gdGhlbSwgdG8gdGhlIGJlbmVmaXQgb2YgYm90aCB0aGUgY29tcGFueSBhcyBhIHdob2xlIGFuZCB1bmRlcnJlcHJlc2VudGVkIG9yIG1hcmdpbmFsaXplZCBlbXBsb3llZXMuIFRyYW5zIHBlb3BsZSBmYWNlIHN5c3RlbWljIGJpYXM6IHRoZXJlIGFyZSBubyBmZWRlcmFsLWxldmVsIHByb3RlY3Rpb25zIGZyb20gZGlzY3JpbWluYXRpb24gb24gdGhlIGJhc2lzIG9mIGdlbmRlciBpZGVudGl0eSBpbiB0aGUgVW5pdGVkIFN0YXRlcywgYW5kIG9mIHRoZSB0cmFucyBwb3B1bGF0aW9uIHN1cnZleWVkIGJ5IHRoZSBOYXRpb25hbCBDZW50ZXIgZm9yIFRyYW5zZ2VuZGVyIEVxdWFsaXR5IGluIDIwMTUsIDgwJSBvZiB0aG9zZSB3aG8gd2VyZSBlbXBsb3llZCByZXBvcnRlZCBleHBlcmllbmNpbmcgaGFyYXNzbWVudCwgbWlzdHJlYXRtZW50LCBvciBoYWQgdG8gdGFrZSBzdGVwcyB0byBhdm9pZCB0aG9zZSBob3N0aWxlIHdvcmtwbGFjZSBiZWhhdmlvcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SSBrbm93IGZpcnN0aGFuZCBob3cgZGlmZmljdWx0IGJlaW5nIG91dCBhdCB3b3JrIGNhbiBiZS4gQXQgYSBwcmV2aW91cyBlbXBsb3llciBlYXJseSBpbiBteSB0cmFuc2l0aW9uLCBJIGZlbHQgYWxpZW5hdGVkIGFuZCBkaXNsaWtlZCBieSBjb2xsZWFndWVzIHdobyBoYWQgcHJldmlvdXNseSBiZWVuIGZyaWVuZGx5IGJlZm9yZSB0aGV5IGtuZXcgSSB3YXMgdHJhbnNnZW5kZXIuIEkgaGF2ZSBoYWQgdG8gbWluaW1pemUgdGhlIGZhY3QgdGhhdCBJ4oCZbSB0cmFucywgdG9sZXJhdGUgYWN0aXZlIGhvc3RpbGl0eSBmcm9tIGNvd29ya2Vycywgb3IgcHJldGVuZCB0aGF0IEkgd2FzIGNpc2dlbmRlciwgaW4gb3JkZXIgdG8gcHJvdGVjdCBteSBqb2IuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgQ2lyY2xlQ0ksIEkgaGF2ZSBmZWx0IHN1cHBvcnRlZCwgcmVzcGVjdGVkLCBhbmQgYWJsZSB0byBjb25maWRlbnRseSBiZSBteXNlbGYuIEkgZmVlbCBleGNlcHRpb25hbGx5IGZvcnR1bmF0ZSB0byBoYXZlIGEgd29uZGVyZnVsIGdyb3VwIG9mIHRyYW5zZ2VuZGVyIGNvbGxlYWd1ZXMgYW5kIGZyaWVuZHMgKHdlIG1ha2UgdXAgNyUgb2YgdGhlIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0ksIGFuZCAzJSBvZiB0aGUgb3JnIGluIHRvdGFsLCBjb21wYXJlZCB0byAwLjYlIG9mIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24pLCBhbmQgdG8gd29yayBzb21ld2hlcmUgd2hlcmUgb3VyIHZpZXdzIGFuZCBleHBlcmllbmNlcyBhcmUgdmFsdWVkIGF0IHRoZSBoaWdoZXN0IGxldmVscyBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0lmIHlvdSBsaWtlIHRoZSBzb3VuZCBvZiB3b3JraW5nIHNvbWV3aGVyZSB3aXRoIGEgcmVtb3RlLWZpcnN0IGN1bHR1cmUgYW5kIGNvbGxhYm9yYXRpbmcgb24gaW50ZXJlc3RpbmcgcHJvYmxlbXMgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIHRyYW5zIGZvbHggYW5kIGFsbGllcywgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9jYXJlZXJzLyZxdW90OyZndDtjaGVjayBvdXQgb3VyIG9wZW5pbmdzIGhlcmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIEdhdHNieSBhcHBzIHRvIEhlcm9rdTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtZ2F0c2J5LWFwcHMtdG8taGVyb2t1LzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDExIE1heSAyMDIwIDA5OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1nYXRzYnktYXBwcy10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9qYW1zdGFjay5vcmcvJnF1b3Q7Jmd0O0pBTVN0YWNrJmx0Oy9hJmd0OyBpcyBxdWlja2x5IGJlY29taW5nIGEgYmlnIGRlYWwgaW4gdGhlIHdvcmxkIG9mIHdlYiBkZXZlbG9wbWVudC4gSkFNU3RhY2ssIHdoaWNoIHN0YW5kcyBmb3IgSmF2YXNjcmlwdCwgQVBJcywgYW5kIEhUTUwgbWFya3VwLCBpcyBhIG1vZGVybiBhcmNoaXRlY3R1cmUgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMgYW5kIG9uZSBvZiBpdHMgbWFqb3IgZmVhdHVyZXMgaXMgdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBhIGRhdGFiYXNlIGFuZCBhIHdlYiBzZXJ2ZXIgaXMgb3B0aW9uYWwuIFRoZSBKQU1TdGFjayBhcmNoaXRlY3R1cmUgaXMgYWltZWQgYXQgZGVjb3VwbGluZyB0aGUgZnJvbnRlbmQgYW5kIHRoZSBiYWNrZW5kIGJ5IGdlbmVyYXRpbmcgYSBmcm9udGVuZCBtYWRlIG9mIEhUTUwsIENTUywgYW5kIEphdmFzY3JpcHQgYW5kIGEgYmFja2VuZCB0aGF0IGlzIHNpbXBseSBhIGNvbnRlbnQgQVBJIHJldHVybmluZyBKU09OIG9yIFhNTC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmUgb2YgdGhlIGxlYWRpbmcgSkFNU3RhY2sgcGxhdGZvcm1zIHRvZGF5IGlzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnLyZxdW90OyZndDtHYXRzYnkuanMmbHQ7L2EmZ3Q7LiBHYXRzYnkuanMgaXMgYSBmcmVlIGFuZCBvcGVuLXNvdXJjZSBmcmFtZXdvcmsgYmFzZWQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3JlYWN0anMub3JnLyZxdW90OyZndDtSZWFjdC5qcyZsdDsvYSZndDsgdGhhdCBoZWxwcyBkZXZlbG9wZXJzIGJ1aWxkIGhpZ2gtc3BlZWQgd2ViIGFwcGxpY2F0aW9ucy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHR1dG9yaWFsLCB3ZSB3aWxsIGJlIGRlbW9uc3RyYXRpbmcgaG93IHRvIGRlcGxveSBhIEdhdHNieS5qcyBzaXRlIHRvIHRoZSBwb3B1bGFyIEhlcm9rdSBwbGF0Zm9ybSBieSBidWlsZGluZyBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmUgZm9yIGl0cyBkZXBsb3ltZW50IHVzaW5nIENpcmNsZUNJLiZsdDsvcCZndDsKCiZsdDtoMiZndDtQcmVyZXF1aXNpdGVzJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIG9yZGVyIHRvIGZvbGxvdyBhbG9uZyB3aXRoIHRoaXMgcG9zdCwgeW91IHdpbGwgbmVlZCBhIGZldyB0aGluZ3MgaW4gcGxhY2U6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7ICZhbXA7Z3Q7PSAxMC4xNiBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZSAtdiZsdDsvY29kZSZndDsgb24geW91ciB0ZXJtaW5hbCB0byBwcmludCBvdXQgeW91ciB2ZXJzaW9uIG9mIE5vZGVKUyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7R2l0Jmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2l0Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsLiBUaGlzIHNob3VsZCBwcmludCBvdXQgYXZhaWxhYmxlIGdpdCBjb21tYW5kcykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuaGVyb2t1LmNvbS8mcXVvdDsmZ3Q7SGVyb2t1Jmx0Oy9hJmd0OyBhY2NvdW50Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O0dpdEh1YiZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7V2l0aCB0aGVzZSwgeW91IGFyZSByZWFkeSB0byBmb2xsb3cgYWxvbmcuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NyZWF0aW5nIGEgR2F0c2J5LmpzIHByb2plY3QmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7VG8gYmVnaW4sIHdlIG5lZWQgdG8gY3JlYXRlIG91ciBHYXRzYnkuanMgcHJvamVjdC4gSW4gYW4gYXBwcm9wcmlhdGUgbG9jYXRpb24gd2l0aGluIHlvdXIgc3lzdGVtLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGdhdHNieSBuZXcgZ2F0c2J5LWhlcm9rdS1kZXBsb3kKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBwYXJ0IG9mIHRoaXMgY29tbWFuZCBpcyB0aGUgZm9sZGVyIG5hbWUgZm9yIG15IHByb2plY3QgdG8gYmUgc2NhZmZvbGRlZCBpbi4gWW91IGNhbiB1c2UgYW55IHByZWZlcnJlZCBuYW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCB3aWxsIGltbWVkaWF0ZWx5IGJlZ2luIHNjYWZmb2xkaW5nIGEgbmV3IEdhdHNieS5qcyBwcm9qZWN0LiBZb3UgbWlnaHQgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGVpdGhlciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5YXJuJmx0Oy9jb2RlJmd0OyBvciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7IGFzIHlvdXIgcGFja2FnZSBtYW5hZ2VyLCBmb3IgdGhpcyB0dXRvcmlhbCwgZ28gd2l0aCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNjYWZmb2xkaW5nIHByb2Nlc3MgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIGdhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OykgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gYm9vdCB1cCBhIHNlcnZlciB0byBzZXJ2ZSB0aGUgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBydW4gZGV2ZWxvcAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgc2VydmUgdGhlIGFwcGxpY2F0aW9uIGF0IHRoZSBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8mbHQ7L2NvZGUmZ3Q7IGFuZCBkaXNwbGF5IHRoZSBwYWdlIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MS5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIGEgZnVuY3Rpb25hbCBHYXRzYnkuanMgc2l0ZSB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7U2V0dGluZyB1cCBhIEhlcm9rdSBBcHAgZm9yIEdhdHNieSZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBzZXQgdXAgYSBIZXJva3UgYXBwIGZvciBvdXIgR2F0c2J5IGFwcGxpY2F0aW9uLCB3ZSBuZWVkIHRvIGxvZyBpbnRvIEhlcm9rdSBhbmQgY3JlYXRlIGEgbmV3IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5Mi5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdlIG5lZWQgdG8gZ2V0IHRoZSBuYW1lIG9mIG91ciBhcHBsaWNhdGlvbiAodGhpcyB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBmb3IgdGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgYWJvdmUpIGFuZCB0aGUgQVBJIGtleSBmb3Igb3VyIEhlcm9rdSBhY2NvdW50LiBUaGUgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIEhlcm9rdSAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXZSB3aWxsIG5lZWQgdGhlc2UgdHdvIHZhbHVlcyAodGhlIGFwcCBuYW1lIGFuZCBBUEkga2V5KSBsYXRlciBvbiB0byBjcmVhdGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9uIG91ciBDaXJjbGVDSSBwcm9qZWN0IGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiBvdXIgSGVyb2t1IGFjY291bnQgaXMgdG8gaW5zdGFsbCBzb21lIG5lY2Vzc2FyeSBidWlsZHBhY2tzLiBCdWlsZHBhY2tzIGFyZSBzY3JpcHRzIHRoYXQgcnVuIHdoZW4geW91ciBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZC4gV2Ugd2lsbCBuZWVkIHR3byBidWlsZCBwYWNrcyBmb3IgdGhpcyBleGVyY2lzZTombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0O2hlcm9rdS9ub2RlanM6IFJlcXVpcmVkIGZvciBhbGwgTm9kZS5qcyBhcHBsaWNhdGlvbnMmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtoZXJva3UvaGVyb2t1LWJ1aWxkcGFjay1zdGF0aWM6IFRoZSBIZXJva3UgQnVpbGRwYWNrIFN0YXRpYyBwYWNrYWdlIChiZWNhdXNlIEdhdHNieS5qc+KAmXMgYnVpbGQgaXMgbWFkZSB1cCBvZiBzdGF0aWMgZmlsZXMsIHRoaXMgd2lsbCBoZWxwIHVzIHNlcnZlIHRoZSBzdGF0aWMgZmlsZXMgb24gdGhlIEhlcm9rdSBwbGF0Zm9ybSkmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7R28gdG8geW91ciBIZXJva3UgYXBwbGljYXRpb27igJlzICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgcGFnZSBhbmQgc2Nyb2xsIGRvd24gdG8gJmx0O3N0cm9uZyZndDtCdWlsZHBhY2tzJmx0Oy9zdHJvbmcmZ3Q7ICh5b3UgbWlnaHQgYWxyZWFkeSBzZWUgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgYnVpbGRwYWNrIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQpLiBDbGljayAmbHQ7c3Ryb25nJmd0O0FkZCBidWlsZHBhY2smbHQ7L3N0cm9uZyZndDsgYW5kIHlvdSB3aWxsIHNlZSBhIGRpYWxvZyBwb3AgdXAgc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnkzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rm9yIGVhY2ggYnVpbGRwYWNrICgmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3Uvbm9kZWpzJmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L2hlcm9rdS1idWlsZHBhY2stc3RhdGljJmx0Oy9jb2RlJmd0OykgZW50ZXIgdGhlIGlkZW50aWZpZXIgaW50byB0aGUgdGV4dCBmaWVsZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTYXZlIENoYW5nZXMmbHQ7L3N0cm9uZyZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtOb3RlOiZsdDsvc3Ryb25nJmd0OyAmbHQ7aSZndDtJZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCwgb25seSBhZGQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2hlcm9rdS9oZXJva3UtYnVpbGRwYWNrLXN0YXRpYyZsdDsvY29kZSZndDsgYnVpbGQgcGFjay4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgZG9pbmcgdGhpcyBmb3IgYm90aCBidWlsZHBhY2tzLCB5b3Ugd2lsbCBzZWUgdGhlIHR3byBidWlsZCBwYWNrcyBub3cgbGlzdGVkIGluICZsdDtzdHJvbmcmZ3Q7QnVpbGRwYWNrcyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGF0IGNvbXBsZXRlcyB0aGUgc2V0IHVwIHJlcXVpcmVkIGZvciBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1NldHRpbmcgdXAgdGhlIEdhdHNieS5qcyBwcm9qZWN0IG9uIENpcmNsZUNJJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBuZXh0IHRhc2sgaXMgdG8gZ2V0IG91ciBHYXRzYnkuanMgcHJvamVjdCBzZXQgdXAgb24gQ2lyY2xlQ0kuIFdlIG5lZWQgdG8gcHVzaCBvdXIgY29kZSB0byBhIEdpdEh1YiByZXBvc2l0b3J5IG9uIHRoZSBhY2NvdW50IHlvdSBoYXZlIGxpbmtlZCB0byB5b3VyIENpcmNsZUNJIGFjY291bnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgZ28gdG8gdGhlICZsdDtzdHJvbmcmZ3Q7QWRkIFByb2plY3RzJmx0Oy9zdHJvbmcmZ3Q7IHBhZ2UgdG8gYWRkIHRoZSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk0LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0OyB0byBiZWdpbiBzZXR0aW5nIHVwIHRoZSBwcm9qZWN0LiBUaGlzIHdpbGwgbG9hZCB0aGUgbmV4dCBzY3JlZW4uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk1LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhlIHNldHVwIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsuIEJlZm9yZSB0aGUgYnVpbGQgc3RhcnRzLCB5b3Ugd2lsbCBnZXQgYSBwcm9tcHQgdG8gZWl0aGVyIGRvd25sb2FkIGFuZCB1c2UgdGhlIHByb3ZpZGVkIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgaGF2ZSBpdCBhZGRlZCBvbiBhIHNlcGFyYXRlIGJyYW5jaCBvciBzZXQgb25lIHVwIG1hbnVhbGx5LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk2LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U2VsZWN0ICZsdDtzdHJvbmcmZ3Q7QWRkIE1hbnVhbGx5Jmx0Oy9zdHJvbmcmZ3Q7IHRvIHByb2NlZWQuIFRoaXMgd2lsbCBwcm9tcHQgYW5vdGhlciBkaWFsb2cgdGhhdCBjaGVja3MgdG8gY29uZmlybSB0aGF0IHlvdSBoYXZlIGEgY29uZmlndXJhdGlvbiBmaWxlIHNldCB1cCB0byBiZWdpbiBidWlsZGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTcucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGNvbXBsZXRlIHRoZSBzZXR1cC4gVGhlIGJ1aWxkIHdpbGwgc3VyZWx5IGZhaWwgYmVjYXVzZSB3ZSBoYXZlIG5vdCBzZXQgdXAgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB5ZXQsIHRoaXMgd2Ugd2lsbCBkbyBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiB0aGUgQ2lyY2xlQ0kgY29uc29sZSBpcyB0byBzZXQgdXAgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZW52LXZhcnMvJnF1b3Q7Jmd0O2Vudmlyb25tZW50IHZhcmlhYmxlcyZsdDsvYSZndDsgZm9yIHRoZSBwcm9qZWN0IHdlIGp1c3QgYWRkZWQuIFRoaXMgd2lsbCBlbmFibGUgaXQgdG8gaGF2ZSBhdXRoZW50aWNhdGVkIGFjY2VzcyB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIGZvciBkZXBsb3ltZW50cy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHbyB0byB5b3VyIHByb2plY3TigJlzIHNldHRpbmdzIGJ5IGNsaWNraW5nICZsdDtzdHJvbmcmZ3Q7UHJvamVjdCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgJmx0O3N0cm9uZyZndDtQaXBlbGluZXMmbHQ7L3N0cm9uZyZndDsgcGFnZSAobWFrZSBzdXJlIHlvdXIgcHJvamVjdCBpcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2plY3QpLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5OC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBuYXZpZ2F0ZSB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBwYWdlLiBPbiB0aGlzIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7RW52aXJvbm1lbnQgVmFyaWFibGVzJmx0Oy9zdHJvbmcmZ3Q7IG9uIHRoZSBzaWRlIG1lbnUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk5LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFnZSwgY2xpY2sgJmx0O3N0cm9uZyZndDtBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUgYnV0dG9uJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTAucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZGQgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Jmx0Oy9wJmd0OwombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDs6IFRoaXMgaXMgdGhlIG5hbWUgb2YgeW91ciBIZXJva3UgYXBwbGljYXRpb24gKGluIHRoaXMgY2FzZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnYXRzYnktaGVyb2t1LWRlcGxveSZsdDsvY29kZSZndDspJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7SEVST0tVX0FQSV9LRVkmbHQ7L2NvZGUmZ3Q7OiBZb3VyIEhlcm9rdSBhY2NvdW50IEFQSSBrZXkgZm91bmQgdW5kZXIgdGhlICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCZsdDsvc3Ryb25nJmd0OyB0YWIgb2YgeW91ciBIZXJva3UgYWNjb3VudCBpbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50IFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O09uY2UgYWRkZWQsIHlvdSB3aWxsIGhhdmUgZXZlcnl0aGluZyBzZXQgdXAgb24geW91ciBDaXJjbGVDSSBjb25zb2xlIGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRoZSBHYXRic3kuanMgc2l0ZSB1c2luZyBvcmJzJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy8mcXVvdDsmZ3Q7T3JicyZsdDsvYSZndDsgYXJlIHJldXNhYmxlIHBhY2thZ2VzIG9mIFlBTUwgY29uZmlndXJhdGlvbiB0aGF0IGNvbmRlbnNlIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoZXkgZW5hYmxlIGRldmVsb3BlcnMgdG8gZWFzaWx5IHVzZSBwb3dlcmZ1bCBwaXBlbGluZSBmdW5jdGlvbmFsaXRpZXMgd2l0aCBhbGwgdGhlIGJvaWxlcnBsYXRlIGFic3RyYWN0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBleGVyY2lzZSwgd2Ugd2lsbCBiZSB1c2luZyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7b3JiIGZvciBIZXJva3UmbHQ7L2EmZ3Q7IHRvIGNvbmZpZ3VyZSBvdXIgcGlwZWxpbmUgdG8gZGVwbG95IG91ciBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0IGJlZm9yZSB0aGF0LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGZpbGUgdG8gaW5zdHJ1Y3Qgb3VyIEhlcm9rdSBCdWlsZHBhY2sgU3RhdGljIHBhY2thZ2Ugb24gaG93IHRvIGRlcGxveSBhbmQgc2VydmUgb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgbmV3IGZpbGUgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3RhdGljLmpzb24mbHQ7L2NvZGUmZ3Q7IGFuZCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGUgaW50byBpdDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3sKICAmcXVvdDtyb290JnF1b3Q7OiAmcXVvdDtwdWJsaWMvJnF1b3Q7LAogICZxdW90O2hlYWRlcnMmcXVvdDs6IHsKICAgICZxdW90Oy8qKiZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJnF1b3Q7CiAgICB9LAogICAgJnF1b3Q7LyoqLmNzcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy8qKi5qcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy9zdGF0aWMvKiomcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0sCiAgICAmcXVvdDsvaWNvbnMvKi5wbmcmcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0KICB9LAogICZxdW90O2h0dHBzX29ubHkmcXVvdDs6IHRydWUsCiAgJnF1b3Q7ZXJyb3JfcGFnZSZxdW90OzogJnF1b3Q7NDA0Lmh0bWwmcXVvdDsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgbW9zdCBpbXBvcnRhbnQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaGVyZSBpcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkuIFdoZW4gR2F0c2J5LmpzIHJ1bnMgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2J1aWxkJmx0Oy9jb2RlJmd0OyBzY3JpcHQgKHRoaXMgaXMgYWxzbyB0aGUgc2NyaXB0IHVzZWQgYnkgSGVyb2t1IHRvIHJ1biB0aGUgYnVpbGQgYmVmb3JlIGRlcGxveW1lbnQpLCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1YmxpYyZsdDsvY29kZSZndDsgZm9sZGVyIGlzIGdlbmVyYXRlZCBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBjb250YWluaW5nIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb2R1Y3Rpb24gdmVyc2lvbiBpcyB3aGF0IHRoZSBob3N0IHNlcnZlcyB0byB1c2Vycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaHVzLCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkgaXMgdXNlZCB0byBwb2ludCB0byB0aGlzIGZvbGRlciBzbyB0aGF0IHRoZSBob3N0IHNlcnZlcyB0aGUgYXBwcm9wcmlhdGUgY29kZS4gT3RoZXIgcGFyYW1ldGVycyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gYXJlIHNpbXBseSBiZXN0LXByYWN0aWNlIGNvbmZpZ3VyYXRpb25zIGZvciBHYXRzYnkuanMgc2l0ZXMuIEZvciBleGFtcGxlLCBjYWNoaW5nIGd1aWRlbGluZXMgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvY2FjaGluZy8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7R29vZCEgTm93IHdlIGNhbiB3cml0ZSBvdXIgZGVwbG95bWVudCBzY3JpcHQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgdGhlIHJvb3Qgb2YgeW91ciBHYXRzYnkuanMgcHJvamVjdCwgY3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgYW5kIGEgZmlsZSB3aXRoaW4gaXQgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0Oy4gSW5zaWRlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGU6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt2ZXJzaW9uOiAyLjEKb3JiczoKICBoZXJva3U6IGNpcmNsZWNpL2hlcm9rdUAwLjAuMTAKd29ya2Zsb3dzOgogIGhlcm9rdV9kZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGhlcm9rdS9kZXBsb3ktdmlhLWdpdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGF04oCZcyBpdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgY29uZmlndXJhdGlvbiBhYm92ZSwgd2UgcHVsbCBpbiB0aGUgSGVyb2t1IG9yYiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaXJjbGVjaS9oZXJva3VAMC4wLjEwJmx0Oy9jb2RlJmd0OyB3aGljaCBhdXRvbWF0aWNhbGx5IGdpdmVzIHVzIGFjY2VzcyB0byBhIHBvd2VyZnVsIHNldCBvZiBIZXJva3Ugam9icyBhbmQgY29tbWFuZHMuIE9uZSBvZiB0aG9zZSBqb2JzIGlzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3UvZGVwbG95LXZpYS1naXQmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGRlcGxveXMgeW91ciBhcHBsaWNhdGlvbiBzdHJhaWdodCBmcm9tIHlvdXIgR2l0SHViIHJlcG8gdG8geW91ciBIZXJva3UgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIGpvYiBhbHJlYWR5IHRha2VzIGNhcmUgb2YgaW5zdGFsbGluZyB0aGUgSGVyb2t1IENMSSwgaW5zdGFsbGluZyBwcm9qZWN0IGRlcGVuZGVuY2llcywgcnVubmluZyB0aGUgYnVpbGQgc2NyaXB0LCBhbmQgZGVwbG95aW5nIHRoZSBhcHBsaWNhdGlvbi4gSXQgYWxzbyBwaWNrcyB1cCBvdXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGggZGVwbG95bWVudCB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgdGhlIG1vbWVudCBvZiB0cnV0aCAoZHJ1bSByb2xsKS4gTGV04oCZcyBjb21taXQgYWxsIHRoZSBjaGFuZ2VzIHdlIGhhdmUgbWFkZSB0byBvdXIgR2F0c2J5LmpzIHByb2plY3QgYW5kIHB1c2ggdG8gb3VyIHJlcG8gdG8gdHJpZ2dlciB0aGUgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTEucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBzZWUgdGhlIGJlaGluZC10aGUtc2NlbmVzIHpjdGlvbiBvZiB0aGUgZGVwbG95bWVudCwgeW91IGNhbiBjbGljayBpbnRvIHRoZSBidWlsZC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTIucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgZm9yIHRoZSBmaW5hbCBjb25maXJtYXRpb24gdGhhdCB0aGUgZGVwbG95bWVudCBvZiBvdXIgR2F0c2J5LmpzIHNpdGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bCwgdmlzaXQgdGhlIGRlZmF1bHQgSGVyb2t1IGFkZHJlc3MgZm9yIHRoZSBzaXRlIGF0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vW0FQUF9OQU1FXS5oZXJva3VhcHAuY29tJmx0Oy9jb2RlJmd0Oy4gSWYgeW91IHVzZWQgdGhlIHNhbWUgbmFtZSBhcyBJIGRpZCBmb3IgdGhpcyBleGVyY2lzZSwgdGhhdCB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vZ2F0c2J5LWhlcm9rdS1kZXBsb3kuaGVyb2t1YXBwLmNvbS8mbHQ7L2NvZGUmZ3Q7LiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93ICh0aGlzIG1pZ2h0IGJlIGRpZmZlcmVudCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IEdhdHNieS5qcyBzdGFydGVyIHRlbXBsYXRlLCBsZWFybiBtb3JlIGFib3V0IHN0YXJ0ZXJzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvcGx1Z2lucy10aGVtZXMtYW5kLXN0YXJ0ZXJzLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OykuJmx0Oy9wJmd0OwoKJmx0O3AgYWxpZ249JnF1b3Q7Y2VudGVyJnF1b3Q7Jmd0OwogICAmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTEzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NvbmNsdXNpb24mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2UgZGVwbG95ZWQgYSBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UgdXNpbmcgQ2lyY2xlQ0kgb3Jicy4gTm93IHdoZW4gd2UgcHVzaCBvdXIgY29kZSwgYWxsIGNoYW5nZXMgd2lsbCBiZSBkZXBsb3llZCBhdXRvbWF0aWNhbGx5LiBUaGlzIHR1dG9yaWFsIGhhcyBhbHNvIGRlbW9uc3RyYXRlZCBob3cgQ2lyY2xlQ0kgb3JicyBtYWtlcyBkZXBsb3ltZW50IGVhc3kuIEluc3RlYWQgb2Ygd3JpdGluZyBtYW55IGxpbmVzIG9mIGNvbmZpZyBuZWVkIHRvIGRlcGxveSB0byBIZXJva3UsIG9yYnMgYWJzdHJhY3QgYWxsIG9mIHRoYXQgaW50byBjb252ZW5pZW50IGNvbW1hbmRzIGZvciB1cyB0byB1c2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2hlY2sgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kgb3JicyByZWdpc3RyeSZsdDsvYSZndDsgZm9yIG9yYnMgdGhhdCBzdWl0IHlvdXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGRlcGxveW1lbnQgZGVzdGluYXRpb24gb2YgY2hvaWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyEmbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5MZXR0aW5nIGNoYW5nZSBhbmQgdW5jZXJ0YWludHkgYWR2YW5jZSB5b3VyIHNvZnR3YXJlIGFyY2hpdGVjdHVyZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VGh1LCAwNyBNYXkgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Sb2IgWnViZXI8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIGZpcnN0IGxpbmVzIG9mIENpcmNsZUNJ4oCZcyBjb2RlYmFzZSB3ZXJlIHdyaXR0ZW4gbmVhcmx5IG5pbmUgeWVhcnMgYWdvLiBMb29raW5nIGJhY2sgb24gd2hhdCB3ZSBoYXZlIGJ1aWx0IHNvIGZhciB3aXRoIHRoZSBjbGFyaXR5IG9mIGhpbmRzaWdodCBleHBvc2VzIHNvbWUgaW50ZXJlc3RpbmcgdGhlbWVzIHRoYXQgY2FuIGJlIGluc3RydWN0aXZlIGluIGlkZW50aWZ5aW5nIGFwcHJvYWNoZXMgdG8gZGVhbGluZyB3aXRoIGNoYW5nZS4gV2hpbGUgdGhleSB3ZXJlbuKAmXQgYWxsIGludGVudGlvbmFsLCBpdCBkb2VzbuKAmXQgbWFrZSB0aGVtIGFueSBsZXNzIHZhbHVhYmxlLiBUaHJlZSBzdWNoIHRoZW1lcyBhcmU6IGRlZmVycmluZyB0aGUgbmVlZCB0byBoYW5kbGUgY2hhbmdlLCB0aGlua2luZyBsaWtlIGEgcHJvZHVjdCBtYW5hZ2VyLCBhbmQga2VlcGluZyB5b3VyIGhlYWQgdXAuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NoYW5nZSBpcyBhIGNvbnN0YW50IGluIHRlY2hub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Q2hhbmdlIG1pZ2h0IGJlIG9uZSBvZiB0aGUgb25seSBjb25zdGFudHMgZW5naW5lZXJzIHdpbGwgZGVhbCB3aXRoIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGVpciBjYXJlZXJzLiBJdCBjZXJ0YWlubHkgZHJpdmVzIG1hbnkgb2Ygb3VyIG1vc3QgaW50ZXJlc3RpbmcgY2hhbGxlbmdlcy4gVGhlIG1hcmtldCBpcyBjaGFuZ2luZywgb3VyIGJ1c2luZXNzIGlzIGV2b2x2aW5nLCBvdXIgY3VzdG9tZXIgYmFzZSBpcyBncm93aW5nLCBhbmQgb3VyIHRlYW0gaXMgc2NhbGluZy4gV2UgbmVlZCB0byBidWlsZCBhIHNvbHV0aW9uIHRoYXQgbWVldHMgdG9kYXnigJlzIG5lZWRzIGJ1dCBzZXRzIHVzIHVwIGZvciB0aGUgZGVtYW5kcyBvZiB0b21vcnJvdy4gSG93IGRvIHdlIGRlc2lnbiBvdXIgc3lzdGVtcyBpbiBhIG1hbm5lciB0aGF0IGNhbiBhZGFwdCBhbmQgY2hhbmdlIHRvIHRoaW5ncyB0aGF0IGRvbuKAmXQgZXZlbiBleGlzdCB3aGVuIHdlIHN0YXJ0IGJ1aWxkaW5nIGl0PyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZXJlIGhhcyBiZWVuIGEgbG90IG9mIHRhbGsgaW4gcmVjZW50IHllYXJzIGFib3V0IGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGV2b2x2ZSBvciBtb3JlIGVhc2lseSBhZGFwdCB0byBjaGFuZ2UuIFRoZW4gd2Ugc3RhcnQgdG8gZGViYXRlIHRoZSBtZXJpdHMgb2YgdGhlc2UgYXJjaGl0ZWN0dXJlcyB1c2luZyBhIGxpbmUgb2YgdGhpbmtpbmcgdGhhdCBzdWdnZXN0cyB5b3UgYXJlIGNob29zaW5nIHRvIGhhdmUgYSDigJxNaWNyb3NlcnZpY2VzIEFyY2hpdGVjdHVyZeKAnSBvciBhbiDigJxFdmVudC1Ecml2ZW4gQXJjaGl0ZWN0dXJl4oCdIG9yIGEg4oCcU2VydmVybGVzcyBBcmNoaXRlY3R1cmUu4oCdIEkgd291bGQgcG9zaXQgdGhhdCB0aGlzIHR5cGUgb2YgZGVzY3JpcHRpb24gY3JlYXRlcyBhIGZhbHNlIHNlbnNlIG9mIGZpbmFsaXR5IHRoYXQgZG9lc27igJl0IGFjdHVhbGx5IGV4aXN0IGluIG1vc3QgcmVhbC13b3JsZCBzeXN0ZW1zLiZsdDsvcCZndDsKCiZsdDtwJmd0O091dHNpZGUgb2YgdGhlIHlvdW5nZXN0IG9mIHByb2plY3RzLCBpdOKAmXMgdW5saWtlbHkgdGhhdCB5b3UgY2FuIGRlc2NyaWJlIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCB5b3UgaGF2ZSB3aXRoIGFueSBzaW1wbGUgb25lLWxpbmVyLiBJdOKAmXMgbW9yZSBsaWtlbHkganVzdCDigJx5b3VyIGFyY2hpdGVjdHVyZSzigJ0gYW5kIGlmIHlvdeKAmXZlIGJlZW4gd29ya2luZyBvbiBpdCBmb3IgYW55IHNpZ25pZmljYW50IGFtb3VudCBvZiB0aW1lLCB5b3UgbWF5IGhhdmUgYXBwbGllZCBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0dGVybnMgYWxvbmcgdGhlIHdheSB0byBzb2x2ZSBzcGVjaWZpYyBwcm9ibGVtcy4gVGhlcmXigJlzIHByb2JhYmx5IGEgbW9ub2xpdGggc29tZXdoZXJlLCBzb21lIG51bWJlciBvZiBtaWNyb3NlcnZpY2VzLCBhIGZldyBldmVudHMsIGFuZCBhIHNlcnZlcmxlc3MgZWxlbWVudCBvciB0d28uIE9uIHRvcCBvZiBhbGwgdGhhdCwgeW91IG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YgdHJhbnNpdGlvbmluZyBzb21lIG9mIHRob3NlIHBpZWNlcyBmcm9tIG9uZSBwYXR0ZXJuIHRvIGFub3RoZXIuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0Rlc2lnbiBhcmNoaXRlY3R1cmUgdG8gc29sdmUgcHJvYmxlbXMmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gb2Z0ZW4gYXNrZWQgYnkgZm9sa3Mgd2hpY2ggYXJjaGl0ZWN0dXJlIHRoZXkgc2hvdWxkIGNob29zZSwgb3Igd2hlbiB0aGV5IHNob3VsZCBzd2l0Y2ggZnJvbSBvbmUgdG8gYW5vdGhlci4gSSBoYXZlIGEgZ3JlYXQgdGVuZGVuY3kgdG8gZGlzYXBwb2ludCB3aXRoIGFuc3dlcnMgbGlrZSDigJx3aGF0IHByb2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gc29sdmU/4oCdJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28sIHdoYXQgJmx0O3N0cm9uZyZndDtzaG91bGQmbHQ7L3N0cm9uZyZndDsgeW91IGJlIHRoaW5raW5nIGFib3V0IGFzIHlvdXIgcHJvZHVjdCBldm9sdmVzIGFuZCB5b3VyIG5lZWRzIGFyZSBjaGFuZ2luZz8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGVyZSBhcmUgYSBsb3Qgb2YgYXBwcm9hY2hlcyB0aGF0IHdlIGNhbiB1c2UgdG8gZGVzaWduIHNvZnR3YXJlIGFuZCBzeXN0ZW1zIHRvIGJlIG1vcmUgcmVzaWxpZW50IHRvIGNoYW5nZS4gVGhlIGFsbHVyZSBvZiBub3QgaGF2aW5nIHRvIGRvIGNvbXBsZXggcmVmYWN0b3Jpbmcgb3IgcmVidWlsZGluZyBkb3duIHRoZSByb2FkIGxlYWRzIHVzIHRvIHdhbnQgdG8gZGVzaWduIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG93IGNvc3Qgb2YgY2hhbmdlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2hpbGUgZ2VuZXJhbGl6ZWQgYWJzdHJhY3Rpb25zIGFuZCByZXVzYWJsZSBjb21wb25lbnRzIGFyZSBhdCB0aGUgY29yZSBvZiByZWR1Y2luZyB0aGUgaW1wYWN0IG9mIGNoYW5nZSwgdGhleSBhcmUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Jsb2cuY29kaW5naG9ycm9yLmNvbS90aGUtZGVsdXNpb24tb2YtcmV1c2UvJnF1b3Q7Jmd0O2hhcmQgdG8gZ2V0IHJpZ2h0IGluIHRoZSBmaXJzdCBwbGFjZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0l04oCZcyBoYXJkIHRvIHByZWRpY3QgdGhlIGZ1dHVyZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtBdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHRlY2huaWNhbCBsYW5kc2NhcGUgaXMgY2hhbmdpbmcsIHlvdXIgYnVzaW5lc3MgYW5kIHlvdXIgb3JnYW5pemF0aW9uIGFyZSBib3RoIGV2b2x2aW5nIGFzIHdlbGwuIFRoZXNlIGJvdGggaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiB5b3VyIGFyY2hpdGVjdHVyYWwgZGVjaXNpb25zLiBUaGUgc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlIHRoYXQgeW91IGFyZSB1bmRlcmdvaW5nIHdpbGwgaW5mbHVlbmNlIHRoZSBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUgYmVzdCBzdWl0ZWQgdG8gYWJzb3JiIHRob3NlIGNoYW5nZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGVhcmx5IGRheXMgb2YgYSBwcm9qZWN0IG9yIGNvbXBhbnksIGl04oCZcyBwb3NzaWJsZSB0byBtYWtlIHN3ZWVwaW5nIGZ1bmRhbWVudGFsIHNoaWZ0cyBpbiB0aGUgb2JqZWN0aXZlLiBFeHRyZW1lLCBidXQgbm90IHVuY29tbW9uLCBleGFtcGxlcyBpbmNsdWRlIFRpbnkgU3BlY2sgYmVjb21pbmcgU2xhY2sgYW5kIE9kZW8gYmVjb21pbmcgVHdpdHRlci4gV2hlbiB0aGUgZG9tYWluIG9mIHlvdXIgYnVzaW5lc3MgY2FuIG1vdmUgdGhhdCBkcmFzdGljYWxseSwgdGhlIGNsZWFuIGJvdW5kYXJpZXMgb2YgeW91ciBEREQgbW9kZWwgYXJlIG91dCB0aGUgd2luZG93LiBJbiBhIHNldCBvZiBtaWNyb3NlcnZpY2VzLCB0aGVzZSBib3VuZGFyaWVzIHdpbGwgYmUgY29kaWZpZWQsIHNvIGlmIHlvdSBoYXZlIHRvIGN1dCB0aHJvdWdoIHRoZW0sIHlvdeKAmWxsIGxpa2VseSBiZSB0aGFua2Z1bCBmb3IgYSBtb3JlIHBsaWFibGUgbW9ub2xpdGguJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB5b3UgZmluZCBwcm9kdWN0IC8gbWFya2V0IGZpdCwgeW91ciBwcmlvcml0aWVzIHdpbGwgc2hpZnQgdG93YXJkcyBzdXBwb3J0aW5nIHlvdXIgcmFwaWQgZ3Jvd3RoLiBXaXRoIHN5c3RlbSBzY2FsZSBhcyBhIGRyaXZlciBvZiBjaGFuZ2UsIHRoZSBhYmlsaXR5IHRvIHJlc3BvbmQgdG8gY2hhbmdlIGlzIG9mdGVuIHRpZWQgdG8gdGhlIGluZGVwZW5kZW5jZSBvZiBzeXN0ZW1zIGJhc2VkIG9uIHRoZWlyIG9wZXJhdGlvbmFsIGNoYXJhY3RlcmlzdGljcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGF0IHNjYWxpbmcgcGhhc2UsIHlvdeKAmWxsIGhhdmUgYSBsYXJnZXIgb3JnYW5pemF0aW9uIGFuZCBmYXIgbW9yZSB0ZWFtcy4gSWYgeW914oCZcmUgbHVja3kgeW914oCZbGwgYmUgYmFjayB0byBzdXN0YWluYWJsZSBwcm9kdWN0IGV2b2x1dGlvbi4gVGhlbiB0aGUgY29zdCBvZiBjaGFuZ2Ugd2lsbCBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIGFtb3VudCBvZiBjcm9zcy10ZWFtIGNvb3JkaW5hdGlvbiByZXF1aXJlZCB0byBtYWtlIGEgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtoMiZndDtEZWZlciByZXNwb25zZSB0byBjaGFuZ2UmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7V2hlbiBhbiBpbmRpdmlkdWFsIG9yIHRlYW0gaGFzIGEgcHJvYmxlbSB0aGV54oCZcmUgdHJ5aW5nIHRvIHNvbHZlLCB0aGV5IGdlbmVyYWxseSBzdGFydCBvZmYgd2l0aCBhIHByZXR0eSBzaW1wbGUgZGlyZWN0aXZlIOKAkyBsZXTigJlzIGJ1aWxkIHRvIHNvbHZlIHRoYXQgcHJvYmxlbS4gV2hhdOKAmXMgdGhlIG1vc3QgZWZmZWN0aXZlIGFyY2hpdGVjdHVyZSB3ZSBjYW4gdXNlIHRvIGJ1aWxkIGEgdmlhYmxlIHByb2R1Y3QgYXQgdGhlIGxvd2VzdCBjb3N0PyBUaGlzIGlzIGdlbmVyYWxseSB0cnVlIHdoZXRoZXIgaXTigJlzIGEgc3RhcnR1cCBvciBhIGh1Z2UgbXVsdGluYXRpb25hbCBjb3Jwb3JhdGlvbi4gQSBuZXcgcHJvamVjdCB3aWxsIGJlIGJ1aWx0IG9uIGEgc3lzdGVtIHRoYXTigJlzIHJlbGF0aXZlbHkgbmV3LCBhbmQgd2lsbCBiZSB1bmxpa2VseSB0byBoYXZlIHByb2R1Y3QtbWFya2V0IGZpdCBiZWNhdXNlIHRoZSBjb21wYW55IHdvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCBpdHMgYnVzaW5lc3MgZG9tYWluIHlldCwgYW5kIHdvbuKAmXQga25vdyB3aGVyZSB0aGUgcHJpbWFyeSBzb3VyY2VzIG9mIGNoYW5nZSB3aWxsIGNvbWUgZnJvbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHNpdHVhdGlvbiwgZGVzaWduaW5nIGZvciBjaGFuZ2UgYmVjb21lcyBhIGxvdCBoYXJkZXIuIElmIGl04oCZcyBhIGxvdCBtb3JlIGV4cGVuc2l2ZSB0byBtYWtlIHRoaW5ncyByZXNpbGllbnQgdG8gY2hhbmdlIGFuZCB5b3UgY2Fu4oCZdCB0ZWxsIHlldCB3aGljaCBwYXJ0cyBvZiB5b3VyIHN5c3RlbSB3aWxsIGNoYW5nZSwgaG93IGRvIHlvdSBtYWtlIHRoZSBkZWNpc2lvbiBhYm91dCB3aGVyZSB0byBtYWtlIHRoYXQgaW52ZXN0bWVudD8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBjb3VudGVyaW50dWl0aXZlIGFzIGl0IG1heSBzb3VuZCwgdGhlIGFuc3dlciBpcyBwcm9iYWJseSBub3doZXJlLiBBdCBsZWFzdCBub3QgeWV0LiBJbnN0ZWFkIHdhdGNoIGNoYW5nZSBjbG9zZWx5IGFuZCBidWlsZCBpbiBhIHdheSB0aGF0IG1pbmltaXplcyB0aGUgY29zdCBvZiBiZWluZyB3cm9uZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiDigJwmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9zaG9wLm9yZWlsbHkuY29tL3Byb2R1Y3QvOTc4MDU5NjUyMjcwNC5kbyZxdW90OyZndDs5NyBUaGluZ3MgRXZlcnkgU29mdHdhcmUgQXJjaGl0ZWN0IFNob3VsZCBLbm93Jmx0Oy9hJmd0O+KAnSBLZXZsaW4gSGVubmV5LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbWVkaXVtLmNvbS9Aa2V2bGluaGVubmV5L2h0dHBzLW1lZGl1bS1jb20ta2V2bGluaGVubmV5LXVzZS11bmNlcnRhaW50eS1hcy1hLWRyaXZlci00OTNlYmViZDU3NWQmcXVvdDsmZ3Q7ZGVzY3JpYmVzIGFuIGltcG9ydGFudCBhcHByb2FjaCB0byB0aGlua2luZyBhYm91dCB1bmNlcnRhaW50eSZsdDsvYSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2Jsb2NrcXVvdGUmZ3Q7CiAgJmx0O3AmZ3Q74oCcVGhlIHByZXNlbmNlIG9mIHR3byBvcHRpb25zIGlzIGFuIGluZGljYXRvciB0aGF0IHlvdSBuZWVkIHRvIGNvbnNpZGVyIHVuY2VydGFpbnR5IGluIHRoZSBkZXNpZ24uIFVzZSB0aGUgdW5jZXJ0YWludHkgYXMgYSBkcml2ZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHlvdSBjYW4gZGVmZXIgY29tbWl0bWVudCB0byBkZXRhaWxzIGFuZCB3aGVyZSB5b3UgY2FuIHBhcnRpdGlvbiBhbmQgYWJzdHJhY3QgdG8gcmVkdWNlIHRoZSBzaWduaWZpY2FuY2Ugb2YgZGVzaWduIGRlY2lzaW9ucy4gSWYgeW91IGhhcmR3aXJlIHRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQsIHlvdeKAmXJlIG1vcmUgbGlrZWx5IHRvIGJlIHN0dWNrIHdpdGggaXQg4oCTIGluY2lkZW50YWwgZGVjaXNpb25zIGJlY29tZSBzaWduaWZpY2FudCBhbmQgdGhlIHNvZnRuZXNzIG9mIHRoZSBzb2Z0d2FyZSBoYXJkZW5zLuKAnSZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7VGhpcyBmcmFtaW5nIGlzIGdyZWF0IGZvciBleHBsaWNpdCBkZWNpc2lvbnMsIGJ1dCB3aGF0IGlmIHlvdSBkb27igJl0IGtub3cgeW914oCZcmUgbWFraW5nIGEgY2hvaWNlPyZsdDsvcCZndDsKCiZsdDtwJmd0O01hbnkgdGltZXMsIHRoZSBjaG9pY2UgaXNu4oCZdCBldmVuIHZpc2libGUgeWV0LCBidXQgd2lsbCByZXZlYWwgaXRzZWxmIGxhdGVyLiBJbiB0aGVzZSBzaXR1YXRpb25zLCB0aGUgYW5zd2VyIGlzIG5vdCB0byBvdmVyIGdlbmVyYWxpemUsIGJ1aWxkaW5nIGFic3RyYWN0aW9ucyBldmVyeXdoZXJlIGp1c3QgaW4gY2FzZS4gSW5zdGVhZCwga2VlcCB0aGluZ3MgYXMgc2ltcGxlIGFzIHBvc3NpYmxlIHNvIHlvdSBjYW4gdW5kZXJzdGFuZCB0aGVtIGxhdGVyIGlmIHlvdSBoYXZlIHRvIG1ha2UgYSBjaGFuZ2UuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O1NpbXBsaWNpdHkgbWFrZXMgaXQgZWFzaWVyIHRvIGFkYXB0IHRvIGNoYW5nZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZWFybHkgZGF5cywgdGhlIENpcmNsZUNJIGFwcGxpY2F0aW9uIHdhcyBhIG1vbm9saXRoIHRoYXQgdG9vayBhIGN1c3RvbWVy4oCZcyBidWlsZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRhdGEgYW5kIHB1c2hlZCBpdCBpbnRvIG9uZSBvZiBzZXZlcmFsIExYQyBjb250YWluZXJzLiBFdmVyeSBjb250YWluZXIgdGhhdCB3ZSBzcHVuIHVwIHdhcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgc2FtZSBpbWFnZSB0aGF0IGNvbnRhaW5lZCBldmVyeXRoaW5nIHRoYXQgd2UgdGhvdWdodCBhbnlvbmUgd291bGQgZXZlciB3YW50IGluIHRoZWlyIHRlc3QgZW52aXJvbm1lbnQuIEluIGhpbmRzaWdodCwgdGhpcyBzb3VuZHMgbGlrZSBhIHRlcnJpYmxlIGlkZWEsIGJ1dCBhdCB0aGUgdGltZSwgaXQgd2FzIGZhbnRhc3RpYy4gSXQgd2FzIHNpbXBsZSB0byBtYWludGFpbiBhbmQgc3VwcG9ydGVkIHRoZSBuZWVkcyBvZiBvdXIgZWFybHkgY3VzdG9tZXJzLCBtYW55IG9mIHdob20gd2VyZSBidWlsZGluZyBSYWlscyBtb25vbGl0aHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXMgdGltZSBwYXNzZWQgYW5kIG91ciBjdXN0b21lciBiYXNlIGdyZXcsIHNvIGRpZCB0aGUgZGl2ZXJzaXR5IG9mIHRoZWlyIG5lZWRzIGluIHRlcm1zIG9mIHRlc3QgZW52aXJvbm1lbnRzLiBVcGdyYWRlZCB2ZXJzaW9ucyBvZiB0aGVpciB1bmRlcmx5aW5nIGRhdGFiYXNlcywgbm92ZWwgbmV3IGRldmVsb3BtZW50IGZyYW1ld29ya3MsIGV2ZW4gbmV3IG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbnMgYmVjYW1lIG5lY2Vzc2FyeS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgb3JpZ2luYWwgY29udGFpbmVyIG1hbmFnZW1lbnQgaW4gQ2lyY2xlQ0kgd2FzbuKAmXQgZGVzaWduZWQgaW4gYSB3YXkgdGhhdCBhbGxvd2VkIHVzIHRvIGFkYXB0IGVhc2lseSB0byB0aGVzZSBjaGFuZ2luZyBuZWVkcy4gQnV0IGl0IHdhcyBmYWlybHkgc2ltcGxlLiBTbyB3aGVuIHdlIHNldCBvdXQgdG8gc29sdmUgdGhlc2UgcHJvYmxlbXMsIHdlIGtuZXcgd2hlcmUgdG8gc3BsaWNlIGluIGEgbmV3IGFwcHJvYWNoIGFuZCBpdCB3YXMgbWluaW1hbCB3b3JrIHRvIGVuYWJsZSB0aGF0IHNwbGljaW5nLiBXZSBhbHNvIGRpZG7igJl0IGhhdmUgdG8gdW5yYXZlbCBhIHBvb3IgZ2VuZXJhbGl6YXRpb24gdGhhdCBkaWRu4oCZdCBzdXBwb3J0IG91ciBuZXcgcHJvYmxlbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3aGlsZSBzZWVtaW5nbHkgc2ltcGxlLCB3ZSB3ZXJlIGZpdmUgeWVhcnMgaW50byBzdWNjZXNzZnVsIGdyb3d0aCBhcyBhIGNvbXBhbnkgbWVldGluZyB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycyBvbiB0aGF0IHNpbXBsZSBzeXN0ZW0gYmVmb3JlIG91ciBmaXJzdCBjdXN0b21lcnMgdGVzdGVkIGl0cyByZXBsYWNlbWVudC4gSW4gdGhvc2UgZml2ZSB5ZWFycywgRG9ja2VyIHdhcyBjcmVhdGVkLCBhcyB3YXMgSGFzaGlDb3Jw4oCZcyBOb21hZC4gQ29tYmluZWQsIHRob3NlIHRvb2xzIGVsaW1pbmF0ZWQgaHVnZSBwb3J0aW9ucyBvZiB0aGUgd29yayBuZWNlc3NhcnkgdG8gZ2V0IHRoZSBmbGV4aWJsZSBhbmQgc2NhbGFibGUgZW52aXJvbm1lbnRzIHRoYXQgd2Ugc3VwcG9ydCBmb3IgY3VzdG9tZXJzIHRvZGF5LiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28sIGFzIHdlIHJldG9vbGVkIHRoZSBzeXN0ZW0gdG8gYWRhcHQgdG8gdGhlIGNoYW5nZWQgbWFya2V0IHdlIHdlcmUgaW4gYSBwb3NpdGlvbiB0byBhc2sg4oCcSG93IGRvIHdlIGRvIHRoaXMgaW4gYSB3YXkgdGhhdCBiZXR0ZXIgcG9zaXRpb25zIHVzIGZvciBpbmNyZW1lbnRhbCBjaGFuZ2U/4oCdIEl0IHdvdWxkIGJlIGRpZmZpY3VsdCB0byBvdmVyc3RhdGUgaG93IG11Y2ggdmFsdWUgdGhhdCBmaXZlIHllYXJzIG9mIGV4cGVyaWVuY2UgcHJvdmlkZWQgd2hlbiBkZXNpZ25pbmcgYSBzb2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdCBzb3VuZHMgd2VpcmQgYW5kIGdyb3NzbHkgdW5mYWlyIHRvIHNheSB0aGlzLCBidXQgbW9zdCBvZiB0aGUgdGltZSB3ZSBkb27igJl0IGV2ZW4ga25vdyB0aGF0IHdl4oCZcmUgbWFraW5nIGEgbW9udW1lbnRhbCBkZXNpZ24gZGVjaXNpb24gYmVjYXVzZSB0aGUgYWx0ZXJuYXRlIHBhdGggaGFzbuKAmXQgc2hvd24gdXAgeWV0LiBIb3cgZG8geW91IGd1YXJkIGFnYWluc3QgdGhpcz8mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7RGVmZXIsIGRlZmVyLCBkZWZlciZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUaGUgY29ycmVjdCBzb2x1dGlvbnMgaGF2ZSBhIGhhYml0IG9mIHJldmVhbGluZyB0aGVtc2VsdmVzIGlmIHlvdSBjYW4gZmluZCBhIHdheSB0byB3YWl0IGxvbmcgZW5vdWdoLiBUZWNobm9sb2d5IGdhaW5zIHRyYWN0aW9uIG9yIGRpZXMuIElmIHlvdSBjaG9zZSBhIGNvbnRhaW5lciBvcmNoZXN0cmF0aW9uIGVuZ2luZSBpbiAyMDE2LCB0aGVyZeKAmXMgYSByb3VnaGx5IDIwJSBjaGFuY2UgdGhhdCB5b3Ugd291bGQgaGF2ZSBjaG9zZW4gS3ViZXJuZXRlcy4gVGhhdCBtZWFucyBieSB0aGUgYmVnaW5uaW5nIG9mIDIwMTgsIGFsbW9zdCA4MCUgb2YgY29tcGFuaWVzIHdlcmUgc3dpdGNoaW5nLiBUaG9zZSBhcmUgbm90IGdyZWF0IG9kZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28gZGVmZXJyaW5nIGNhbiBiZSBnb29kLiBEZWZlcnJpbmcgdG8gdGhlIHBvaW50IG9mIGNyZWF0aW5nIGEgY3Jpc2lzIGlzIG5vdC4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7VGhpbmsgbGlrZSBhIHByb2R1Y3QgbWFuYWdlciZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3VyIGFyY2hpdGVjdHVyZSBpcyBhIGxlYWt5IGFic3RyYWN0aW9uLiBXaGlsZSBDaXJjbGVDSSBpcyBwcm9iYWJseSBhbiBleHRyZW1lIGV4YW1wbGUgb2YgdGhpcyBjYXNlIGR1ZSB0byB0aGUgYWNjZXNzIG91ciBjdXN0b21lcnMgaGF2ZSB0byBzeXN0ZW1zIGluIG91ciBwbGF0Zm9ybSwgdGhlcmUgaXMgYWx3YXlzIHNvbWUgaW1wbGljYXRpb24gZm9yIGN1c3RvbWVycyBvZiB0aGUgZGVjaXNpb25zIHlvdSBtYWtlIGluIGRlZmluaW5nIHlvdXIgYXJjaGl0ZWN0dXJlLiBSZWNvZ25pemluZyB0aGlzIGltcGFjdCBhbmQgYmVpbmcgYWJsZSB0byBjb2hlcmVudGx5IGRpc2N1c3MgYXBwcm9hY2hlcyBhbmQgYWx0ZXJuYXRpdmVzIGlzIGEgaHVnZSBhc3NldCB0aGF0IGFuIGVuZ2luZWVyIGNhbiBicmluZyB0byB0aGVpciBQTSBhbmQgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaGlsZSB3ZSB3ZXJlIHdpdG5lc3NpbmcgYWxsIG9mIHRoaXMgY2hhbmdlIGluIGhvdyBvdXIgY3VzdG9tZXJzIHdlcmUgYnVpbGRpbmcgc29mdHdhcmUsIG9uZSB0aGluZyB3ZSBpZ25vcmVkIGZvciB0b28gbG9uZyB3YXMgdGhlIHJpc2Ugb2YgRG9ja2VyLiBEb2NrZXIgZGlkbuKAmXQgZXZlbiBleGlzdCB3aGVuIENpcmNsZUNJIHN0YXJ0ZWQgaW4gMjAxMSwgdGhlbiBieSAyMDE0IGl0IHdhcyBldmVyeXdoZXJlLiBNYW55IG9mIG91ciBjdXN0b21lcnMgaGFkIHN0YXJ0ZWQgYnVpbGRpbmcgRG9ja2VyIGltYWdlcyBhcyBwYXJ0IG9mIHRoZWlyIGJ1aWxkIHRvIHByZXBhcmUgZm9yIGRlcGxveS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtEb2NrZXIgd2FzIG9yaWdpbmFsbHkgYnVpbHQgb24gdG9wIG9mIExYQywgYW5kIHRoYXQgbWVhbnQgaW4gdGhvc2UgZWFybHkgZGF5cyB3ZSBjb3VsZCBzdXBwb3J0IHRoZSB1c2Ugb2YgRG9ja2VyIGNvbW1hbmRzIHRvIGJ1aWxkIGltYWdlcyBhbmQgcHVzaCB0aGVtIHRvIHJlcG9zaXRvcmllcyBhbGwgaW5zaWRlIG9mIG9uZSBvZiBvdXIgTFhDIGNvbnRhaW5lcnMuIEluIDIwMTQsIERvY2tlciBsYXVuY2hlZCBzb21ldGhpbmcgY2FsbGVkIGxpYmNvbnRhaW5lciBhbmQgdGhleSBwdWxsZWQgYXBhcnQgdGhlIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBzeXN0ZW0gYW5kIGNyZWF0ZWQgZXhlY3V0aW9uIGRyaXZlcnMsIHdoaWNoIHNvb24gbGVkIHRvIHRoZSBkZXByZWNhdGlvbiBvZiB0aGUgTFhDIGRyaXZlci4gRGlzYXBwb2ludGluZywgYnV0IGl0IHN0aWxsIHdvcmtlZC4gVGhlbiBEb2NrZXIgZGVsZXRlZCBhbGwgTFhDIHN1cHBvcnQuIFRoYXQgd2FzIGJhZC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QWx3YXlzIHRoaW5rIGFib3V0IHVzZXJzJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVycyBhbmQgYXJjaGl0ZWN0cywgd2Ugc2F3IHRoaXMgY29taW5nLCBhbmQgZnJhbmtseSwgaXQgd2FzIHVuZGVyIHRoZSByYWRhciBvZiBvdXIgcHJvZHVjdCB0ZWFtLiBPdXIgbm9uLXRlY2huaWNhbCBwcm9kdWN0IGZvbGtzIGRpZG7igJl0IG5lY2Vzc2FyaWx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBidXQgb3VyIGVuZ2luZWVycyB3ZXJlIHRhbGtpbmcgYWJvdXQgaXQgZXZlcnkgZGF5LiBTbyBhcyBhbiBlbmdpbmVlciwgYW4gYXJjaGl0ZWN0LCBvciBhIGxlYWRlciBpbiB0ZWNobm9sb2d5LCB5b3UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBwcm9kdWN0IGFuZCB3b3JraW5nIHdpdGggeW91ciBwcm9kdWN0IG1hbmFnZXJzIHRvIGVuc3VyZSBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGUgaW1wbGljYXRpb25zIG9mIHRlY2huaWNhbCBjaG9pY2VzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0l04oCZcyBpbXBvcnRhbnQgdG8gc2VwYXJhdGUgdGhpcyBkaXNjdXNzaW9uIGZyb20gdGVjaG5pY2FsIGludmVzdG1lbnRzLiBUaGVyZSBpcyBhYnNvbHV0ZWx5IGEgcGxhY2UgZm9yIHRoaXMgdHlwZSBvZiBpbnZlc3RtZW50LCBhbmQsIGFuIGFyZ3VtZW50IHRoYXQgZnJhbWluZyB0aGVzZSBpbnZlc3RtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB5b3UgZnJhbWUgcHJvZHVjdCBpbnZlc3RtZW50cyBtYWtlcyBpdCBtdWNoIGVhc2llciB0byBtYWtlIHRyYWRlb2ZmIGRlY2lzaW9ucy4gSG93ZXZlciwgaWRlbnRpZnlpbmcgdGhlIGRpcmVjdGx5IGN1c3RvbWVyLXZpc2libGUgZmVhdHVyZSBpbXBhY3Qgb2YgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBtb3JlIGNvbW1vbmx5IGRpc2N1c3NlZCBpbXBhY3RzIG9mIGNvc3QsIHBlcmZvcm1hbmNlLCBzZWN1cml0eSwgZXRjLiZsdDsvcCZndDsKCiZsdDtwJmd0O0J1aWxkaW5nIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHlvdXIgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgdmFsdWUgYWNoaWV2ZWQgYnkgeW91ciBjdXN0b21lcnMgd2lsbCBwdXQgeW91IGluIGEgcG9zaXRpb24gdG8gbWFrZSBtb3JlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB3aGF0IGFuZCBob3cgdG8gYnVpbGQgYXMgeW91ciBidXNpbmVzcyBldm9sdmVzLiBUaGVuIHlvdSBjYW4gZm9jdXMgb24gZ2V0dGluZyBhaGVhZCBvZiB0aGF0IGV2b2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7S2VlcCB5b3VyIGhlYWQgdXAmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gQ2FuYWRpYW4gYW5kLCB1bnN1cnByaXNpbmdseSwgSSBncmV3IHVwIHBsYXlpbmcgaWNlIGhvY2tleS4gVGhyb3VnaG91dCBteSBjaGlsZGhvb2QsIEkgc3BlbnQgYW4gZW5kbGVzcyBhbW91bnQgb2YgdGltZSBhdCBwcmFjdGljZSBqdXN0IHNrYXRpbmc6IGZvcndhcmRzLCBiYWNrd2FyZHMsIHR1cm5pbmcsIHN0b3BwaW5nLCBmaWd1cmUgZWlnaHRzIGFyb3VuZCBjb25lcy4gVGhlbiBjYW1lIHN0aWNrIGhhbmRsaW5nLiBUaGUgaWRlYSB3YXMgdG8gaGF2ZSB0aGUgbW92ZW1lbnQgb24gdGhlIGljZSBiZWNvbWUgc2Vjb25kIG5hdHVyZSBzbyBJIGNvdWxkIGZvY3VzIG9uIHdoYXQgcmVhbGx5IG1hdHRlcmVkOiBzZWVpbmcgdGhlIHBsYXkgZGV2ZWxvcCwgZ2V0dGluZyBpbnRvIHNwYWNlLCBhbmQgdHJ5aW5nIHRvIHNjb3JlLiBNYWtlIHRoZSBmdW5kYW1lbnRhbHMgYWxtb3N0IGVmZm9ydGxlc3Mgc28geW91IGNhbiBwdXQgeW91ciBlbmVyZ3kgaW50byB0aGUgbm92ZWwgc3R1ZmYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gc29mdHdhcmUsIHdlIGhhdmUgYSBiYWQgdGVuZGVuY3kgdG8gbWFrZSB0aGUgZnVuZGFtZW50YWxzIGEgbG90IGhhcmRlciB0aGFuIHRoZXkgc2hvdWxkIGJlIGJ5IGFkb3B0aW5nIG5ldyB0ZWNobm9sb2d5IHRoYXQgd2UgdGhpbmsgaXMgZ29pbmcgdG8gYmUgZ2FtZSBjaGFuZ2luZywgYnV0IGVuZHMgdXAgaGF2aW5nIG1vZGVzdCB1cHNpZGUgaWYgYW55LiBUbyBtYWtlIHRoaW5ncyB3b3JzZSwgdGhlIGRvd25zaWRlIGlzIG9mdGVuIHVuYm91bmRlZCBhcyB3ZSBnZXQgb3VyIHRlYW1zIHVwIHRoZSBsZWFybmluZyBjdXJ2ZSwgZmluZCB1bnRlc3RlZCBlZGdlIGNhc2VzIGR1cmluZyBwcm9kdWN0aW9uIGluY2lkZW50cywgYW5kIGludmVudCBvdXIgb3duIOKAnGJlc3QgcHJhY3RpY2VzLuKAnSBBIHdvcmxkIHdoZXJlIFN0YWNrIE92ZXJmbG93IGhhcyBubyBhbnN3ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1doaWxlIHdl4oCZcmUgcHV0dGluZyB0aGlzIGVmZm9ydCBpbnRvIG91ciBub3ZlbCB0ZWNoLCB3ZeKAmXJlIG5vdCBmb2N1c2luZyBvbiBob3cgb3VyIHN5c3RlbXMgbmVlZCB0byBldm9sdmUgdG8gbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QSB0aW1lIHNpbXBsaWNpdHkgd291bGQgaGF2ZSBoZWxwZWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Q2lyY2xlQ0kgaXMgYSBDbG9qdXJlIHNob3AgYW5kLCBpbiBvdXIgZWFybHkgZGF5cywgd2UgZGVjaWRlZCB3ZeKAmWQgYmUgYmV0dGVyIGF0IGZyb250IGVuZCBkZXZlbG9wbWVudCBpZiB3ZSB1c2VkIHRoZSBzYW1lIGxhbmd1YWdlIHRoYXQgd2UgdXNlZCBpbiB0aGUgYmFja2VuZC4gU28gd2UgYWRvcHRlZCBPbSwgYSBDbG9qdXJlU2NyaXB0IHdyYXBwZXIgYXJvdW5kIFJlYWN0LiBBIGZldyB5ZWFycyBsYXRlciwgRGF2aWQgTm9sZW4sIHRoZSBwZXJzb24gd2hvIHN0YXJ0ZWQgT20sIGRlY2lkZWQgaGUgZGlkbuKAmXQgbGlrZSB0aGUgbW9kZWwgc28gaGUgcmVwbGFjZWQgaXQgd2l0aCBzb21ldGhpbmcgaW5jb21wYXRpYmxlIGNhbGxlZCBPbSBOZXh0LiBXZSB0cmllZCB0byBtaWdyYXRlIGluY3JlbWVudGFsbHkgdG8gT20gTmV4dCBhbmQgZW5kZWQgdXAgd2l0aCBhbiBvdmVybHkgY29tcGxleCBmcm9udGVuZCB3aXRoIHR3byBzdGF0ZSBtb2RlbHMgYW5kIG1hc3NpdmUgb3ZlcmhlYWQgdG8gZXZlcnkgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGVuZGVkIHVwIHJld3JpdGluZyBpdCBpbiBSZWFjdC4gSW4gcmV0cm9zcGVjdCwgT20gaGFkIGJvdGggaGlnaCByaXNrIGFuZCBoaWdoIGNvc3QgdG8gY2hhbmdlIGFuZCB3ZSBwYWlkIHRoZSBwcmljZS4gQW5kIHdlIHNwZW50IHRoYXQgdGltZSBsb29raW5nIGF0IG91ciBmZWV0LCBub3QgYWhlYWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm8gY29tcGFueSBoYXMgZXZlciB3b24gYmVjYXVzZSBvZiBhbiBhbWF6aW5nbHkgbm92ZWwgb3IgZXNvdGVyaWMgdGVjaG5vbG9neSBjaG9pY2UuIFRoZXJlIGlzIGFuIGVuZGxlc3MgbGlzdCwgaG93ZXZlciwgb2YgY29tcGFuaWVzIHRoYXQgaGF2ZSB3b24gYmVjYXVzZSB0aGV5IGNhbiBtb3ZlIHF1aWNrbHkgYW5kIHdpdGggYWdpbGl0eSwgYWRhcHRpbmcgdG8gY2hhbmdlIGFzIGl0IGhhcHBlbnMuIFRlY2hub2xvZ3kgc2hvdWxkIGJlIGFuIGFjY2VsZXJhdG9yIGhlbHBpbmcgdXMgbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4gV2VsbC11bmRlcnN0b29kLCBwcm9kdWN0aW9uLXRlc3RlZCB0b29scyBhcmUgZmFyIG1vcmUgbGlrZWx5IHRvIGZpdCB0aGF0IGJpbGwuIEFzIG15IGNvbGxlYWd1ZSBCZWFyIHNheXMsIOKAnElmIGEgdG9vbCBpc27igJl0IGhlbHBpbmcsIGl04oCZcyBub3QgYSB0b29sLCBpdOKAmXMgYSBjaG9yZS4gRHJvcCBpdC7igJ0mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7Q29uY2x1c2lvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtVbmZvcmVzZWVuIGNoYW5nZSBpcyB0b3Atb2YtbWluZCBmb3Igc28gbWFueSBvZiB1cyByaWdodCBub3csIGFuZCBpdOKAmXMgbW9yZSBvYnZpb3VzIHRoYW4gZXZlciB0aGF0LCBpbiBidXNpbmVzcywgbm9ib2R5IGNhbiBwcmVkaWN0IHRoZSBmdXR1cmUuIEl04oCZcyBhIHNhZmUgYmV0IHRoYXQgZm9sa3MgYXQgR00gZGlkbuKAmXQgc3RhcnQgdGhlIHllYXIgdGhpbmtpbmcgYWJvdXQgaG93IHRvIHVzZSB0aGVpciBmYWN0b3JpZXMgdG8gbWFrZSB2ZW50aWxhdG9ycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWluZyBwcmVwYXJlZCB0byBhZGFwdCBpbiB0aGUgZmFjZSBvZiBjaGFuZ2UgcmVxdWlyZXMgdGhpbmtpbmcgYWJvdXQgY2hhbmdlIGFzIGEgZHJpdmVyIGluIGV2ZXJ5dGhpbmcgeW91IGRvLiBXYXRjaCBob3cgeW91ciBtYXJrZXQgaXMgY2hhbmdpbmcgYW5kIHJlZmxlY3Q9IG9uIGhvdyB0aGF0IGltcGFjdHMgeW91ciBhcmNoaXRlY3R1cmUgc28gdGhhdCB5b3UgY2FuIG1ha2UgdGFyZ2V0ZWQsIGluY3JlbWVudGFsIGltcHJvdmVtZW50cyBpbiBpdHMgYWRhcHRhYmlsaXR5LiBUaGlzIHdpbGwgaGVscCBrZWVwIHlvdSBmb2N1c2VkIG9uIGV2b2x1dGlvbiB3aXRob3V0IHdhc3RpbmcgdGltZSBvciBtb25leSBvbiBhcmVhcyB0aGF0IHdvbuKAmXQgbmVlZCBpdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCbGFjayBTd2FuIGV2ZW50cyBhcmUgc28gdW51c3VhbCB0aGF0IHN0dWR5aW5nIHRoZSBzcGVjaWZpY3MgY2FuIGJlIGxvdyB2YWx1ZSwgYnV0IHRoZXkgcmVtaW5kIHVzIGhvdyBmYXIgcmVhbGl0eSBjYW4gYmUgZnJvbSBvdXIgcGxhbnMuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZW5naW5lZXJpbmcgbWFuYWdlcnMgY2FuIGVmZmVjdGl2ZWx5IHN1cHBvcnQgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWVuZ2luZWVyaW5nLW1hbmFnZXJzLWNhbi1lZmZlY3RpdmVseS1zdXBwb3J0LWVuZ2luZWVycy10ZWFtcy1hbmQtb3JnYW5pemF0aW9ucy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+V2VkLCAyOSBBcHIgMjAyMCAxNTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9ob3ctZW5naW5lZXJpbmctbWFuYWdlcnMtY2FuLWVmZmVjdGl2ZWx5LXN1cHBvcnQtZW5naW5lZXJzLXRlYW1zLWFuZC1vcmdhbml6YXRpb25zLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkxlbmEgUmVpbmhhcmQ8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIHR5cGljYWwgam9iIGRlc2NyaXB0aW9uIGZvciBtYW55IGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMgaXMgYWN0aW9uLXBhY2tlZC4gSXQgaXMgYSBtaXggb2YgaGFuZHMtb24gY29kaW5nLCB0ZWNobmljYWwgbGVhZGVyc2hpcCBhbmQgZGVjaXNpb24gbWFraW5nLCBwcm9jZXNzIGFuZCBwcm9qZWN0IG1hbmFnZW1lbnQsIHByb2R1Y3Qgb3ZlcnNpZ2h0LCBwZW9wbGUgbWFuYWdlbWVudCwgZmluZGluZyBhbmQgaGlyaW5nIHRhbGVudCDigKYgdGhlIGxpc3QgZ29lcyBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiBvdXIgd29yaywgd2UgZGVhbCB3aXRoIGJvdGggdGVjaG5pY2FsIGFuZCBwZW9wbGUgc3lzdGVtczogd2Ugc3VwcG9ydCBpbmRpdmlkdWFsIGVuZ2luZWVyc+KAmSBncm93dGg7IGhlbHAgdGVhbXMgYmVjb21lIHN1Y2Nlc3NmdWw7IGFuZCBtYWtlIHRoZSBvcmdhbml6YXRpb24gbW9yZSBwcm9kdWN0aXZlLCBmdW5jdGlvbmFsLCBhbmQgaW5ub3ZhdGl2ZS4gQWJvdmUgYWxsLCBhbiBlbmdpbmVlcmluZyBtYW5hZ2VyIGlzIGEgc2VydmljZSBvciBzdXBwb3J0IHJvbGUgYWNyb3NzIHRoZXNlIHZhcmlvdXMgbGF5ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1BlcmhhcHMgbW9zdCBmYXNjaW5hdGluZyBhbmQgZGlmZmljdWx0IGlzIHRoZSBoaWdoLWxldmVsIG9mIGFtYmlndWl0eSB0aGF0IGNvbWVzIHdpdGggZW5naW5lZXJpbmcgbWFuYWdlbWVudC4gTWFueSBwcm9ibGVtcyBvciBxdWVzdGlvbnMgZG9u4oCZdCBoYXZlIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLiBUaGVyZSBhcmVu4oCZdCBhYnNvbHV0ZSBhbnN3ZXJzIHRvIHdoYXQgaXQgbWVhbnMgdG8gYmUgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgZWl0aGVyLCBidXQgdGhlcmUgYXJlIGNlcnRhaW4gdmFsdWVzIGFuZCBndWlkZXBvc3RzIHRvIGZvbGxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgbG9vayBhdCB3aGF0IGNhbiBzaGFwZSBvdXIgdGhpbmtpbmcgYWJvdXQgb3VyIHJvbGUgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgYW5kIGhvdyB0byBlZmZlY3RpdmVseSBzdXBwb3J0IGluZGl2aWR1YWwgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1doYXQgZG8gZW5naW5lZXJzIG5lZWQgdG8gdGhyaXZlIGF0IHdvcms/Jmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SXQgaGVscHMgdG8gc3RhcnQgc2hhcGluZyBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IHJvbGVzIGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCBlbmdpbmVlcnMgbmVlZCwgYW5kIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGV5IHRocml2ZS4gUmVzZWFyY2ggZnJvbSBwZXJmb3JtYW5jZSBjb2FjaCBhbmQgdHJhaW5lciBQYWxvbWEgTWVkaW5hIGV4cG9zZXMgc2l4IGNvcmUgbmVlZHMgaHVtYW5zIGhhdmUgKGluY2x1ZGluZyBhdCB3b3JrKS4gU2hlIGNhbGxzIHRoaXMgcmVzZWFyY2ggdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGFsb21hbWVkaW5hLmNvbS9iaWNlcHMmcXVvdDsmZ3Q7QklDRVBTIG1vZGVsJmx0Oy9hJmd0OzombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7QmVsb25naW5nLiZsdDsvc3Ryb25nJmd0OyBBcyBodW1hbnMsIHdlIHN0cml2ZSB0byBiZSBwYXJ0IG9mIGEgY29tbXVuaXR5IG9mIGxpa2UtbWluZGVkIHBlb3BsZSB3aGVyZSB3ZSB1bmRlcnN0YW5kIGFuZCBzdXBwb3J0IGVhY2ggb3RoZXIuIFdlIGFsc28gd2FudCB0byBmZWVsIGFzIGlmIHdlIGFyZSBub3QgYmVpbmcgZGlzY3JpbWluYXRlZCBhZ2FpbnN0IG9yIG1hcmdpbmFsaXplZC4gQmVsb25naW5nIGlzIHJlYWxseSBpbXBvcnRhbnQgdG8gbWUgcGVyc29uYWxseTogSSBsb3ZlIHdvcmtpbmcgYXMgcGFydCBvZiBhIGRpc3RyaWJ1dGVkIHRlYW0sIGJ1dCBJIGFsc28gcmVhbGx5IGVuam95IHNlZWluZyBwZW9wbGUgaW4gcGVyc29uIGV2ZXJ5IG9uY2UgaW4gYSB3aGlsZS4gSXQgbWFrZXMgbWUgZmVlbCBtb3JlIGNvbm5lY3RlZCB0byB0aGVtLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7SW1wcm92ZW1lbnQuJmx0Oy9zdHJvbmcmZ3Q7IFdlIGFsc28gc2VlayB0byBjb250aW51b3VzbHkgbGVhcm4sIGltcHJvdmUsIGFuZCBncm93IGluIGFyZWFzIHRoYXQgbWF0dGVyIHRvIHVzLCBhcyB3ZWxsIGFzIHRvIG91ciB0ZWFtIG9yIGNvbXBhbnkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtDaG9pY2UuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8gaGF2ZSBjaG9pY2UsIGNvbnRyb2wsIGFuZCBhdXRvbm9teSBvdmVyIGltcG9ydGFudCBwYXJ0cyBvZiBvdXIgbGl2ZXMuIEluIG9uZSBvZiBteSBwcmV2aW91cyByb2xlcywgSSB0b29rIG9uIGEgbG90IG9mIHdvcmsgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLiBCdXQgdWx0aW1hdGVseSwgdGhlIGNvbnRyb2wgSSBoYWQgb3ZlciBteSBkb21haW4gd2FzIGxpbWl0ZWQgZHVlIHRvIG9yZ2FuaXphdGlvbmFsIGlzc3VlcyDigJMgd2hpY2ggbGVkIG1lIHRvIGxlYXZlIHRoZSBjb21wYW55LiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7RXF1YWxpdHkuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8ga25vdyB0aGF0IG91ciBhY2Nlc3MgdG8gaW5mb3JtYXRpb24sIG1vbmV5LCB0aW1lLCBhbmQgb3RoZXIgcmVzb3VyY2VzIGlzIGZhaXIgYW5kIGVxdWFsIGZvciBldmVyeW9uZSDigJMgbm90IGp1c3QgZm9yIG91cnNlbHZlcywgYnV0IGFsc28gZm9yIHRoZSBwZW9wbGUgYXJvdW5kIHVzLiBFdmVyeW9uZeKAmXMgbmVlZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZXF1YWxseSBpbXBvcnRhbnQuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtQcmVkaWN0YWJpbGl0eS4mbHQ7L3N0cm9uZyZndDsgV2UgbG9vayBmb3IgY2VydGFpbnR5LCBzYWZldHksIGFuZCBzdGFiaWxpdHkgaW4gb3VyIGxpdmVzLiBXZSBhbHNvIHdhbnQgZ29hbHMsIHN0cmF0ZWd5LCBhbmQgZGlyZWN0aW9uIHRvIGJlIGNvbnNpc3RlbnQg4oCTIGFuZCB0byBub3QgY2hhbmdlIHRvbyBxdWlja2x5LiBJ4oCZdmUgYmVlbiBsZWFkaW5nIHRlYW1zIGluIGZhc3QtZ3Jvd2luZyBzdGFydHVwcyBmb3IgdGhlIGxhc3QgY291cGxlIG9mIHllYXJzLCBhbmQgd2hlbiB0aGVyZeKAmXMgYSBsb3Qgb2YgY2hhbmdlIGhhcHBlbmluZywgaXTigJlzIGEgY2hhbGxlbmdlIHRvIGluc3RpbGwgcHJlZGljdGFiaWxpdHkgaW4gdGVhbXMuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtTaWduaWZpY2FuY2UuJmx0Oy9zdHJvbmcmZ3Q7IERlZXAgZG93biwgYWxsIG9mIHVzIHNlZWsgbWVhbmluZywgaW1wb3J0YW5jZSwgYW5kIHN0YXR1cy4gV2UgYWxzbyB3YW50IHRvIGJlIGFwcHJlY2lhdGVkIGZvciBvdXIgd29yayBieSBwZW9wbGUgd2hvc2Ugb3BpbmlvbnMgbWVhbiBzb21ldGhpbmcgdG8gdXMuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0lmIG91ciBjb3JlIG5lZWRzIGFyZSB0aHJlYXRlbmVkLCBwZW9wbGUgcmVzb3J0IHRvIGZpZ2h0LW9yLWZsaWdodCBtb2RlcyBvZiByZWFjdGlvbiwgd2hpY2ggYXJlIHZlcnkgc3RyZXNzZnVsLiBUaGUgZmFpbHVyZSB0byBtZWV0IGNvcmUgbmVlZHMgaGFzIGhpZ2ggY29zdHMgZm9yIG9yZ2FuaXphdGlvbnMgYnkgaGFybWluZyBwZW9wbGUgb24gb3VyIHRlYW1zLiBTbyBob3cgY2FuIGVuZ2luZWVyaW5nIG1hbmFnZXJzIHB1dCB0aGUgQklDRVBTIG1vZGVsIGludG8gYWN0aW9uIHRvIGhlbHAgdGhlaXIgdGVhbXMgdGhyaXZlPyZsdDsvcCZndDsKCiZsdDtoMiZndDtVc2luZyB0cnVzdC1iYXNlZCByZWxhdGlvbnNoaXBzIHRvIGhlbHAgZW5naW5lZXJzIGdyb3cmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgZm91bmRhdGlvbiBvZiBiZWluZyBhIGdvb2QgZW5naW5lZXJpbmcgbWFuYWdlciBpcyBnZXR0aW5nIHRvIGtub3cgb3VyIHRlYW1tYXRlcyBhbmQgdW5kZXJzdGFuZGluZyB3aGF0IGlzIGltcG9ydGFudCB0byB0aGVtLiBIZXJlIGFyZSBhIGZldyBwbGFjZXMgdG8gc3RhcnQgYnVpbGRpbmcgdHJ1c3Qgd2l0aGluIHlvdXIgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0FzayBxdWVzdGlvbnMuJmx0Oy9zdHJvbmcmZ3Q7IE9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCB0b29scyBtYW5hZ2VycyBoYXZlIGlzIGFza2luZyBnb29kIHF1ZXN0aW9ucy4gVGhlIGJhc2lzIGZvciBkb2luZyBvdXIgam9icyB3ZWxsIGlzIGxpc3RlbmluZywgb2JzZXJ2aW5nLCB0YWtpbmcgbm90ZSBvZiB3aGF0IG1vdGl2YXRlcyBvdXIgdGVhbW1hdGVzLCBhbmQgcmVhbGx5IGRpZ2dpbmcgaW50byB0aGVpciByZXNwb25zZXMgdG8gb3VyIHF1ZXN0aW9ucy4gSSB1c3VhbGx5IGdhdGhlciBxdWVzdGlvbnMgYmVmb3JlIEkgbWVldCB3aXRoIG15IHRlYW1tYXRlcyBvbmUtb24tb25lLCBzbyBJIGFtIHByZXBhcmVkIGFuZCBJIGNhbiBndWlkZSB0aGUgY29udmVyc2F0aW9uIHRvd2FyZHMgdW5kZXJzdGFuZGluZyB0aGVtIGJldHRlci4gT3ZlciB0aW1lLCBJIGhhdmUgYnVpbHQgYSBraXQgb2Ygb25lLW9uLW9uZSBxdWVzdGlvbnMgdGhhdCBJIHB1bGwgb3V0IHdoZW4gSSBuZWVkIHNvbWUgaW5zcGlyYXRpb24gZm9yIHRoZXNlIGNvbnZlcnNhdGlvbnMuIEFza2luZyBxdWVzdGlvbnMgaGVscHMgdXMgYWRqdXN0IG91ciBsZWFkZXJzaGlwIHN0eWxlIHRvIHRoZSBwZW9wbGUgd2UgYXJlIGxlYWRpbmcuIEl0IGFsc28gZW5zdXJlcyB0aGF0IHRoZXkgZmVlbCB1bmRlcnN0b29kIGFuZCBoZWFyZCwgd2hpY2ggYXJlIHJlYWxseSBpbXBvcnRhbnQgcGlsbGFycyBvZiBpbmNsdXNpb24gYW5kIGJlbG9uZ2luZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0JlIGN1cmlvdXMuJmx0Oy9zdHJvbmcmZ3Q7IFBlb3BsZSBhcmUgZnVsbCBvZiBzdXJwcmlzZXMsIGFuZCBzb21ldGltZXMgb3VyIHRlYW1tYXRlc+KAmSByZWFjdGlvbnMgbWF5IGJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBleHBlY3RlZC4gSSBvbmNlIHJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIGVuZ2luZWVyIG9uIG15IHRlYW0gd2hvIHdhcyBkZWVwbHkgdXBzZXQgYWJvdXQgdGhlIHNwZWNpZmljIHdvcmRpbmcgdXNlZCBpbiBhIHByb2R1Y3QtcmVsZWFzZSBub3RlIHRvIGN1c3RvbWVycy4gQXQgZmlyc3QgSSBkaWQgbm90IHVuZGVyc3RhbmQgdGhlaXIgc3Ryb25nIHJlYWN0aW9uLiBCdXQgd2hlbiB3ZSB0YWxrZWQsIEkgbGVhcm5lZCB0aGUgZW5naW5lZXIgaGFkIGJlZW4gb3ZlcnJ1bGVkIGJ5IHNvbWVvbmUgd2l0aCBtb3JlIHBvd2VyLCBtYWtpbmcgdGhlbSBmZWVsIGhlbHBsZXNzLCBhbmQgdGhyZWF0ZW5pbmcgdGhlaXIgY29yZSBuZWVkIGZvciBjaG9pY2UgYW5kIGVxdWFsaXR5LiZsdDsvcCZndDsKCiZsdDtwJmd0O1doYXQgbWFuYWdlcnMgbWlnaHQgcGVyY2VpdmUgYXMgbm8gYmlnIGRlYWwgY2FuIGJlIGVub3Jtb3VzIHRocmVhdHMgdG8gb3RoZXIgcGVvcGxlLiBDYXNlcyB3aGVyZSB3ZeKAmXJlIHN1cnByaXNlZCBieSBvdXIgdGVhbW1hdGVz4oCZIHJlYWN0aW9ucyBhcmUgZ29vZCBvcHBvcnR1bml0aWVzIHRvIGZvY3VzIG9uIGh1bWFuLWNlbnRyaWMgcmVzcG9uc2VzLCBsaWtlIGdpdmluZyBwZW9wbGUgdGhlIG9wcG9ydHVuaXR5IHRvIHRhbGsgdGhyb3VnaCB0aGVpciBmZWVsaW5ncy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0Nvbm5lY3QgdG8gdGhlIGJpZ2dlciBwaWN0dXJlLiZsdDsvc3Ryb25nJmd0OyBDcmVhdGluZyBhbiBpbXBhY3QgaXMgYSB2ZXJ5IGdvb2QgbW90aXZhdG9yIGZvciBhbGwgb2YgdXMsIHNvIGhlbHBpbmcgZW5naW5lZXJzIHVuZGVyc3RhbmQgaG93IHRoZWlyIHdvcmsgY29ubmVjdHMgdG8gdGhlIGJpZ2dlciBwaWN0dXJlIChob3cgaXQgaGVscHMgdXNlcnMgb3Igc3VwcG9ydHMgb3RoZXIgdGVhbXMpIGlzIGFuIGV4dHJlbWVseSBpbXBvcnRhbnQgYW5kIHN0cmF0ZWdpYyBza2lsbCBmb3IgbWFuYWdlcnMuIFdoaWxlIGdvYWwtc2V0dGluZyBmcmFtZXdvcmtzIGxpa2UgT0tScyBjYW4gaGVscCwgaXQgaXMgYWxzbyBjcnVjaWFsIHRvIGFsaWduIGVuZ2luZWVyaW5nIGluaXRpYXRpdmVzIHdpdGggaGlnaGVyLWxldmVsIGdvYWxzLCBhbmQgY29ubmVjdCB0aGVtIGNsZWFybHkgd2l0aCB1c2VyIHZhbHVlLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7SW52b2x2ZSBlbmdpbmVlcnMgaW4gZGVjaXNpb24gbWFraW5nLiZsdDsvc3Ryb25nJmd0OyBGZWVsaW5nIHRoYXQgZGVjaXNpb25zIGFyZSBmYWlyIGFuZCBlcXVpdGFibGUgaXMgYW4gaW1wb3J0YW50IGNvbXBvbmVudCBvZiB0aGUgQklDRVBTIG1vZGVsLiBXaGVuIHdlIG1ha2UgZGVjaXNpb25zLCBpdCBpcyBoZWxwZnVsIHRvIGFzayBldmVyeW9uZSBmb3IgdGhlaXIgb3BpbmlvbnMgZmlyc3QsIGFuZCB0YWtlIHRoZWlyIG9waW5pb25zIGludG8gYWNjb3VudC4gSXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBnbyB3aXRoIHdoYXQgZXZlcnlvbmUgd2FudHMuIEJ1dCB3ZSBjYW4gc3RpbGwgZG8gYSBnb29kIGpvYiBhdCBjb250ZXh0dWFsaXppbmcgdGhlIGRlY2lzaW9ucyB3ZSBtYWtlLCBhbmQgaGVscGluZyBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IHRoZWlyIGZlZWRiYWNrIHdhcyBjb25zaWRlcmVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7R2l2ZSBmZWVkYmFjayBmb3IgZ3Jvd3RoLiZsdDsvc3Ryb25nJmd0OyBPbmUgb2YgdGhlIGJlc3QgdGhpbmdzIHdlIGdldCB0byBkbyBhcyBlbmdpbmVlcmluZyBtYW5hZ2VycyBpcyBzdXBwb3J0IGVuZ2luZWVyc+KAmSBncm93dGguIEdpdmUgZmVlZGJhY2sgcmVndWxhcmx5IHRvIGhlbHAgdGhlIHBlb3BsZSBvbiB5b3VyIHRlYW0gdW5kZXJzdGFuZCB3aGVyZSB0aGV5IGFyZSBhdCBhbmQgZ3JvdyDigJMgYnkgY291cnNlLWNvcnJlY3Rpbmcgd2hlcmUgbmVlZGVkLCBhcyB3ZWxsIGFzIGJ5IGRvaW5nIG1vcmUgaW4gdGhlIGFyZWFzIGluIHdoaWNoIHRoZXkgYXJlIGFscmVhZHkgZG9pbmcgZ3JlYXQuIE1hbmFnZXJzIG5lZWQgZmVlZGJhY2sgYXMgd2VsbDogaXTigJlzIGltcG9ydGFudCB0byByZWd1bGFybHkgYXNrIHlvdXIgdGVhbSBmb3IgZmVlZGJhY2sgc28geW91IGNhbiBtYWtlIGFkanVzdG1lbnRzLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Q29hY2ggZW5naW5lZXJzLiZsdDsvc3Ryb25nJmd0OyBDb2FjaGluZyBoZWxwcyBwZW9wbGUgZmluZCBhbnN3ZXJzIHRoZW1zZWx2ZXMsIGltcHJvdmVzIHRoZWlyIHByb2JsZW0tc29sdmluZyBhbmQgbGVhZGVyc2hpcCBza2lsbHMsIGFuZCBpbmNyZWFzZXMgbGVhcm5pbmcsIHJlc2lsaWVuY2UsIGFuZCBzZWxmLW1hbmFnZW1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTcG9uc29yIGVuZ2luZWVycy4mbHQ7L3N0cm9uZyZndDsgVGhpbmsgYmFjayBvbiB5b3VyIGNhcmVlciwgYW5kIHdoZXRoZXIgeW91IGhhdmUgaGFkIGEgbWVudG9yIHdobyBjb25uZWN0ZWQgeW91IHdpdGggc29tZW9uZSwgcHV0IHlvdXIgbmFtZSBmb3J3YXJkLCBhbmQgdXNlZCB0aGVpciBpbmZsdWVuY2UgdG8gbWFrZSBhIGRpZmZlcmVuY2UgaW4geW91ciBjYXJlZXIuIEJlIHRoYXQgcGVyc29uIGZvciBzb21lb25lIGVsc2U6IGludmVzdCBpbiB0aGVpciBncm93dGgsIGxpZnQgdGhlbSB1cCwgYW5kIHB1dCB5b3VyIHdlaWdodCBiZWhpbmQgdGhlaXIgc3VjY2Vzcy4gU3VwcG9ydGluZyB5b3VyIHRlYW3igJlzIHN1Y2Nlc3MgY2FuIG1ha2UgYSByZWFsIGRpZmZlcmVuY2UgZm9yIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhpcyBpcyB0aGUgZm91bmRhdGlvbiBvZiBvdXIgd29yayBhcyBlbmdpbmVlcmluZyBtYW5hZ2Vycy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RHJpdmluZyBhIGN1bHR1cmUgb2YgdHJ1c3QgYW5kIGNvbnRpbnVvdXMgaW1wcm92ZW1lbnQgb24gdGVhbXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgbmV4dCBpbXBvcnRhbnQgYnVpbGRpbmcgYmxvY2sgaW4gb3VyIHdvcmsgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgaXMgdGhlIHRlYW0uIEFjY29yZGluZyB0byByZXNlYXJjaCwgaGlnaC1wZXJmb3JtaW5nIHRlYW1zIG5lZWQgdGhlIGZvbGxvd2luZyBlbGVtZW50cy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7UHN5Y2hvbG9naWNhbCBzYWZldHkuJmx0Oy9zdHJvbmcmZ3Q7IFRoaXMgaXMgYWJvdXQgYmVsaWV2aW5nIHRoYXQgd2Ugd2lsbCBub3QgYmUgcmVqZWN0ZWQsIGFuZCBmZWVsaW5nIGZyZWUgdG8gZXhwcmVzcyBvdXIgd29yay1yZWxhdGVkIHRob3VnaHRzIGFuZCBmZWVsaW5ncyB0byB0aGUgcGVvcGxlIGFyb3VuZCB1cy4gSXQgYWxzbyBtZWFucyBiZWxpZXZpbmcgdGhhdCBvdGhlcnMgd29u4oCZdCB0aGluayBsZXNzIG9mIHVzIGlmIHdlIG1ha2UgYSB3ZWxsLWludGVudGlvbmVkIG1pc3Rha2Ugb3IgYXNrIGZvciBoZWxwLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7U3RydWN0dXJlIGFuZCBjbGFyaXR5LiZsdDsvc3Ryb25nJmd0OyBFdmVyeW9uZSBvbiB0aGUgdGVhbSBzaG91bGQgdW5kZXJzdGFuZCBleHBlY3RhdGlvbnMsIGdvYWxzLCBhbmQgYWNjb3VudGFiaWxpdHkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtNZWFuaW5nIGFuZCBpbXBhY3QuJmx0Oy9zdHJvbmcmZ3Q7IEhpZ2gtcGVyZm9ybWluZyB0ZWFtcyBmaW5kIGEgc2Vuc2Ugb2YgcHVycG9zZSBpbiB0aGVpciB3b3JrLCBhbmQga25vdyB0aGF0IHRoZWlyIHdvcmsgaGFzIGFuIGltcGFjdC4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7THVja2lseSBmb3IgbWFuYWdlcnMsIHRoaXMgcmVzZWFyY2ggbmVhdGx5IGFsaWducyB3aXRoIHRoZSBCSUNFUFMgbW9kZWwuIEFsbCBodW1hbiBjb3JlIG5lZWRzIGFyZSByZXByZXNlbnRlZCBhbmQgaGF2ZSBpbXBhY3QgYXQgdGhlIHRlYW0gbGV2ZWwgYXMgd2VsbC4gQnkgdW5kZXJzdGFuZGluZyBhbmQgcmVzcG9uZGluZyB0byBwZW9wbGXigJlzIG1vdGl2YXRpb25zLCBsZWFkZXJzIGNyZWF0ZSB0aGUgYmFzaXMgZm9yIHRlYW1zICB0byBleHByZXNzIHRoZW1zZWx2ZXMg4oCTIGFuZCBwcm92aWRlIHRoZSBzdHJ1Y3R1cmUsIG1lYW5pbmcsIGFuZCBpbXBhY3QgdGhleSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgdHJ1c3QuJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBmaXJzdCBzdGVwIGluIGNyZWF0aW5nIHN0cnVjdHVyZSBpcyBidWlsZGluZyByZWxhdGlvbnNoaXBzLiBGb3Igb3VyIGRpc3RyaWJ1dGVkIHRlYW1zIGF0IENpcmNsZUNJLCB3ZeKAmXZlIGJ1aWx0IGRpZmZlcmVudCBzdHJ1Y3R1cmVzIHRvIGhlbHAgdGVhbW1hdGVzIGRvIHRoYXQsIHN1Y2ggYXMgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucyBhbmQgZW5naW5lZXJpbmcgdGFsa3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTdHJ1Y3R1cmUgYXJvdW5kIGhvdyB3ZSBjb2xsYWJvcmF0ZS4mbHQ7L3N0cm9uZyZndDsgT3VyIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0kgaGFzIGRvdWJsZWQgaW4gc2l6ZSBmb3IgdGhyZWUgeWVhcnMgaW4gYSByb3cuIE92ZXIgdGhpcyB0aW1lLCB3ZeKAmXZlIG1vdmVkIHRvIGEgbW9yZSBzdHJlYW1saW5lZCBlbmdpbmVlcmluZyBkZWxpdmVyeSBwcm9jZXNzIGZvciBhbGwgdGVhbXMuIEJ1dCB3ZSBzdGlsbCBsZWF2ZSBpdCB0byB0aGUgdGVhbXMgdG8gZGVjaWRlIGhvdyB0byBpbXBsZW1lbnQgdCBkYXktdG8tZGF5IHByb2Nlc3NlcywgaW5jbHVkaW5nIGRhaWx5IHN0YW5kdXAgbWVldGluZ3MsIHBsYW5uaW5nIHNlc3Npb25zLCBvciBjb2xsYWJvcmF0aW9uLiBFdmVyeSB0ZWFtIGhhcyBzcGVjaWZpYyBuZWVkcywgYW5kIHRoZXkga25vdyBiZXN0IGhvdyB0byBhZGRyZXNzIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtSZW1vdmUgYmxvY2tlcnMuJmx0Oy9zdHJvbmcmZ3Q7IFN0cnVjdHVyZXMgY2FuIGFsc28gaGVscCBtaXRpZ2F0ZSB0aGUgaW1wYWN0IG9mIGdldHRpbmcgYmxvY2tlZCBhdCB3b3JrLiBXZSBhbGwga25vdyBob3cgZnJ1c3RyYXRpbmcgaXQgaXMgdG8gYmUgc3R1Y2suIFB1dHRpbmcgdXAgcGF0aHdheXMgdG8gaGVscCBwZW9wbGUgZ2V0IHVuYmxvY2tlZCBjYW4gYmUgcmVhbGx5IGltcG9ydGFudCDigJMgZm9yIGV4YW1wbGUsIHNldHRpbmcgdXAgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucywgaW52ZXN0aW5nIGluIHNlbGYtc2VydmUgaW5mb3JtYXRpb24gYWNjZXNzLCBzdXBwb3J0aW5nIGVhY2ggb3RoZXIgYWNyb3NzIHRlYW1zLCBwdXR0aW5nIHVwIGVzY2FsYXRpb24gcGF0aHMgZm9yIHBlb3BsZSB0byBnZXQgaGVscCB3aGVuIHRoZXkgbmVlZCBpdCwgb3IgaGVscGluZyBwZW9wbGUgc3VwcG9ydCBlYWNoIG90aGVyIHRocm91Z2gga25vd2xlZGdlLXNoYXJpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtDb250aW51b3VzbHkgaW1wcm92ZS4mbHQ7L3N0cm9uZyZndDsgV2UgY2FuIHVzZSByZXRyb3NwZWN0aXZlcyB0byBkaXNjdXNzIGFuZCBpbXByb3ZlIGhvdyB3ZSB3b3JrIHRvZ2V0aGVyLiBCbGFtZWxlc3MgcG9zdG1vcnRlbXMgYXJlIGFsc28gYSBncmVhdCB0b29sIHRvIGhlbHAgdW5kZXJzdGFuZCBwcm9ibGVtcyBhbmQgZHJpdmUgdG93YXJkcyBzb2x1dGlvbnMuIENvZGUgcmV2aWV3cywgbWVudG9yaW5nLCBvciBrbm93bGVkZ2Ugc2hhcmluZyBjYW4gaGVscCB0ZWFtIG1lbWJlcnMgbGVhcm4gZnJvbSBlYWNoIG90aGVyLiBUaGUgd2F5IHdlIHRhbGsgYWJvdXQgbGVhcm5pbmcgbWF0dGVycyDigJMgZXNwZWNpYWxseSB0aGUgd2F5IHdlIGRpc2N1c3MgbWlzdGFrZXMuIFRoZXNlIGRlY2lzaW9ucyB3aWxsIGZ1bmRhbWVudGFsbHkgc2hhcGUgdGhlIGN1bHR1cmUgb2Ygb3VyIHRlYW1zLCBhbmQgZGV0ZXJtaW5lIHdoZXRoZXIgcGVvcGxlIGZlZWwgc2FmZSBvciB0aHJlYXRlbmVkIGluIHRoZWlyIGNvcmUgbmVlZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtEcml2ZSB0b3dhcmQgYWxpZ25tZW50LiZsdDsvc3Ryb25nJmd0OyBDb21tdW5pY2F0ZSBzdHJhdGVneSwgZGlyZWN0aW9uLCBhbmQgcmVsZXZhbnQgdGFjdGljYWwgZGV0YWlscyB0byBvdXIgdGVhbXMg4oCTIGFuZCByZW1lbWJlciBpdOKAmXMgYWxtb3N0IGltcG9zc2libGUgdG8gb3Zlci1jb21tdW5pY2F0ZSB0aGVzZSBkZXRhaWxzLiBBbHdheXMgcmVwZWF0IHdoYXTigJlzIGltcG9ydGFudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBlbmdpbmVlcmluZyBtYW5hZ2Vycywgd2UgYXJlIGxpa2UgbW9ydGFyOiBXZSBjb25uZWN0IHN0cnVjdHVyZXMsIHRlYW1zLCBhbmQgcGVvcGxlLiBXZSBob2xkIHRoZW0gdG9nZXRoZXIsIGJ1dCBhbHNvIGlkZW50aWZ5IGFuZCBmaWxsIGdhcHMgYXMgbmVlZGVkLiBIYW5kbGluZyBhbWJpZ3VpdHkgaXMgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgZGlmZmljdWx0IGFzcGVjdHMgb2YgZW5naW5lZXJpbmcgbWFuYWdlbWVudC4uIEZvciBhIGxvdCBvZiB3b3JrIGluIG91ciBmaWVsZCwgdGhlcmUgYXJlIG5vIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLCBsZXQgYWxvbmUgcmVzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T3VyIHdvcmsgaXNu4oCZdCBzbyBtdWNoIGFib3V0IHVzOyBpdOKAmXMgYWJvdXQgdGhlIHBlb3BsZSwgdGVhbXMsIGFuZCBvcmdhbml6YXRpb25zIHdlIHN1cHBvcnQuIFdlIGJ1aWxkIHN0cnVjdHVyZXMgdG8gaGVscCBvdGhlcnMgc2hpbmUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1N1cHBvcnRpbmcgb3JnYW5pemF0aW9uYWwgY2hhbmdlJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7TGFzdGx5LCBjcmVhdGluZyBlbnZpcm9ubWVudHMgaW4gd2hpY2ggZW5naW5lZXJzIGNhbiB0aHJpdmUgaXMgYWJvdXQgc3VwcG9ydGluZyBvdXIgb3JnYW5pemF0aW9uLiBXZSBuZWVkIHRvIHVzZSBvdXIgcG93ZXIgYXMgbWFuYWdlcnMgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLCBubyBtYXR0ZXIgdGhlIHNpemUgb2Ygb3VyIGJ1c2luZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtBZHZvY2F0ZSBmb3IgY2hhbmdlLiZsdDsvc3Ryb25nJmd0OyBUbyBiZSBlZmZlY3RpdmUgYXMgbWFuYWdlcnMsIHdlIG5lZWQgdG8gcHVzaCBmb3Igb3JnYW5pemF0aW9uYWwgY2hhbmdlIHRvIGltcHJvdmUgdGhlIGxhcmdlciBzdHJ1Y3R1cmVzIGFyb3VuZCB1cy4gRm9yIGV4YW1wbGUsIHdlIG1heSBuZWVkIHRvIGFkdm9jYXRlIGZvciBtb3JlIGNsYXJpdHkgYXJvdW5kIGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMsIGhhdmUgY29udmVyc2F0aW9ucyBhYm91dCB3aGF0IGVuZ2luZWVyaW5nIG1hbmFnZW1lbnQgc2hvdWxkIGJlIGxpa2UgaW4gb3VyIGNvbXBhbnksIGFuZCBkZXRlcm1pbmUgcmVxdWlyZW1lbnRzIGZvciBoaXJpbmcgZW5naW5lZXJpbmcgbWFuYWdlcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtNYW5hZ2UgdXAuJmx0Oy9zdHJvbmcmZ3Q7IE1hbmFnaW5nIG91ciBvd24gbWFuYWdlcnMgaXMgYSB1c2VmdWwgYnV0IGRpZmZpY3VsdCBza2lsbC4gRHJpdmluZyBvcmdhbml6YXRpb25hbCBjaGFuZ2UgYWxzbyBtZWFucyBtYWtpbmcgc3VyZSB0aGF0IG91ciBlbmdpbmVlcnPigJkgY29uY2VybnMgYXJlIGhlYXJkIGF0IHRoZSBoaWdoZXN0IGxldmVscywgYW5kIHRoYXQgd2UgdXNlIG91ciBwb3dlciB0byBtYWtlIHN1cmUgZW5naW5lZXJzIGhhdmUgYSB2b2ljZSBpbiB0aGUgcmVzdCBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgZnJhbWV3b3JrcyBhbmQgc3RhbmRhcmRzLiZsdDsvc3Ryb25nJmd0OyBXaGlsZSBpdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIG1ha2Ugcm9vbSBmb3IgaW5kaXZpZHVhbCBuZWVkcywgc3RydWN0dXJlcyBhbmQgZnJhbWV3b3JrcyBmb3IgbWFuYWdlcnMgaGVscCB1cyBob2xkIGVhY2ggb3RoZXIgYWNjb3VudGFibGUuIFRoZXkgYWxzbyAgaGVscCBsZXZlbCB0aGUgcGxheWluZyBmaWVsZCBhbmQgYnVpbGQgaW4gZXF1YWxpdHkgZm9yIHRoZSBwZW9wbGUgb24gb3VyIHRlYW1zLiBPbiBteSBjdXJyZW50IHRlYW0sIGV2ZXJ5IHF1YXJ0ZXIgd2UgcGljayBzb21lIGhpZ2gtcHJpb3JpdHkgcHJvamVjdHMgIHRvIGltcHJvdmUgaG93IHdlIHdvcmsgYXMgYW4gb3JnYW5pemF0aW9uLiBNb3N0IHJlY2VudGx5LCB3ZeKAmXZlIHdvcmtlZCBvbiBvdXIgaGlyaW5nIHByb2Nlc3MgYW5kIGluY2lkZW50IHJlbWVkaWF0aW9uOyBsYXN0IHllYXIsIHdlIGRldmVsb3BlZCBhbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvd2h5LXdlLXJlLWRlc2lnbmVkLW91ci1lbmdpbmVlcmluZy1jYXJlZXItcGF0aHMtYXQtY2lyY2xlY2kvJnF1b3Q7Jmd0O2ludGVybmFsIGNhcmVlciBncm93dGggZnJhbWV3b3JrIGZvciBlbmdpbmVlcnMmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtHcm93aW5nIGFzIGEgbGVhZGVyJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7QmVpbmcgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgaXNu4oCZdCBhbHdheXMgYSBzdHJhaWdodGZvcndhcmQgcGF0aDsgYSBsb3QgZGVwZW5kcyBvbiB3aGVyZSB3ZSBhcmUgYXQgaW4gb3VyIGNhcmVlcnMgYW5kIHdoZXJlIHdlIGFyZSBsb29raW5nIHRvIGdvLCBhcyB3ZWxsIGFzIHRoZSBncm93dGggc3RhZ2UsIHNpemUsIGFuZCBuZWVkcyBvZiBvdXIgb3JnYW5pemF0aW9ucy4gSW4gb3VyIGRhaWx5IHdvcmssIHdlIGhvbGQgdmFzdCBhbW91bnRzIG9mIHVuY2VydGFpbnR5IHdoaWxlIGFsc28gdHJ5aW5nIHRvIG1ha2UgcHJvZ3Jlc3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QW4gb3ZlcmFyY2hpbmcgdGhlbWUgaW4gbXkgd29yayBpbiBlbmdpbmVlcmluZyBtYW5hZ2VtZW50ICBoYXMgYmVlbiBncm93dGggYW5kIGltcHJvdmVtZW50LiBXZSByYXJlbHkgZGVhbCB3aXRoIGdyZWVuZmllbGQgcHJvamVjdHMgb3IgYXJlIGFibGUgdG8gYnVpbGQgYSB0ZWFtIG9yIGRlcGFydG1lbnQgZnJvbSBzY3JhdGNoLiBFdmVuIHdoZW4gd2UgZG8sIHdlIGJ1aWxkIG9uIGV4aXN0aW5nIHN0cnVjdHVyZXMgaW4gb3VyIG9yZ2FuaXphdGlvbi4gSSBiZWxpZXZlIG91ciBzdXBwb3J0aW5nIHJvbGUgbGFyZ2VseSBtZWFucyBoZWxwaW5nIGVuZ2luZWVycyBncm93LCBzdXBwb3J0aW5nIHRlYW1zIGF0IGNvbnRpbnVvdXNseSBsZWFybmluZywgYW5kIGhlbHBpbmcgb3JnYW5pemF0aW9ucyBiZWNvbWUgYmV0dGVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVyaW5nIG1hbmFnZXJzLCB3ZSBmcmVxdWVudGx5IGZhY2UgcXVlc3Rpb25zIHRoYXQgZG9u4oCZdCBjbGVhciByaWdodCBvciB3cm9uZyBhbnN3ZXJzLiBNYW55IHllYXJzIGFnbywgbXkgbGVhZGVyc2hpcCBjb2FjaCBlbmNvdXJhZ2VkIG1lIHRvIHVzZSB0aG9zZSBraW5kcyBvZiB1bmNlcnRhaW4gc2l0dWF0aW9ucyB0byBhc2sgbXlzZWxmLCDigJxXaGF0IGtpbmQgb2YgbGVhZGVyIGRvIEkgd2FudCB0byBiZT/igJ0mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJIHdhbnQgdG8gbGVhdmUgdGhlIGxhc3QgY2FsbCB0byBncm93dGggYW5kIGltcHJvdmVtZW50IHdpdGggeW91IChhbmQgbWUpOiBObyBtYXR0ZXIgd2hhdCB5b3VyIHJvbGUgb3IgY29tcGFueSBpcyBsaWtlLCB3b3JrIG9uIHNoYXBpbmcgeW91ciBhcHByb2FjaCB0byBlbmdpbmVlcmluZyBtYW5hZ2VtZW50LiBHZXQgdG8ga25vdyB0aGUgcGVvcGxlIHRoYXQgeW91IHdvcmsgd2l0aCwgYW5kIHVzZSBmZWVkYmFjayB0byBoZWxwIHRoZW0gY291cnNlLWNvcnJlY3QuIEJ1aWxkIHRlYW1zIHRoYXQgYXJlIHBzeWNob2xvZ2ljYWxseSBzYWZlIHBsYWNlcywgd2hlcmUgcGVvcGxlIGZpbmQgbWVhbmluZyBpbiBhIHNoYXJlZCBwdXJwb3NlLiBBbmQgdXNlIHlvdXIgcG93ZXIgYW5kIHByaXZpbGVnZSB0byBkcml2ZSBjaGFuZ2UgaW4geW91ciBvcmdhbml6YXRpb24uIE1ha2UgcGVvcGxlIHRoZSBjZW50ZXIgYW5kIGZvY3VzIG9mIHlvdXIgd29yaywgYW5kIGJ1aWxkIG9uIHRoYXQgZm91bmRhdGlvbiB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhleSBjYW4gdGhyaXZlLiAgQWx3YXlzIHB1c2ggdG8gY29udGludW91c2x5IGltcHJvdmUuIExlYWQgd2l0aCBodW1ibGVuZXNzLCBlbXBhdGh5LCBhbmQgbG90cyBvZiBjdXJpb3NpdHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2hhdCBraW5kIG9mIGxlYWRlciBkbyB5b3Ugd2FudCB0byBiZT8mbHQ7L3AmZ3Q7CgombHQ7aHIgLyZndDsKJmx0O3AmZ3Q7SWYgeW914oCZcmUgY3VyaW91cyBhYm91dCBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IGF0IENpcmNsZUNJIGFuZCB3b3JraW5nIHdpdGggdXM6IGpvaW4gdXMhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9ib2FyZHMuZ3JlZW5ob3VzZS5pby9jaXJjbGVjaSZxdW90OyZndDtXZeKAmXJlIGhpcmluZyBlbmdpbmVlcmluZyBtYW5hZ2VycyZsdDsvYSZndDsuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5CdWlsZGluZyBhbmQgZGVwbG95aW5nIEZsdXR0ZXIgYXBwcyB3aXRoIEZhc3RsYW5lPC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RlcGxveS1mbHV0dGVyLWFuZHJvaWQvPC9saW5rPgogICAgICAgIDxwdWJEYXRlPldlZCwgMjkgQXByIDIwMjAgMTA6MDA6MDAgLTA3MDA8L3B1YkRhdGU+CiAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9InRydWUiPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZGVwbG95LWZsdXR0ZXItYW5kcm9pZC88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5HYWJyaWVsIFNpbW1lcjwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvJnF1b3Q7Jmd0O0ZsdXR0ZXImbHQ7L2EmZ3Q7IGlzIGEgdG9vbGtpdCBwcm92aWRlZCBieSBHb29nbGUgZm9yIGJ1aWxkaW5nIGNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9ucywgaW5jbHVkaW5nIEFuZHJvaWQsIGlPUywgYW5kIHdlYiBhcHBzLiBBcyBtb3JlIGFwcHMgYXJlIHdyaXR0ZW4gdXNpbmcgaXQgYW5kIERhcnQgKHRoZSB1bmRlcmx5aW5nIGxhbmd1YWdlKSwgaXTigJlzIGJlY29taW5nIG1vcmUgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyBkZXZlbG9wZXJzIGNhbiBwYWNrYWdlIGFuZCBkZWxpdmVyIHRoZWlyIGNvZGUgdG8gdGhlaXIgdXNlcnMuIExldmVyYWdpbmcgQ2lyY2xlQ0kgYW5kIEZhc3RsYW5lLCB0aGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcHJvY2VzcyB0aGF0IGNhbiBiZSBhdXRvbWF0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbGluZyBGbHV0dGVyIGFuZCBjcmVhdGluZyB5b3VyIGZpcnN0IGFwcCBjYW4gYmUgZG9uZSBieSBmb2xsb3dpbmcgdGhlc2UgZ3VpZGVzOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvZG9jcy9nZXQtc3RhcnRlZC9pbnN0YWxsJnF1b3Q7Jmd0O0luc3RhbGwmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2ZsdXR0ZXIuZGV2L2RvY3MvZ2V0LXN0YXJ0ZWQvY29kZWxhYiZxdW90OyZndDtXcml0ZSB5b3VyIGZpcnN0IGFwcCZsdDsvYSZndDsuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBkZWZhdWx0IOKAnGhlbGxvIHdvcmxk4oCdIGFwcCB3aWxsIHN1ZmZpY2UuIFdlIHdvbuKAmXQgYmUgZGVhbGluZyBtdWNoIHdpdGggdGhlIGFwcGxpY2F0aW9uIGl0c2VsZi4gUHVzaCBpdCB0byBhIHJlcG9zaXRvcnkgb24gR2l0SHViLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Vuc3VyZSB0aGF0IHlvdSBhcmUgc2V0IHVwIHRvIHB1Ymxpc2ggYXBwcyB1c2luZyBHb29nbGUgUGxheSBvciB0aGUgQXBwbGUgQXBwIFN0b3JlIC0gc3RlcHMgZm9yIGVhY2ggd2lsbCB2YXJ5LCBzbyBiZSBzdXJlIHRvIGZvbGxvdyB0aGUgc3RlcHMgb3V0bGluZWQgZm9yIHRoZSByZXNwZWN0aXZlIHByb3ZpZGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBbmRyb2lkJmx0Oy9oMiZndDsKCiZsdDtwJmd0O1doZW4gcHVibGlzaGluZyBBbmRyb2lkIGFwcHMsIHRoZXJlIGFyZSBhIGZldyByZXF1aXJlbWVudHMgdG8gc2F0aXNmeSBiZWZvcmUgaW1wbGVtZW50aW5nIEZhc3RsYW5lLiBBbiDigJx1cGxvYWQga2V54oCdIGlzIHJlcXVpcmVkIHNvIHRoYXQgR29vZ2xlIGNhbiB2ZXJpZnkgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUgYXBwIGJlZm9yZSBhY2NlcHRpbmcgaXQuIFN0ZXBzIGZvciBzZXR0aW5nIHRoaXMgdXAgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9mbHV0dGVyLmRldi9kb2NzL2RlcGxveW1lbnQvYW5kcm9pZCZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oy4gSXTigJlzIHJlY29tbWVuZGVkIHRvIHVzZSBBcHBCdW5kbGVzIHdoZW4gYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBhcyBpdCBhbGxvd3MgR29vZ2xlIHRvIGJ1aWxkIGluZGl2aWR1YWwgQVBLcyBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyB3aGlsZSBrZWVwaW5nIGZpbGVzaXplIGRvd24uIFRha2Ugbm90ZSBvZiB3aGVyZSB5b3Ugc2F2ZSB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5qa3MmbHQ7L2NvZGUmZ3Q7IGZpbGUuIFdoaWxlIGl0IGNhbiBsaXZlIGluIHlvdXIgaG9tZSBkaXJlY3RvcnksIGhhdmluZyBpdCBzYXZlZCB0byBhIGdpdC1pZ25vcmVkIGRpcmVjdG9yeSBpbiB5b3VyIHByb2plY3Qgd2lsbCBjb21lIGluIGhhbmR5IHdoZW4gY29uZmlndXJpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1R3byB0aGluZ3MgZnJvbSB0aGlzIGd1aWRlIHdpbGwgbmVlZCB0byBiZSBhZGRlZCB0byBDaXJjbGVDSSBhcyAmbHQ7YSBocmVmPSZxdW90Oy9kb2NzLzIuMC9lbnYtdmFycy8mcXVvdDsmZ3Q7ZW52aW9ybm1lbnQgdmFyaWFibGVzJmx0Oy9hJmd0OzogdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlIGFuZCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7a2V5LmprcyZsdDsvY29kZSZndDsgZmlsZS4gVGhpcyB3aWxsIGFsbG93IHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBzaWduIHRoZSBhcHBsaWNhdGlvbi4gU2luY2Ugb25lIGZpbGUgcmVxdWlyZXMgbmV3bGluZXMgdG8gYmUgcHJlc2VudCwgYW5kIGFub3RoZXIgaXMgYSBiaW5hcnkgZmlsZSwgaXTigJlzIHJlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgYmFzZTY0LWVuY29kZWQgcHJpb3IgdG8gYWRkaW5nIHRoZW0gYXMgZW52aW9ybm1lbnQgdmFyaWFibGVzIHRvIHByZXNlcnZlIHRoZSBkYXRhLiZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBjYW4gZW5jb2RlIHRoZW0gYnkgcnVpbm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2F0ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7IHwgYmFzZTY0IC13IDAgIyAtdyAwIHdpbGwgZW5zdXJlIG5vIG5ld2xpbmVzIGFyZSBwcmVzZW50LgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBmaWxlcyBjYW4gdGhlbiBiZSByZS1hZGRlZCBkdXJpbmcgdGhlIGpvYiB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2VjaG8gJnF1b3Q7JEVOVl9WQVJJQUJMRV9OQU1FJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIGFsc28gd2FudCB0byBzZXQgdXAgYSBGYXN0bGFuZSBzZXJ2aWNlIGFjY291bnQgd2hpbGUgY3JlYXRpbmcgeW91ciBBbmRyb2lkIHNldHVwLiBZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5mYXN0bGFuZS50b29scy9nZXR0aW5nLXN0YXJ0ZWQvYW5kcm9pZC9zZXR1cC8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuIEJlIHN1cmUgdG8ga2VlcCB5b3VyIFNlcnZpY2UgQWNjb3VudCBKU09OIGZpbGUgaGFuZHkuIFdl4oCZbGwgYmUgYWRkaW5nIHRoYXQgdG8gdGhlIHBpcGVsaW5lIHNob3J0bHkuIEFsc28gbm90ZSB0aGF0IGNvbW1hbmRzIHNob3VsZCBiZSBydW4gZnJvbSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZCZsdDsvY29kZSZndDsgZGlyZWN0b3J5IHVuZGVyIHlvdXIgRmx1dHRlciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IHJlcXVpcmVkIGJ5IEZhc3RsYW5lIGNhbiBiZSBkb25lIGJ5IGFkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IEpTT04gZmlsZSBjb250ZW50cyBhcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IGVudmlvcm5tZW50IHZhcmlhYmxlLiBUaGlzIGlzIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1NVUFBMWV9KU09OX0tFWSZsdDsvY29kZSZndDsgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgYSBmaWxlIHBhdGggdG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0Zhc3RsYW5lJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05vdyB0aGF0IG91ciBlbnZpb3JubWVudCB2YXJpYWJsZXMgYXJlIGluIHBsYWNlIGFuZCB3ZSBjYW4gYnVpbGQgYSBzaWduZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LmFhYiZsdDsvY29kZSZndDsgZmlsZSB1c2luZyBGbHV0dGVyLCBpdOKAmXMgdGltZSB0byB0ZWxsIEZhc3RsYW5lIGhvdyB0byBkbyB0aGlzIGZvciB1cy4gV2XigJlsbCBzdGFydCB3aXRoIEFuZHJvaWQuIE9wZW5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZC9mYXN0bGFuZS9GYXN0ZmlsZSZsdDsvY29kZSZndDsgd2lsbCByZXZlYWwgc29tZSBkZWZhdWx0cyBmb3IgYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBidXQgdGhleSB3b27igJl0IHdvcmsgZm9yIG91ciB1c2UgY2FzZS4gV2XigJlyZSBidWlsZGluZyB3aXRoIEZsdXR0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rmlyc3QsIGxldOKAmXMgZGVmaW5lIGEgbmV3IOKAnGxhbmXigJ0uIFRoaXMgaXMgYSBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgRmFzdGxhbmUgd2lsbCBleGVjdXRlIHdoZW4gY2FsbGVkLiBGb3Igbm93LCB3ZeKAmWxsIGJlIHB1c2hpbmcgb3VyIGFwcCB0byB0aGUg4oCcYmV0YeKAnSBjaGFubmVsLCBub3QgdG8gcHJvZHVjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwoKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgaXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIGxhbmUuIE5leHQsIHdl4oCZbGwgd2FudCB0byBncmFiIGEgYnVpbGQgbnVtYmVyIHdoaWNoIGlzIGFuIGluY3JlbWVudGluZyBudW1iZXIgdXNlZCBhcyBhIHJlZmVyZW5jZSBmb3IgdGhlIHZlcnNpb24gb2YgdGhlIGFwcCAod2hpY2ggZGlmZmVycyBmcm9tIHRoZSB1c2VyLWZhY2luZyBzZW12ZXIpLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHRvIHRoZSBsYW5lOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ICBidWlsZF9udW1iZXIgPSBudW1iZXJfb2ZfY29tbWl0cygpCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgZW5zdXJlcyB0aGF0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZF9udW1iZXImbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0aGF0IGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBHaXQgcmVwb3NpdG9yeS4gVGhpcyBjYW4gYWxzbyBiZSBtYW51YWxseSBpbmNyZW1lbnRlZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVic3BlYy55YW1sJmx0Oy9jb2RlJmd0OyBmaWxlIHRoYXQgRmx1dHRlciB1c2VzIHRvIGJ1aWxkIHRoZSBwYWNrYWdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdl4oCZbGwgZG8gdGhlIGJ1aWxkaW5nLiBXZSBuZWVkIHRvIGdvIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5LCBydW4gYSBmZXcgc2hlbGwgY29tbWFuZHMgdG8gZmV0Y2ggb3VyIHBhY2thZ2VzLCBjbGVhbiB0aGUgcHJldmlvdXMgYnVpbGQgKGlmIGF2YWlsYWJsZSksIHRoZW4gYnVpbGQgdGhlIGFwcGJ1bmRsZSB3aXRoIG91ciBidWlsZCBudW1iZXIuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIERpci5jaGRpciAmcXVvdDsuLi8uLiZxdW90OyBkbwogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7cGFja2FnZXMmcXVvdDssICZxdW90O2dldCZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2NsZWFuJnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7YnVpbGQmcXVvdDssICZxdW90O2FwcGJ1bmRsZSZxdW90OywgJnF1b3Q7LS1idWlsZC1udW1iZXI9I3tidWlsZF9udW1iZXJ9JnF1b3Q7KQogIGVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtGaW5hbGx5LCB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYXBwIHN0b3JlIG9uIHRoZSBiZXRhIGNoYW5uZWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIHVwbG9hZF90b19wbGF5X3N0b3JlKHRyYWNrOiAnYmV0YScsIGFhYjogJy4uL2J1aWxkL2FwcC9vdXRwdXRzL2J1bmRsZS9yZWxlYXNlL2FwcC5hYWInKQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGxhbmUgd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwogIGJ1aWxkX251bWJlciA9IG51bWJlcl9vZl9jb21taXRzKCkKICBEaXIuY2hkaXIgJnF1b3Q7Li4vLi4mcXVvdDsgZG8KICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O3BhY2thZ2VzJnF1b3Q7LCAmcXVvdDtnZXQmcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtjbGVhbiZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2J1aWxkJnF1b3Q7LCAmcXVvdDthcHBidW5kbGUmcXVvdDssICZxdW90Oy0tYnVpbGQtbnVtYmVyPSN7YnVpbGRfbnVtYmVyfSZxdW90OykKICBlbmQKICB1cGxvYWRfdG9fcGxheV9zdG9yZSh0cmFjazogJ2JldGEnLCBhYWI6ICcuLi9idWlsZC9hcHAvb3V0cHV0cy9idW5kbGUvcmVsZWFzZS9hcHAuYWFiJykKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dvIGFoZWFkIGFuZCBzYXZlIHRoZSBmaWxlLCBhbmQgdGhlbiBydW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZmFzdGxhbmUgYmV0YSZsdDsvY29kZSZndDsuIEl0IHdpbGwgcnVuIHRocm91Z2ggdGhlIHN0ZXBzLCBidWlsZGluZyB0aGUgYXBwIGFuZCBwdXNoaW5nIHRoZSBhcHBsaWNhdGlvbiBmb3IgeW91LiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgd2XigJlsbCBkbyB0aGUgc2FtZSBmb3IgaU9TLCBidXQgcmVwbGFjaW5nIHNvbWUgb2YgdGhlIGNvbW1hbmRzIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBpT1MgY29tbWFuZHMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lvcy9GYXN0bGFuZSZsdDsvY29kZSZndDsgZGlyZWN0b3J5LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZGVzYyAmcXVvdDtEZXBsb3kgYSBuZXcgYnVpbGQgdG8gVGVzdGZsaWdodCZxdW90OwpsYW5lIDpiZXRhIGRvCiAgRGlyLmNoZGlyICZxdW90Oy4uLy4uJnF1b3Q7IGRvCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtwYWNrYWdlcyZxdW90OywgJnF1b3Q7Z2V0JnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7Y2xlYW4mcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtidWlsZCZxdW90OywgJnF1b3Q7aW9zJnF1b3Q7LCAmcXVvdDstLXJlbGVhc2UmcXVvdDssICZxdW90Oy0tbm8tY29kZXNpZ24mcXVvdDspCiAgZW5kCiAgYnVpbGRfaW9zX2FwcChzY2hlbWU6ICZxdW90O015QXBwJnF1b3Q7KQogIHVwbG9hZF90b190ZXN0ZmxpZ2h0CmVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhcHAgaXMgYnVpbHQgdHdpY2UuIFRoZSBmaXJzdCBidWlsZCBidWlsZHMgYWdhaW5zdCB0aGUgbGF0ZXN0IEZsdXR0ZXIgdG9vbGNoYWluLCB3aGlsZSB0aGUgc2Vjb25kIGJ1aWxkIGJ1aWxkcyB0aGUgYWN0dWFsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5pcGEmbHQ7L2NvZGUmZ3Q7IGZpbGUgdGhhdCB3aWxsIGJlIHVwbG9hZGVkIHRvIFRlc3RmbGlnaHQuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O05vdywgd2l0aCBDaXJjbGVDSSZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gcGxhY2UsIGl04oCZcyB0aW1lIHRvIGdldCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB3cml0dGVuIHNvIHRoYXQgYSBwdXNoIHRvIGEgYnJhbmNoIGlzIHRyYW5zbGF0ZWQgdG8gYSBuZXcgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7aU9TJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0ZvciBkZXBsb3lpbmcgd2l0aCBpT1MsIENpcmNsZUNJIGFscmVhZHkgaGFzIGRvY3MgdG8gY292ZXIgdGhpcyEgU3RlcHMgZm9yIHNldHRpbmcgdXAgRmFzdGxhbmUgZGVwbG95bWVudCB3aXRoIEZsdXR0ZXIgaXMgc2ltaWxhciB0byB0aGUgc3RlcHMgb3V0bGluZWQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvaW9zLWNvZGVzaWduaW5nLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OyBhbmQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZGVwbG95aW5nLWlvcy8jYXBwLXN0b3JlLWNvbm5lY3QmcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0FuZHJvaWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7V2hlbiBpdCBjb21lcyB0byB0aGUgRG9ja2VyIGltYWdlIHRvIHBpY2ssIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gRWl0aGVyIHlvdSBjYW4gYnVpbGQgYW5kIHB1c2ggdGhlIERvY2tlciBpbWFnZSB1c2VkIGJ5IHRoZSBGbHV0dGVyIHByb2plY3QgZm91bmQgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2Jsb2IvbWFzdGVyL2Rldi9jaS9kb2NrZXJfbGludXgvRG9ja2VyZmlsZSZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oywgb3IgeW91IGNhbiBwdWxsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dtZW1zdHIvZmx1dHRlci1mYXN0bGFuZTpsYXRlc3QmbHQ7L2NvZGUmZ3Q7LCB3aGljaCBpcyBidWlsdCBvbiB0b3Agb2YgYW4gZXhpc3RpbmcgRmx1dHRlciBEb2NrZXIgaW1hZ2UgYW5kIGluc3RhbGxzIEZhc3RsYW5lIGFsb25nc2lkZSBpdCwgYXZvaWRpbmcgYWRkaXRpb25hbCBvdmVyaGVhZCBvZiBpbnN0YWxsaW5nIGl0IGR1cmluZyBydW50aW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28gZW5zdXJlIHRoYXQgdGhlIGVudmlvcm5tZW50IHZhcmlhYmxlcyBtZW50aW9uZWQgZWFybGllciBhcmUgYWRkZWQgdG8geW91ciBwcm9qZWN0LiBOYW1lbHk6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQTEFZX1NUT1JFX1VQTE9BRF9LRVkmbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtrZXkuamtzJmx0Oy9jb2RlJmd0OyBmaWxlJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7UExBWV9TVE9SRV9VUExPQURfS0VZX0lORk8mbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCBmaWxlIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIGFuZCBvdGhlciBpbmZvIHJlZ2FyZGluZyB0aGUgdXBsb2FkIHNpZ25pbmcga2V5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IC0gWW91ciBHb29nbGUgU2VydmljZSBBY2NvdW50IEpTT04gc3RyaW5nIGZvciBhdXRoZW50aWNhdGlvbiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtJbiB5b3VyIHByb2plY3RzIHJvb3QsIGFkZCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLCBhbmQgaW4gdGhhdCBmb2xkZXIgYWRkIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y2lyY2xlY2kueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLiBBZGQgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSBuZXdseSBjcmVhdGVkIGZpbGU6Jmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7JwogIAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgc25pcHBldCBhYm92ZSBkZWZpbmVzIGFuIGV4ZWN1dG9yIHdlIGNhbiByZXVzZSBsYXRlciBpbiBvdXIgY29uZmlndXJhdGlvbiB0aGFua3MgdG8gdGhlIHVzZSBvZiByZXVzYWJsZSBjb25maWd1cmF0aW9uIGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYnMmbHQ7L2EmZ3Q7IGluIENpcmNsZUNJIDIuMS4gSXQgYWxzbyBpbmNsdWRlcyBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBlbnN1cmUgSmF2YSBkb2VzbuKAmXQgY29uc3VtZSBhbGwgb2Ygb3VyIG1lbW9yeSB3aGlsZSBidWlsZGluZyB0aGUgYXBwLiBOZXh0LCB3ZeKAmWxsIGRlZmluZSB0aGUgam9iIHdlIHdhbnQgdG8gcnVuIHRoZSBjb21tYW5kcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2pvYnM6CiAgYmV0YV9kZXBsb3k6CiAgICBleGVjdXRvcjogYW5kcm9pZC1mbHV0dGVyCiAgICBzdGVwczoKICAgICAgLSBjaGVja291dAogICAgICAtIHJ1bjogZWNobyAmcXVvdDskUExBWV9TVE9SRV9VUExPQURfS0VZJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGtleS5qa3MKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWV9JTkZPJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGFuZHJvaWQva2V5LnByb3BlcnRpZXMKICAgICAgLSBydW46IGNkIGFuZHJvaWQgJmFtcDthbXA7JmFtcDthbXA7IGZhc3RsYW5lIGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgd2XigJlsbCBkZWZpbmUgb3VyIHdvcmtmbG93IHdoaWNoIHdpbGwgb25seSBydW4gdGhlIGpvYiB3aGVuIHRoZSBuZXcgY29kZSBpcyBwdXNoZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2JldGEmbHQ7L2NvZGUmZ3Q7IGJyYW5jaC4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3dvcmtmbG93czoKICBkZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGJldGFfZGVwbG95OgogICAgICAgICAgZmlsdGVyczoKICAgICAgICAgICAgYnJhbmNoZXM6CiAgICAgICAgICAgICAgb25seTogYmV0YQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7Jwpqb2JzOgogIGJldGFfZGVwbG95OgogICAgZXhlY3V0b3I6IGFuZHJvaWQtZmx1dHRlcgogICAgc3RlcHM6CiAgICAgIC0gY2hlY2tvdXQKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWSZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBrZXkuamtzCiAgICAgIC0gcnVuOiBlY2hvICZxdW90OyRQTEFZX1NUT1JFX1VQTE9BRF9LRVlfSU5GTyZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBhbmRyb2lkL2tleS5wcm9wZXJ0aWVzCiAgICAgIC0gcnVuOiBjZCBhbmRyb2lkICZhbXA7YW1wOyZhbXA7YW1wOyBmYXN0bGFuZSBiZXRhCgp3b3JrZmxvd3M6CiAgZGVwbG95OgogICAgam9iczoKICAgICAgLSBiZXRhX2RlcGxveToKICAgICAgICAgIGZpbHRlcnM6CiAgICAgICAgICAgIGJyYW5jaGVzOgogICAgICAgICAgICAgIG9ubHk6IGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvcHJvamVjdHMvJnF1b3Q7Jmd0O1NldCB1cCB5b3VyIHByb2plY3Qgb24gQ2lyY2xlQ0kmbHQ7L2EmZ3Q7LiBPbmNlIHlvdSBjbGljayAmbHQ7c3Ryb25nJmd0O1NldCBVcCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7LCB5b3Ugd2lsbCBiZSBicm91Z2h0IHRvIGEgdGV4dCBlZGl0b3IgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBjb3B5IGluIHRoZSBjb25maWcgZnJvbSBhYm92ZS4gQ2xpY2sgJmx0O3N0cm9uZyZndDtTdGFydCBCdWlsZGluZyZsdDsvc3Ryb25nJmd0Oy4gTm93IGV2ZXJ5IG5ldyBjb21taXQgdG8gdGhlIGJldGEgYnJhbmNoIHdpbGwgcmVzdWx0IGluIGEgZGVwbG95LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIGFuIEV4cHJlc3MgR3JhcGhRTCBzZXJ2ZXIgdG8gSGVyb2t1PC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1hbi1leHByZXNzLWdyYXBocWwtc2VydmVyLXRvLWhlcm9rdS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VHVlLCAyOCBBcHIgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtYW4tZXhwcmVzcy1ncmFwaHFsLXNlcnZlci10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dyYXBocWwub3JnLyZxdW90OyZndDtHcmFwaFFMJmx0Oy9hJmd0OyBjb250aW51ZXMgdG8gZ3JvdyBpbiBwb3B1bGFyaXR5IHdpdGggZWFjaCBwYXNzaW5nIGRheSwgc2luY2UgaXRzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9lbmdpbmVlcmluZy5mYi5jb20vY29yZS1kYXRhL2dyYXBocWwtYS1kYXRhLXF1ZXJ5LWxhbmd1YWdlLyZxdW90OyZndDtwdWJsaWMgcmVsZWFzZSBieSBGYWNlYm9vayZsdDsvYSZndDsgaW4gMjAxNS4gVGhlIHRlY2hub2xvZ3kgZW5hYmxlcyBmcm9udCBlbmQgY2xpZW50cyB0byBxdWVyeSBleGFjdGx5IHdoYXQgdGhleSBuZWVkIGZyb20gdGhlIGJhY2tlbmQsIGFuZCBpcyBnYWluaW5nIHdpZGUgcmVjb2duaXRpb24gYW5kIGFkb3B0aW9uIGJ5IHJlcHV0YWJsZSBjb21wYW5pZXMgc3VjaCBhcyBQaW50ZXJlc3QsIENvdXJzZXJhLCBBaXJibmIsIGFuZCBGYWNlYm9vayBpdHNlbGYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBwb3N0LCB3ZSB3aWxsIGxlYXJuIGhvdyB0byBkZXBsb3kgYSBzaW1wbGUgR3JhcGhRTCBzZXJ2ZXIgd3JpdHRlbiBpbiBOb2RlLmpzIHRvIEhlcm9rdSB2aWEgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IChDSSkgcGlwZWxpbmUgdXNpbmcgQ2lyY2xlQ0kuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1ByZXJlcXVpc2l0ZXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUbyBmb2xsb3cgYWxvbmcgd2l0aCB0aGlzIHBvc3QsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhbHJlYWR5IHNldCB1cDombHQ7L3AmZ3Q7CiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL25vZGVqcy5vcmcvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlIC12Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsIHRvIHByaW50IG91dCB5b3VyIHZlcnNpb24gb2YgTm9kZS5qcyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdC1zY20uY29tLyZxdW90OyZndDtHaXQmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnaXQmbHQ7L2NvZGUmZ3Q7IG9uIHlvdXIgdGVybWluYWw7IHRoaXMgc2hvdWxkIHByaW50IG91dCBhdmFpbGFibGUgZ2l0IGNvbW1hbmRzKSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5oZXJva3UuY29tLyZxdW90OyZndDtIZXJva3UmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tLyZxdW90OyZndDtHaXRIdWImbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vc2lnbnVwLyZxdW90OyZndDtDaXJjbGVDSSZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDsjI1NjYWZmb2xkaW5nIHRoZSBHcmFwaFFMIHNlcnZlciBwcm9qZWN0ClRvIGJlZ2luIHNldHRpbmcgdXAgYSBHcmFwaFFMIHNlcnZlciwgY3JlYXRlIGEgbmV3IGZvbGRlciBmb3IgdGhlIHByb2plY3QgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtta2RpciBncmFwaHFsLXRlc3Qtc2VydmVyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7Tm93IGdvIGludG8gdGhlIHJvb3Qgb2YgdGhlIGZvbGRlciBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBzY2FmZm9sZCBhIG5ldyBOb2RlLmpzIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5pdCAteQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDtwJmd0O1RoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsteSZsdDsvY29kZSZndDsgb3B0aW9uYWwgZmxhZyBhbGxvd3MgeW91IHRvIHNraXAgY29uZmlybWluZyB0aGUgZGVmYXVsdCBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwYWNrYWdlLmpzb24mbHQ7L2NvZGUmZ3Q7IGZpbGUgYW5kIGp1c3QgYWNjZXB0cyB0aGVtLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGFyZSBnb2luZyB0byBjcmVhdGUgYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2V4cHJlc3Nqcy5jb20vJnF1b3Q7Jmd0O0V4cHJlc3NKUyZsdDsvYSZndDsgTm9kZS5qcyBhcHBsaWNhdGlvbiBhbmQgYnVpbGQgdGhlIEdyYXBoUUwgc2VydmVyLiBUbyBkbyB0aGlzLCB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIGZvbGxvd2luZyBwYWNrYWdlczombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2V4cHJlc3MmbHQ7L2NvZGUmZ3Q7OiB0byBjcmVhdGUgb3VyIEV4cHJlc3NKUyBOb2RlLmpzIGFwcGxpY2F0aW9uJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z3JhcGhxbCZsdDsvY29kZSZndDs6IHRoZSBHcmFwaFFMIG5wbSBwYWNrYWdlIGZvciBOb2RlLmpzJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OzogRXhwcmVzc0pTIG1pZGRsZXdhcmUgZm9yIEdyYXBoUUwmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbCB0aGVzZSBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBpbnN0YWxsIC0tc2F2ZSBleHByZXNzIGdyYXBocWwgZXhwcmVzcy1ncmFwaHFsCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIHRoZSByZXF1aXJlZCBwYWNrYWdlcyB0byBzdGFydCBwdXR0aW5nIHRvZ2V0aGVyIG91ciBHcmFwaFFMIHNlcnZlci4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgdGhlIEdyYXBoUUwgc2NoZW1hJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7Q3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bWtkaXIgc3JjCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1dpdGhpbiB0aGlzIGZvbGRlciwgY3JlYXRlIGEgbmV3IGZpbGUgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEuanMmbHQ7L2NvZGUmZ3Q7IGFuZCBwYXN0ZSBpbiB0aGUgY29kZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Owpjb25zdCB7IGJ1aWxkU2NoZW1hIH0gPSByZXF1aXJlKCZxdW90O2dyYXBocWwmcXVvdDspOwoKY29uc3Qgc2NoZW1hID0gYnVpbGRTY2hlbWEoYAogICAgdHlwZSBRdWVyeSB7CiAgICAgICAgdXNlcnM6IFtVc2VyIV0hLAogICAgICAgIHVzZXIoaWQ6IEludCEpOiBVc2VyIQogICAgfQoKICAgIHR5cGUgTXV0YXRpb24gewogICAgICAgIGVkaXRVc2VyKGlkOiBJbnQhLCBuYW1lOiBTdHJpbmchLCBlbWFpbDogU3RyaW5nISk6IFVzZXIhCiAgICB9CgogICAgdHlwZSBVc2VyIHsKICAgICAgICBpZDogSUQhCiAgICAgICAgbmFtZTogU3RyaW5nIQogICAgICAgIGVtYWlsOiBTdHJpbmcKICAgICAgICBwb3N0czogW1Bvc3QhXQogICAgfQoKICAgIHR5cGUgUG9zdCB7CiAgICAgICAgaWQ6IElEIQogICAgICAgIHRpdGxlOiBTdHJpbmchCiAgICAgICAgcHVibGlzaGVkOiBCb29sZWFuIQogICAgICAgIGxpbms6IFN0cmluZwogICAgfQpgKTsKCm1vZHVsZS5leHBvcnRzID0gc2NoZW1hOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBhYm92ZSBjb2RlLCB3ZSBoYXZlIGNyZWF0ZWQgZm91ciB0eXBlcywgY29uc2lzdGluZyBvZiB0d28gYnVpbHQtaW4gdHlwZXMgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7KSBhbmQgdHdvIGN1c3RvbSB0eXBlcyAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXNlciZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1Bvc3QmbHQ7L2NvZGUmZ3Q7KS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWdpbm5pbmcgd2l0aCB0aGUgY3VzdG9tIHR5cGVzLCB3ZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmc6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VyJmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHVzZXIgaW4gdGhlIGFwcGxpY2F0aW9uIHdpdGggaXRzIHJlc3BlY3RpdmUgZmllbGRzIGFuZCBhIHJlbGF0aW9uYWwgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cG9zdHMmbHQ7L2NvZGUmZ3Q7IGZpZWxkLCB3aGljaCByZXR1cm5zIGFuIGFycmF5IG9mIHBvc3RzIGNyZWF0ZWQgYnkgdGhlIHVzZXImbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQb3N0Jmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHB1YmxpY2F0aW9uIGNyZWF0ZWQgYnkgYSB1c2VyIGluIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGl0cyByZXNwZWN0aXZlIGZpZWxkcyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OzogaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyB0eXBlLCB3ZSBkZWZpbmVkIHR3byBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgcXVlcmllZCBmcm9tIG91ciBHcmFwaFFMIHNlcnZlciBhcyBmb2xsb3dzOgogICAgJmx0O3VsJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlcnMmbHQ7L2NvZGUmZ3Q7OiBhbiBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VycyZsdDsvY29kZSZndDsmbHQ7L2xpJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlciZsdDsvY29kZSZndDs6IGEgc2luZ2xlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1VzZXImbHQ7L2NvZGUmZ3Q7IHdpdGggdGhlIHNwZWNpZmllZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgaW4gdGhlIGFyZ3VtZW50cyBsaXN0Jmx0Oy9saSZndDsKICAgICZsdDsvdWwmZ3Q7CiAgJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7OiBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7IHR5cGUsIHdlIGRlZmluZWQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VkaXRVc2VyJmx0Oy9jb2RlJmd0OyBtdXRhdGlvbiwgd2hpY2gsIGdpdmVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgb2YgdGhlIHVzZXIsIGNhbiBiZSBjYWxsZWQgdG8gZWRpdCBhIHVzZXIgYW5kIHRoZW4gdXBkYXRlIHRoZSBpbmZvcm1hdGlvbiAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bmFtZSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VtYWlsJmx0Oy9jb2RlJmd0OykmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhlIHNjaGVtYSBpcyBjcmVhdGVkIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZFNjaGVtYSZsdDsvY29kZSZndDsgb2YgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dyYXBocWwmbHQ7L2NvZGUmZ3Q7IHBhY2thZ2UgYW5kIGV4cG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O01vY2tpbmcgZGF0YSZsdDsvaDImZ3Q7CiZsdDtwJmd0O0luIG9yZGVyIHRvIGhhdmUgcmVzdWx0cyBmb3Igb3VyIHF1ZXJpZXMsIHdlIG5lZWQgZGF0YS4gRm9yIHRoaXMgZXhlcmNpc2UsIHdlIHdpbGwgYmUgdXNpbmcgTW9uZ29EQi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIb3dldmVyLCBzaW5jZSB0aGUgZ29hbCBvZiB0aGlzIHBvc3QgaXMgdG8gZGVtb25zdHJhdGUgZGVwbG95aW5nIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyLCB3ZSB3b27igJl0IGJvdGhlciB3aXRoIHNldHRpbmcgdXAgYSBNb25nb0RCIHNlcnZlci4gSW5zdGVhZCwgd2Ugd2lsbCAgdXNlIGEgbW9ja2VkIHZlcnNpb24gdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O21vbmdvZGItbWVtb3J5LXNlcnZlciZsdDsvY29kZSZndDsuIFRoaXMgcGFja2FnZSBhbGxvd3MgdXMgdG8gY3JlYXRlIGFuZCB1c2UgYW4gaW4tbWVtb3J5IE1vbmdvREIgZGF0YWJhc2Ugc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHNldCB0aGlzIHVwLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhdCB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5zdGFsbCAtLXNhdmUgbW9uZ29kYiBtb25nb2RiLW1lbW9yeS1zZXJ2ZXIKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwombHQ7cCZndDtUaGlzIGluc3RhbGxhdGlvbiBtaWdodCB0YWtlIGEgd2hpbGUsIGRlcGVuZGluZyBvbiB5b3VyIGRvd25sb2FkIHNwZWVkLiBNb25nb0RCIHdhcyBhdCBsZWFzdCA2NiBtZWdhYnl0ZXMgaW4gc2l6ZSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhLmpzJmx0Oy9jb2RlJmd0OyBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3JjJmx0Oy9jb2RlJmd0OyBmb2xkZXIuIFRoaXMgZmlsZSB3aWxsIGV4cG9ydCBhbiBhcnJheSBvZiBoYXJkLWNvZGVkIHVzZXIgZGF0YS4gUGFzdGUgdGhlIGZvbGxvd2luZyBjb2RlIGJlbG93IGludG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBVc2VycyA9IFsKICB7CiAgICBpZDogMSwKICAgIG5hbWU6ICZxdW90O0Zpa2F5byBBZGVwb2p1JnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2ZpazRjaHJpc3RAeWFob28uY29tJnF1b3Q7LAogICAgcG9zdHM6IFsKICAgICAgewogICAgICAgIGlkOiAxLAogICAgICAgIHRpdGxlOiAmcXVvdDtDcmVhdGluZyBhbiBFbW9qaSBHYW1lIHdpdGggVnVlLCBBdXRoMCwgYW5kIEdvb2dsZSBWaXNpb24gQVBJJnF1b3Q7LAogICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSwKICAgICAgICBsaW5rOgogICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hdXRoMC5jb20vYmxvZy9jcmVhdGluZy1hbi1lbW9qaS1nYW1lLXdpdGgtdnVlLWF1dGgwLWFuZC1nb29nbGUtdmlzaW9uLWFwaS8mcXVvdDssCiAgICAgICAgYXV0aG9yOiAxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBpZDogMiwKICAgICAgICB0aXRsZTogJnF1b3Q7RWxlY3Ryb24gVHV0b3JpYWw6IEJ1aWxkaW5nIE1vZGVybiBEZXNrdG9wIEFwcHMgd2l0aCBWdWUuanMmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2F1dGgwLmNvbS9ibG9nL2VsZWN0cm9uLXR1dG9yaWFsLWJ1aWxkaW5nLW1vZGVybi1kZXNrdG9wLWFwcHMtd2l0aC12dWUtanMvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDMsCiAgICAgICAgdGl0bGU6ICZxdW90O1N0YXRlIE1hbmFnZW1lbnQgd2l0aCBWdWV4OiBhIFByYWN0aWNhbCBUdXRvcmlhbCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazoKICAgICAgICAgICZxdW90O2h0dHBzOi8vYXV0aDAuY29tL2Jsb2cvc3RhdGUtbWFuYWdlbWVudC13aXRoLXZ1ZXgtYS1wcmFjdGljYWwtdHV0b3JpYWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMiwKICAgIG5hbWU6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2pvaG5AY29tcGFueS5jb20mcXVvdDssCiAgICBwb3N0czogWwogICAgICB7CiAgICAgICAgaWQ6IDQsCiAgICAgICAgdGl0bGU6ICZxdW90O0J1aWxkIGEgQ0kgcG93ZXJlZCBSRVNUZnVsIEFQSSB3aXRoIExhcmF2ZWwmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2J1aWxkLWEtY2ktcG93ZXJlZC1yZXN0ZnVsLWFwaS13aXRoLWxhcmF2ZWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDUsCiAgICAgICAgdGl0bGU6ICZxdW90O0F1dG9tYXRlIHlvdXIgTnV4dC5qcyBhcHAgZGVwbG95bWVudCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazogJnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hdXRvbWF0ZS15b3VyLW51eHQtanMtYXBwLWRlcGxveW1lbnQvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMywKICAgIG5hbWU6ICZxdW90O0phbmUgUGF1bCZxdW90OywKICAgIGVtYWlsOiAmcXVvdDtqYW5lQGNvbXBhbnkuY29tJnF1b3Q7LAogICAgcG9zdHM6IFtdCiAgfQpdOwoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgVXNlcnMKfTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBjb2RlIGFib3ZlLCB3ZSBoYXZlIGFuIGFycmF5IG9mIHVzZXIgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgcG9zdHMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIHNlZWQgb3VyIGluLW1lbW9yeSBkYXRhYmFzZSBvbmNlIGl0IGlzIGluc3RhbnRpYXRlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCB0YXNrIGlzIHRvIHNldCB1cCBvdXIgbW9jayBNb25nb0RCIGRhdGFiYXNlIHNlcnZlci4gSW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhYmFzZS5qcyZsdDsvY29kZSZndDsgYW5kIGluc2VydCB0aGUgZm9sbG93aW5nIGNvZGUgaW50byB0aGUgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O01vbmdvTWVtb3J5U2VydmVyJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtyZXF1aXJlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtzMiZxdW90OyZndDsmcXVvdDttb25nb2RiLW1lbW9yeS1zZXJ2ZXImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O21vbmdvZGImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtjb25zdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bm8mcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90Oy4vZGF0YSZxdW90OyZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0Oyk7Jmx0Oy9zcGFuJmd0OwoKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7bGV0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDtudWxsJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXN5bmMmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7ZnVuY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25mJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoKSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDt7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7bmV3Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtNb25nb01lbW9yeVNlcnZlciZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygpOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtubyZxdW90OyZndDttb25nb0RCVVJMJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXdhaXQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7LiZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtnZXRDb25uZWN0aW9uU3RyaW5nJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3QmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvREJVUkwmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDssJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7CiAgICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDt1c2VOZXdVcmxQYXJzZXImbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs6Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDt0cnVlJmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSk7Jmx0Oy9zcGFuJmd0OwoKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtjMSZxdW90OyZndDsvL1NlZWQgRGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7CiAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtpZiZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7ISZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OykmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsKICAgICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RhdGFiYXNlJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RiJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbGxlY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O3VzZXJzJnF1b3Q7Jmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7aW5zZXJ0TWFueSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7VXNlcnMmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7CgogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7cmV0dXJuJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OzsmbHQ7L3NwYW4mZ3Q7CiZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vZHVsZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZXhwb3J0cyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtzdGFydERhdGFiYXNlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGNvZGUgYWJvdmUsIHdlIGV4cG9ydCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L2NvZGUmZ3Q7IGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBzdGFydHMgYSBuZXcgKG1vY2tlZCkgTW9uZ29EQiBzZXJ2ZXIgaW5zdGFuY2UgYW5kIGdldHMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuIEl0IHRoZW4gY3JlYXRlcyBhIG5ldyBNb25nb0RCIGNsaWVudCBjb25uZWN0aW9uIHVzaW5nIHRoZSBjb25uZWN0aW9uIHN0cmluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwgd2Ugc2VlZCBpdCB3aXRoIG91ciB1c2VyIGRhdGEgZXhwb3J0ZWQgZnJvbSBvdXIgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZGF0YS5qcyZsdDsvY29kZSZndDsgZmlsZS4gQSBjaGVjayBpcyBtYWRlIHRvIHNlZSBpZiB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIGlzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O251bGwmbHQ7L2NvZGUmZ3Q7IGJlZm9yZSBzZWVkaW5nIGl0IHdpdGggZGF0YSwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBmcm9tIGJlaW5nIGVudGVyZWQgaW50byB0aGUgZGF0YWJhc2UgZWFjaCB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdXAuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGRhdGFiYXNlIHJlZmVyZW5jZS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgb3VyIHJlc29sdmVycyZsdDsvaDImZ3Q7CiZsdDtwJmd0O05leHQgdXAsIHdlIG5lZWQgdG8gZGVmaW5lIHJlc29sdmVycyBmb3Igb3VyIEdyYXBoUUwgcXVlcmllcyBpbiBvcmRlciB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGRhdGEgZm9yIGVhY2ggcXVlcnkgb3BlcmF0aW9uLiBXZSB3aWxsIGRlZmluZSByZXNvbHZlcnMgZm9yIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt1c2VycyZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3VzZXImbHQ7L2NvZGUmZ3Q7IHF1ZXJpZXMgYW5kIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtlZGl0VXNlciZsdDsvY29kZSZndDsgbXV0YXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Jlc29sdmVycy5qcyZsdDsvY29kZSZndDsgYW5kIHBhc3RlIGluIHRoZSBmb2xsb3dpbmcgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IHJlc29sdmVycyA9IHsKICB1c2VyczogYXN5bmMgKF8sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIKICAgICAgLmNvbGxlY3Rpb24oJnF1b3Q7dXNlcnMmcXVvdDspCiAgICAgIC5maW5kKCkKICAgICAgLnRvQXJyYXkoKTsKICB9LAogIHVzZXI6IGFzeW5jICh7IGlkIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIuY29sbGVjdGlvbigmcXVvdDt1c2VycyZxdW90OykuZmluZE9uZSh7IGlkIH0pOwogIH0sCiAgLy9NdXRhdGlvbiByZXNvbHZlcnMKICBlZGl0VXNlcjogYXN5bmMgKHsgaWQsIG5hbWUsIGVtYWlsIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CgogICAgcmV0dXJuIGRiCiAgICAgIC5jb2xsZWN0aW9uKCZxdW90O3VzZXJzJnF1b3Q7KQogICAgICAuZmluZE9uZUFuZFVwZGF0ZSgKICAgICAgICB7IGlkIH0sCiAgICAgICAgeyAkc2V0OiB7IG5hbWUsIGVtYWlsIH0gfSwKICAgICAgICB7IHJldHVybk9yaWdpbmFsOiBmYWxzZSB9CiAgICAgICkKICAgICAgLnRoZW4ocmVzcCA9JmFtcDtndDsgcmVzcC52YWx1ZSk7CiAgfSAKfTsKCm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZXJzOwoKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgc2VlbiBhYm92ZSwgd2Ugbm93IGhhdmUgcmVzb2x2ZXJzIGZvciB0aGUgdGhyZWUgR3JhcGhRTCByZXF1ZXN0cyBhdmFpbGFibGUgb24gb3VyIHNlcnZlci4gVGhlc2UgcmVzb2x2ZXJzIGZldGNoIGFuZCB1cGRhdGUgZGF0YSB1c2luZyB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIHdlIGNyZWF0ZWQgZWFybGllciBieSByZWZlcmVuY2luZyBpdCBmcm9tIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb250ZXh0Jmx0Oy9jb2RlJmd0OyBvYmplY3Qgb2YgdGhlIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgcmVmZXJlbmNlIHdpbGwgYmUgYWRkZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbnRleHQmbHQ7L2NvZGUmZ3Q7IG9iamVjdCBvZiBvdXIgR3JhcGhRTCBzZXJ2ZXIgc2V0dXAgaW4gdGhlIG5leHQgc2VjdGlvbiB3aGVuIHdlIHB1dCBldmVyeXRoaW5nIHRvZ2V0aGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTZXR0aW5nIHVwIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O0l0IGlzIHRpbWUgdG8gcHV0IGV2ZXJ5IGNvbXBvbmVudCB3ZSBidWlsdCB0b2dldGhlciB0byBzZXQgdXAgb3VyIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlZm9yZSB3ZSBiZWdpbiwgd2UgbmVlZCB0byBpbnN0YWxsIG9uZSBtb3JlIHBhY2thZ2UuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIGNvbWVzIHdpdGggdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0dyYXBoaVFMJmx0Oy9jb2RlJmd0OyBhcHBsaWNhdGlvbiwgd2hpY2ggYWxsb3dzIHlvdSB0byBxdWVyeSB5b3VyIEdyYXBoUUwgZW5kcG9pbnQsIGJ1dCBsZXTigJlzIGFkZCBhIHRvb2wgdGhhdCBpcyBtb3JlIHJvYnVzdC4gV2Ugd2lsbCBpbnN0YWxsIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIHRvIGdpdmUgdXMgYSBmYW5jaWVyIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgb3VyIEdyYXBoUUwgZW5kcG9pbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSBmb2xsb3dpbmcgY29kZSB0byBpbnN0YWxsIHRoZSBwYWNrYWdlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGluc3RhbGwgLS1zYXZlIGdyYXBocWwtcGxheWdyb3VuZC1taWRkbGV3YXJlLWV4cHJlc3MKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7V2Ugd2lsbCB1c2UgdGhpcyBtaWRkbGV3YXJlIHRvIHNldCB1cCB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kIGZvciBxdWVyeWluZyBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0xldOKAmXMgc2V0IHVwIG91ciBzZXJ2ZXIgYnkgY3JlYXRpbmcgYSBmaWxlIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2luZGV4LmpzJmx0Oy9jb2RlJmd0OyBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBhbmQgcGxhY2luZyB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBleHByZXNzID0gcmVxdWlyZSgmcXVvdDtleHByZXNzJnF1b3Q7KTsKY29uc3QgZ3JhcGhxbEhUVFAgPSByZXF1aXJlKCZxdW90O2V4cHJlc3MtZ3JhcGhxbCZxdW90Oyk7CmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoJnF1b3Q7Li9zcmMvc2NoZW1hJnF1b3Q7KTsKY29uc3QgcmVzb2x2ZXJzID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9yZXNvbHZlcnMmcXVvdDspOwpjb25zdCBzdGFydERhdGFiYXNlID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9kYXRhYmFzZSZxdW90Oyk7CmNvbnN0IGV4cHJlc3NQbGF5Z3JvdW5kID0gcmVxdWlyZSgmcXVvdDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJnF1b3Q7KS5kZWZhdWx0OwoKLy8gQ3JlYXRlIGEgY29udGV4dCBmb3IgaG9sZGluZyBjb250ZXh0dWFsIGRhdGEgCmNvbnN0IGNvbnRleHQgPSBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IGRiID0gYXdhaXQgc3RhcnREYXRhYmFzZSgpOwoKICByZXR1cm4geyBkYiB9Owp9OwoKY29uc3QgYXBwID0gZXhwcmVzcygpOwoKYXBwLnVzZSgKICAmcXVvdDsvZ3JhcGhxbCZxdW90OywKICBncmFwaHFsSFRUUCh7CiAgICBzY2hlbWEsCiAgICByb290VmFsdWU6IHJlc29sdmVycywKICAgIGNvbnRleHQKICB9KQopOwoKLy9HcmFwaHFsIFBsYXlncm91bmQgcm91dGUKYXBwLmdldCgmcXVvdDsvcGxheWdyb3VuZCZxdW90OywgZXhwcmVzc1BsYXlncm91bmQoeyBlbmRwb2ludDogJnF1b3Q7L2dyYXBocWwmcXVvdDsgfSkpOwoKY29uc3QgcG9ydCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgJnF1b3Q7NDAwMCZxdW90OzsKCmFwcC5saXN0ZW4ocG9ydCk7Cgpjb25zb2xlLmxvZyhg8J+agCBTZXJ2ZXIgcmVhZHkgYXQgaHR0cDovL2xvY2FsaG9zdDo0MDAwL2dyYXBocWxgKTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBmaWxlIGFib3ZlLCB3ZSBzdGFydCBieSBpbXBvcnRpbmcgYWxsIG5lY2Vzc2FyeSBtb2R1bGVzLiBUaGVuLCB3ZSBjcmVhdGUgb3VyIEdyYXBoUUwgY29udGV4dCBhbmQgcmV0dXJuIGFuIG9iamVjdCBmcm9tIGl0IGNvbnRhaW5pbmcgdGhlIHJlZmVyZW5jZSB0byBvdXIgTW9uZ29EQiBpbnN0YW5jZS4gTmV4dCwgd2UgY3JlYXRlIG91ciBFeHByZXNzSlMgYXBwbGljYXRpb24gYW5kIHNldCB1cCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OyBtaWRkbGV3YXJlIHdpdGggR3JhcGhRTCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEmbHQ7L2NvZGUmZ3Q7LCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtyZXNvbHZlcnMmbHQ7L2NvZGUmZ3Q7LCBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29udGV4dCZsdDsvY29kZSZndDsuIFdlIHRoZW4gc2V0IHVwIHRoZSBHcmFwaFFMIFBsYXlncm91bmQgYXQgdGhlIHJvdXRlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBsb2FkIG91ciBHcmFwaFFMIGVuZHBvaW50LiBGaW5hbGx5LCB3ZSBzdGFydCBvdXIgRXhwcmVzc0pTIHNlcnZlciB0byBsaXN0ZW4gYXQgcG9ydCA0MDAwIGFuZCBwcmludCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1F1ZXJ5aW5nIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O05vdyB0aGF0IHdlIGhhdmUgb3VyIHNlcnZlciBzZXQgdXAsIGxldOKAmXMgdGFrZSBpdCBmb3IgYSBzcGluLiBGaXJzdCwgbGV04oCZcyBjcmVhdGUgYSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzdGFydCZsdDsvY29kZSZndDsgc2NyaXB0IGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3BhY2thZ2UuanNvbiZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHNjcmlwdCB0byB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2NyaXB0cyZsdDsvY29kZSZndDsgc2VjdGlvbiBvZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Li4uCgrigJxzY3JpcHRz4oCdIDogewoJLi4uLAoJ4oCcc3RhcnTigJ0gOiDigJxub2RlIGluZGV4Lmpz4oCdCn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25wbSBzdGFydCZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCB0aGUgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNlcnZlciBpcyB1cCBhbmQgcnVubmluZywgb3BlbiB1cCB5b3VyIGJyb3dzZXIgYW5kIHZpc2l0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMC9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBvcGVuIHVwIHRoZSBwbGF5Z3JvdW5kLiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDEucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgcGxheWdyb3VuZCBhdXRvbWF0aWNhbGx5IHBvaW50cyB0byBvdXIgR3JhcGhRTCBlbmRwb2ludC4gRnJvbSBoZXJlIHdlIGNhbiB3cml0ZSBxdWVyaWVzIGFnYWluc3Qgb3VyIGVuZHBvaW50IGFuZCBnZXQgdGhlIHJlc3VsdHMuIFBhc3RlIHRoZSBxdWVyeSBiZWxvdyBpbnRvIHRoZSBxdWVyeSBzZWN0aW9uIG9mIHRoZSBwbGF5Z3JvdW5kIGFuZCBoaXQgUGxheSB0byBydW4gaXQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt7CiAgdXNlcnMgewogICAgbmFtZQogICAgZW1haWwKICAgIHBvc3RzIHsKICAgICAgdGl0bGUKICAgICAgcHVibGlzaGVkCiAgICB9CiAgfQp9CgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtSdW5uaW5nIHRoZSBhYm92ZSBxdWVyeSB3aWxsIHByb2R1Y2UgdGhlIHJlc3VsdCBzaG93biBvbiB0aGUgc2NyZWVuIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsMi5wbmcmcXVvdDsgd2lkdGg9JnF1b3Q7ODc1JnF1b3Q7IC8mZ3Q7CiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIHNlZW4gYWJvdmUsIG91ciBHcmFwaFFMIHNlcnZlciBpcyB3b3JraW5nIGZpbmUgYW5kIHJldHVybmluZyB0aGUgZXhwZWN0ZWQgZGF0YS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRvIEhlcm9rdSB3aXRoIENpcmNsZUNJJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7T3VyIGZpbmFsIHRhc2sgaXMgdG8gZGVwbG95IG91ciBHcmFwaFFMIHNlcnZlciB0aHJvdWdoIGEgQ0kgcGlwZWxpbmUgd2l0aCBDaXJjbGVDSSBvbiB0aGUgSGVyb2t1IGhvc3RpbmcgcGxhdGZvcm0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2UgYXJlIGdvaW5nIHRvIHRha2UgdGhlIGZvbGxvd2luZyBzdGVwcyB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7UHVzaCB0aGUgcHJvamVjdCB0byBhIEdpdEh1YiByZXBvc2l0b3J5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgbmV3IEhlcm9rdSBhcHAgYW5kIGdldCB0aGUgSGVyb2t1IEFQSSBrZXkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgYSBuZXcgcHJvamVjdCB0byBvdXIgQ2lyY2xlQ0kgYWNjb3VudCBhbmQgY29ubmVjdCBpdCB0byB0aGUgR2l0SHViIHJlcG8mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgb3VyIEhlcm9rdSBhcHAgbmFtZSBhbmQgQVBJIGtleSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gb3VyIG5ldyBwcm9qZWN0Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7V3JpdGUgb3VyIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgZGVwbG95bWVudCB0byBIZXJva3UmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIHRoZSBjb25maWd1cmF0aW9uIHRvIG91ciBHaXRIdWIgcmVwbyB0byBkZXBsb3kgdG8gSGVyb2t1Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0xldOKAmXMgYmVnaW4uIEZpcnN0LCBwdXNoIHRoZSBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG8uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY3JlYXRlIGEgSGVyb2t1IGFwcGxpY2F0aW9uIGFzIHNob3duIGJlbG93LiBUaGUgbmFtZSB5b3UgZW50ZXIgaXMgdGhlIG5hbWUgeW91IHdpbGwgc2F2ZSBhcyB5b3VyIEhlcm9rdSBhcHAgbmFtZSBvbiBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWwzLnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7WW91IGNhbiBnZXQgeW91ciBIZXJva3UgQVBJIGtleSBieSBnb2luZyB0byAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgYW5kIHNjcm9sbGluZyBkb3duIHRvIHRoZSAmbHQ7c3Ryb25nJmd0O0FQSSBLZXkmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIHRvIGRlcGxveWluZyBvdXIgYXBwbGljYXRpb24gdG8gSGVyb2t1IGlzIHRvIGNvbm5lY3QgdGhlIGFwcGxpY2F0aW9uIG9uIG91ciBHaXRIdWIgcmVwb3NpdG9yeSB0byBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIZWFkIHRvIHlvdXIgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9kYXNoYm9hcmQmcXVvdDsmZ3Q7Q2lyY2xlQ0kgZGFzaGJvYXJkJmx0Oy9hJmd0OyBhbmQgYWRkIHRoZSBwcm9qZWN0IGluIHRoZSAmbHQ7c3Ryb25nJmd0O0FkZCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7IHNlY3Rpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsNC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCAoaW4gdGhpcyBjYXNlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NpbXBsZS1ncmFwaHFsLW5vZGUtc2VydmVyJmx0Oy9jb2RlJmd0OyksIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0IFVwIFByb2plY3QmbHQ7L3N0cm9uZyZndDsuIFRoaXMgd2lsbCBicmluZyB5b3UgdG8gYSBwYWdlIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDUucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IGJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIHByb2plY3QuIFRoaXMgd2lsbCBpbW1lZGlhdGVseSBnaXZlIHVzIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCBhIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIHByb2plY3QuIFRoaXMgaXMgdW5kZXJzdGFuZGFibGUsIGFzIHdlIGFyZSB5ZXQgdG8gaW5jbHVkZSBvdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlLiBXZSB3aWxsIGJlIGRvaW5nIHRoYXQgbGF0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIG5leHQgc3RlcCBpcyB0byBhZGQgb3VyIEhlcm9rdSBkZXRhaWxzIGFzICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wL2Vudi12YXJzLyZxdW90OyZndDtlbnZpcm9ubWVudCB2YXJpYWJsZXMmbHQ7L2EmZ3Q7IHRvIHRoZSBuZXdseSBzZXQgdXAgcHJvamVjdC4KSW4gb3JkZXIgdG8gcHVzaCBvdXIgcHJvamVjdCB0byBIZXJva3UgZnJvbSBDaXJjbGVDSSwgd2UgbmVlZCB0byBjb25maWd1cmUgYW4gYXV0aGVudGljYXRlZCBoYW5kc2hha2UgYmV0d2VlbiBDaXJjbGVDSSBhbmQgSGVyb2t1LiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcgdHdvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgc2V0dGluZ3MgZm9yIHlvdXIgQ2lyY2xlQ0kgcHJvamVjdC4gVGhlIHR3byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtIRVJPS1VfQVBQX05BTUUmbHQ7L2NvZGUmZ3Q7OiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIChpbiB0aGlzIGNhc2UgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2ltcGxlLWdyYXBocWwtbm9kZS1zZXJ2ZXImbHQ7L2NvZGUmZ3Q7KSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OzogWW91ciBIZXJva3UgYWNjb3VudCBBUEkga2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBvbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50Jmx0Oy9zdHJvbmcmZ3Q7IHRhYiBvZiB5b3VyIEhlcm9rdSBhY2NvdW50IHVuZGVyICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VG8gYWRkIHRoZXNlIGRldGFpbHMsIGhlYWQgb3ZlciB0byB5b3VyIENpcmNsZUNJIGRhc2hib2FyZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBmb3IgeW91ciBwcm9qZWN0LiBPbiB0aGUgc2lkZWJhciBtZW51IG9uIHRoZSBzZXR0aW5ncyBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O0Vudmlyb25tZW50IFZhcmlhYmxlcyZsdDsvc3Ryb25nJmd0OyB1bmRlciAmbHQ7c3Ryb25nJmd0O0J1aWxkIFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDYucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIHBhZ2UsIGNyZWF0ZSB0d28gdmFyaWFibGVzIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OyBhbmQgYWRkIHRoZSByZXNwZWN0aXZlIHZhbHVlcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZXNlIGluIHBsYWNlLCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBjYW4gdXNlIHRoZW0gdG8gbWFrZSBhdXRoZW50aWNhdGVkIGRlcGxveW1lbnRzIHRvIHRoZSBIZXJva3UgcGxhdGZvcm0uCk5vdywgbGV04oCZcyB3cml0ZSBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyIHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtDcmVhdGUgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsuY2lyY2xlY2kmbHQ7L2NvZGUmZ3Q7IGF0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCBhbmQgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgaXQuIEFkZCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uJmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpvcmJzOgogIGhlcm9rdTogY2lyY2xlY2kvaGVyb2t1QDAuMC4xMAp3b3JrZmxvd3M6CiAgaGVyb2t1X2RlcGxveToKICAgIGpvYnM6CiAgICAgIC0gaGVyb2t1L2RlcGxveS12aWEtZ2l0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7VGhlIGNvZGUgYWJvdmUgdXNlcyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7SGVyb2t1IG9yYiZsdDsvYSZndDsgdG8gcGVyZm9ybSBhIHNlYW1sZXNzIGRlcGxveW1lbnQgdG8gSGVyb2t1LiBBbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYiZsdDsvYSZndDsgaXMgYSByZXVzYWJsZSBwYWNrYWdlIG9mIGEgWUFNTCBjb25maWd1cmF0aW9uIHRoYXQgY29uZGVuc2VzIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoaXMgb25lIG1ha2VzIGl0IHZlcnkgZWFzeSB0byBkZXBsb3kgdG8gSGVyb2t1IHdpdGhvdXQgd3JpdGluZyBhIHNvcGhpc3RpY2F0ZWQgY29uZmlnIHlvdXJzZWxmLiZsdDsvcCZndDsKCiZsdDtwJmd0O1NhdmUgdGhpcyBmaWxlIGFuZCBwdXNoIHlvdXIgY2hhbmdlcyB0byB0aGUgR2l0SHViIHJlcG9zaXRvcnkuIFRoZW4gd2F0Y2ggeW91ciBDaXJjbGVDSSBkYXNoYm9hcmQgdHJpZ2dlciBhIGRlcGxveW1lbnQgYWZ0ZXIgdGhlIHN1Y2Nlc3NmdWwgcHVzaC4gWW91IHdpbGwgc2VlIGEgc3VjY2Vzc2Z1bCBkZXBsb3ltZW50IG9uIHlvdXIgZGFzaGJvYXJkIHNpbWlsYXIgdG8gdGhlIHNjcmVlbiBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWw3LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXdlc29tZSEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXTigJlzIG5vdyB2aXNpdCBvdXIgUGxheWdyb3VuZCBvbiB0aGUgbGl2ZSBhcHBsaWNhdGlvbiB0byBjb25maXJtIHRoYXQgb3VyIGRlcGxveW1lbnQgaXMgZmluZS4gVmlzaXQgdGhlIGxpbmsgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9ZT1VSX0hFUk9LVV9BUFBfTkFNRS5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7LiBGb3Igb3VyIGV4ZXJjaXNlLCB0aGlzIHdpbGwgYmUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9zaW1wbGUtZ3JhcGhxbC1ub2RlLXNlcnZlci5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7IGFzIHNlZW4gYmVsb3cuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsOC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SW4gdGhpcyBhcnRpY2xlLCB3ZSBoYXZlIGJlZW4gYWJsZSB0byBzdWNjZXNzZnVsbHkgcHV0IHRvZ2V0aGVyIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyIGFuZCBhdXRvbWF0ZSBpdHMgZGVwbG95bWVudCB1c2luZyBDaXJjbGVDSS4gR3JhcGhRTCBpcyBoZXJlIHRvIHN0YXkgYW5kIGlzIGV4cGVjdGVkIHRvIGdhaW4gbW9yZSBhZG9wdGlvbiwgc2luY2UgaXRzIG1hbnkgYmVuZWZpdHMgbWFrZSBpdCB3b3J0aHkgb2YgaW5jcmVhc2VkIHVzZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIYXBweSBjb2RpbmchJmx0Oy9wJmd0OwoKJmx0O2hyIC8mZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Eb2NrZXIgYW5kIENJL0NEIHR1dG9yaWFsOiBhIGRlZXAgZGl2ZSBpbnRvIGNvbnRhaW5lcnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZG9ja2VyLWFuZC1jaWNkLXR1dG9yaWFsLWEtZGVlcC1kaXZlLWludG8tY29udGFpbmVycy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+RnJpLCAyNCBBcHIgMjAyMCAxMjowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9kb2NrZXItYW5kLWNpY2QtdHV0b3JpYWwtYS1kZWVwLWRpdmUtaW50by1jb250YWluZXJzLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkFuZ2VsIFJpdmVyYTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtUaGlzIGlzIGEgZm9sbG93LXVwIHRvIGEgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7IHRoYXQgSSB3cm90ZSBhZnRlciBDaXJjbGVDSSAyLjAgd2FzIHJlbGVhc2VkLiBUaGlzIHJlbGVhc2UgaW1wbGVtZW50ZWQgYnVpbGQgc3VwcG9ydCB1c2luZyBEb2NrZXIgZXhlY3V0b3JzLiBBZnRlciB0aGUgcmVsZWFzZSwgd2UgcmVhbGl6ZWQgdGhhdCBvbmUgb2YgdGhlIGJpZ2dlc3QgYmFycmllcnMgdGhhdCBDaXJjbGVDSSB1c2VycyBlbmNvdW50ZXJlZCB3YXMgYSBsYWNrIG9mIGV4cGVyaWVuY2Ugd2l0aCBEb2NrZXIuIFRoaXMgd2FzIGNvbmZpcm1lZCB0aHJvdWdoIG15IGNvbnZlcnNhdGlvbnMgd2l0aCBudW1lcm91cyBkZXZlbG9wZXJzLCBpbiB0aGUgY29tbXVuaXR5IGFuZCBhdCBldmVudHMsIGFib3V0IHRoZWlyIHVzZSBvZiBjb250YWluZXIgdGVjaG5vbG9naWVzIGluIHRoZWlyICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmVzLiBUaGVzZSBjb252ZXJzYXRpb25zIGhhdmUgaGlnaGxpZ2h0ZWQgdGhhdCBtYW55IGRldmVsb3BlcnMgZG9u4oCZdCBoYXZlIGEgZnVsbCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byB1c2UgY29udGFpbmVyIHRlY2hub2xvZ2llcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgd2lsbCBleHBhbmQgb24gYW5kIGRlbW9uc3RyYXRlIHNvbWUgb2YgdGhlIG1vcmUgdXNlZnVsIERvY2tlciBjb21tYW5kcyBkaXNjdXNzZWQgaW4gbXkgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtXaGF0IGlzIERvY2tlcj8mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZSBpcyB0aGUgc2ltcGxpZmllZCBkZWZpbml0aW9uIG9mIERvY2tlciB0aGF0IEkgdXNlZCBpbiBteSBwcmV2aW91cyBwb3N0OiZsdDsvcCZndDsKCiZsdDtibG9ja3F1b3RlJmd0OwogICZsdDtwJmd0O0RvY2tlciBpcyBhIHBsYXRmb3JtIGZvciBkZXZlbG9wZXJzIGFuZCBzeXNhZG1pbnMgdG8gZGV2ZWxvcCwgZGVwbG95LCBhbmQgcnVuIGFwcGxpY2F0aW9ucyB1c2luZyBjb250YWluZXJzLiZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7RG9ja2VyIGlzIGFsc28gcmVmZXJyZWQgdG8gYXMgYW4gYXBwbGljYXRpb24gcGFja2FnaW5nIHRvb2wgdGhhdCBlbmFibGVzIGFwcGxpY2F0aW9ucyB0byBiZSBjb25maWd1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZC8jaW1hZ2VzLWFuZC1jb250YWluZXJzJnF1b3Q7Jmd0O0RvY2tlciBpbWFnZSZsdDsvYSZndDsgdGhhdCBjYW4gYmUgdXNlZCB0byBzcGF3biAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyNpbWFnZXMtYW5kLWNvbnRhaW5lcnMmcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IHRoYXQgcnVuIGluc3RhbmNlcyBvZiB0aGUgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIG1hbnkgYmVuZWZpdHMgaW5jbHVkaW5nIHJ1bnRpbWUgZW52aXJvbm1lbnQgaXNvbGF0aW9uLCBjb25zaXN0ZW5jeSB2aWEgY29kZSwgYW5kIHBvcnRhYmlsaXR5LiBEb2NrZXIgY29udGFpbmVycyBjYW4gcnVuIG9uIGFueSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgc3VwcG9ydHMgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZW5naW5lJnF1b3Q7Jmd0O0RvY2tlciBFbmdpbmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtCYXNpYyBEb2NrZXIgdGVybWlub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZeKAmXMgYSBsaXN0IG9mIGJhc2ljIERvY2tlciBjb21tYW5kcyBhbmQgdGVybXMgd2l0aCBsaW5rcyB0byBtb3JlIGluZm9ybWF0aW9uLiBUaGVzZSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgRG9ja2VyIGFuZCBjb250cm9sIHRoZSBleGVjdXRvci4gVGhlIGNvbW1hbmRzIGNhbiBiZSBydW4gbG9jYWxseSBvbiBhbnkgY29tcHV0ZXIgdGhhdCBoYXMgdGhlIERvY2tlciBlbmdpbmUgaW5zdGFsbGVkLiZsdDsvcCZndDsKCiZsdDtoMyZndDtCdWlsZGluZyBEb2NrZXIgaW1hZ2VzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBhIHRleHQgZG9jdW1lbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNvbW1hbmRzIGEgdXNlciBjb3VsZCBjYWxsIG9uIHRoZSBjb21tYW5kIGxpbmUgdG8gYXNzZW1ibGUgYW4gaW1hZ2UuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBEb2NrZXJmaWxlIGlzIGEgYmx1ZXByaW50IGZvciBidWlsZGluZyBEb2NrZXIgaW1hZ2VzLiBEb2NrZXJmaWxlIHRlbXBsYXRlcyBob2xkIGVsZW1lbnRzIHN1Y2ggYXMgdGhlIGJhc2Ugb3BlcmF0aW5nIHN5c3RlbSBpbWFnZSB1c2VkIGFzIGEgZm91bmRhdGlvbiwgZXhlY3V0aW9uIGNvbW1hbmRzIHRoYXQgaW5zdGFsbC9jb25maWd1cmUgZGVwZW5kZW5jaWVzLCBhbmQgY29weSBjb21tYW5kcyB0aGF0IHB1c2ggbG9jYWwgc291cmNlIGNvZGUgb3IgYXJ0aWZhY3RzIGludG8gdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBEb2NrZXJmaWxlIGZvciBhIHNpbXBsZSBOb2RlLmpzIGFwcGxpY2F0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7RlJPTSBub2RlOjEwCgojIENyZWF0ZSBhcHAgZGlyZWN0b3J5CldPUktESVIgL3Vzci9zcmMvYXBwCgojIEluc3RhbGwgYXBwIGRlcGVuZGVuY2llcwojIEEgd2lsZGNhcmQgaXMgdXNlZCB0byBlbnN1cmUgYm90aCBwYWNrYWdlLmpzb24gQU5EIHBhY2thZ2UtbG9jay5qc29uIGFyZSBjb3BpZWQKIyB3aGVyZSBhdmFpbGFibGUgKG5wbUA1KykKQ09QWSBwYWNrYWdlKi5qc29uIC4vCgpSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIyBJZiB5b3UgYXJlIGJ1aWxkaW5nIHlvdXIgY29kZSBmb3IgcHJvZHVjdGlvbgojIFJVTiBucG0gaW5zdGFsbCAtLW9ubHk9cHJvZHVjdGlvbgoKIyBCdW5kbGUgYXBwIHNvdXJjZQpDT1BZIC4gLgoKRVhQT1NFIDUwMDAKQ01EIFsgJnF1b3Q7bnBtJnF1b3Q7LCAmcXVvdDtzdGFydCZxdW90OyBdCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2ltYWdlcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7IGxpc3RzIERvY2tlciBpbWFnZXMgZm91bmQgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gbGlzdCBhbGwgb2YgdGhlIERvY2tlciBpbWFnZXMgYW5kIHJlbGF0ZWQgZGF0YSB0aGF0IGN1cnJlbnRseSBleGlzdCBvbiB0aGUgbG9jYWwgbWFjaGluZS4gSXTigJlzIGNvbXBhcmFibGUgdG8gYSBsaW51eCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtscyZsdDsvY29kZSZndDsgb3Igd2luZG93cyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkaXImbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdXNlZCB0byBzaG93IHRoZSBjb250ZW50cyBvZiBkaXJlY3RvcmllcyBpbiBhIHRlcm1pbmFsLiBUaGlzIGNvbW1hbmQgaXMgdmVyeSB1c2VmdWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRvIG1hbmFnZSwgbWFpbnRhaW4sIGFuZCBidWlsZCBEb2NrZXIgaW1hZ2VzIGxvY2FsbHkuIEJlbG93IGlzIGFuIGV4YW1wbGUgcmVzdWx0IG9mIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgZXhlY3V0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UkVQT1NJVE9SWSAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHICAgICAgICAgICAgICAgICBJTUFHRSBJRCAgICAgICAgICAgIENSRUFURUQgICAgICAgICAgICAgU0laRQphcml2M3JhL25vZGVqcy1jaXJjbGVjaSAgICAgICAgICAgICBsYXRlc3QgICAgICAgICAgICAgIGY0MTllNGE2YjFiOCAgICAgICAgMTEgZGF5cyBhZ28gICAgICAgICA5NDNNQgpub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAgICAgICAgICAgICAgICAgIDAxYjgxNjA1MWQzNCAgICAgICAgMiB3ZWVrcyBhZ28gICAgICAgICA5MTFNQgpjaXJjbGVjaS9weXRob24gICAgICAgICAgICAgICAgICAgICAzLjcuNiAgICAgICAgICAgICAgIDBkMjk3NTg5NmM3MyAgICAgICAgNSB3ZWVrcyBhZ28gICAgICAgICAxLjQzR0IKYXJpdjNyYS9pbmZyYXN0cnVjdHVyZS1hcy1jb2RlMTAxICAgbGF0ZXN0ICAgICAgICAgICAgICBjYjIxYTM2YTI5NzMgICAgICAgIDggd2Vla3MgYWdvICAgICAgICAgOTI5TUIKcHl0aG9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43LjYgICAgICAgICAgICAgICA4NzkxNjU1MzVhNTQgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgOTE5TUIKY2lyY2xlY2kvcnVzdCAgICAgICAgICAgICAgICAgICAgICAgMS1idXN0ZXIgICAgICAgICAgICAyMTgzMjliOTI5Y2YgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgMS42OEdCCnJ1c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtYnVzdGVyICAgICAgICAgICAgZjVmZGUwOTJhMWNkICAgICAgICAyIG1vbnRocyBhZ28gICAgICAgIDEuMTlHQgpweXRob24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcuNCAgICAgICAgICAgICAgIDlmYTU2ZDBhZGRhZSAgICAgICAgNiBtb250aHMgYWdvICAgICAgICA5MThNQgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGJ1aWxkIC10ICZhbXA7bHQ7aW1hZ2UgbmFtZSZhbXA7Z3Q7IC4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBjcmVhdGVzIGEgRG9ja2VyIGltYWdlIHdpdGggYSB0YWcgdXNpbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LXQmbHQ7L2NvZGUmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhYm92ZSBjb21tYW5kLCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgdmFsaWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDssIGJ1aWxkcyBhIERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgZXhlY3V0aW9uIGNvbW1hbmRzIGRlZmluZWQgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7LiBPbmUgY3JpdGljYWwgZWxlbWVudCB0byBidWlsZGluZyBpbWFnZXMgYW5kIHN0YXJ0aW5nIGNvbnRhaW5lcnMgaXMgdW5kZXJzdGFuZGluZyB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9hJmd0Oy4gQnVpbGRpbmcgRG9ja2VyIGltYWdlcyB1c2luZyB0aGlzIGNvbW1hbmQgc3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIERvY2tlciBpbWFnZXMgdXRpbGl6ZXMgYSBuYW1pbmcgY29udmVudGlvbiBtYWRlIHVwIG9mIHNsYXNoLXNlcGFyYXRlZCBuYW1lIGNvbXBvbmVudHMgdGhhdCBtYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgc2VwYXJhdG9ycy4gQSBzZXBhcmF0b3IgaXMgZGVmaW5lZCBhcyBhIHBlcmlvZCwgb25lIG9yIHR3byB1bmRlcnNjb3Jlcywgb3Igb25lIG9yIG1vcmUgZGFzaGVzLiBBIG5hbWUgY29tcG9uZW50IG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggYSBzZXBhcmF0b3IuIEEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7ZG9ja2VyIHRhZyZsdDsvYSZndDsgbmFtZSBtdXN0IGJlIHZhbGlkIEFTQ0lJIGFuZCBtYXkgY29udGFpbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHVuZGVyc2NvcmVzLCBwZXJpb2RzLCBhbmQgZGFzaGVzLiBBIHRhZyBuYW1lIG1heSBub3Qgc3RhcnQgd2l0aCBhIHBlcmlvZCBvciBhIGRhc2ggYW5kIG1heSBjb250YWluIGEgbWF4aW11bSBvZiAxMjggY2hhcmFjdGVycy4gWW91IGNhbiBncm91cCB5b3VyIGltYWdlcyB0b2dldGhlciB1c2luZyBuYW1lcyBhbmQgdGFncy4gSW4gdGhpcyBwb3N0LCB3ZSB3aWxsIHVzZSB0aGlzIG5hbWluZyBjb252ZW50aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB0aGF0IHdl4oCZdmUgZGlzY3Vzc2VkIG5hbWluZyBjb252ZW50aW9ucyBsZXTigJlzIGJ1aWxkIGEgRG9ja2VyIGltYWdlIGJhc2VkIG9uIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXJmaWxlJmx0Oy9jb2RlJmd0OyBpbiBvdXIgZXhhbXBsZSBhYm92ZS4gSW4gdGhpcyBwb3N0IHdlIGNhbiB1dGlsaXplIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9wdW5rZGF0YS9ub2RlanMtY2lyY2xlY2kmcXVvdDsmZ3Q7cHVua2RhdGEvbm9kZWpzLWNpcmNsZWNpJmx0Oy9hJmd0OyBnaXQgcmVwby4gQ2xvbmUgaXQgbG9jYWxseSBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7JCBjZCZsdDsvY29kZSZndDsgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlbiBydW4gdGhpcyBjb21tYW5kIHRvIGJ1aWxkIGEgbmV3IERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgcHJvamVjdCBzb3VyY2UgY29kZSBhbmQgdGhlIGV4YW1wbGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgYnVpbGQgLXQgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0FmdGVyIHJ1bm5pbmcgdGhpcyBidWlsZCBjb21tYW5kLCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtTZW5kaW5nIGJ1aWxkIGNvbnRleHQgdG8gRG9ja2VyIGRhZW1vbiAgOTguMDdNQgpTdGVwIDEvNyA6IEZST00gbm9kZToxMAogLS0tJmFtcDtndDsgMDFiODE2MDUxZDM0ClN0ZXAgMi83IDogV09SS0RJUiAvdXNyL3NyYy9hcHAKIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyAxMmIyZWRjMmI5N2MKU3RlcCAzLzcgOiBDT1BZIHBhY2thZ2UqLmpzb24gLi8KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyA1M2I1YjhlNGU2NTQKU3RlcCA0LzcgOiBSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyBlZWZkZjU2MGJjNGQKU3RlcCA1LzcgOiBDT1BZIC4gLgogLS0tJmFtcDtndDsgYWE3ZDU0ZTk1NWM2ClN0ZXAgNi83IDogRVhQT1NFIDUwMDAKIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gY2M0MjdkYmFmZGNjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgY2M0MjdkYmFmZGNjCiAtLS0mYW1wO2d0OyA0Y2U5MDg0ZTM5ZWIKU3RlcCA3LzcgOiBDTUQgWyAmcXVvdDtucG0mcXVvdDssICZxdW90O3N0YXJ0JnF1b3Q7IF0KIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gZjZlODU0NTk5ZGRjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgZjZlODU0NTk5ZGRjCiAtLS0mYW1wO2d0OyA3OWE4ZDk0Y2JmNDIKU3VjY2Vzc2Z1bGx5IGJ1aWx0IDc5YThkOTRjYmY0MgpTdWNjZXNzZnVsbHkgdGFnZ2VkIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2VzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgeW91ciBuZXdseSBjcmVhdGVkIERvY2tlciBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDskIGRvY2tlciBpbWFnZXMKClJFUE9TSVRPUlkgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRyAgICAgICAgICAgICAgICAgSU1BR0UgSUQgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNJWkUKdHV0b3JpYWwvY2lyY2xlY2ktbm9kZSAgICAgICAgICAgICAgMTAgICAgICAgICAgICAgICAgICA3OWE4ZDk0Y2JmNDIgICAgICAgIDQgbWludXRlcyBhZ28gICAgICAgMS4wM0dCCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyB5b3UgaGF2ZSBhbiBhd2Vzb21lIERvY2tlciBpbWFnZSBidWlsdCBhbmQgcmVhZHkgdG8gdXNlLiBJbiB0aGUgbmV4dCBzZWN0aW9uIEnigJlsbCBjcmVhdGUgbmV3IGluc3RhbmNlcyBvZiB0aGlzIERvY2tlciBpbWFnZSBpbiB0aGUgZm9ybSBvZiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvY29udGFpbmVyLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXIgY29udGFpbmVycyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBjb250YWluZXJzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IGFyZSBkZXNpZ25lZCB0byBydW4gYXBwbGljYXRpb25zIGluIGlzb2xhdGlvbiBhbmQgYXQgc2NhbGUuICBUaGV5IGFsbG93IGZvciBzdHJlYW1saW5pbmcgdGhlIG1hbmFnZW1lbnQgYW5kIGltcGxlbWVudGF0aW9uIG9mIGFwcGxpY2F0aW9ucy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7QmVmb3JlIHdlIHN0YXJ0IGNyZWF0aW5nIGFuZCBydW5uaW5nIERvY2tlciBjb250YWluZXJzLCBJ4oCZbGwgYWRkIHNvbWUgY29udGV4dC4gRG9ja2VyIGNvbnRhaW5lcnMgYXJlIG9iamVjdHMgdGhhdCBhcmUgYmFzZWQgb24gYW5kIHNwYXduZWQgZnJvbSBEb2NrZXIgaW1hZ2VzLiBEb2NrZXIgaW1hZ2VzIGFyZSB0ZW1wbGF0ZXMuIEkgbGlrZW4gdGhlbSB0byBjb29raWUgY3V0dGVyIG1vbGRzLiBDb29raWUgY3V0dGVyIG1vbGRzIGVuYWJsZSB5b3UgdG8gcXVpY2tseSBhbmQgY29uc2lzdGVudGx5IHByb2R1Y2UgaW5kaXZpZHVhbCBjb29raWVzIGZyb20gZG91Z2guIEkgbGlrZW4gdGhlc2UgY29va2llcyB0byBEb2NrZXIgY29udGFpbmVycyB3aGljaCBhcmUgZGlzdGluZ3Vpc2hlZCBpbiBzaGFwZSBieSB0aGUgdHlwZSBvZiBjb29raWUgbW9sZCwgb3IgRG9ja2VyIGNvbnRhaW5lciwgdXNlZCBpbiB0aGUgY3V0dGluZy9idWlsZGluZyBwcm9jZXNzLiBTbyB1c2luZyBteSBjb29raWUgY3V0dGVyIGFuYWxvZ3ksIERvY2tlciBpbWFnZXMgYXJlIHRoZSBjb29raWUgY3V0dGVyIGFuZCB0aGUgaW5kaXZpZHVhbCBjb29raWVzIGN1dCB1c2luZyB0aGF0IGN1dHRlciBhcmUgZXF1aXZhbGVudCB0byBEb2NrZXIgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCBJ4oCZdmUgcHJvYmFibHkgbWFkZSB5b3UgYSBiaXQgaHVuZ2FyeSBmb3IgY29va2llcywgbGV04oCZcyBzdGFydCBydW5uaW5nIHNvbWUgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBydW5zIGEgY29tbWFuZCBpbiBhIG5ldyBjb250YWluZXIuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY29tbWFuZCBvZiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgc3RhcnRpbmcgRG9ja2VyIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCBhIG5ldyBjb250YWluZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcnVuIC1kIC1wIDUwMDA6NTAwMCAtLW5hbWUgbm9kZXRlc3QwMSB0dXRvcmlhbC9jaXJjbGVjaS1ub2RlOjEwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NvbmdyYXRzISBZb3Ugc2hvdWxkIG5vdyBoYXZlIHRoZSBOb2RlLmpzIGltYWdlIHJ1bm5pbmcgaW4gdGhlIG5ldyBjb250YWluZXIgdGhhdCB5b3UganVzdCBjcmVhdGVkIGF2YWlsYWJsZSBvbiBwb3J0IDUwMDAuIE9wZW4gYSB3ZWIgYnJvd3NlciBhbmQgZ28gdG8gdGhpcyBhZGRyZXNzOiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtodHRwOi8vbG9jYWxob3N0OjUwMDAmbHQ7L2NvZGUmZ3Q7LiBJdCB3aWxsIHRha2UgeW91IHRoZSBzdGF0aWMg4oCcV2VsY29tZSB0byBDSS9DRCAxMDEgdXNpbmcgQ2lyY2xlQ0kh4oCdIHdlYiBwYWdlIHNlcnZlZCBieSB0aGlzIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsc28gdmVyaWZ5IHlvdXIgY29udGFpbmVyIGlzIHJ1bm5pbmcgYnkgZXhlY3V0aW5nIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbC4gV2XigJlsbCBkaXNjdXNzIHRoaXMgaW4gdGhlIG5leHQgc2VjdGlvbi4gQmVmb3JlIHRoYXQsIGxldOKAmXMgc3RhcnQgYW4gb3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGFwcGxpY2F0aW9uIGJ5IHJ1bm5pbmcgYW5vdGhlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnRlZCBvdXIgZmlyc3QgY29udGFpbmVyIHdpdGggdGhlIG5hbWUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDsgYW5kIHNpbmNlIGNvbnRhaW5lciBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgd2XigJlyZSBnb2luZyB0byBuYW1lIG91ciBuZXcgY29udGFpbmVyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7LiBBbm90aGVyIGNoYW5nZSB0aGF0IG11c3QgYmUgbWFkZSBpbiBvdXIgbmV3IGNvbnRhaW5lciBpcyB0aGUgcG9ydCBudW1iZXIuIFdl4oCZbGwgY2hhbmdlIGl0IGZyb20gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMCZsdDsvY29kZSZndDsgdG8gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMSZsdDsvY29kZSZndDsgc2luY2UgYXBwbGljYXRpb25zIGNhbm5vdCBvY2N1cHkgdGhlIHNhbWUgcG9ydCBudW1iZXIgb24gdGhlIHNhbWUgbmV0d29yayBpbnRlcmZhY2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RXhlY3V0ZSB0aGUgZm9sbG93aW5nICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtZCAtcCA1MDAxOjUwMDAgLS1uYW1lIG5vZGV0ZXN0MDIgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISBZb3Ugbm93IGhhdmUgdHdvIGNvbnRhaW5lcnMgcnVubmluZyBvbiB5b3VyIGxvY2FsIG1hY2hpbmUuIFlvdSBjYW4gZ28gdG8gdGhpcyBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMSZsdDsvY29kZSZndDsgaW4gYSBicm93c2VyIGFuZCBzZWUgdGhlIGFwcCBydW5uaW5nIGluIHlvdXIgc2Vjb25kIERvY2tlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaXMgdmVyeSByb2J1c3QgYW5kIGhhcyBtYW55IHByb3BlcnR5IGFuZCBjb25maWd1cmF0aW9uIGZsYWdzIHdoaWNoIEkgd29u4oCZdCBiZSBhYmxlIHRvIGFkZHJlc3Mgb3IgZGVtb25zdHJhdGUgaW4gdGhpcyBwb3N0LiBJIGhpZ2hseSByZWNvbW1lbmQgdGhhdCB5b3UgcmVhZCBhbmQgZmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgbWFueSB3YXlzIHRoYXQgeW91IGNhbiBleGVjdXRlIGFuZCBydW4gRG9ja2VyIGNvbnRhaW5lcnMuIFlvdSBjYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7cmVhZCB1cCBvbiBEb2NrZXIgY29udGFpbmVycyBjb21tYW5kcyBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9wcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbGlzdHMgYWxsIG9mIHRoZSBydW5uaW5nIERvY2tlciBjb250YWluZXJzLiBUaGlzIGNvbW1hbmQgc2VydmVzIGEgc2ltaWxhciBwdXJwb3NlIGFzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2UmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgYW5kIGxpc3RzIGFjdGl2ZWx5IHJ1bm5pbmcgY29udGFpbmVycy4gVXNlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDstYSZsdDsvY29kZSZndDsgZmxhZyB0byBzaG93IGFsbCBvZiB0aGUgcnVubmluZyBhbmQgbm90IHJ1bm5pbmcgY29udGFpbmVycy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoaXMgY29tbWFuZCBpbiBhIHRlcm1pbmFsIGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIGJvdGggb2YgdGhlIHByZXZpb3VzbHkgY3JlYXRlZCBjb250YWluZXJzIHJ1bm5pbmcgaW4gdGhlIHJlc3VsdHM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlIHJlc3VsdHMgd2lsbCBiZSBzaW1pbGFyIHRvIHRoaXMgc2hvd2luZyBib3RoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDEmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcnMgc3RpbGwgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0NPTlRBSU5FUiBJRCAgICAgICAgSU1BR0UgICAgICAgICAgICAgICAgICAgICAgIENPTU1BTkQgICAgICAgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNUQVRVUyAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICAgICAgIE5BTUVTCmRmZDMwMTgxZTE1YyAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAxMiBtaW51dGVzIGFnbyAgICAgIFVwIDEyIG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAxLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAyOCBtaW51dGVzIGFnbyAgICAgIFVwIDI4IG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAwLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7CiAgICAmbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvc3RhcnQvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdGFydHMgYW4gZXhpc3RpbmcgY29udGFpbmVyLiZsdDsvcCZndDsKICAmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsKICAgICZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9zdG9wLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdG9wcyBhbiBleGlzdGluZyBjb250YWluZXIuJmx0Oy9wJmd0OwogICZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgaXMgb25seSB1c2VkIHRvIHN0YXJ0ICZsdDtzdHJvbmcmZ3Q7ZXhpc3RpbmcmbHQ7L3N0cm9uZyZndDsgY29udGFpbmVycyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcnVuJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBVbmxlc3MgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy0tcm09dHJ1ZSZsdDsvY29kZSZndDsgZmxhZyBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgbmV3bHkgY3JlYXRlZCBjb250YWluZXJzIHdpbGwgcGVyc2lzdCBhbmQgY2FuIGJlIHJldXNlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RhcnQmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCZsdDsvY29kZSZndDsgY29tbWFuZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdG9wIHNvbWUgcnVubmluZyBjb250YWluZXJzIGJ5IGV4ZWN1dGluZyB0aGVzZSBjb21tYW5kczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBzdG9wIG5vZGV0ZXN0MDEgbm9kZXRlc3QwMgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBydW5uaW5nIGNvbnRhaW5lcnMgc2hvdWxkIG5vdyBiZSBpbmFjdGl2ZSBhbmQgc3RvcHBlZC4gU2luY2UgdGhleeKAmXJlIHN0b3BwZWQsIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgaW5kaWNhdGluZyBzdG9wcGVkIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtDT05UQUlORVIgSUQgICAgICAgIElNQUdFICAgICAgICAgICAgICAgICAgICAgICBDT01NQU5EICAgICAgICAgICAgICAgICAgQ1JFQVRFRCAgICAgICAgICAgICBTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICBOQU1FUwpkZmQzMDE4MWUxNWMgICAgICAgIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAgICAmcXVvdDtkb2NrZXItZW50cnlwb2ludC5z4oCmJnF1b3Q7ICAgMzEgbWludXRlcyBhZ28gICAgICBFeGl0ZWQgKDApIDM4IHNlY29uZHMgYWdvICAgICAgICAgICAgICAgICAgICAgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICBBYm91dCBhbiBob3VyIGFnbyAgIEV4aXRlZCAoMCkgMzggc2Vjb25kcyBhZ28gICAgICAgICAgICAgICAgICAgICAgIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhvdWdoIHRoZXNlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQgdGhleSB3aWxsIHBlcnNpc3QgYW5kIGNhbiBiZSByZXN0YXJ0ZWQgdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCZsdDsvY29kZSZndDsgY29tbWFuZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXRzIHN0YXJ0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAxJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgc28gd2UgY2FuIGxlYXJuIGhvdyB0byB1c2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBmZWF0dXJlcyBpbiB0aGUgbmV4dCBzZWN0aW9uLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHN0YXJ0IG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Tm93IHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBOb3RpY2UgdGhlIHN0YXR1cyBmb3IgdGhpcyBjb250YWluZXIgcmVhZHMgc2ltaWxhciB0byAgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXAgYWJvdXQgYSAzMCBzZWNvbmRzJmx0Oy9jb2RlJmd0OyBvciBzb21ldGhpbmcgdG8gdGhhdCBlZmZlY3QuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9ncy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ3MmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBmZXRjaGVzIGEgY29udGFpbmVy4oCZcyBsb2dzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIHNlZSBsb2dzIHRoYXQgYXJlIHByZXNlbnQgYXQgdGhlIHRpbWUgb2YgZXhlY3V0aW9uLiBTaW5jZSB5b3VyIGFwcHMgYXJlIHJ1bm5pbmcgaW5zaWRlIHRoZXNlIGNvbnRhaW5lcnMsIHRoZSBsb2dzIGNvbW1hbmQgaXMgdXNlZnVsIGZvciByZWFkaW5nIG91dCBjcml0aWNhbCBhcHAgb3V0cHV0cy4gVGhpcyBoZWxwcyBpbiB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgYXBwIGlzIHBlcmZvcm1pbmcgYW5kIGFueSBkZWJ1Z2dpbmcvdHJvdWJsZXNob290aW5nIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBydW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDEmbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBsb2dzIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIGNvbW1hbmQgeW91IHNob3VsZCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHdoYXTigJlzIHNob3duIGJlbG93LiBJdCBzaG93cyB0aGF0IHRoZSBhcHAgaW5zaWRlIGNvbnRhaW5lciBpcyB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O05vZGUgc2VydmVyIGlzIHJ1bm5pbmcuLgoKJmFtcDtndDsgbm9kZWpzLWNpcmNsZWNpQDAuMC4xIHN0YXJ0IC91c3Ivc3JjL2FwcAomYW1wO2d0OyBub2RlIGFwcC5qcwoKTm9kZSBzZXJ2ZXIgaXMgcnVubmluZy4uCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0gJmFtcDtsdDtjb250YWluZXIgbmFtZSZhbXA7Z3Q7Jmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgZGVsZXRlcyBhIGNvbnRhaW5lciBvciBtdWx0aXBsZSBjb250YWluZXJzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtQZXJzaXN0aW5nIERvY2tlciBjb250YWluZXJzIGNvbnN1bWVzIGRpc2sgc3BhY2UgYW5kIHJlc291cmNlcyBvbiBpdHMgaG9zdC4gT3BlcmF0aW9uYWxseSwgaXQgZG9lc27igJl0IG1ha2UgbXVjaCBzZW5zZSB0byBwZXJzaXN0IGV2ZXJ5IGNvbnRhaW5lciBvbiBkaXNrIHNpbmNlIGluIG1vc3QgY2FzZXMgY29udGFpbmVycyBhcmUgZGlzcG9zYWJsZSBhbmQgc2hvdWxkIGJlIHVzZWQgdGhhdCB3YXkuIFNvIHdoZW4gYSBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpdCBzaG91bGQgYmUgcGVybWFuZW50bHkgZGlzY2FyZGVkIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgcGVybWFuZW50bHkgZGVsZXRlcyBjb250YWluZXJzIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAyJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBzbyBsZXTigJlzIHNhdmUgc29tZSBkaXNrIHNwYWNlIGFuZCBkZWxldGUgaXQuIE5vdGUgdGhpcyBjb21tYW5kIHdpbGwgb25seSBkZWxldGUgaW5hY3RpdmUvc3RvcHBlZCBjb250YWluZXJzIGFuZCB3aWxsIGVycm9yIG91dCBpZiBpdOKAmXMgcnVuIGFnYWluc3QgYW4gYWN0aXZlL3J1bm5pbmcgY29udGFpbmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBybSBub2RldGVzdDAyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm8gbG9uZ2VyIHNlZSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMiZsdDsvY29kZSZndDsgY29udGFpbmVyIG9uIHRoZSBob3N0IGFmdGVyIHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGhhcyBvdGhlciBwcm9wZXJ0aWVzIGFuZCBmbGFncyBhbmQgeW91IHNob3VsZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcm0vJnF1b3Q7Jmd0O2ZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggdGhlbSBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ybWkvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBybWkmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBkZWxldGVzIERvY2tlciBpbWFnZXMgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGFwcGxpZXMgdG8gZGVsZXRpbmcgRG9ja2VyIGltYWdlcyBmcm9tIGEgaG9zdC4gSWYgdGhlcmUgYXJlIGV4aXN0aW5nIGNvbnRhaW5lcnMgb24gdGhlIGhvc3QgdGhhdCBhcmUgYmFzZWQgb24gYSBzcGVjaWZpYyBpbWFnZSwgdGhlbiB0aGlzIGNvbW1hbmQgd2lsbCBub3QgYWxsb3cgdGhlIGRlbGV0aW9uIG9mIHRoZSBjb250YWluZXIgYmFzZWQgb24gdGhlIGltYWdlLiBZb3UgbXVzdCBmaXJzdCBlbnN1cmUgdGhlIGNvbnRhaW5lciBpcyBzdG9wcGVkIGFuZCBkZWxldGVkIGJlZm9yZSB5b3UgY2FuIGRlbGV0ZSBEb2NrZXIgaW1hZ2VzIHVzaW5nIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtaSZsdDsvY29kZSZndDsgY29tbWFuZC4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtaS8mcXVvdDsmZ3Q7UmVhZCB1cCBvbiB0aGUgZG9ja2VyIHJtaSBjb21tYW5kIGhlcmUmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBpbWFnZSBkZXBsb3ltZW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtNYW55IERvY2tlciBpbWFnZXMgYXJlIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgaG9zdGVkIG9uIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2RvY2tlci1odWIvJnF1b3Q7Jmd0O0RvY2tlciBIdWIgUmVnaXN0cnkmbHQ7L2EmZ3Q7IHdoaWNoIGlzIGFuIG9ubGluZSBjZW50cmFsIGhvc3Rpbmcgc29sdXRpb24gZm9yIERvY2tlciBpbWFnZXMuIERvY2tlciBIdWIgZW5hYmxlcyBhbnlvbmUgd2l0aCBhbiBpbnRlcm5ldCBjb25uZWN0aW9uIHRvIHB1bGwgZG93biBwdWJsaWNseSBhdmFpbGFibGUgaW1hZ2VzIGZyb20gdGhlIHJlZ2lzdHJ5IHRvIHRoZWlyIGxvY2FsIG1hY2hpbmVzIG9yIHNlcnZlcnMuIEl0IGFsc28gZW5hYmxlcyByZWdpc3RlcmVkIHVzZXJzIHRvIHVwbG9hZCBhbmQgcHVibGljbHkgc2hhcmUgYW55IG9mIHRoZWlyIGNvbnRhaW5lcnMgc28gdGhhdCBhbnlvbmUgY2FuIHB1bGwgZG93biB0aGF0IGltYWdlIGZyb20gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2h1Yi5kb2NrZXIuY29tLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIEnigJlsbCBicmllZmx5IGRpc2N1c3Mgc29tZSBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItaHViLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0OyByZWxhdGVkIGNvbW1hbmRzLiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3B1bGwvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBwdWxsJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgcHVsbHMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IGZyb20gYSByZWdpc3RyeS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGVuYWJsZXMgeW91IHRvIGRvd25sb2FkIGEgdmFsaWQgRG9ja2VyIGltYWdlIGZyb20gRG9ja2VyIEh1Yi4gUHVibGljbHkgYXZhaWxhYmxlIERvY2tlciBpbWFnZXMgZG8gbm90IHJlcXVpcmUgYXV0aGVudGljYXRpb24uIElmIHRoZSByZWdpc3RyeSBpcyBwcml2YXRlIHlvdSB3aWxsIG5lZWQgdG8gYXV0aGVudGljYXRlIHVzaW5nIGFuIGFzc2lnbmVkIGNyZWRlbnRpYWwgdXN1YWxseSBpbiB0aGUgZm9ybSBvZiBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ2luJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbG9ncyBpbnRvIGEgRG9ja2VyIHJlZ2lzdHJ5LiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyB5b3UgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgYSBEb2NrZXIgUmVnaXN0cnkuIElmIHlvdeKAmXJlIHVzaW5nIHRoaXMgbG9naW4gY29tbWFuZCB5b3Ugc2hvdWxkICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8jcHJvdmlkZS1hLXBhc3N3b3JkLXVzaW5nLXN0ZGluJnF1b3Q7Jmd0O3BvcHVsYXRlIGEgLnR4dCBmaWxlJmx0Oy9hJmd0OyB3aXRoIHlvdXIgRG9ja2VyIEh1YiBhY2NvdW50IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBwcm90ZWN0IHRoZXNlIGNyZWRlbnRpYWxzIGZyb20gZXhwb3N1cmUuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcHVzaC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHB1c2gmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBwdXNoZXMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IHRvIGEgcmVnaXN0cnkuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBlbmFibGVzIHVzZXJzIHRvIHVwbG9hZCBpbWFnZXMgdG8gYSBEb2NrZXIgcmVnaXN0cnkgYW5kIHJlcXVpcmVzIHZhbGlkIGNyZWRlbnRpYWxzLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O1NvIHRoZXJlIHlvdSBoYXZlIGl0LiBJbiB0aGlzIHBvc3QgSSB3ZW50IGEgYml0IGRlZXBlciBpbiBleHBsYWluaW5nIERvY2tlciB0ZXJtaW5vbG9neSBhbmQgY29tbWFuZHMgYXMgd2VsbCBhcyBjb250YWluZXJzIGFuZCB0aGVpciB1c2FnZS4gVGhlIGNvbW1hbmRzIEkgZGlzY3Vzc2VkIGFuZCBkZW1vbnN0cmF0ZWQsIGFyZSB0aGUgbW9zdCB3aWRlbHkgdXNlZCBjb21tYW5kcyBpbiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGxlYXJuaW5nIGEgYml0IG1vcmUgYWJvdXQgdGhlbSBhbmQgdGhlaXIgcHJvcGVydGllcyBhbmQgZmxhZ3Mgd2lsbCBkZWZpbml0ZWx5IGhlbHAgeW91IGxldmVsIHVwIHlvdXIgRG9ja2VyIGFuZCBjb250YWluZXIgc2tpbGxzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZhbWlsaWFyaXppbmcgeW91cnNlbGYgd2l0aCB0aGVzZSBiYXNpYyBjb21tYW5kcyB3aWxsIHJlbW92ZSBvbmUgb2YgdGhlIGxhcmdlciBiYXJyaWVycyB0aGF0IG5ldyB1c2VycyBvZiBDaXJjbGVDSSBlbmNvdW50ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SWYgeW91IHdhbnQgdG8gbGVhcm4gbW9yZSBhYm91dCBDaXJjbGVDSSBjaGVjayBvdXQgdGhlICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wLyZxdW90OyZndDtkb2N1bWVudGF0aW9uIHNpdGUmbHQ7L2EmZ3Q7LCBhbmQgaWYgeW91IHJlYWxseSBnZXQgc3R1Y2sgeW91IGNhbiByZWFjaCBvdXQgdG8gdGhlIENpcmNsZUNJIGNvbW11bml0eSB2aWEgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mbHQ7L2EmZ3Q7IGNvbW11bml0eS9mb3J1bSBzaXRlLiZsdDsvcCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogIDwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:40 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:56:40 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"3c30eae35de3fdbb","ot-tracer-traceid":"2706488c6a65e19a","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889400216:a9fb3c06b895
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:11:40 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da2cefaa6f917-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce64155f0000f917b3b48200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:40 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:56:41 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"085859bd3ffc5bbc","ot-tracer-traceid":"3d4a5e9e14b787e6","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889400864:8984e3918b99
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:11:40 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da2d12f3bd618-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce6416b60000d618e5ace200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDExOjQ4OjUyIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:46 GMT
+- request:
+ method: get
+ uri: https://circleci.com/blog/feed.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/xml
+ Date:
+ - Tue, 19 May 2020 11:56:43 GMT
+ Etag:
+ - '"d148e5f0c8f6530989f97099948abd37"'
+ Last-Modified:
+ - Tue, 19 May 2020 02:33:22 GMT
+ Server:
+ - nginx
+ Strict-Transport-Security:
+ - max-age=15724800
+ X-Amz-Id-2:
+ - FerDYV0XiqK4xkWb4+EGrENhSM4e4+WanGWGl4ZIi88tLFGmMTz6zp+5bG6PZqJgff7oBkc3RAI=
+ X-Amz-Request-Id:
+ - 33823E72BDBECEF4
+ X-Frame-Options:
+ - SAMEORIGIN
+ Content-Length:
+ - '183502'
+ Connection:
+ - keep-alive
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiCiAgeG1sOmJhc2U9Imh0dHBzOi8vY2lyY2xlY2kuY29tLyIKICB4bWxuczphdG9tPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8Y2hhbm5lbD4KICAgIDx0aXRsZT5UaGUgQ2lyY2xlQ0kgQmxvZyBGZWVkIC0gQ2lyY2xlQ0k8L3RpdGxlPgogICAgPGRlc2NyaXB0aW9uPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgbmV3cywgdXBkYXRlcywgYW5kIGhhY2tzIGZyb20gQ2lyY2xlQ0kuPC9kZXNjcmlwdGlvbj4KICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvPC9saW5rPgogICAgPGF0b206bGluayBocmVmPSJodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2ZlZWQueG1sIiByZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Db250aW51b3VzIGludGVncmF0aW9uIGZvciBJb25pYyBhcHBsaWNhdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvY29udGlub3VzLWludGVncmF0aW9uLWZvci1pb25pYy1hcHBzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDE4IE1heSAyMDIwIDE3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbm91cy1pbnRlZ3JhdGlvbi1mb3ItaW9uaWMtYXBwcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5GaWtheW8gQWRlcG9qdTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtJbiB0aGUgd29ybGQgb2YgaHlicmlkIG1vYmlsZSBkZXZlbG9wbWVudCwgbm8gb3RoZXIgZnJhbWV3b3JrIGhhcyBkb25lIG1vcmUgZm9yIHRoZSBpbmR1c3RyeSB0aGFuIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tLyZxdW90OyZndDtJb25pYyBmcmFtZXdvcmsmbHQ7L2EmZ3Q7LiBDcmVhdGVkIGluIDIwMTMgYW5kIG9yaWdpbmFsbHkgYnVpbHQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXJqcy5vcmcvJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7IGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY29yZG92YS5hcGFjaGUub3JnLyZxdW90OyZndDtBcGFjaGUgQ29yZG92YSZsdDsvYSZndDssIElvbmljIGhhcyBncm93biB0byBhIGZ1bGwtZmVhdHVyZWQgYXBwbGljYXRpb24gZnJhbWV3b3JrIGZvciBkZXZlbG9waW5nIG1vYmlsZSwgZGVza3RvcCwgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93ZWIuZGV2L3Byb2dyZXNzaXZlLXdlYi1hcHBzLyZxdW90OyZndDtwcm9ncmVzc2l2ZSB3ZWIgYXBwbGljYXRpb25zJmx0Oy9hJmd0Oy4gSW9uaWMgaGFzIGFsc28gYmVjb21lIGZyYW1ld29yay1hZ25vc3RpYywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byB1c2UgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXIuaW8vJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oywgb3IgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3Z1ZWpzLm9yZy8mcXVvdDsmZ3Q7VnVlLmpzJmx0Oy9hJmd0OyBmb3IgZGV2ZWxvcG1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2Ugd2lsbCBiZSBidWlsZGluZyBhIGhhbmR5IHRhc2sgbWFuYWdlci4gV2Ugd2lsbCB3cml0ZSB0ZXN0cyBmb3IgZmVhdHVyZXMgaW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBzZXQgdXAgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbm91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgKENJKSBwaXBlbGluZSB0byBhdXRvbWF0ZSBvdXIgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFdlIHdpbGwgYmUgZGV2ZWxvcGluZyBvdXIgYXBwbGljYXRpb24gdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9yZWFjdCZxdW90OyZndDtJb25pYyBSZWFjdCZsdDsvYSZndDssIHRoZSBJb25pYyB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgZGV2ZWxvcGluZyB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBmb2xsb3cgdGhpcyBwb3N0LCBhIGZldyB0aGluZ3MgYXJlIHJlcXVpcmVkOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QmFzaWMga25vd2xlZGdlIG9mIFJlYWN0LmpzIChOb3QgYSBkZWFsLWJyZWFrZXIsIHlvdSBvbmx5IGhhdmUgdG8gY29weS1wYXN0ZSB0aGUgY29kZSBzbmlwcGV0cykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbm9kZWpzLm9yZyZxdW90OyZndDtOb2RlLmpzJmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtUaGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2NsaSZxdW90OyZndDtJb25pYyBDTEkmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L29sJmd0OwoKJmx0O2gyJmd0O1NjYWZmb2xkaW5nIHRoZSBJb25pYyBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBiZWdpbiwgbGV04oCZcyBzY2FmZm9sZCBhIG5ldyBJb25pYyBhcHBsaWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2lvbmljIHN0YXJ0IHRhc2stbWFuYWdlciB0YWJzIC0tdHlwZT1yZWFjdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgSW9uaWMgQ0xJIHRvIHNjYWZmb2xkIGEgbmV3IHByb2plY3QgZm9yIHVzIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0YWJzJmx0Oy9jb2RlJmd0OyB0ZW1wbGF0ZSBpbnNpZGUgYSBmb2xkZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGFzay1tYW5hZ2VyJmx0Oy9jb2RlJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1lvdSBtaWdodCBiZSBwcm9tcHRlZCBhdCBzb21lIHBvaW50IHdpdGggJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Q3JlYXRlIGZyZWUgSW9uaWMgYWNjb3VudD8mbHQ7L2NvZGUmZ3Q7LiBIaXQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7biZsdDsvY29kZSZndDsgdG8gZGVjbGluZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYW4gSW9uaWMgYWNjb3VudCBzZWUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9hcHBmbG93JnF1b3Q7Jmd0O2hlcmUmbHQ7L2EmZ3Q7LiZsdDsvaSZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmNlIHRoaXMgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb24gKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIHRhc2stbWFuYWdlciZsdDsvY29kZSZndDspIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHNlcnZlIHRoZSBhcHBsaWNhdGlvbiBpbiB5b3VyIHdlYiBicm93c2VyOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7aW9uaWMgc2VydmUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGlzIGNvbW1hbmQgaGFzIGNvbXBsZXRlZCwgeW91IHdpbGwgc2VlIGFuIGFwcGxpY2F0aW9uIHZpZXcgaW4geW91ciBicm93c2VyIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O0kgYW0gdXNpbmcgYSBtb2JpbGUgcHJldmlldyBhY3RpdmF0ZWQgaW4gQ2hyb21l4oCZcyBkZXZlbG9wbWVudCB0b29scy4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXNjYWZmb2xkLXByZXZpZXcucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtEb27igJl0IGJlIHN1cnByaXNlZCBpZiB5b3VycyBoYXMgYSBibGFjayBiYWNrZ3JvdW5kIGFuZCB3aGl0ZSBmb250LiBJdCB1c2VzIHRoZSBkZWZhdWx0IG1vZGUgb2YgeW91ciBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMiZndDtCdWlsZGluZyB0aGUgVGFzayBNYW5hZ2VyIGFwcGxpY2F0aW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05leHQsIGxldOKAmXMgYmVnaW4gYnVpbGRpbmcgdGhlIG1haW4gYXBwbGljYXRpb24uIEdvIGludG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyIG9mIHlvdXIgYXBwbGljYXRpb24gYW5kIG9wZW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGhvbWUgcGFnZSBmb3IgdGhlIG5ld2x5IHNjYWZmb2xkZWQgYXBwbGljYXRpb24uIFJlbW92ZSBldmVyeXRoaW5nIGluIHRoaXMgZmlsZSBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRzeAoKaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsKICBJb25Db250ZW50LAogIElvbkhlYWRlciwKICBJb25QYWdlLAogIElvblRpdGxlLAogIElvblRvb2xiYXIsCiAgSW9uTGlzdCwKICBJb25JdGVtU2xpZGluZywKICBJb25JdGVtLAogIElvbkxhYmVsLAogIElvbkl0ZW1PcHRpb25zLAogIElvbkl0ZW1PcHRpb24sCiAgSW9uRmFiLAogIElvbkZhYkJ1dHRvbiwKICBJb25JY29uLAogIElvbk1vZGFsLAogIElvbkJ1dHRvbiwKICBJb25DYXJkLAogIElvbkNhcmRDb250ZW50LAogIElvbklucHV0LAp9IGZyb20gJnF1b3Q7QGlvbmljL3JlYWN0JnF1b3Q7OwoKaW1wb3J0IHsgYWRkIH0gZnJvbSAmcXVvdDtpb25pY29ucy9pY29ucyZxdW90OzsKCmltcG9ydCAmcXVvdDsuL1RhYjEuY3NzJnF1b3Q7OwoKaW50ZXJmYWNlIFRhc2sgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwp9Cgpjb25zdCBUYWIxOiBSZWFjdC5GQyA9ICgpID0mYW1wO2d0OyB7CiAgY29uc3QgW3Rhc2tzLCBzZXRUYXNrc10gPSB1c2VTdGF0ZSZhbXA7bHQ7VGFza1tdJmFtcDtndDsoW10pOwogIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7CiAgY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKCiAgZnVuY3Rpb24gYWRkTmV3VGFzaygpIHsKICAgIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogICAgY29uc3QgbmV3VGFzayA9IHsKICAgICAgaWQ6IG5ld19pZCwKICAgICAgbmFtZTogdGFza05hbWUsCiAgICB9OwoKICAgIHRhc2tzLnB1c2gobmV3VGFzayk7CgogICAgc2V0VGFza3ModGFza3MpOwoKICAgIHNldFRhc2tOYW1lKCZxdW90OyZxdW90Oyk7CgogICAgc2V0U2hvd01vZGFsKGZhbHNlKTsKICB9CgogIHJldHVybiAoCiAgICAmYW1wO2x0O0lvblBhZ2UmYW1wO2d0OwogICAgICAmYW1wO2x0O0lvbkhlYWRlciZhbXA7Z3Q7CiAgICAgICAgJmFtcDtsdDtJb25Ub29sYmFyJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uVGl0bGUmYW1wO2d0O1Rhc2sgTWFuYWdlciZhbXA7bHQ7L0lvblRpdGxlJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25Ub29sYmFyJmFtcDtndDsKICAgICAgJmFtcDtsdDsvSW9uSGVhZGVyJmFtcDtndDsKICAgICAgJmFtcDtsdDtJb25Db250ZW50JmFtcDtndDsKICAgICAgICAmYW1wO2x0O0lvbkxpc3QmYW1wO2d0OwogICAgICAgICAge3Rhc2tzLmxlbmd0aCAmYW1wO2d0OyAwID8gKAogICAgICAgICAgICB0YXNrcy5tYXAoKGl0ZW06IFRhc2spID0mYW1wO2d0OyB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbVNsaWRpbmcga2V5PXtpdGVtLmlkfSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbSBjbGFzc05hbWU9JnF1b3Q7dG9kby1pdGVtJnF1b3Q7JmFtcDtndDsKICAgICAgICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDt7aXRlbS5uYW1lfSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbnMgc2lkZT0mcXVvdDtlbmQmcXVvdDsmYW1wO2d0OwogICAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsge319JmFtcDtndDtEb25lJmFtcDtsdDsvSW9uSXRlbU9wdGlvbiZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1PcHRpb25zJmFtcDtndDsKICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1TbGlkaW5nJmFtcDtndDsKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KQogICAgICAgICAgKSA6ICgKICAgICAgICAgICAgJmFtcDtsdDtJb25JdGVtJmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICApfQogICAgICAgICZhbXA7bHQ7L0lvbkxpc3QmYW1wO2d0OwoKICAgICAgICB7LyogTW9kYWwqL30KICAgICAgICAmYW1wO2x0O0lvbk1vZGFsIGlzT3Blbj17c2hvd01vZGFsfSZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkNhcmQmYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICZhbXA7bHQ7SW9uTGFiZWwmYW1wO2d0O0FkZCBOZXcgVGFzayZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAmYW1wO2x0O0lvbkNhcmRDb250ZW50JmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICAgJmFtcDtsdDtJb25JbnB1dAogICAgICAgICAgICAgICAgICB2YWx1ZT17dGFza05hbWV9CiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSZxdW90O0VudGVyIFRhc2sgTmFtZS4uLiZxdW90OwogICAgICAgICAgICAgICAgICBvbklvbkNoYW5nZT17KGUpID0mYW1wO2d0OyBzZXRUYXNrTmFtZShlLmRldGFpbC52YWx1ZSEpfQogICAgICAgICAgICAgICAgJmFtcDtndDsmYW1wO2x0Oy9Jb25JbnB1dCZhbXA7Z3Q7CiAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uCiAgICAgICAgICAgICAgICBleHBhbmQ9JnF1b3Q7ZnVsbCZxdW90OwogICAgICAgICAgICAgICAgY29sb3I9JnF1b3Q7cHJpbWFyeSZxdW90OwogICAgICAgICAgICAgICAgb25DbGljaz17KCkgPSZhbXA7Z3Q7IGFkZE5ld1Rhc2soKX0KICAgICAgICAgICAgICAmYW1wO2d0OwogICAgICAgICAgICAgICAgQWRkIFRhc2sKICAgICAgICAgICAgICAmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkQ29udGVudCZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uIG9uQ2xpY2s9eygpID0mYW1wO2d0OyBzZXRTaG93TW9kYWwoZmFsc2UpfSZhbXA7Z3Q7Q2xvc2UgTW9kYWwmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICZhbXA7bHQ7L0lvbk1vZGFsJmFtcDtndDsKCiAgICAgICAgey8qIEFkZCBUYXNrIEJ1dHRvbiAqL30KICAgICAgICAmYW1wO2x0O0lvbkZhYiB2ZXJ0aWNhbD0mcXVvdDtib3R0b20mcXVvdDsgaG9yaXpvbnRhbD0mcXVvdDtlbmQmcXVvdDsgc2xvdD0mcXVvdDtmaXhlZCZxdW90OyZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkZhYkJ1dHRvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsgc2V0U2hvd01vZGFsKHRydWUpfSZhbXA7Z3Q7CiAgICAgICAgICAgICZhbXA7bHQ7SW9uSWNvbiBpY29uPXthZGR9IC8mYW1wO2d0OwogICAgICAgICAgJmFtcDtsdDsvSW9uRmFiQnV0dG9uJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25GYWImYW1wO2d0OwogICAgICAmYW1wO2x0Oy9Jb25Db250ZW50JmFtcDtndDsKICAgICZhbXA7bHQ7L0lvblBhZ2UmYW1wO2d0OwogICk7Cn07CgpleHBvcnQgZGVmYXVsdCBUYWIxOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyBsZXTigJlzIGdvIHRocm91Z2ggdGhlIGNvZGUgc25pcHBldCBhYm92ZS4gVGhpcyBpcyB0aGUgZW50aXJlIGNvZGUgZm9yIG91ciBUYXNrIE1hbmFnZXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnQgYnkgaW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzIGluY2x1ZGluZyB0aGUgY3NzIGZpbGUgZm9yIG91ciBwYWdlLiBXZSB0aGVuIGRlZmluZSBhbiBpbnRlcmZhY2UgdG8gZGVmaW5lIG91ciB0YXNrIG9iamVjdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtpbnRlcmZhY2UgVGFzayB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7Cn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7TmV4dCwgd2UgY3JlYXRlIG91ciBjb21wb25lbnQgYXMgYSBSZWFjdCBmdW5jdGlvbiBjb21wb25lbnQgdHlwZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtSZWFjdC5GQyZsdDsvY29kZSZndDsgYW5kIGJlZ2luIHRoZSBmdW5jdGlvbiBieSBkZWZpbmluZyB0aGUgZGF0YSB3ZSB3YW50IHRvIGhvbGQgaW4gb3VyIHN0YXRlIHVzaW5nIGhvb2tzOiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tzJmx0Oy9jb2RlJmd0OyBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYXNrJmx0Oy9jb2RlJmd0O3MsIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2hvd01vZGFsJmx0Oy9jb2RlJmd0OyBib29sZWFuIHRvIGNvbnRyb2wgdGhlIG9wZW5pbmcgYW5kIGNsb3Npbmcgb2Ygb3VyIHRhc2sgY3JlYXRpb24gZm9ybSwgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tOYW1lJmx0Oy9jb2RlJmd0OyB3aGljaCBob2xkcyB0aGUgdmFsdWUgb2YgYSBuZXcgdGFzayBpbiB0aGUgcHJvY2VzcyBvZiBjcmVhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IFt0YXNrcywgc2V0VGFza3NdID0gdXNlU3RhdGUmYW1wO2x0O1Rhc2tbXSZhbXA7Z3Q7KFtdKTsKY29uc3QgW3Nob3dNb2RhbCwgc2V0U2hvd01vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTsKY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Rm9sbG93aW5nIHRoZXNlIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdlIGNhbGwgdG8gYWRkIGEgbmV3IHRhc2suIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyB0YXNrIGJ5IHNldHRpbmcgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lkJmx0Oy9jb2RlJmd0OyBiYXNlZCBvbiB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBhbmQgY2xlYXJzIHRoZSBmb3JtIGFmdGVyIGFkZGluZyB0aGUgbmV3IHRhc2sgdG8gb3VyIGV4aXN0aW5nIGxpc3Qgb2YgdGFza3MuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtmdW5jdGlvbiBhZGROZXdUYXNrKCkgewogIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogIGNvbnN0IG5ld1Rhc2sgPSB7CiAgICBpZDogbmV3X2lkLAogICAgbmFtZTogdGFza05hbWUsCiAgfTsKCiAgdGFza3MucHVzaChuZXdUYXNrKTsKCiAgc2V0VGFza3ModGFza3MpOwoKICBzZXRUYXNrTmFtZSgmcXVvdDsmcXVvdDspOwoKICBzZXRTaG93TW9kYWwoZmFsc2UpOwp9CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05leHQsIHdlIHJlbmRlciBvdXIgdGVtcGxhdGUgdG8gZGlzcGxheSBvdXIgbGlzdCBvZiB0YXNrcyBhbmQgYWxzbyBkaXNwbGF5IGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgcmVhZHMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmbHQ7L2NvZGUmZ3Q7IHdoZW4gdGhlIHRhc2sgbGlzdCBpcyBlbXB0eS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtGb2xsb3dpbmcgdGhlIGxpc3QgaXMgYSBtb2RhbCBjb21wb25lbnQgdGhhdCBjb250YWlucyBvdXIgdGFzayBmb3JtIGZvciBhZGRpbmcgbmV3IHRhc2tzLiBCZWxvdyB0aGUgY29tcG9uZW50IGlzIGEgZmxvYXRpbmcgYWN0aW9uIGJ1dHRvbiB0aGF0IHRoZSB1c2VyIGNsaWNrcyB0byBvcGVuIHRoZSBtb2RhbC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWZvcmUgd2UgcHJldmlldyB0aGlzLCBvcGVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEuY3NzJmx0Oy9jb2RlJmd0OyBsb2NhdGVkIGluIHRoZSBzYW1lIGZvbGRlciBhcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRzeCZsdDsvY29kZSZndDsgYW5kIHJlcGxhY2UgaXRzIGNvbnRlbnRzIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Lyogc3JjL3BhZ2VzL1RhYjEuY3NzICovCgoudG9kby1pdGVtIHsKICAtLW1pbi1oZWlnaHQ6IDcwcHg7CiAgZm9udC1zaXplOiAxLjJlbTsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHNpbXBseSBidW1wcyB1cCB0aGUgaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgdGhlIGxpc3QgaXRlbXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm93LCBnbyB0byB5b3VyIGJyb3dzZXIgYW5kIGxvYWQgdGhlIGhvbWVwYWdlIG9mIHlvdXIgYXBwbGljYXRpb24gKFRhYjEpLiBZb3Ugd2lsbCBzZWUgdGhlIHBhZ2UgZGlzcGxheWVkIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1ob21lLW5vLXRhc2tzLnBuZyZxdW90OyAvJmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QmVjYXVzZSB3ZSBoYXZlbuKAmXQgYWRkZWQgYW55IHRhc2tzIHlldCwgd2UgaGF2ZSB0aGUgbWVzc2FnZSAmbHQ7c3Ryb25nJmd0O1lvdSBoYXZlIHlldCB0byBhZGQgdGFza3MgZm9yIHRvZGF5Jmx0Oy9zdHJvbmcmZ3Q7IGRpc3BsYXllZC4gV2UgYWxzbyBoYXZlIG91ciAmbHQ7c3Ryb25nJmd0O0FkZCBUYXNrJmx0Oy9zdHJvbmcmZ3Q7IGJ1dHRvbiBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lciB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwbHVzJmx0Oy9jb2RlJmd0OyBzeW1ib2wuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0FkZGluZyB0YXNrcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBhZGQgYSBuZXcgdGFzaywgY2xpY2sgdGhlIGJvdHRvbS1yaWdodCBibHVlIGJ1dHRvbiB0byBwdWxsIHVwIHRoZSB0YXNrIGNyZWF0aW9uIGZvcm0gYW5kIHR5cGUgaW4gYSB0YXNrIGFzIHNob3duIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtdGFzay5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7QUREIFRBU0smbHQ7L3N0cm9uZyZndDsgdG8gYWRkIHRoZSB0YXNrIGFuZCBnbyBhaGVhZCB0byBhZGQgMiB0byAzIG1vcmUgdGFza3MuIFdlIHNob3VsZCBub3cgaGF2ZSBlbm91Z2ggdGFza3Mgb24gdGhlIHBhZ2UgZm9yIG91ciBhcHBsaWNhdGlvbiB0byBsb29rIGZ1bmN0aW9uYWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXRhc2stbGlzdC5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB3ZSBoYXZlIGEgZnVuY3Rpb25hbCBhcHBsaWNhdGlvbi4gTm90IHByb2R1Y3Rpb24tcmVhZHksIGJ1dCBnb29kIGVub3VnaCB0byBzdGFydCB0ZXN0aW5nLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBZGRpbmcgdGVzdHMgdG8gdGhlIFRhc2sgTWFuYWdlciBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtPbmUgYWR2YW50YWdlIHRoYXQgd2UgaGF2ZSB3aXRoIHRlc3Rpbmcgb3VyIElvbmljIGFwcGxpY2F0aW9ucyBpcyB0aGF0IHdoaWxlIHNjYWZmb2xkaW5nIHRoZSBhcHBsaWNhdGlvbiwgdGhlIElvbmljIENMSSBoYXMgc2V0IHVwIGFsbCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcywgaW4gdGVybXMgb2YgcGFja2FnZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCBmb3IgdGVzdGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUZXN0aW5nIElvbmljIFJlYWN0IGFwcGxpY2F0aW9ucyBpcyBkb25lIHVzaW5nIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vamVzdGpzLmlvLyZxdW90OyZndDtKZXN0Jmx0Oy9hJmd0OyB0ZXN0aW5nIGZyYW1ld29yayB0b2dldGhlciB3aXRoIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdGVzdGluZy1saWJyYXJ5LmNvbS9kb2NzL3JlYWN0LXRlc3RpbmctbGlicmFyeS9pbnRybyZxdW90OyZndDtSZWFjdCBUZXN0aW5nIExpYnJhcnkmbHQ7L2EmZ3Q7IGFuZCB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1yZWFjdC10ZXN0LXV0aWxzJnF1b3Q7Jmd0O0lvbmljIFJlYWN0IFRlc3QgVXRpbHMmbHQ7L2EmZ3Q7IGxpYnJhcnkgd2hpY2ggaXMgYSBzbWFsbCBzdWl0ZSBvZiB1dGlsaXRpZXMgdG8gc2ltdWxhdGUgY29tbW9uIGZlYXR1cmVzIGluIElvbmljIGxpa2UgZmlyaW5nIGN1c3RvbSBJb25pYyBldmVudHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIHByb2plY3QgYWxyZWFkeSBjb21lcyB3aXRoIGEgdGVzdCBmaWxlIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7QXBwLnRzeCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLiBBcyB5b3UgbWF5IGhhdmUgZ3Vlc3NlZCwgdGhlIHRlc3QgZmlsZSBpcyBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtBcHAudGVzdC50c3gmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGZvbGxvd3MgdGhlIGNvbnZlbnRpb24gZm9yIEplc3QgdGVzdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsvLyBzcmMvQXBwLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgQXBwIGZyb20gJnF1b3Q7Li9BcHAmcXVvdDs7Cgp0ZXN0KCZxdW90O3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZyZxdW90OywgKCkgPSZhbXA7Z3Q7IHsKICBjb25zdCB7IGJhc2VFbGVtZW50IH0gPSByZW5kZXIoJmFtcDtsdDtBcHAgLyZhbXA7Z3Q7KTsKICBleHBlY3QoYmFzZUVsZW1lbnQpLnRvQmVEZWZpbmVkKCk7Cn0pOwombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHRlc3Qgc2ltcGx5IGNoZWNrcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiByZW5kZXJzIHByb3Blcmx5IGFuZCBkb2VzIG5vdCBjcmFzaC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBydW4gdGhpcyB0ZXN0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBpbnZva2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2plc3QmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gcnVuIHRoZSB0ZXN0IGRlZmluZWQgaW4gdGhlIGZpbGUuIEFzIGRpcmVjdGVkLCBwcmVzcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDthJmx0Oy9jb2RlJmd0OyB0byBydW4gYWxsIHRlc3RzLiBUaGUgYWJvdmUgY29tbWFuZCBpcyB0aGUgY29tbWFuZCB3ZSB3aWxsIGJlIHVzaW5nIHRvIHJ1biBhbGwgdGVzdHMgaW4gb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgbGV04oCZcyBhZGQgc29tZSB0ZXN0cyBvZiBvdXIgb3duLiBXZSB3aWxsIGJlIGNyZWF0aW5nIGEgdGVzdCBmaWxlIHRvIHRlc3QgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIHdlIGhhdmUgaW4gb3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlIHdoaWNoIGhvdXNlcyBvdXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRlc3QudHN4Jmx0Oy9jb2RlJmd0OyBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyLiBJdOKAmXMgdGhlIHNhbWUgcGxhY2UgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VGFiMS50c3gmbHQ7L2NvZGUmZ3Q7IGZpbGUgaXMgbG9jYXRlZC4gSW5zaWRlIHRoZSBuZXdseSBjcmVhdGVkIGZpbGUsIHBsYWNlIGluIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgVGFiMSBmcm9tICZxdW90Oy4vVGFiMSZxdW90OzsKCnRlc3QoJnF1b3Q7UGFnZSB0aXRsZSBpcyBUYXNrIE1hbmFnZXImcXVvdDssIGFzeW5jICgpID0mYW1wO2d0OyB7CiAgY29uc3QgeyBmaW5kQnlUZXh0IH0gPSByZW5kZXIoJmFtcDtsdDtUYWIxIC8mYW1wO2d0Oyk7CiAgYXdhaXQgZmluZEJ5VGV4dCgmcXVvdDtUYXNrIE1hbmFnZXImcXVvdDspOwp9KTsKCnRlc3QoJnF1b3Q7V2hlbiB0aGVyZSBhcmUgbm8gVGFza3MsIGluZm9ybSB0aGUgdXNlciB0aGF0IG5vIHRhc2tzIGhhdmUgYmVlbiBjcmVhdGVkJnF1b3Q7LCBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IHsgZmluZEJ5VGV4dCB9ID0gcmVuZGVyKCZhbXA7bHQ7VGFiMSAvJmFtcDtndDspOwogIGF3YWl0IGZpbmRCeVRleHQoJnF1b3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmcXVvdDspOwp9KTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBmaWxlLCB3ZSBoYXZlIGFkZGVkIHR3byB0ZXN0cy4gVGhlIGZpcnN0IHRlc3QgY2hlY2tzIGlmIG91ciBwYWdlIGRpc3BsYXlzIHdpdGggdGhlIGNvcnJlY3QgdGl0bGUgd2hpY2ggaXMgJmx0O3N0cm9uZyZndDtUYXNrIE1hbmFnZXImbHQ7L3N0cm9uZyZndDsuIFRoZSBzZWNvbmQgdGVzdCBjaGVja3MgaWYgb3VyIGFwcGxpY2F0aW9uIGluaXRpYWxseSBsb2FkcyB3aXRob3V0IHRhc2tzLCBhbmQgaWYgaXQgZG9lcywgaXQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgJmx0O3N0cm9uZyZndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3csIGxldOKAmXMgcnVuIHRoZXNlIHRlc3RzIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGF0IHRoZSByb290IG9mIG91ciBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSBhIHNjcmVlbiBzaW1pbGFyIHRvIHRoZSBvbmUgYmVsb3cgb24geW91ciBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi10ZXN0cy1sb2NhbC1ydW4ucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIG91ciB0ZXN0cyBydW5uaW5nIGFzIGV4cGVjdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBdXRvbWF0aW5nIG91ciB0ZXN0aW5nJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBmaW5hbCB0YXNrIGlzIHRvIGF1dG9tYXRlIG91ciBjb250aW51b3VzIGludGVncmF0aW9uIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhhdCwgd2Ugd2lsbCBiZSBkb2luZyB0aGUgZm9sbG93aW5nOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QWRkIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgdG8gb3VyIHByb2plY3QgdG8gc2V0IHVwIGEgQ0kgcGlwZWxpbmUgb24gQ2lyY2xlQ0kmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIG91ciBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG9zaXRvcnkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDcmVhdGUgYSBDaXJjbGVDSSBwcm9qZWN0IGZvciBvdXIgYXBwbGljYXRpb24mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtSdW4gdGhlIENJIHBpcGVsaW5lIG9uIENpcmNsZUNJJmx0Oy9saSZndDsKJmx0Oy9vbCZndDsKCiZsdDtwJmd0O0xldOKAmXMgZ2V0IHRvIGl0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZpcnN0LCBsZXTigJlzIGFkZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3Igb3VyIENJIHBpcGVsaW5lIHRvIG91ciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLiBJbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbmZpZy55bWwmbHQ7L2NvZGUmZ3Q7IGZpbGUsIGVudGVyIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpqb2JzOgogIGJ1aWxkOgogICAgd29ya2luZ19kaXJlY3Rvcnk6IH4vcmVwbwogICAgZG9ja2VyOgogICAgICAtIGltYWdlOiBjaW1nL25vZGU6MTIuMTYKICAgIHN0ZXBzOgogICAgICAtIGNoZWNrb3V0CiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdXBkYXRlLW5wbQogICAgICAgICAgY29tbWFuZDogJnF1b3Q7c3VkbyBucG0gaW5zdGFsbCAtZyBucG1ANSZxdW90OwogICAgICAtIHJlc3RvcmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgLSBydW46CiAgICAgICAgICBuYW1lOiBpbnN0YWxsLXBhY2thZ2VzCiAgICAgICAgICBjb21tYW5kOiBucG0gaW5zdGFsbAogICAgICAtIHNhdmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgICAgIHBhdGhzOgogICAgICAgICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdGVzdAogICAgICAgICAgY29tbWFuZDogbnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgY29uZmlndXJhdGlvbiBwdWxscyBpbiBhIE5vZGUuanMgaW1hZ2UgYW5kIGluc3RhbGxzIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGRlZmluZWQgaW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0Oy4gT25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCB0aGUgdGVzdCBzY3JpcHQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bnBtIHJ1biB0ZXN0Jmx0Oy9jb2RlJmd0OyBpcyB0aGVuIGV4ZWN1dGVkIHRvIHJ1biBhbGwgdGhlIHRlc3RzIGluIG91ciBhcHBsaWNhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGdvb2QgdG8gZ28uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY29tbWl0IGFsbCB5b3VyIGNoYW5nZXMgYW5kIHB1c2ggdGhlIHByb2plY3QgdG8gYSBHaXRIdWIgcmVwb3NpdG9yeSBvbiB0aGUgR2l0SHViIGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgQ2lyY2xlQ0kgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIGlzIHRvIHNldCB1cCB0aGUgcmVwb3NpdG9yeSBmb3Igb3VyIHByb2plY3QgYXMgYSBDaXJjbGVDSSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBDaXJjbGVDSSBjb25zb2xlLCBnbyB0byB0aGUgJmx0O3N0cm9uZyZndDtBZGQgUHJvamVjdHMmbHQ7L3N0cm9uZyZndDsgcGFnZSB0byBhZGQgdGhlIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtcHJvamVjdC5wbmcmcXVvdDsgYWx0PSZxdW90O0FkZCBQcm9qZWN0JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0Oy4gVGhpcyB3aWxsIGxvYWQgdGhlIG5leHQgc2NyZWVuLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3N0YXJ0LWJ1aWxkaW5nMS5wbmcmcXVvdDsgYWx0PSZxdW90O1N0YXJ0IEJ1aWxkaW5nIC0gQ29uZmlnIHNhbXBsZSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBzZXR1cCBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7LiBCZWZvcmUgdGhlIGJ1aWxkIHN0YXJ0cywgeW91IGdldCBhIHByb21wdCB0byBlaXRoZXIgZG93bmxvYWQgYW5kIHVzZSB0aGUgcHJvdmlkZWQgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBoYXZlIGl0IG9uIGEgc2VwYXJhdGUgYnJhbmNoIG9yIHNldCB1cCBvbmUgbWFudWFsbHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzIucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIEFkZCBtYW51YWxseSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1NlbGVjdCAmbHQ7c3Ryb25nJmd0O0FkZCBNYW51YWxseSZsdDsvc3Ryb25nJmd0OyB0byBwcm9jZWVkLiBUaGlzIHdpbGwgcHJvbXB0IGFub3RoZXIgZGlhbG9nIHRoYXQgY2hlY2tzIHRvIGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXQgdXAgdG8gYmVnaW4gYnVpbGRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzMucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIENvbmZpcm0gY29uZmlndXJhdGlvbiZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsgdG8gY29tcGxldGUgdGhlIHNldHVwLiBUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgcGlwZWxpbmUgdXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBvdXIgcHJvamVjdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGUgYnVpbGQgaXMgZG9uZSBydW5uaW5nLCB5b3Ugd2lsbCBnZXQgYSBzdWNjZXNzZnVsIGJ1aWxkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtc3VjY2Vzc2Z1bC5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHN1Y2Nlc3NmdWwmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O2J1aWxkJmx0Oy9zdHJvbmcmZ3Q7IHRvIHNlZSB0aGUgYmVoaW5kLXRoZS1zY2VuZXMgcHJvY2VzcyhJIGhhdmUgY29sbGFwc2VkIHRoZSAmbHQ7ZW0mZ3Q7dGVzdCZsdDsvZW0mZ3Q7IHN0ZXApLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtcHJvY2Vzcy5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHByb2Nlc3MmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBzY3JlZW4sIG91ciBwcm9qZWN0IGlzIHByb3Blcmx5IHNldCB1cCBhbmQgYWxsIG91ciB0ZXN0cyBhcmUgcnVubmluZyBmaW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgYXMgeW91IGRldmVsb3AsIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgbW9yZSBmZWF0dXJlcywgYWRkIHRlc3RzIHRvIHRoZW0gYW5kIHB1c2ggdG8gR2l0SHViLiBPbmNlIHlvdSBwdXNoLCB0aGUgQ0kgcGlwZWxpbmUgd2lsbCBydW4gYW5kIGFsbCB5b3VyIHRlc3RzIHdpbGwgYmUgZXhlY3V0ZWQuIElmIGFueSB0ZXN0IGZhaWxzLCB5b3VyIGJ1aWxkIHdpbGwgZmFpbCB3aGljaCB3aWxsIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbiB0byBiZSBmaXhlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW914oCZcmUgbm90IHB1c2hpbmcgYW55IGJ1Z3MgaW50byB5b3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIHRoaXMgYXJ0aWNsZSwgd2UgaGF2ZSBzZXQgdXAgYW4gYXV0b21hdGVkIENJIHBpcGVsaW5lIGZvciBvdXIgSW9uaWMgYXBwbGljYXRpb25zIHRvIGltcHJvdmUgb3VyIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGF1dG9tYXRpbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4gSGF2aW5nIGEgQ0kgcGlwZWxpbmUgdGhhdCBwcm9wZXJseSBydW5zIG91ciB0ZXN0cyBwcm90ZWN0cyB1cyBhZ2FpbnN0IG91cnNlbHZlcyBieSBlbnN1cmluZyB0aGF0IHdlIGRvbuKAmXQgZW5kIHVwIHdpdGggYnJva2VuIGFwcGxpY2F0aW9ucyBvciB0aGF0IHdlIGRvbuKAmXQgcHVzaCBidWdneSBjb2RlIHRvIG91ciB0ZWFt4oCZcyByZXBvc2l0b3J5IHdoaWxlIHdvcmtpbmcgdG9nZXRoZXIgb24gYSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyA6KSZsdDsvcCZndDsKCiZsdDtociAvJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3R3aXR0ZXIuY29tL2NvZGVyb25mbGVlaz9sYW5nPWVuJnF1b3Q7Jmd0O0Zpa2F5byZsdDsvYSZndDsgaXMgYSBmdWxsc3RhY2sgZGV2ZWxvcGVyIGFuZCBhdXRob3Igd2l0aCBvdmVyIGEgZGVjYWRlIG9mIGV4cGVyaWVuY2UgZGV2ZWxvcGluZyB3ZWIgYW5kIG1vYmlsZSBzb2x1dGlvbnMuIEhlIGlzIGN1cnJlbnRseSB0aGUgU29mdHdhcmUgTGVhZCBhdCBUZWNoIFNwZWNpYWxpc3QgQ29uc3VsdGluZyBhbmQgZGV2ZWxvcHMgY291cnNlcyBmb3IgUGFja3QgYW5kIFVkZW15LiBIZSBoYXMgYSBzdHJvbmcgcGFzc2lvbiBmb3IgdGVhY2hpbmcgYW5kIGhvcGVzIHRvIGJlY29tZSBhIGZ1bGwtdGltZSBhdXRob3IuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5EcmF3biBPdXQgQ29udmVyc2F0aW9ucywgZmVhdHVyaW5nIENpcmNsZUNJIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlciwgUGF0IFNoaWVsZHM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZHJhd24tb3V0LWNvbnZlcnNhdGlvbi1mZWF0dXJpbmctY2lyY2xlY2ktcHJpbmNpcGFsLXNvZnR3YXJlLWVuZ2luZWVyLXBhdC1zaGllbGRzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5GcmksIDE1IE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RyYXduLW91dC1jb252ZXJzYXRpb24tZmVhdHVyaW5nLWNpcmNsZWNpLXByaW5jaXBhbC1zb2Z0d2FyZS1lbmdpbmVlci1wYXQtc2hpZWxkcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Db3JleSBMZXdpczwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtPbiB0aGlzIGVwaXNvZGUgb2YgRHJhd24gT3V0IENvbnZlcnNhdGlvbnMsIHdlIHRhbGsgYWJvdXQgc29tZXRoaW5nIG5lYXIgYW5kIGRlYXIgdG8gb3VyIGhlYXJ0cyDigJMgQ2lyY2xlQ0kuIFdlLCBhbG9uZyB3aXRoIGh1bmRyZWQgb2YgdGhvdXNhbmRzIG9mIG90aGVyIGRldmVsb3BlcnMgYXQgY29tcGFuaWVzIGxpa2UgU3BvdGlmeSwgRmFjZWJvb2ssIEZvcmQgYW5kIEFldG5hLCB1c2UgQ2lyY2xlQ0kgZXZlcnkgZGF5IHRvIG1ha2Ugc3VyZSB0aGF0IHdl4oCZcmUgZGVwbG95aW5nIHF1YWxpdHkgY29kZSwgYW5kIGJ1aWxkaW5nIGVmZmljaWVuY2llcyBpbnRvIG91ciBlbmdpbmVlcmluZyBwcm9jZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0LCB3aGF0IGV4YWN0bHkgaXMgdW5kZXJuZWF0aCBvdXIgcGxhdGZvcm3igJlzIGhvb2Q/Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Sm9pbiBvdXIgQ1RPIFJvYiBadWJlciBhcyBoZSBob3N0cyBDaXJjbGVDSeKAmXMgUHJpbmNpcGFsIFNvZnR3YXJlIEVuZ2luZWVyIFBhdCBTaGllbGRzIHRvIGRpc2N1c3MgdGhlIGlubmVyLXdvcmtpbmdzIG9mIG91ciB0ZWNobm9sb2d5IGFuZCBwbGF0Zm9ybS4gVGhleSBkaXNjdXNzIGV2ZXJ5dGhpbmcgZnJvbSBwcm9kdWN0IGZlYXR1cmVzIHRvIGFyY2hpdGVjdHVyZSBhbmQgdGFsayBhYm91dCBob3cgYW5kIHdoeSB0aGUgY29yZSBlbGVtZW50cyBvZiBvdXIgcGxhdGZvcm0gZ290IGJ1aWx0LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3JvYi1wYXQucG5nJnF1b3Q7IGFsdD0mcXVvdDtyb2ItcGF0LnBuZyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1JvYiBldmVuIHRha2VzIGEgdHVybiB3aXRoIHRoZSBtYXJrZXJzIHRvIGRpc2N1c3MgZG9tYWluLWRyaXZlbiBkZXNpZ24sIGF1dGhlbnRpY2F0aW9uIGFuZCBtb3JlLiBMZWFybiBldmVyeXRoaW5nIHlvdSBldmVyIHdhbnRlZCB0byBrbm93IGFib3V0IENpcmNsZUNJIGFuZCBtb3JlIGluIHRvZGF54oCZcyBjb252ZXJzYXRpb24uJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXImcXVvdDsmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3lvdXR1LmJlL1dMOVJRNmZNbGUwJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvY2lyY2xlY2kuZ2lmJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsKICAmbHQ7L2EmZ3Q7CgombHQ7YnIgLyZndDsKCiAgJmx0O3AmZ3Q7CiAgICAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8veW91dHUuYmUvV0w5UlE2Zk1sZTAmcXVvdDsgc3R5bGU9JnF1b3Q7Y29sb3I6IzAwMDBFRTsmcXVvdDsmZ3Q7CiAgICAgIFdhdGNoIHRoZSBmdWxsIHZpZGVvIGhlcmUKICAgICZsdDsvYSZndDsKICAmbHQ7L3AmZ3Q7CiZsdDsvZGl2Jmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZG8gSSB1c2UgSW5mcmFzdHJ1Y3R1cmUgYXMgQ29kZT88L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWRvLWktaWFjLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE1heSAyMDIwIDEyOjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2hvdy1kby1pLWlhYy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5BbmdlbCBSaXZlcmE8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7SW5mcmFzdHJ1Y3R1cmUgYXMgY29kZSAoSWFDKSBpcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBhbmQgcHJvdmlzaW9uaW5nIGNsb3VkIGFuZCBJVCByZXNvdXJjZXMgdmlhIG1hY2hpbmUgcmVhZGFibGUgZGVmaW5pdGlvbiBmaWxlcyBhbmQgaXMgYSBwYXJ0IG9mIG1vZGVybiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lcy4gSWFDIGVuYWJsZXMgb3JnYW5pemF0aW9ucyB0byBwcm92aXNpb24sIG1hbmFnZSwgYW5kIGRlc3Ryb3kgY29tcHV0ZSByZXNvdXJjZXMgdXNpbmcgbW9kZXJuIERldk9wcyB0b29scy4gSWFDIGVuYWJsZXMgdGhpcyBieSBzdGF0aWNhbGx5IGRlZmluaW5nIGFuZCBkZWNsYXJpbmcgdGhlc2UgcmVzb3VyY2VzIGluIGNvZGUsIHRoZW4gZGVwbG95aW5nIGFuZCBkeW5hbWljYWxseSBtYWludGFpbmluZyB0aGVzZSByZXNvdXJjZXMgdmlhIGNvZGUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gcmVjZW50IGludGVyYWN0aW9ucyB3aXRoIGRldmVsb3BlcnMsIEnigJl2ZSByZWFsaXplZCB0aGF0IG1hbnkgYXJlIGVpdGhlciBub3QgYXdhcmUgb2YgSWFDLCBvciBhcmUgYXdhcmUgYnV0IGhhdmUgYWJhbmRvbmVkIHRoZWlyIGluaXRpYWwgZWZmb3J0cyBiZWNhdXNlIHJhbXBpbmcgdXAgd2FzIHRvbyBjdW1iZXJzb21lLiBJbiB0aGlzIHBvc3QsIEkgd2lsbCBkaXNjdXNzIHRoZSBiZW5lZml0cyBvZiBJYUMgYW5kIHNvbWUgb2YgdGhlIHRvb2xpbmcgb3B0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgYWxvbmcgd2l0aCBhIGJyaWVmIGRlbW9uc3RyYXRpb24gb24gaG93IHRvIHVzZSB0aGVtIGluIGhvcGVzIG9mIGVhc2luZyB0aGUgdHJhbnNpdGlvbiB0byB1c2luZyBJYUMuIEkgd2lsbCBmb2N1cyBvbiB0aGUgdHdvIG1vc3QgcG9wdWxhciBJYUMgdG9vbHMgdXNlZCBpbiB0aGUgaW5kdXN0cnkgdG9kYXk6ICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cudGVycmFmb3JtLmlvLyZxdW90OyZndDtIYXNoaUNvcnDigJlzIFRlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtCZWZvcmUgeW91IGdldCBzdGFydGVkLCB5b3XigJlsbCBuZWVkIHRvIGhhdmUgdGhlc2UgdGhpbmdzOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9mcmVlJnF1b3Q7Jmd0O0dvb2dsZSBDbG91ZCZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NyZWF0ZSBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3Jlc291cmNlLW1hbmFnZXIvZG9jcy9jcmVhdGluZy1tYW5hZ2luZy1wcm9qZWN0cyNjcmVhdGluZ19hX3Byb2plY3QmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIHByb2plY3QmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FwcC5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkgQVBJIHRva2VuJmx0Oy9hJmd0OyBhbmQgc2F2ZSBpdCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgbG9jYWwgaW5zdGFsbCBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vc2RrL2RvY3MvcXVpY2tzdGFydHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIFNESyBDTEkmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSBsb2NhbCBpbnN0YWxsIG9mIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaHViLmRvY2tlci5jb20vc2VhcmNoLz90eXBlPWVkaXRpb24mYW1wO2FtcDtvZmZlcmluZz1jb21tdW5pdHkmcXVvdDsmZ3Q7RG9ja2VyIGNsaWVudCZsdDsvYSZndDsmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBHb29nbGUgQ2xvdWQgcHJvamVjdCBjcmVkZW50aWFscyZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDbG91ZFBsYXRmb3JtL2NvbW11bml0eS9ibG9iL21hc3Rlci90dXRvcmlhbHMvZ2V0dGluZy1zdGFydGVkLW9uLWdjcC13aXRoLXRlcnJhZm9ybS9pbmRleC5tZCNnZXR0aW5nLXByb2plY3QtY3JlZGVudGlhbHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIGNyZWRlbnRpYWxzJmx0Oy9hJmd0OyBpbiBvcmRlciB0byBwZXJmb3JtIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgdXNpbmcgSWFDIHRvb2xpbmcuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9hcGlzL2NyZWRlbnRpYWxzL3NlcnZpY2VhY2NvdW50a2V5JnF1b3Q7Jmd0O0NyZWF0ZSBTZXJ2aWNlIEFjY291bnQgS2V5IHBhZ2UmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7U2VsZWN0IHRoZSBkZWZhdWx0IHNlcnZpY2UgYWNjb3VudCBvciBjcmVhdGUgYSBuZXcgb25lLCBzZWxlY3QgSlNPTiBhcyB0aGUga2V5IHR5cGUsIGFuZCBjbGljayAmbHQ7c3Ryb25nJmd0O0NyZWF0ZSZsdDsvc3Ryb25nJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O1NhdmUgdGhpcyBKU09OIGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgYW5kIHJlbmFtZSB0aGUgZmlsZSB0byAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaWNkX2RlbW9fZ2NwX2NyZWRzLmpzb24mbHQ7L2NvZGUmZ3Q7LiBUaGlzIGlzICZsdDtzdHJvbmcmZ3Q7dmVyeSBpbXBvcnRhbnQmbHQ7L3N0cm9uZyZndDsgZm9yIGVuYWJsaW5nIHRoZSBHb29nbGUgQ2xvdWQgQ0xJIGluIHRoZSBjb250YWluZXIgbGF0ZXIgb24mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBhIFB1bHVtaSBBUEkgdG9rZW4mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7WW91IHdpbGwgbmVlZCB0byBnZXQgYSBQdWx1bWkgQVBJIHRva2VuIHRvIHN0b3JlIHlvdXIgcHJvamVjdCBzdGF0ZSBvbiBQdWx1bWnigJlzIGJhY2tlbmQgY2xvdWQuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vYXBwLnB1bHVtaS5jb20vJnF1b3Q7Jmd0O2FwcC5wdWx1bWkuY29tLyZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1NlbGVjdCBhbiBPcmdhbml6YXRpb24mbHQ7L3N0cm9uZyZndDsgb24gdGhlIHVwcGVyIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSBhbmQgc2VsZWN0IHlvdXIgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O0FjY2VzcyBUb2tlbnMmbHQ7L3N0cm9uZyZndDsgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7TmV3IEFjY2VzcyBUb2tlbiZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7Q3JlYXRlJmx0Oy9zdHJvbmcmZ3Q7IGFuZCBzYXZlIHRoZSBuZXcgQVBJIHRva2VuIHRoYXQgd2FzIGNyZWF0ZWQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemUgeW91ciBQdWx1bWkgcHJvamVjdCBsYXRlciZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7aDImZ3Q7RG9ja2VyIHB1bGwgSWFDMTAxIERvY2tlciBpbWFnZSZsdDsvaDImZ3Q7CgombHQ7cCZndDtBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlZCBhbmQgeW914oCZcmUgcmVhZHkgdG8gcHVsbCB0aGUgZG9ja2VyIGltYWdlIGZvciB0aGlzIHdvcmtzaG9wLiBJbiB0ZXJtaW5hbCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBwdWxsIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm93IGhhdmUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2FyaXYzcmEvaWFjMTAxJmx0Oy9jb2RlJmd0OyBkb2NrZXIgaW1hZ2UgbG9jYWxseS4gWW91IGNhbiB2ZXJpZnkgYnV5IHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgYW5kIHlvdSBzaG91bGQgc2VlIHRoZSBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0RvY2tlciBydW4gSWFDMTAxIGNvbnRhaW5lciZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgd2XigJlsbCBjcmVhdGUgYSBuZXcgRG9ja2VyIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YXJpdjNyYS9pYWMxMDEmbHQ7L2NvZGUmZ3Q7IGltYWdlIHdoaWNoIGhhcyBhbGwgdGhlIElhQyB0b29scyBhbmQgY29kZSBwcmUtYmFrZWQuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O01vdW50aW5nIHRoZSAvLmNvbmZpZy9nY2xvdWQvIGRpcmVjdG9yeSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtCZWZvcmUgcnVubmluZyB0aGUgbmV3IGNvbnRhaW5lciB5b3UgbmVlZCB0aGUgYWJzb2x1dGUgcGF0aCB0byB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkuIE9uIG15IE1hY09TIG1hY2hpbmUsIG15IGFic29sdXRlIHBhdGggaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7L1VzZXJzL2FuZ2VsLy5jb25maWcvZ2Nsb3VkLyZsdDsvY29kZSZndDsuIEJlIHN1cmUgdG8gZ2V0IHlvdXIgYWJzb2x1dGUgZmlsZSBwYXRoIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2Nsb3VkJmx0Oy9jb2RlJmd0OyBkaXJlY3Rvcnkgb24geW91ciBsb2NhbCBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtSdW4gSWFDMTAxIGNvbnRhaW5lciB3aXRoIG1vdW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtSdW4gdGhpcyBjb21tYW5kIGluIGEgdGVybWluYWwgcnVuIGJ1dCBiZSBzdXJlIHRvIHJlcGxhY2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0OyZsdDsvY29kZSZndDsgYml0IHdpdGggeW91ciBhY3R1YWwgYWJzb2x1dGUgcGF0aCB0byB5b3VyIGxvY2FsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dsb2N1ZC8mbHQ7L2NvZGUmZ3Q7ZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtaXQgLS1uYW1lIGlhY3Rlc3QgLS1tb3VudCB0eXBlPWJpbmQsc291cmNlPSZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0Oy5jb25maWcvZ2Nsb3VkLyx0YXJnZXQ9L3Jvb3QvLmNvbmZpZy9nY2xvdWQvIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJYUMxMDEgY29udGFpbmVyIGlzIHJ1bm5pbmcmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGUgcHJldmlvdXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgeW91ciBJYUMxMDEgY29udGFpbmVyIHdpbGwgYmUgdXAgYW5kIHJ1bm5pbmcgYW5kIHlvdXIgdGVybWluYWwgc2hlbGwgaGFzIGRyb3BwZWQgeW91IGludG8gdGhlIHJ1bm5pbmcgY29udGFpbmVyLiBFdmVyeSBjb21tYW5kIHlvdSBydW4gaW4geW91ciB0ZXJtaW5hbCBzaGVsbCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBEb2NrZXIgY29udGFpbmVyIGZyb20gbm93IG9uIHVudGlsIHlvdSBtYW51YWxseSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtleGl0Jmx0Oy9jb2RlJmd0OyB0aGUgY29udGFpbmVyLiBUaGUgY29udGFpbmVyIGhhcyB0aGUgVGVycmFmb3JtIGFuZCBQdWx1bWkgQ0xJIHRvb2xzIGluc3RhbGxlZCwgYXMgd2VsbCBhcyBleGFtcGxlIGNvZGUgZm9yIGVhY2ggdGhhdCBjcmVhdGVzIGluZnJhc3RydWN0dXJlIGluIHRoZWlyIHJlc3BlY3RpdmUgdG9vbHMuIFRoZSBjb250YWluZXIgcHJvamVjdHMgZmlsZXMgYXJlIG1hcHBlZCBhcyBmb2xsb3dzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHJvamVjdHMvCnxfIHRlcnJhZm9ybS9nY3AvY29tcHV0ZS8gICAjIENvbnRhaW5zIHRoZSBUZXJyYWZvcm0gY29kZSBmaWxlcwp8XyBwdWx1bWkvZ2NwL2NvbXB1dGUvICAgICAgIyBDb250YWlucyB0aGUgUHVsdW1pIGNvZGUgZmlsZXMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gyJmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2EmZ3Q7IGlzIGEgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgYnVpbGRpbmcsIGNoYW5naW5nLCBhbmQgdmVyc2lvbmluZyBpbmZyYXN0cnVjdHVyZSBzYWZlbHkgYW5kIGVmZmljaWVudGx5LiBUZXJyYWZvcm0gY2FuIG1hbmFnZSBleGlzdGluZyBzZXJ2aWNlIHByb3ZpZGVycyBhcyB3ZWxsIGFzIGN1c3RvbSBpbi1ob3VzZSBzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q29uZmlndXJhdGlvbiBmaWxlcyBkZXNjcmliZSB0aGUgY29tcG9uZW50cyBuZWVkZWQgdG8gcnVuIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yIHlvdXIgZW50aXJlIGRhdGFjZW50ZXIgb24gVGVycmFmb3JtLiBUZXJyYWZvcm0gZ2VuZXJhdGVzIGFuIGV4ZWN1dGlvbiBwbGFuIGRlc2NyaWJpbmcgd2hhdCBpdCB3aWxsIGRvIHRvIHJlYWNoIHRoZSBkZXNpcmVkIHN0YXRlLCBhbmQgdGhlbiBleGVjdXRlcyBpdCB0byBidWlsZCB0aGUgZGVzY3JpYmVkIGluZnJhc3RydWN0dXJlLiBBcyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBUZXJyYWZvcm0gaXMgYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBjaGFuZ2VkIGFuZCBjcmVhdGUgaW5jcmVtZW50YWwgZXhlY3V0aW9uIHBsYW5zIHdoaWNoIGNhbiBiZSBhcHBsaWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZSBpbmZyYXN0cnVjdHVyZSBUZXJyYWZvcm0gY2FuIG1hbmFnZSBpbmNsdWRlcyBsb3ctbGV2ZWwgY29tcG9uZW50cyBzdWNoIGFzIGNvbXB1dGUgaW5zdGFuY2VzLCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZywgYXMgd2VsbCBhcyBoaWdoLWxldmVsIGNvbXBvbmVudHMgc3VjaCBhcyBETlMgZW50cmllcywgU2FhUyBmZWF0dXJlcywgZXRjLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBUZXJyYWZvcm0mbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCB3aXRoIHByb3Zpc2lvbmluZyBzb21lIHJlc291cmNlcyBpbiBHQ1AgdXNpbmcgVGVycmFmb3JtIGNvZGUuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDttYWluLnRmICZsdDsvY29kZSZndDsgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBjb2RlIHRoYXQgaGFzIG91ciBpbmZyYXN0cnVjdHVyZSBkZWZpbmVkLiBJbiB0aGlzIGZpbGUgd2XigJlyZSBjcmVhdGluZyBhIG5ldyBjb21wdXRlIGluc3RhbmNlIHRoYXQgd2lsbCBpbnN0YWxsIGFuZCBydW4gYSBQeXRob24gRmxhc2sgYXBwIHBhY2thZ2VkIGluIGEgRG9ja2VyIGNvbnRhaW5lci4gVGhlIFRlcnJhZm9ybSBjb2RlIHdpbGwgYWxzbyBjcmVhdGUgc29tZSBmaXJld2FsbCBydWxlcyB0aGF0IHdpbGwgYWxsb3cgcHVibGljIGFjY2VzcyB0byB0aGUgYXBwIG92ZXIgcG9ydCA1MDAwLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHByb3Zpc2lvbiB0aGlzLCBydW4gdGhpcyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NkIH4vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJbml0aWFsaXppbmcgVGVycmFmb3JtJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1doaWxlIGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBydW4gdGhpcyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7dGVycmZvcm0gaW5pdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSByZXN1bHRzIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cm9vdEBkOWNlNzIxMjkzZTI6fi9wcm9qZWN0L3RlcnJhZm9ybS9nY3AvY29tcHV0ZSMgdGVycmFmb3JtIGluaXQKCkluaXRpYWxpemluZyB0aGUgYmFja2VuZC4uLgoKSW5pdGlhbGl6aW5nIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBDaGVja2luZyBmb3IgYXZhaWxhYmxlIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBEb3dubG9hZGluZyBwbHVnaW4gZm9yIHByb3ZpZGVyICZxdW90O2dvb2dsZSZxdW90OyAoaGFzaGljb3JwL2dvb2dsZSkgMy4xMC4wLi4uCgoqIHByb3ZpZGVyLmdvb2dsZTogdmVyc2lvbiA9ICZxdW90O34mYW1wO2d0OyAzLjEwJnF1b3Q7CgpUZXJyYWZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7aDMmZ3Q7UHJldmlld2luZyB3aXRoIFRlcnJhZm9ybSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUZXJyYWZvcm0gaGFzIGEgY29tbWFuZCB0aGF0IGFsbG93cyB5b3UgdG8gZHJ5IHJ1biBhbmQgdmFsaWRhdGUgeW91ciBUZXJyYWZvcm0gY29kZSB3aXRob3V0IGFjdHVhbGx5IGV4ZWN1dGluZyBhbnl0aGluZy4gVGhlIGNvbW1hbmQgaXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybSBwbGFuJmx0Oy9jb2RlJmd0OyB3aGljaCBhbHNvIGdyYXBocyBhbGwgdGhlIGFjdGlvbnMgYW5kIGNoYW5nZXMgdGhhdCBUZXJyYWZvcm0gd2lsbCBleGVjdXRlIGFnYWluc3QgeW91ciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS4gSW4gdGhlIHRlcm1pbmFsIHJ1bjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3RlcnJhZm9ybSBwbGFuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSByZXN1bHRzIHNpbWlsYXIgdG8gdGhpcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0FuIGV4ZWN1dGlvbiBwbGFuIGhhcyBiZWVuIGdlbmVyYXRlZCBhbmQgaXMgc2hvd24gYmVsb3cuClJlc291cmNlIGFjdGlvbnMgYXJlIGluZGljYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKICArIGNyZWF0ZQoKVGVycmFmb3JtIHdpbGwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGFjdGlvbnM6CgogICMgZ29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwuaHR0cC01MDAwIHdpbGwgYmUgY3JlYXRlZAogICsgcmVzb3VyY2UgJnF1b3Q7Z29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwmcXVvdDsgJnF1b3Q7aHR0cC01MDAwJnF1b3Q7IHsKICAgICAgKyBjcmVhdGlvbl90aW1lc3RhbXAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVzdGluYXRpb25fcmFuZ2VzID0gKGtub3duIGFmdGVyIGFwcGx5KQogIH0KCiAgICAjIGdvb2dsZV9jb21wdXRlX2luc3RhbmNlLmRlZmF1bHQgd2lsbCBiZSBjcmVhdGVkCiAgKyByZXNvdXJjZSAmcXVvdDtnb29nbGVfY29tcHV0ZV9pbnN0YW5jZSZxdW90OyAmcXVvdDtkZWZhdWx0JnF1b3Q7IHsKICAgICAgKyBjYW5faXBfZm9yd2FyZCAgICAgICA9IGZhbHNlCiAgICAgICsgY3B1X3BsYXRmb3JtICAgICAgICAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVsZXRpb25fcHJvdGVjdGlvbiAgPSBmYWxzZQogICAgICArIGd1ZXN0X2FjY2VsZXJhdG9yICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGlkICAgICAgICAgICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGluc3RhbmNlX2lkICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVsX2ZpbmdlcnByaW50ICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVscyAgICAgICAgICAgICAgID0gewogICAgICAgICAgKyAmcXVvdDtjb250YWluZXItdm0mcXVvdDsgPSAmcXVvdDtjb3Mtc3RhYmxlLTY5LTEwODk1LTYyLTAmcXVvdDsKICAgICAgICB9CiAgICAgICsgbWFjaGluZV90eXBlICAgICAgICAgPSAmcXVvdDtnMS1zbWFsbCZxdW90OwogIH0KICBQbGFuOiAyIHRvIGFkZCwgMCB0byBjaGFuZ2UsIDAgdG8gZGVzdHJveS4KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgeW91IGNhbiBzZWUsIFRlcnJhZm9ybSBpcyBnb2luZyB0byBjcmVhdGUgbmV3IEdDUCByZXNvdXJjZXMgZm9yIHlvdSBiYXNlZCBvbiB0aGUgY29kZSBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bWFpbi50ZiZsdDsvY29kZSZndDsgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGFwcGx5Jmx0Oy9oMyZndDsKCiZsdDtwJmd0O05vdyB5b3XigJlyZSByZWFkeSB0byBjcmVhdGUgdGhlIG5ldyBpbmZyYXN0cnVjdHVyZSBhbmQgZGVwbG95IHRoZSBhcHBsaWNhdGlvbi4gUnVuIHRoaXMgY29tbWFuZCBpbiB0aGUgdGVybWluYWw6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt0ZXJyYWZvcm0gYXBwbHkKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGVycmFmb3JtIHdpbGwgcHJvbXB0IHlvdSB0byBjb25maXJtIHlvdXIgY29tbWFuZC4gVHlwZSB5ZXMgYW5kIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0RvIHlvdSB3YW50IHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucz8KICBUZXJyYWZvcm0gd2lsbCBwZXJmb3JtIHRoZSBhY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KICBPbmx5ICd5ZXMnIHdpbGwgYmUgYWNjZXB0ZWQgdG8gYXBwcm92ZS4KCiAgRW50ZXIgYSB2YWx1ZTogeWVzCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RlcnJhZm9ybSB3aWxsIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgYW5kIHlvdSB3aWxsIGhhdmUgYW4gYXBwbGljYXRpb24gdXAgYW5kIHJ1bm5pbmcgb24gR0NQIHNob3J0bHkgYWZ0ZXIgaXQgY29tcGxldGVzLiBQbGVhc2Ugbm90ZSB0aGF0IGl0IHdpbGwgdGFrZSAzLTUgbWludXRlcyBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbWUgb25saW5lIGFmdGVyIFRlcnJhZm9ybSBjb21wbGV0ZXMuIEl04oCZcyBub3QgYW4gaW5zdGFudCBwcm9jZXNzIGJlY2F1c2UgdGhlIGJhY2tlbmQgc3lzdGVtcyBhcmUgcHJvdmlzaW9uaW5nIGFuZCBicmluZ2luZyB0aGluZ3Mgb25saW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgZG9uZSwgeW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7bGFuZ3VhZ2Utc2hlbGwgaGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7T3V0cHV0czoKClB1YmxpY19JUF9BZGRyZXNzICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgMzQuNzQuNzUuMTcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1B1YmxpY19JUF9BZGRyZXNzJmx0Oy9jb2RlJmd0OyB2YWx1ZSBpcyB0aGUgSVAgQWRkcmVzcyB0aGF0IHlvdXIgYXBwIGlzIHJ1bm5pbmcgb24sIHNvIGlmIHlvdSBnbyB0byBhIGJyb3dzZXIgYW5kIHBsdWcgdGhhdCBudW1iZXIgaW4gcGx1cyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7OjUwMDAmbHQ7L2NvZGUmZ3Q7IHBvcnQgYWRkcmVzcyAoaXQgd291bGQgbG9vayBsaWtlIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7MzQuNzQuNzUuMTc6NTAwMCZsdDsvY29kZSZndDspIHlvdSB3aWxsIHNlZSB5b3VyIGFwcCBydW5uaW5nIGluIEdDUC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Tm93IHRoYXQgeW91IGhhdmUgcHJvb2YgdGhhdCB5b3VyIEdvb2dsZSBDb21wdXRlIGluc3RhbmNlIGFuZCB5b3VyIGFwcGxpY2F0aW9uIHdvcmssIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gZGVzdHJveSB0aGUgYXNzZXRzIHRoYXQgeW91IGNyZWF0ZWQgaW4gdGhpcyB0dXRvcmlhbC4gWW91IGNhbiBsZWF2ZSBpdCB1cCBhbmQgcnVubmluZywgYnV0IGJlIGF3YXJlIHRoYXQgdGhlcmUgaXMgYSBjb3N0IGFzc29jaWF0ZWQgd2l0aCBhbnkgYXNzZXRzIHJ1bm5pbmcgb24gdGhlIEdvb2dsZSBDbG91ZCBQbGF0Zm9ybSBhbmQgeW91IHdpbGwgYmUgbGlhYmxlIGZvciB0aG9zZSBjb3N0cy4gR29vZ2xlIGdpdmVzIGEgZ2VuZXJvdXMgJDMwMCBjcmVkaXQgZm9yIGl0cyBmcmVlIHRyaWFsIHNpZ24tdXAsIGJ1dCB5b3UgY291bGQgZWFzaWx5IGVhdCB0aHJvdWdoIHRoYXQgaWYgeW91IGxlYXZlIGFzc2V0cyBydW5uaW5nLiBJdOKAmXMgdXAgdG8geW91LCBidXQgcnVubmluZyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0ZXJyYWZvcm0gZGVzdHJveSZsdDsvY29kZSZndDsgd2lsbCB0ZXJtaW5hdGUgYW55IHJ1bm5pbmcgYXNzZXRzLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIEnigJlsbCBkZW1vbnN0cmF0ZSBob3cgdG8gcGVyZm9ybSBpbmZyYXN0cnVjdHVyZSBwcm92aXNpb25pbmcgdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtQdWx1bWkgU0RLJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9wcm9kdWN0LyNzZGsmcXVvdDsmZ3Q7UHVsdW1pIFNESyZsdDsvYSZndDsgaXMgYW4gb3BlbiBzb3VyY2UgZnJhbWV3b3JrIGZvciBkZWZpbmluZyBhbmQgZGVwbG95aW5nIGNsb3VkIGFwcHMgYW5kIElhQy4gUHVsdW1pIGVuYWJsZXMgZGV2ZWxvcGVycyB0byB3cml0ZSBjb2RlIGluIHRoZWlyIGZhdm9yaXRlIGxhbmd1YWdlIHN1Y2ggYXMgVHlwZVNjcmlwdCwgSmF2YVNjcmlwdCwgUHl0aG9uLCBhbmQgR28uIFRoaXMgZW5hYmxlcyBtb2Rlcm4gYXBwcm9hY2hlcyB0byBjbG91ZCBhcHBsaWNhdGlvbnMgYW5kIGluZnJhc3RydWN0dXJlIHdpdGhvdXQgbmVlZGluZyB0byBsZWFybiBhbm90aGVyIFlBTUwgb3IgRFNMIGRpYWxlY3QuIFRoaXMgdW5sb2NrcyBhYnN0cmFjdGlvbnMgYW5kIHJldXNlLCBhcyB3ZWxsIGFzIGFjY2VzcyB0byB5b3VyIGZhdm9yaXRlIElERXMsIHJlZmFjdG9yaW5nLCBhbmQgdGVzdGluZyB0b29scy4gTWFzdGVyIG9uZSB0b29sY2hhaW4gYW5kIHNldCBvZiBmcmFtZXdvcmtzIGFuZCBnbyB0byBhbnkgY2xvdWQgKEFXUywgQXp1cmUsIEdDUCwgb3IgS3ViZXJuZXRlcykgd2l0aCBlYXNlLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBQdWx1bWkmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUgZXhwZXJpZW5jZWQgYnVpbGRpbmcgaW5mcmFzdHJ1Y3R1cmUgdXNpbmcgVGVycmFmb3JtLCBub3cgeW914oCZbGwgbGVhcm4gaG93IHRvIHByb3Zpc2lvbiBhbmQgZGVwbG95IG5ldyBpbmZyYXN0cnVjdHVyZSB1c2luZyBQdWx1bWkuIFRoZSBQdWx1bWkgZXhhbXBsZSB3aWxsIGNyZWF0ZSB0aGUgc2FtZSBHQ1AgcmVzb3VyY2VzIHByZXZpb3VzbHkgdXNpbmcgUHVsdW1pIGNvZGUgYW5kIHRvb2xzLiBQdWx1bWkgZW5hYmxlcyB5b3UgdG8gZGVmaW5lIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgaW4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHdoaWNoIHByb3ZpZGVzIGxvdHMgb2YgZmxleGliaWxpdHkuIEluIHRoaXMgZXhhbXBsZSwgd2XigJlyZSB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vd3d3LnB5dGhvbi5vcmcvJnF1b3Q7Jmd0O1B5dGhvbiZsdDsvYSZndDsgYXMgb3VyIGxhbmd1YWdlLiBUaGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7X19tYWluLnB5X18mbHQ7L2NvZGUmZ3Q7IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC9wdWx1bWkvZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgaXMgd2hlcmUgd2VyZSBnb2luZyB0byBkZWZpbmUgb3VyIGluZnJhc3RydWN0dXJlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlIHN1cmUgdG8gaGF2ZSB5b3VyIFB1bHVtaSBBUEkgdG9rZW4gYXZhaWxhYmxlLiBZb3XigJlsbCBuZWVkIGl0IGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIFB1bHVtaSBleGFtcGxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7fi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGRpcmVjdG9yeS4gUnVuIHRoaXMgY29tbWFuZCB0byBjaGFuZ2UgaW50byB0aGUgUHVsdW1pIGV4YW1wbGUgZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2Qgfi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gzJmd0O0luc3RhbGxpbmcgZGVwZW5kaWVuY2llcyBmb3IgUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1NpbmNlIHdl4oCZcmUgZGVmaW5pbmcgb3VyIElhQyBzcGVjcyB1c2luZyBQeXRob24gd2XigJlsbCBuZWVkIHRvIGZpcnN0IGluc3RhbGwgdGhlIFB1bHVtaSBQeXRob24gU0RLIGRlcGVuZGVuY2llcy4gSW4gdGhlIHRlcm1pbmFsIHJ1biB0aGlzIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtwaXAgaW5zdGFsbCAtciAuLi9yZXF1aXJlbWVudHMudHh0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtQcmV2aWV3aW5nIHdpdGggUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1B1bHVtaSBoYXMgYSBkcnktcnVuIGNvbW1hbmQgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBwcmV2aWV3Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRpc3BsYXlzIGEgcHJldmlldyBvZiB0aGUgdXBkYXRlcyB0byBhbiBleGlzdGluZyBzdGFjayB3aG9zZSBzdGF0ZSBpcyByZXByZXNlbnRlZCBieSBhbiBleGlzdGluZyBzdGF0ZSBmaWxlLiBUaGUgbmV3IGRlc2lyZWQgc3RhdGUgaXMgY29tcHV0ZWQgYnkgcnVubmluZyBhIFB1bHVtaSBwcm9ncmFtLCBhbmQgZXh0cmFjdGluZyBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbnMgZnJvbSBpdHMgcmVzdWx0aW5nIG9iamVjdCBncmFwaC4gVGhlc2UgYWxsb2NhdGlvbnMgYXJlIHRoZW4gY29tcGFyZWQgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc3RhdGUgdG8gZGV0ZXJtaW5lIHdoYXQgb3BlcmF0aW9ucyBtdXN0IHRha2UgcGxhY2UgdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZCBzdGF0ZS4gTm8gY2hhbmdlcyB0byB0aGUgc3RhY2sgd2lsbCBhY3R1YWxseSB0YWtlIHBsYWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGlzIGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHByZXZpZXcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHJlc3VsdHMgcHJvbXB0aW5nIHlvdSBmb3IgdGhlIFB1bHVtaSBBUEkgdG9rZW4geW91IGNyZWF0ZWQgZWFybGllci4gUGFzdGUgdGhlIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLiBBZnRlciB5b3UgcGFzdGUgdGhlIHRva2VuIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O01hbmFnZSB5b3VyIFB1bHVtaSBzdGFja3MgYnkgbG9nZ2luZyBpbi4KUnVuIGBwdWx1bWkgbG9naW4gLS1oZWxwYCBmb3IgYWx0ZXJuYXRpdmUgbG9naW4gb3B0aW9ucy4KRW50ZXIgeW91ciBhY2Nlc3MgdG9rZW4gZnJvbSBodHRwczovL2FwcC5wdWx1bWkuY29tL2FjY291bnQvdG9rZW5zCiAgICBvciBoaXQgJmFtcDtsdDtFTlRFUiZhbXA7Z3Q7IHRvIGxvZyBpbiB1c2luZyB5b3VyIGJyb3dzZXIgICAgICAgICAgICAgICAgICAgOgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1doZW4gcGFzdGluZyB0aGUgQVBJIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLCBubyB2YWx1ZXMgd2lsbCBiZSBkaXNwbGF5ZWQuIEl0IHdpbGwgcmVtYWluIGludmlzaWJsZSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuJmx0Oy9pJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBtYXkgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGEgc3RhY2sgaW4gdGhlIHRlcm1pbmFsLiBJZiBzbywgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkZXYmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB0aGVuIGhpdCBlbnRlci4gWW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UHJldmlld2luZyB1cGRhdGUgKGRldik6CiAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICAgICBQbGFuCiArICAgcHVsdW1pOnB1bHVtaTpTdGFjayAgICAgIGNvbXB1dGUtZGV2ICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6TmV0d29yayAgIG5ldHdvcmsgICAgICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6SW5zdGFuY2UgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJTilIAgZ2NwOmNvbXB1dGU6RmlyZXdhbGwgIGZpcmV3YWxsICAgICAgICAgICAgICAgICAgICBjcmVhdGUKClJlc291cmNlczoKICAgICsgNSB0byBjcmVhdGUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUganVzdCBlbmFibGVkIGFjY2VzcyB0byB0aGUgUHVsdW1pIGJhY2tlbmQgY2xvdWQgd2hpY2gga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXRlIG9mIHlvdXIgaW5mcmFzdHJ1Y3R1cmVzLiBOb3cgeW914oCZcmUgcmVhZHkgdG8gcnVuIHNvbWUgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7UHVsdW1pIHVwJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1RvIGV4ZWN1dGUgdGhlIFB1bHVtaSBjb2RlLCB1c2UgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIHVwJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGNyZWF0ZXMgb3IgdXBkYXRlcyByZXNvdXJjZXMgaW4gYSBzdGFjay4gVGhlIG5ldyBkZXNpcmVkIGdvYWwgc3RhdGUgZm9yIHRoZSB0YXJnZXQgc3RhY2sgaXMgY29tcHV0ZWQgYnkgcnVubmluZyB0aGUgY3VycmVudCBQdWx1bWkgcHJvZ3JhbSBhbmQgb2JzZXJ2aW5nIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9ucyB0byBwcm9kdWNlIGEgcmVzb3VyY2UgZ3JhcGguIFRoaXMgZ29hbCBzdGF0ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIGV4aXN0aW5nIHN0YXRlIHRvIGRldGVybWluZSB3aGF0IGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQvb3IgZGVsZXRlIG9wZXJhdGlvbnMgbXVzdCB0YWtlIHBsYWNlIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgZ29hbCBzdGF0ZSBpbiB0aGUgbW9zdCBtaW5pbWFsbHkgZGlzcnVwdGl2ZSB3YXkuIEFmdGVyd2FyZCwgdGhpcyBjb21tYW5kIHJlY29yZHMgYSBmdWxsIHRyYW5zYWN0aW9uYWwgc25hcHNob3Qgb2YgdGhlIHN0YWNr4oCZcyBuZXcgc3RhdGUgc28gdGhhdCB0aGUgc3RhY2sgbWF5IGJlIHVwZGF0ZWQgaW5jcmVtZW50YWxseSBhZ2FpbiBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgdGVybWluYWwgcnVuOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHVwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1NlbGVjdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7eWVzJmx0Oy9jb2RlJmd0OyBvcHRpb24gYW5kIGhpdCBlbnRlci4gVGhlIFB1bHVtaSBhcHAgd2lsbCBleGVjdXRlLCBhbmQgc2hvcnRseSBhZnRlciB5b3XigJlsbCBoYXZlIGEgY29tcGxldGUgc2VydmVyIHJ1bm5pbmcgYW4gYXBwbGljYXRpb24gb24gR0NQLiBZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtVcGRhdGluZyAoZGV2KToKICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cwogKyAgIHB1bHVtaTpwdWx1bWk6U3RhY2sgICAgICBjb21wdXRlLWRldiAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUnOKUgCBnY3A6Y29tcHV0ZTpOZXR3b3JrICAgbmV0d29yayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGVkCiArICAg4pSc4pSAIGdjcDpjb21wdXRlOkZpcmV3YWxsICBmaXJld2FsbCAgICAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUlOKUgCBnY3A6Y29tcHV0ZTpJbnN0YW5jZSAgd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDEgIGNyZWF0ZWQKCk91dHB1dHM6CiAgICBleHRlcm5hbF9pcCAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICBpbnN0YW5jZV9tZXRhX2RhdGE6IHsKICAgICAgICBnY2UtY29udGFpbmVyLWRlY2xhcmF0aW9uOiAmcXVvdDtzcGVjOlxuICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDFcbiAgICAgIGltYWdlOiBhcml2M3JhL3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxOmxhdGVzdFxuICAgICAgc3RkaW46IGZhbHNlXG4gICAgICB0dHk6IGZhbHNlXG4gIHJlc3RhcnRQb2xpY3k6IEFsd2F5c1xuJnF1b3Q7CiAgICB9CiAgICBpbnN0YW5jZV9uYW1lICAgICA6ICZxdW90O3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxJnF1b3Q7CiAgICBpbnN0YW5jZV9uZXR3b3JrICA6IFsKICAgICAgICBbMF06IHsKICAgICAgICAgICAgYWNjZXNzQ29uZmlncyAgICA6IFsKICAgICAgICAgICAgICAgIFswXTogewogICAgICAgICAgICAgICAgICAgIG5hdElwICAgICAgICAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICAgICAgICAgICAgICAgICAgbmV0d29ya190aWVyICAgICAgIDogJnF1b3Q7UFJFTUlVTSZxdW90OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgOiAmcXVvdDtuaWMwJnF1b3Q7CiAgICAgICAgfQogICAgXQoKUmVzb3VyY2VzOgogICAgKyA1IGNyZWF0ZWQKCkR1cmF0aW9uOiA1OHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlc2UgcmVzdWx0cywgeW914oCZbGwgc2VlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXh0ZXJuYWxfaXAmbHQ7L2NvZGUmZ3Q7IGtleS4gSXTigJlzIHZhbHVlIGlzIHRoZSBJUCBBZGRyZXNzIHRvIHRoZSBwdWJsaWMgZmFjaW5nIGFwcGxpY2F0aW9uIGV4cG9zZWQgb24gcG9ydCA1MDAwLiBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIFRlcnJhZm9ybSBleGFtcGxlLCB5b3UgY2FuIGFjY2VzcyB0aGUgYXBwbGljYXRpb24gaW4gYSBicm93c2VyLiBSZW1lbWJlciB0byBhbGxvdyBmb3IgYSBmZXcgbWludXRlcyBzbyB0aGUgYmFja2VuZCBzeXN0ZW0gY2FuIGJyaW5nIGV2ZXJ5dGhpbmcgb25saW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQdWx1bWkgZGVzdHJveSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtQdWx1bWkgaGFzIGEgY29tbWFuZCB0byB0ZXJtaW5hdGUgYWxsIG9mIHRoZSBjbG91ZCByZXNvdXJjZXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBkZXN0cm95Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRlbGV0ZXMgYW4gZW50aXJlIGV4aXN0aW5nIHN0YWNrIGJ5IG5hbWUuIFRoZSBjdXJyZW50IHN0YXRlIGlzIGxvYWRlZCBmcm9tIHRoZSBhc3NvY2lhdGVkIHN0YXRlIGZpbGUgaW4gdGhlIHdvcmtzcGFjZS4gQWZ0ZXIgcnVubmluZyB0byBjb21wbGV0aW9uLCBhbGwgb2YgdGhpcyBzdGFja+KAmXMgcmVzb3VyY2VzIGFuZCBhc3NvY2lhdGVkIHN0YXRlIHdpbGwgYmUgZ29uZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtSdW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGluIHRoZSB0ZXJtaW5hbCBhbmQgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5ZXMmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB3aGVuIHByb21wdGVkIHRvICZsdDtzdHJvbmcmZ3Q7cGVybWFuZW50bHkmbHQ7L3N0cm9uZyZndDsgZGVzdHJveSB0aGUgR0NQIHJlc291cmNlcyBjcmVhdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O0NvbmdyYXR1bGF0aW9ucyEgWW914oCZdmUganVzdCBsZXZlbGVkIHVwIGFuZCBub3cgaGF2ZSBleHBlcmllbmNlIHByb3Zpc2lvbmluZyBhbmQgZGVwbG95aW5nIGFwcGxpY2F0aW9ucyB0byBHQ1AgdXNpbmcgdGhlIG1vZGVybiBJYUMgdG9vbHMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O1RlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4gVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2lsbCBoZWxwIHlvdSBleHBhbmQgeW91ciBrbm93bGVkZ2UgZnJvbSBoZXJlOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9jbGktaW5kZXguaHRtbCZxdW90OyZndDtUZXJyYWZvcm0gR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9kb2NzL2dldC1zdGFydGVkLyZxdW90OyZndDtQdWx1bWkgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS9vcmIvcHVsdW1pL3B1bHVtaSZxdW90OyZndDtQdWx1bWkgb3JiIGZvciBDaXJjbGVDSSZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyZxdW90OyZndDtEb2NrZXIgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm0vY29tbXVuaXR5L2Jsb2IvbWFzdGVyL3R1dG9yaWFscy9nZXR0aW5nLXN0YXJ0ZWQtb24tZ2NwLXdpdGgtdGVycmFmb3JtL2luZGV4Lm1kI2dldHRpbmctcHJvamVjdC1jcmVkZW50aWFscyZxdW90OyZndDtHb29nbGUgQ2xvdWQgUGxhdGZvcm0mbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogICAgICAKICAgICAgPGl0ZW0+CiAgICAgICAgPHRpdGxlPkEgbG9vayBhdCBDaXJjbGVDSeKAmXMgaW5kdXN0cnktbGVhZGluZyBzdXBwb3J0IGZvciB0cmFuc2l0aW9uLXJlbGF0ZWQgbWVkaWNhbCBsZWF2ZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hLWxvb2stYXQtY2lyY2xlY2ktcy1pbmR1c3RyeS1sZWFkaW5nLXN1cHBvcnQtZm9yLXRyYW5zaXRpb24tcmVsYXRlZC1tZWRpY2FsLWxlYXZlLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5XZWQsIDEzIE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2EtbG9vay1hdC1jaXJjbGVjaS1zLWluZHVzdHJ5LWxlYWRpbmctc3VwcG9ydC1mb3ItdHJhbnNpdGlvbi1yZWxhdGVkLW1lZGljYWwtbGVhdmUvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RWxpemFiZXRoIEJlbGw8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7T25lIG9mIHRoZSBncmVhdCB0aGluZ3MgYWJvdXQgd29ya2luZyBhdCBDaXJjbGVDSSBpcyB0aGF0IHRoZSBjb21wYW55IGJlbGlldmVzIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGJlIGFibGUgdG8gYmUgdGhlaXIgd2hvbGUgc2VsZiBhdCB3b3JrLiBJbmNsdXNpdml0eSwgZGVtb25zdHJhdGluZyB0cnVzdCBhbmQgcmVzcGVjdCwgYW5kIG1ha2luZyBzdXJlIGV2ZXJ5b25lIGhhcyB0aGUgdG9vbHMgYW5kIHN1cHBvcnQgdGhleSBuZWVkIGFyZSBhbGwgYnVyaWVkIGRlZXAgaW4gdGhlIGN1bHR1cmUgaGVyZSDigJMgaXQgaXMgYSBiaWcgcGFydCBvZiBob3cgd2UgZGVsaXZlciB0aGUgYmVzdCB2YWx1ZSBmb3Igb3VyIGN1c3RvbWVycy4gV2l0aCB0aGF0IGluIG1pbmQsIHRoZSBjb21wYW55IHJlY2VudGx5IHJvbGxlZCBvdXQgYSBuZXcgaGVhbHRoY2FyZSBwb2xpY3kgZm9yIG91ciB0cmFuc2dlbmRlciBjby13b3JrZXJzLiBJbiBhIGZpcnN0IGZvciBjb21wYW5pZXMgaW4gdGhlIENJL0NEIHNwYWNlLCBDaXJjbGVDSSBub3cgb2ZmZXJzIGZ1bGx5LWNvbXBlbnNhdGVkIHBhaWQgbGVhdmUgZm9yIGVtcGxveWVlcyByZWNvdmVyaW5nIGZyb20gdHJhbnNpdGlvbi1yZWxhdGVkIG1lZGljYWwgcHJvY2VkdXJlcy4gVGhpcyBwb2xpY3kgaXMgYW4gZXh0cmVtZWx5IGltcG9ydGFudCBhZGRpdGlvbiB0byBDaXJjbGVDSeKAmXMgYmVuZWZpdHMgcGFja2FnZSBhbmQgYW5vdGhlciBleGFtcGxlIG9mIHRoZSBjb21wYW554oCZcyBkZWRpY2F0aW9uIHRvIHRoZSB3ZWxsLWJlaW5nIG9mIGFsbCBlbXBsb3llZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VHJhbnNpdGlvbiBpcyBhbiBpbW1lbnNlbHkgc3RyZXNzZnVsIHByb2Nlc3MsIGFuZCB0aGUgbWVkaWNhbCBwcm9jZWR1cmVzIHJlcXVpcmVkIHRvIHRyZWF0IHRoZSBkeXNwaG9yaWEgZXhwZXJpZW5jZWQgYnkgc29tZSB0cmFuc2dlbmRlciBwZW9wbGUgb2Z0ZW4gbmVlZCBhIHZlcnkgY2FyZWZ1bCBhcHByb2FjaCB0byByZWNvdmVyeS4mbHQ7L3AmZ3Q7CgombHQ7YmxvY2txdW90ZSZndDsKICAmbHQ7cCZndDtUaGUgZ29hbCBvZiB0aGUgcG9saWN5IGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRyYW5zZ2VuZGVyIGVtcGxveWVlcyBmZWVsIHN1cHBvcnRlZCBkdXJpbmcgdGhpcyBkaWZmaWN1bHQgdGltZSwgYW5kIGJ5IGVuc3VyaW5nIHRoYXQgdHJhbnNnZW5kZXIgZW1wbG95ZWVzIGhhdmUgYWNjZXNzIHRvIGFwcHJvcHJpYXRlbHkgY29tcGVuc2F0ZWQgbWVkaWNhbCBsZWF2ZSwgdGhlIGNvbXBhbnkgY2FuIHJlbW92ZSBtYWpvciBzb3VyY2VzIG9mIHVubmVjZXNzYXJ5IHN0cmVzcy4gVGhpcyB3YXksIHdlIGNhbiByZXR1cm4gdG8gd29yayBoYXBwaWVyLCBoZWFsdGhpZXIsIGFuZCBiZXR0ZXIgYWJsZSB0byBkbyBvdXIgYmVzdCBmb3Igb3VyIGN1c3RvbWVycyBhbmQgb3VyIGNvbGxlYWd1ZXMuJmx0Oy9wJmd0OwombHQ7L2Jsb2NrcXVvdGUmZ3Q7CgombHQ7aDImZ3Q7SG93IHRoaXMgcG9saWN5IGNhbWUgdG9nZXRoZXImbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgcHVzaCBmb3IgdGhlIGZvcm1hbGl6YXRpb24gb2YgdGhlc2UgYmVuZWZpdHMgZ3JldyBvdXQgb2YgdGhlIGVmZm9ydHMgb2YgbWFueSBpbmRpdmlkdWFscy4gVG9nZXRoZXIsIHRoZSB0cmFucyBlbXBsb3llZXMgYXQgQ2lyY2xlQ0kgZGlzY3Vzc2VkIHRoZSBpc3N1ZSBhbW9uZ3N0IG91cnNlbHZlcywgb3VyIG1hbmFnZXJzLCBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIHdobyBzdXBwb3J0ZWQgdXMgaW4gYnJpbmdpbmcgdGhlIHRvcGljIHRvIG91ciBleGVjdXRpdmUgdGVhbS4gQnkgYnVpbGRpbmcgY29uc2Vuc3VzLCBib3RoIHdpdGhpbiB0aGUgdHJhbnMgcG9wdWxhdGlvbiBhdCB0aGUgY29tcGFueSBhbmQgb3VyIGNpc2dlbmRlciBjb2xsZWFndWVzLCB3ZSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IGFkdm9jYXRlIGZvciBhIGZvcm1hbGl6YXRpb24gb2YsIGFuZCBhIGNvbW1pdG1lbnQgdG8sIHRoaXMgaW5kdXN0cnktbGVhZGluZyB0cmFucyBoZWFsdGhjYXJlIGJlbmVmaXQuIFF1ZWVyU3BoZXJlLCB0aGUgRW1wbG95ZWUgUmVzb3VyY2UgR3JvdXAgaGVyZSBhdCBDaXJjbGVDSSBmb3IgTEdCVFFJQSsgZW1wbG95ZWVzLCBoZWxwZWQgY29vcmRpbmF0ZSB0aGUgZWZmb3J0IHRvIGFkdm9jYXRlLCBhbmQgdGhlIHJlc3VsdCB3YXMgYSBwb2xpY3kgdGhhdCBoZWxwcyBlbnN1cmUgdHJhbnMgZW1wbG95ZWVzIGdldCB0aGUgc3VwcG9ydCB3ZSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uZSBvZiB0aGUgYmVzdCB0aGluZ3MgZm9yIG1lIGFib3V0IHdvcmtpbmcgYXQgQ2lyY2xlQ0kgaXMgaG93IGVtcG93ZXJlZCBJIGZlZWwgdG8gY2FsbCBhdHRlbnRpb24gdG8gaXNzdWVzIG9yIHByYWN0aWNlcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCBhbmQgYnJpbmcgcGVvcGxlIHRvZ2V0aGVyIHRvIHdvcmsgb24gdGhlbSwgdG8gdGhlIGJlbmVmaXQgb2YgYm90aCB0aGUgY29tcGFueSBhcyBhIHdob2xlIGFuZCB1bmRlcnJlcHJlc2VudGVkIG9yIG1hcmdpbmFsaXplZCBlbXBsb3llZXMuIFRyYW5zIHBlb3BsZSBmYWNlIHN5c3RlbWljIGJpYXM6IHRoZXJlIGFyZSBubyBmZWRlcmFsLWxldmVsIHByb3RlY3Rpb25zIGZyb20gZGlzY3JpbWluYXRpb24gb24gdGhlIGJhc2lzIG9mIGdlbmRlciBpZGVudGl0eSBpbiB0aGUgVW5pdGVkIFN0YXRlcywgYW5kIG9mIHRoZSB0cmFucyBwb3B1bGF0aW9uIHN1cnZleWVkIGJ5IHRoZSBOYXRpb25hbCBDZW50ZXIgZm9yIFRyYW5zZ2VuZGVyIEVxdWFsaXR5IGluIDIwMTUsIDgwJSBvZiB0aG9zZSB3aG8gd2VyZSBlbXBsb3llZCByZXBvcnRlZCBleHBlcmllbmNpbmcgaGFyYXNzbWVudCwgbWlzdHJlYXRtZW50LCBvciBoYWQgdG8gdGFrZSBzdGVwcyB0byBhdm9pZCB0aG9zZSBob3N0aWxlIHdvcmtwbGFjZSBiZWhhdmlvcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SSBrbm93IGZpcnN0aGFuZCBob3cgZGlmZmljdWx0IGJlaW5nIG91dCBhdCB3b3JrIGNhbiBiZS4gQXQgYSBwcmV2aW91cyBlbXBsb3llciBlYXJseSBpbiBteSB0cmFuc2l0aW9uLCBJIGZlbHQgYWxpZW5hdGVkIGFuZCBkaXNsaWtlZCBieSBjb2xsZWFndWVzIHdobyBoYWQgcHJldmlvdXNseSBiZWVuIGZyaWVuZGx5IGJlZm9yZSB0aGV5IGtuZXcgSSB3YXMgdHJhbnNnZW5kZXIuIEkgaGF2ZSBoYWQgdG8gbWluaW1pemUgdGhlIGZhY3QgdGhhdCBJ4oCZbSB0cmFucywgdG9sZXJhdGUgYWN0aXZlIGhvc3RpbGl0eSBmcm9tIGNvd29ya2Vycywgb3IgcHJldGVuZCB0aGF0IEkgd2FzIGNpc2dlbmRlciwgaW4gb3JkZXIgdG8gcHJvdGVjdCBteSBqb2IuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgQ2lyY2xlQ0ksIEkgaGF2ZSBmZWx0IHN1cHBvcnRlZCwgcmVzcGVjdGVkLCBhbmQgYWJsZSB0byBjb25maWRlbnRseSBiZSBteXNlbGYuIEkgZmVlbCBleGNlcHRpb25hbGx5IGZvcnR1bmF0ZSB0byBoYXZlIGEgd29uZGVyZnVsIGdyb3VwIG9mIHRyYW5zZ2VuZGVyIGNvbGxlYWd1ZXMgYW5kIGZyaWVuZHMgKHdlIG1ha2UgdXAgNyUgb2YgdGhlIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0ksIGFuZCAzJSBvZiB0aGUgb3JnIGluIHRvdGFsLCBjb21wYXJlZCB0byAwLjYlIG9mIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24pLCBhbmQgdG8gd29yayBzb21ld2hlcmUgd2hlcmUgb3VyIHZpZXdzIGFuZCBleHBlcmllbmNlcyBhcmUgdmFsdWVkIGF0IHRoZSBoaWdoZXN0IGxldmVscyBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0lmIHlvdSBsaWtlIHRoZSBzb3VuZCBvZiB3b3JraW5nIHNvbWV3aGVyZSB3aXRoIGEgcmVtb3RlLWZpcnN0IGN1bHR1cmUgYW5kIGNvbGxhYm9yYXRpbmcgb24gaW50ZXJlc3RpbmcgcHJvYmxlbXMgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIHRyYW5zIGZvbHggYW5kIGFsbGllcywgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9jYXJlZXJzLyZxdW90OyZndDtjaGVjayBvdXQgb3VyIG9wZW5pbmdzIGhlcmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIEdhdHNieSBhcHBzIHRvIEhlcm9rdTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtZ2F0c2J5LWFwcHMtdG8taGVyb2t1LzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDExIE1heSAyMDIwIDA5OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1nYXRzYnktYXBwcy10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9qYW1zdGFjay5vcmcvJnF1b3Q7Jmd0O0pBTVN0YWNrJmx0Oy9hJmd0OyBpcyBxdWlja2x5IGJlY29taW5nIGEgYmlnIGRlYWwgaW4gdGhlIHdvcmxkIG9mIHdlYiBkZXZlbG9wbWVudC4gSkFNU3RhY2ssIHdoaWNoIHN0YW5kcyBmb3IgSmF2YXNjcmlwdCwgQVBJcywgYW5kIEhUTUwgbWFya3VwLCBpcyBhIG1vZGVybiBhcmNoaXRlY3R1cmUgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMgYW5kIG9uZSBvZiBpdHMgbWFqb3IgZmVhdHVyZXMgaXMgdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBhIGRhdGFiYXNlIGFuZCBhIHdlYiBzZXJ2ZXIgaXMgb3B0aW9uYWwuIFRoZSBKQU1TdGFjayBhcmNoaXRlY3R1cmUgaXMgYWltZWQgYXQgZGVjb3VwbGluZyB0aGUgZnJvbnRlbmQgYW5kIHRoZSBiYWNrZW5kIGJ5IGdlbmVyYXRpbmcgYSBmcm9udGVuZCBtYWRlIG9mIEhUTUwsIENTUywgYW5kIEphdmFzY3JpcHQgYW5kIGEgYmFja2VuZCB0aGF0IGlzIHNpbXBseSBhIGNvbnRlbnQgQVBJIHJldHVybmluZyBKU09OIG9yIFhNTC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmUgb2YgdGhlIGxlYWRpbmcgSkFNU3RhY2sgcGxhdGZvcm1zIHRvZGF5IGlzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnLyZxdW90OyZndDtHYXRzYnkuanMmbHQ7L2EmZ3Q7LiBHYXRzYnkuanMgaXMgYSBmcmVlIGFuZCBvcGVuLXNvdXJjZSBmcmFtZXdvcmsgYmFzZWQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3JlYWN0anMub3JnLyZxdW90OyZndDtSZWFjdC5qcyZsdDsvYSZndDsgdGhhdCBoZWxwcyBkZXZlbG9wZXJzIGJ1aWxkIGhpZ2gtc3BlZWQgd2ViIGFwcGxpY2F0aW9ucy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHR1dG9yaWFsLCB3ZSB3aWxsIGJlIGRlbW9uc3RyYXRpbmcgaG93IHRvIGRlcGxveSBhIEdhdHNieS5qcyBzaXRlIHRvIHRoZSBwb3B1bGFyIEhlcm9rdSBwbGF0Zm9ybSBieSBidWlsZGluZyBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmUgZm9yIGl0cyBkZXBsb3ltZW50IHVzaW5nIENpcmNsZUNJLiZsdDsvcCZndDsKCiZsdDtoMiZndDtQcmVyZXF1aXNpdGVzJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIG9yZGVyIHRvIGZvbGxvdyBhbG9uZyB3aXRoIHRoaXMgcG9zdCwgeW91IHdpbGwgbmVlZCBhIGZldyB0aGluZ3MgaW4gcGxhY2U6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7ICZhbXA7Z3Q7PSAxMC4xNiBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZSAtdiZsdDsvY29kZSZndDsgb24geW91ciB0ZXJtaW5hbCB0byBwcmludCBvdXQgeW91ciB2ZXJzaW9uIG9mIE5vZGVKUyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7R2l0Jmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2l0Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsLiBUaGlzIHNob3VsZCBwcmludCBvdXQgYXZhaWxhYmxlIGdpdCBjb21tYW5kcykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuaGVyb2t1LmNvbS8mcXVvdDsmZ3Q7SGVyb2t1Jmx0Oy9hJmd0OyBhY2NvdW50Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O0dpdEh1YiZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7V2l0aCB0aGVzZSwgeW91IGFyZSByZWFkeSB0byBmb2xsb3cgYWxvbmcuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NyZWF0aW5nIGEgR2F0c2J5LmpzIHByb2plY3QmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7VG8gYmVnaW4sIHdlIG5lZWQgdG8gY3JlYXRlIG91ciBHYXRzYnkuanMgcHJvamVjdC4gSW4gYW4gYXBwcm9wcmlhdGUgbG9jYXRpb24gd2l0aGluIHlvdXIgc3lzdGVtLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGdhdHNieSBuZXcgZ2F0c2J5LWhlcm9rdS1kZXBsb3kKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBwYXJ0IG9mIHRoaXMgY29tbWFuZCBpcyB0aGUgZm9sZGVyIG5hbWUgZm9yIG15IHByb2plY3QgdG8gYmUgc2NhZmZvbGRlZCBpbi4gWW91IGNhbiB1c2UgYW55IHByZWZlcnJlZCBuYW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCB3aWxsIGltbWVkaWF0ZWx5IGJlZ2luIHNjYWZmb2xkaW5nIGEgbmV3IEdhdHNieS5qcyBwcm9qZWN0LiBZb3UgbWlnaHQgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGVpdGhlciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5YXJuJmx0Oy9jb2RlJmd0OyBvciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7IGFzIHlvdXIgcGFja2FnZSBtYW5hZ2VyLCBmb3IgdGhpcyB0dXRvcmlhbCwgZ28gd2l0aCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNjYWZmb2xkaW5nIHByb2Nlc3MgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIGdhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OykgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gYm9vdCB1cCBhIHNlcnZlciB0byBzZXJ2ZSB0aGUgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBydW4gZGV2ZWxvcAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgc2VydmUgdGhlIGFwcGxpY2F0aW9uIGF0IHRoZSBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8mbHQ7L2NvZGUmZ3Q7IGFuZCBkaXNwbGF5IHRoZSBwYWdlIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MS5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIGEgZnVuY3Rpb25hbCBHYXRzYnkuanMgc2l0ZSB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7U2V0dGluZyB1cCBhIEhlcm9rdSBBcHAgZm9yIEdhdHNieSZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBzZXQgdXAgYSBIZXJva3UgYXBwIGZvciBvdXIgR2F0c2J5IGFwcGxpY2F0aW9uLCB3ZSBuZWVkIHRvIGxvZyBpbnRvIEhlcm9rdSBhbmQgY3JlYXRlIGEgbmV3IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5Mi5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdlIG5lZWQgdG8gZ2V0IHRoZSBuYW1lIG9mIG91ciBhcHBsaWNhdGlvbiAodGhpcyB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBmb3IgdGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgYWJvdmUpIGFuZCB0aGUgQVBJIGtleSBmb3Igb3VyIEhlcm9rdSBhY2NvdW50LiBUaGUgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIEhlcm9rdSAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXZSB3aWxsIG5lZWQgdGhlc2UgdHdvIHZhbHVlcyAodGhlIGFwcCBuYW1lIGFuZCBBUEkga2V5KSBsYXRlciBvbiB0byBjcmVhdGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9uIG91ciBDaXJjbGVDSSBwcm9qZWN0IGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiBvdXIgSGVyb2t1IGFjY291bnQgaXMgdG8gaW5zdGFsbCBzb21lIG5lY2Vzc2FyeSBidWlsZHBhY2tzLiBCdWlsZHBhY2tzIGFyZSBzY3JpcHRzIHRoYXQgcnVuIHdoZW4geW91ciBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZC4gV2Ugd2lsbCBuZWVkIHR3byBidWlsZCBwYWNrcyBmb3IgdGhpcyBleGVyY2lzZTombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0O2hlcm9rdS9ub2RlanM6IFJlcXVpcmVkIGZvciBhbGwgTm9kZS5qcyBhcHBsaWNhdGlvbnMmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtoZXJva3UvaGVyb2t1LWJ1aWxkcGFjay1zdGF0aWM6IFRoZSBIZXJva3UgQnVpbGRwYWNrIFN0YXRpYyBwYWNrYWdlIChiZWNhdXNlIEdhdHNieS5qc+KAmXMgYnVpbGQgaXMgbWFkZSB1cCBvZiBzdGF0aWMgZmlsZXMsIHRoaXMgd2lsbCBoZWxwIHVzIHNlcnZlIHRoZSBzdGF0aWMgZmlsZXMgb24gdGhlIEhlcm9rdSBwbGF0Zm9ybSkmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7R28gdG8geW91ciBIZXJva3UgYXBwbGljYXRpb27igJlzICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgcGFnZSBhbmQgc2Nyb2xsIGRvd24gdG8gJmx0O3N0cm9uZyZndDtCdWlsZHBhY2tzJmx0Oy9zdHJvbmcmZ3Q7ICh5b3UgbWlnaHQgYWxyZWFkeSBzZWUgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgYnVpbGRwYWNrIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQpLiBDbGljayAmbHQ7c3Ryb25nJmd0O0FkZCBidWlsZHBhY2smbHQ7L3N0cm9uZyZndDsgYW5kIHlvdSB3aWxsIHNlZSBhIGRpYWxvZyBwb3AgdXAgc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnkzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rm9yIGVhY2ggYnVpbGRwYWNrICgmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3Uvbm9kZWpzJmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L2hlcm9rdS1idWlsZHBhY2stc3RhdGljJmx0Oy9jb2RlJmd0OykgZW50ZXIgdGhlIGlkZW50aWZpZXIgaW50byB0aGUgdGV4dCBmaWVsZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTYXZlIENoYW5nZXMmbHQ7L3N0cm9uZyZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtOb3RlOiZsdDsvc3Ryb25nJmd0OyAmbHQ7aSZndDtJZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCwgb25seSBhZGQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2hlcm9rdS9oZXJva3UtYnVpbGRwYWNrLXN0YXRpYyZsdDsvY29kZSZndDsgYnVpbGQgcGFjay4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgZG9pbmcgdGhpcyBmb3IgYm90aCBidWlsZHBhY2tzLCB5b3Ugd2lsbCBzZWUgdGhlIHR3byBidWlsZCBwYWNrcyBub3cgbGlzdGVkIGluICZsdDtzdHJvbmcmZ3Q7QnVpbGRwYWNrcyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGF0IGNvbXBsZXRlcyB0aGUgc2V0IHVwIHJlcXVpcmVkIGZvciBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1NldHRpbmcgdXAgdGhlIEdhdHNieS5qcyBwcm9qZWN0IG9uIENpcmNsZUNJJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBuZXh0IHRhc2sgaXMgdG8gZ2V0IG91ciBHYXRzYnkuanMgcHJvamVjdCBzZXQgdXAgb24gQ2lyY2xlQ0kuIFdlIG5lZWQgdG8gcHVzaCBvdXIgY29kZSB0byBhIEdpdEh1YiByZXBvc2l0b3J5IG9uIHRoZSBhY2NvdW50IHlvdSBoYXZlIGxpbmtlZCB0byB5b3VyIENpcmNsZUNJIGFjY291bnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgZ28gdG8gdGhlICZsdDtzdHJvbmcmZ3Q7QWRkIFByb2plY3RzJmx0Oy9zdHJvbmcmZ3Q7IHBhZ2UgdG8gYWRkIHRoZSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk0LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0OyB0byBiZWdpbiBzZXR0aW5nIHVwIHRoZSBwcm9qZWN0LiBUaGlzIHdpbGwgbG9hZCB0aGUgbmV4dCBzY3JlZW4uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk1LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhlIHNldHVwIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsuIEJlZm9yZSB0aGUgYnVpbGQgc3RhcnRzLCB5b3Ugd2lsbCBnZXQgYSBwcm9tcHQgdG8gZWl0aGVyIGRvd25sb2FkIGFuZCB1c2UgdGhlIHByb3ZpZGVkIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgaGF2ZSBpdCBhZGRlZCBvbiBhIHNlcGFyYXRlIGJyYW5jaCBvciBzZXQgb25lIHVwIG1hbnVhbGx5LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk2LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U2VsZWN0ICZsdDtzdHJvbmcmZ3Q7QWRkIE1hbnVhbGx5Jmx0Oy9zdHJvbmcmZ3Q7IHRvIHByb2NlZWQuIFRoaXMgd2lsbCBwcm9tcHQgYW5vdGhlciBkaWFsb2cgdGhhdCBjaGVja3MgdG8gY29uZmlybSB0aGF0IHlvdSBoYXZlIGEgY29uZmlndXJhdGlvbiBmaWxlIHNldCB1cCB0byBiZWdpbiBidWlsZGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTcucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGNvbXBsZXRlIHRoZSBzZXR1cC4gVGhlIGJ1aWxkIHdpbGwgc3VyZWx5IGZhaWwgYmVjYXVzZSB3ZSBoYXZlIG5vdCBzZXQgdXAgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB5ZXQsIHRoaXMgd2Ugd2lsbCBkbyBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiB0aGUgQ2lyY2xlQ0kgY29uc29sZSBpcyB0byBzZXQgdXAgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZW52LXZhcnMvJnF1b3Q7Jmd0O2Vudmlyb25tZW50IHZhcmlhYmxlcyZsdDsvYSZndDsgZm9yIHRoZSBwcm9qZWN0IHdlIGp1c3QgYWRkZWQuIFRoaXMgd2lsbCBlbmFibGUgaXQgdG8gaGF2ZSBhdXRoZW50aWNhdGVkIGFjY2VzcyB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIGZvciBkZXBsb3ltZW50cy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHbyB0byB5b3VyIHByb2plY3TigJlzIHNldHRpbmdzIGJ5IGNsaWNraW5nICZsdDtzdHJvbmcmZ3Q7UHJvamVjdCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgJmx0O3N0cm9uZyZndDtQaXBlbGluZXMmbHQ7L3N0cm9uZyZndDsgcGFnZSAobWFrZSBzdXJlIHlvdXIgcHJvamVjdCBpcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2plY3QpLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5OC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBuYXZpZ2F0ZSB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBwYWdlLiBPbiB0aGlzIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7RW52aXJvbm1lbnQgVmFyaWFibGVzJmx0Oy9zdHJvbmcmZ3Q7IG9uIHRoZSBzaWRlIG1lbnUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk5LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFnZSwgY2xpY2sgJmx0O3N0cm9uZyZndDtBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUgYnV0dG9uJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTAucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZGQgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Jmx0Oy9wJmd0OwombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDs6IFRoaXMgaXMgdGhlIG5hbWUgb2YgeW91ciBIZXJva3UgYXBwbGljYXRpb24gKGluIHRoaXMgY2FzZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnYXRzYnktaGVyb2t1LWRlcGxveSZsdDsvY29kZSZndDspJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7SEVST0tVX0FQSV9LRVkmbHQ7L2NvZGUmZ3Q7OiBZb3VyIEhlcm9rdSBhY2NvdW50IEFQSSBrZXkgZm91bmQgdW5kZXIgdGhlICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCZsdDsvc3Ryb25nJmd0OyB0YWIgb2YgeW91ciBIZXJva3UgYWNjb3VudCBpbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50IFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O09uY2UgYWRkZWQsIHlvdSB3aWxsIGhhdmUgZXZlcnl0aGluZyBzZXQgdXAgb24geW91ciBDaXJjbGVDSSBjb25zb2xlIGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRoZSBHYXRic3kuanMgc2l0ZSB1c2luZyBvcmJzJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy8mcXVvdDsmZ3Q7T3JicyZsdDsvYSZndDsgYXJlIHJldXNhYmxlIHBhY2thZ2VzIG9mIFlBTUwgY29uZmlndXJhdGlvbiB0aGF0IGNvbmRlbnNlIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoZXkgZW5hYmxlIGRldmVsb3BlcnMgdG8gZWFzaWx5IHVzZSBwb3dlcmZ1bCBwaXBlbGluZSBmdW5jdGlvbmFsaXRpZXMgd2l0aCBhbGwgdGhlIGJvaWxlcnBsYXRlIGFic3RyYWN0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBleGVyY2lzZSwgd2Ugd2lsbCBiZSB1c2luZyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7b3JiIGZvciBIZXJva3UmbHQ7L2EmZ3Q7IHRvIGNvbmZpZ3VyZSBvdXIgcGlwZWxpbmUgdG8gZGVwbG95IG91ciBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0IGJlZm9yZSB0aGF0LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGZpbGUgdG8gaW5zdHJ1Y3Qgb3VyIEhlcm9rdSBCdWlsZHBhY2sgU3RhdGljIHBhY2thZ2Ugb24gaG93IHRvIGRlcGxveSBhbmQgc2VydmUgb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgbmV3IGZpbGUgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3RhdGljLmpzb24mbHQ7L2NvZGUmZ3Q7IGFuZCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGUgaW50byBpdDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3sKICAmcXVvdDtyb290JnF1b3Q7OiAmcXVvdDtwdWJsaWMvJnF1b3Q7LAogICZxdW90O2hlYWRlcnMmcXVvdDs6IHsKICAgICZxdW90Oy8qKiZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJnF1b3Q7CiAgICB9LAogICAgJnF1b3Q7LyoqLmNzcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy8qKi5qcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy9zdGF0aWMvKiomcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0sCiAgICAmcXVvdDsvaWNvbnMvKi5wbmcmcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0KICB9LAogICZxdW90O2h0dHBzX29ubHkmcXVvdDs6IHRydWUsCiAgJnF1b3Q7ZXJyb3JfcGFnZSZxdW90OzogJnF1b3Q7NDA0Lmh0bWwmcXVvdDsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgbW9zdCBpbXBvcnRhbnQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaGVyZSBpcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkuIFdoZW4gR2F0c2J5LmpzIHJ1bnMgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2J1aWxkJmx0Oy9jb2RlJmd0OyBzY3JpcHQgKHRoaXMgaXMgYWxzbyB0aGUgc2NyaXB0IHVzZWQgYnkgSGVyb2t1IHRvIHJ1biB0aGUgYnVpbGQgYmVmb3JlIGRlcGxveW1lbnQpLCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1YmxpYyZsdDsvY29kZSZndDsgZm9sZGVyIGlzIGdlbmVyYXRlZCBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBjb250YWluaW5nIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb2R1Y3Rpb24gdmVyc2lvbiBpcyB3aGF0IHRoZSBob3N0IHNlcnZlcyB0byB1c2Vycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaHVzLCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkgaXMgdXNlZCB0byBwb2ludCB0byB0aGlzIGZvbGRlciBzbyB0aGF0IHRoZSBob3N0IHNlcnZlcyB0aGUgYXBwcm9wcmlhdGUgY29kZS4gT3RoZXIgcGFyYW1ldGVycyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gYXJlIHNpbXBseSBiZXN0LXByYWN0aWNlIGNvbmZpZ3VyYXRpb25zIGZvciBHYXRzYnkuanMgc2l0ZXMuIEZvciBleGFtcGxlLCBjYWNoaW5nIGd1aWRlbGluZXMgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvY2FjaGluZy8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7R29vZCEgTm93IHdlIGNhbiB3cml0ZSBvdXIgZGVwbG95bWVudCBzY3JpcHQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgdGhlIHJvb3Qgb2YgeW91ciBHYXRzYnkuanMgcHJvamVjdCwgY3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgYW5kIGEgZmlsZSB3aXRoaW4gaXQgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0Oy4gSW5zaWRlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGU6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt2ZXJzaW9uOiAyLjEKb3JiczoKICBoZXJva3U6IGNpcmNsZWNpL2hlcm9rdUAwLjAuMTAKd29ya2Zsb3dzOgogIGhlcm9rdV9kZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGhlcm9rdS9kZXBsb3ktdmlhLWdpdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGF04oCZcyBpdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgY29uZmlndXJhdGlvbiBhYm92ZSwgd2UgcHVsbCBpbiB0aGUgSGVyb2t1IG9yYiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaXJjbGVjaS9oZXJva3VAMC4wLjEwJmx0Oy9jb2RlJmd0OyB3aGljaCBhdXRvbWF0aWNhbGx5IGdpdmVzIHVzIGFjY2VzcyB0byBhIHBvd2VyZnVsIHNldCBvZiBIZXJva3Ugam9icyBhbmQgY29tbWFuZHMuIE9uZSBvZiB0aG9zZSBqb2JzIGlzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3UvZGVwbG95LXZpYS1naXQmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGRlcGxveXMgeW91ciBhcHBsaWNhdGlvbiBzdHJhaWdodCBmcm9tIHlvdXIgR2l0SHViIHJlcG8gdG8geW91ciBIZXJva3UgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIGpvYiBhbHJlYWR5IHRha2VzIGNhcmUgb2YgaW5zdGFsbGluZyB0aGUgSGVyb2t1IENMSSwgaW5zdGFsbGluZyBwcm9qZWN0IGRlcGVuZGVuY2llcywgcnVubmluZyB0aGUgYnVpbGQgc2NyaXB0LCBhbmQgZGVwbG95aW5nIHRoZSBhcHBsaWNhdGlvbi4gSXQgYWxzbyBwaWNrcyB1cCBvdXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGggZGVwbG95bWVudCB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgdGhlIG1vbWVudCBvZiB0cnV0aCAoZHJ1bSByb2xsKS4gTGV04oCZcyBjb21taXQgYWxsIHRoZSBjaGFuZ2VzIHdlIGhhdmUgbWFkZSB0byBvdXIgR2F0c2J5LmpzIHByb2plY3QgYW5kIHB1c2ggdG8gb3VyIHJlcG8gdG8gdHJpZ2dlciB0aGUgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTEucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBzZWUgdGhlIGJlaGluZC10aGUtc2NlbmVzIHpjdGlvbiBvZiB0aGUgZGVwbG95bWVudCwgeW91IGNhbiBjbGljayBpbnRvIHRoZSBidWlsZC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTIucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgZm9yIHRoZSBmaW5hbCBjb25maXJtYXRpb24gdGhhdCB0aGUgZGVwbG95bWVudCBvZiBvdXIgR2F0c2J5LmpzIHNpdGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bCwgdmlzaXQgdGhlIGRlZmF1bHQgSGVyb2t1IGFkZHJlc3MgZm9yIHRoZSBzaXRlIGF0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vW0FQUF9OQU1FXS5oZXJva3VhcHAuY29tJmx0Oy9jb2RlJmd0Oy4gSWYgeW91IHVzZWQgdGhlIHNhbWUgbmFtZSBhcyBJIGRpZCBmb3IgdGhpcyBleGVyY2lzZSwgdGhhdCB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vZ2F0c2J5LWhlcm9rdS1kZXBsb3kuaGVyb2t1YXBwLmNvbS8mbHQ7L2NvZGUmZ3Q7LiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93ICh0aGlzIG1pZ2h0IGJlIGRpZmZlcmVudCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IEdhdHNieS5qcyBzdGFydGVyIHRlbXBsYXRlLCBsZWFybiBtb3JlIGFib3V0IHN0YXJ0ZXJzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvcGx1Z2lucy10aGVtZXMtYW5kLXN0YXJ0ZXJzLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OykuJmx0Oy9wJmd0OwoKJmx0O3AgYWxpZ249JnF1b3Q7Y2VudGVyJnF1b3Q7Jmd0OwogICAmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTEzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NvbmNsdXNpb24mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2UgZGVwbG95ZWQgYSBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UgdXNpbmcgQ2lyY2xlQ0kgb3Jicy4gTm93IHdoZW4gd2UgcHVzaCBvdXIgY29kZSwgYWxsIGNoYW5nZXMgd2lsbCBiZSBkZXBsb3llZCBhdXRvbWF0aWNhbGx5LiBUaGlzIHR1dG9yaWFsIGhhcyBhbHNvIGRlbW9uc3RyYXRlZCBob3cgQ2lyY2xlQ0kgb3JicyBtYWtlcyBkZXBsb3ltZW50IGVhc3kuIEluc3RlYWQgb2Ygd3JpdGluZyBtYW55IGxpbmVzIG9mIGNvbmZpZyBuZWVkIHRvIGRlcGxveSB0byBIZXJva3UsIG9yYnMgYWJzdHJhY3QgYWxsIG9mIHRoYXQgaW50byBjb252ZW5pZW50IGNvbW1hbmRzIGZvciB1cyB0byB1c2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2hlY2sgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kgb3JicyByZWdpc3RyeSZsdDsvYSZndDsgZm9yIG9yYnMgdGhhdCBzdWl0IHlvdXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGRlcGxveW1lbnQgZGVzdGluYXRpb24gb2YgY2hvaWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyEmbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5MZXR0aW5nIGNoYW5nZSBhbmQgdW5jZXJ0YWludHkgYWR2YW5jZSB5b3VyIHNvZnR3YXJlIGFyY2hpdGVjdHVyZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VGh1LCAwNyBNYXkgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Sb2IgWnViZXI8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIGZpcnN0IGxpbmVzIG9mIENpcmNsZUNJ4oCZcyBjb2RlYmFzZSB3ZXJlIHdyaXR0ZW4gbmVhcmx5IG5pbmUgeWVhcnMgYWdvLiBMb29raW5nIGJhY2sgb24gd2hhdCB3ZSBoYXZlIGJ1aWx0IHNvIGZhciB3aXRoIHRoZSBjbGFyaXR5IG9mIGhpbmRzaWdodCBleHBvc2VzIHNvbWUgaW50ZXJlc3RpbmcgdGhlbWVzIHRoYXQgY2FuIGJlIGluc3RydWN0aXZlIGluIGlkZW50aWZ5aW5nIGFwcHJvYWNoZXMgdG8gZGVhbGluZyB3aXRoIGNoYW5nZS4gV2hpbGUgdGhleSB3ZXJlbuKAmXQgYWxsIGludGVudGlvbmFsLCBpdCBkb2VzbuKAmXQgbWFrZSB0aGVtIGFueSBsZXNzIHZhbHVhYmxlLiBUaHJlZSBzdWNoIHRoZW1lcyBhcmU6IGRlZmVycmluZyB0aGUgbmVlZCB0byBoYW5kbGUgY2hhbmdlLCB0aGlua2luZyBsaWtlIGEgcHJvZHVjdCBtYW5hZ2VyLCBhbmQga2VlcGluZyB5b3VyIGhlYWQgdXAuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NoYW5nZSBpcyBhIGNvbnN0YW50IGluIHRlY2hub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Q2hhbmdlIG1pZ2h0IGJlIG9uZSBvZiB0aGUgb25seSBjb25zdGFudHMgZW5naW5lZXJzIHdpbGwgZGVhbCB3aXRoIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGVpciBjYXJlZXJzLiBJdCBjZXJ0YWlubHkgZHJpdmVzIG1hbnkgb2Ygb3VyIG1vc3QgaW50ZXJlc3RpbmcgY2hhbGxlbmdlcy4gVGhlIG1hcmtldCBpcyBjaGFuZ2luZywgb3VyIGJ1c2luZXNzIGlzIGV2b2x2aW5nLCBvdXIgY3VzdG9tZXIgYmFzZSBpcyBncm93aW5nLCBhbmQgb3VyIHRlYW0gaXMgc2NhbGluZy4gV2UgbmVlZCB0byBidWlsZCBhIHNvbHV0aW9uIHRoYXQgbWVldHMgdG9kYXnigJlzIG5lZWRzIGJ1dCBzZXRzIHVzIHVwIGZvciB0aGUgZGVtYW5kcyBvZiB0b21vcnJvdy4gSG93IGRvIHdlIGRlc2lnbiBvdXIgc3lzdGVtcyBpbiBhIG1hbm5lciB0aGF0IGNhbiBhZGFwdCBhbmQgY2hhbmdlIHRvIHRoaW5ncyB0aGF0IGRvbuKAmXQgZXZlbiBleGlzdCB3aGVuIHdlIHN0YXJ0IGJ1aWxkaW5nIGl0PyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZXJlIGhhcyBiZWVuIGEgbG90IG9mIHRhbGsgaW4gcmVjZW50IHllYXJzIGFib3V0IGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGV2b2x2ZSBvciBtb3JlIGVhc2lseSBhZGFwdCB0byBjaGFuZ2UuIFRoZW4gd2Ugc3RhcnQgdG8gZGViYXRlIHRoZSBtZXJpdHMgb2YgdGhlc2UgYXJjaGl0ZWN0dXJlcyB1c2luZyBhIGxpbmUgb2YgdGhpbmtpbmcgdGhhdCBzdWdnZXN0cyB5b3UgYXJlIGNob29zaW5nIHRvIGhhdmUgYSDigJxNaWNyb3NlcnZpY2VzIEFyY2hpdGVjdHVyZeKAnSBvciBhbiDigJxFdmVudC1Ecml2ZW4gQXJjaGl0ZWN0dXJl4oCdIG9yIGEg4oCcU2VydmVybGVzcyBBcmNoaXRlY3R1cmUu4oCdIEkgd291bGQgcG9zaXQgdGhhdCB0aGlzIHR5cGUgb2YgZGVzY3JpcHRpb24gY3JlYXRlcyBhIGZhbHNlIHNlbnNlIG9mIGZpbmFsaXR5IHRoYXQgZG9lc27igJl0IGFjdHVhbGx5IGV4aXN0IGluIG1vc3QgcmVhbC13b3JsZCBzeXN0ZW1zLiZsdDsvcCZndDsKCiZsdDtwJmd0O091dHNpZGUgb2YgdGhlIHlvdW5nZXN0IG9mIHByb2plY3RzLCBpdOKAmXMgdW5saWtlbHkgdGhhdCB5b3UgY2FuIGRlc2NyaWJlIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCB5b3UgaGF2ZSB3aXRoIGFueSBzaW1wbGUgb25lLWxpbmVyLiBJdOKAmXMgbW9yZSBsaWtlbHkganVzdCDigJx5b3VyIGFyY2hpdGVjdHVyZSzigJ0gYW5kIGlmIHlvdeKAmXZlIGJlZW4gd29ya2luZyBvbiBpdCBmb3IgYW55IHNpZ25pZmljYW50IGFtb3VudCBvZiB0aW1lLCB5b3UgbWF5IGhhdmUgYXBwbGllZCBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0dGVybnMgYWxvbmcgdGhlIHdheSB0byBzb2x2ZSBzcGVjaWZpYyBwcm9ibGVtcy4gVGhlcmXigJlzIHByb2JhYmx5IGEgbW9ub2xpdGggc29tZXdoZXJlLCBzb21lIG51bWJlciBvZiBtaWNyb3NlcnZpY2VzLCBhIGZldyBldmVudHMsIGFuZCBhIHNlcnZlcmxlc3MgZWxlbWVudCBvciB0d28uIE9uIHRvcCBvZiBhbGwgdGhhdCwgeW91IG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YgdHJhbnNpdGlvbmluZyBzb21lIG9mIHRob3NlIHBpZWNlcyBmcm9tIG9uZSBwYXR0ZXJuIHRvIGFub3RoZXIuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0Rlc2lnbiBhcmNoaXRlY3R1cmUgdG8gc29sdmUgcHJvYmxlbXMmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gb2Z0ZW4gYXNrZWQgYnkgZm9sa3Mgd2hpY2ggYXJjaGl0ZWN0dXJlIHRoZXkgc2hvdWxkIGNob29zZSwgb3Igd2hlbiB0aGV5IHNob3VsZCBzd2l0Y2ggZnJvbSBvbmUgdG8gYW5vdGhlci4gSSBoYXZlIGEgZ3JlYXQgdGVuZGVuY3kgdG8gZGlzYXBwb2ludCB3aXRoIGFuc3dlcnMgbGlrZSDigJx3aGF0IHByb2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gc29sdmU/4oCdJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28sIHdoYXQgJmx0O3N0cm9uZyZndDtzaG91bGQmbHQ7L3N0cm9uZyZndDsgeW91IGJlIHRoaW5raW5nIGFib3V0IGFzIHlvdXIgcHJvZHVjdCBldm9sdmVzIGFuZCB5b3VyIG5lZWRzIGFyZSBjaGFuZ2luZz8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGVyZSBhcmUgYSBsb3Qgb2YgYXBwcm9hY2hlcyB0aGF0IHdlIGNhbiB1c2UgdG8gZGVzaWduIHNvZnR3YXJlIGFuZCBzeXN0ZW1zIHRvIGJlIG1vcmUgcmVzaWxpZW50IHRvIGNoYW5nZS4gVGhlIGFsbHVyZSBvZiBub3QgaGF2aW5nIHRvIGRvIGNvbXBsZXggcmVmYWN0b3Jpbmcgb3IgcmVidWlsZGluZyBkb3duIHRoZSByb2FkIGxlYWRzIHVzIHRvIHdhbnQgdG8gZGVzaWduIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG93IGNvc3Qgb2YgY2hhbmdlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2hpbGUgZ2VuZXJhbGl6ZWQgYWJzdHJhY3Rpb25zIGFuZCByZXVzYWJsZSBjb21wb25lbnRzIGFyZSBhdCB0aGUgY29yZSBvZiByZWR1Y2luZyB0aGUgaW1wYWN0IG9mIGNoYW5nZSwgdGhleSBhcmUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Jsb2cuY29kaW5naG9ycm9yLmNvbS90aGUtZGVsdXNpb24tb2YtcmV1c2UvJnF1b3Q7Jmd0O2hhcmQgdG8gZ2V0IHJpZ2h0IGluIHRoZSBmaXJzdCBwbGFjZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0l04oCZcyBoYXJkIHRvIHByZWRpY3QgdGhlIGZ1dHVyZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtBdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHRlY2huaWNhbCBsYW5kc2NhcGUgaXMgY2hhbmdpbmcsIHlvdXIgYnVzaW5lc3MgYW5kIHlvdXIgb3JnYW5pemF0aW9uIGFyZSBib3RoIGV2b2x2aW5nIGFzIHdlbGwuIFRoZXNlIGJvdGggaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiB5b3VyIGFyY2hpdGVjdHVyYWwgZGVjaXNpb25zLiBUaGUgc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlIHRoYXQgeW91IGFyZSB1bmRlcmdvaW5nIHdpbGwgaW5mbHVlbmNlIHRoZSBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUgYmVzdCBzdWl0ZWQgdG8gYWJzb3JiIHRob3NlIGNoYW5nZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGVhcmx5IGRheXMgb2YgYSBwcm9qZWN0IG9yIGNvbXBhbnksIGl04oCZcyBwb3NzaWJsZSB0byBtYWtlIHN3ZWVwaW5nIGZ1bmRhbWVudGFsIHNoaWZ0cyBpbiB0aGUgb2JqZWN0aXZlLiBFeHRyZW1lLCBidXQgbm90IHVuY29tbW9uLCBleGFtcGxlcyBpbmNsdWRlIFRpbnkgU3BlY2sgYmVjb21pbmcgU2xhY2sgYW5kIE9kZW8gYmVjb21pbmcgVHdpdHRlci4gV2hlbiB0aGUgZG9tYWluIG9mIHlvdXIgYnVzaW5lc3MgY2FuIG1vdmUgdGhhdCBkcmFzdGljYWxseSwgdGhlIGNsZWFuIGJvdW5kYXJpZXMgb2YgeW91ciBEREQgbW9kZWwgYXJlIG91dCB0aGUgd2luZG93LiBJbiBhIHNldCBvZiBtaWNyb3NlcnZpY2VzLCB0aGVzZSBib3VuZGFyaWVzIHdpbGwgYmUgY29kaWZpZWQsIHNvIGlmIHlvdSBoYXZlIHRvIGN1dCB0aHJvdWdoIHRoZW0sIHlvdeKAmWxsIGxpa2VseSBiZSB0aGFua2Z1bCBmb3IgYSBtb3JlIHBsaWFibGUgbW9ub2xpdGguJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB5b3UgZmluZCBwcm9kdWN0IC8gbWFya2V0IGZpdCwgeW91ciBwcmlvcml0aWVzIHdpbGwgc2hpZnQgdG93YXJkcyBzdXBwb3J0aW5nIHlvdXIgcmFwaWQgZ3Jvd3RoLiBXaXRoIHN5c3RlbSBzY2FsZSBhcyBhIGRyaXZlciBvZiBjaGFuZ2UsIHRoZSBhYmlsaXR5IHRvIHJlc3BvbmQgdG8gY2hhbmdlIGlzIG9mdGVuIHRpZWQgdG8gdGhlIGluZGVwZW5kZW5jZSBvZiBzeXN0ZW1zIGJhc2VkIG9uIHRoZWlyIG9wZXJhdGlvbmFsIGNoYXJhY3RlcmlzdGljcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGF0IHNjYWxpbmcgcGhhc2UsIHlvdeKAmWxsIGhhdmUgYSBsYXJnZXIgb3JnYW5pemF0aW9uIGFuZCBmYXIgbW9yZSB0ZWFtcy4gSWYgeW914oCZcmUgbHVja3kgeW914oCZbGwgYmUgYmFjayB0byBzdXN0YWluYWJsZSBwcm9kdWN0IGV2b2x1dGlvbi4gVGhlbiB0aGUgY29zdCBvZiBjaGFuZ2Ugd2lsbCBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIGFtb3VudCBvZiBjcm9zcy10ZWFtIGNvb3JkaW5hdGlvbiByZXF1aXJlZCB0byBtYWtlIGEgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtoMiZndDtEZWZlciByZXNwb25zZSB0byBjaGFuZ2UmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7V2hlbiBhbiBpbmRpdmlkdWFsIG9yIHRlYW0gaGFzIGEgcHJvYmxlbSB0aGV54oCZcmUgdHJ5aW5nIHRvIHNvbHZlLCB0aGV5IGdlbmVyYWxseSBzdGFydCBvZmYgd2l0aCBhIHByZXR0eSBzaW1wbGUgZGlyZWN0aXZlIOKAkyBsZXTigJlzIGJ1aWxkIHRvIHNvbHZlIHRoYXQgcHJvYmxlbS4gV2hhdOKAmXMgdGhlIG1vc3QgZWZmZWN0aXZlIGFyY2hpdGVjdHVyZSB3ZSBjYW4gdXNlIHRvIGJ1aWxkIGEgdmlhYmxlIHByb2R1Y3QgYXQgdGhlIGxvd2VzdCBjb3N0PyBUaGlzIGlzIGdlbmVyYWxseSB0cnVlIHdoZXRoZXIgaXTigJlzIGEgc3RhcnR1cCBvciBhIGh1Z2UgbXVsdGluYXRpb25hbCBjb3Jwb3JhdGlvbi4gQSBuZXcgcHJvamVjdCB3aWxsIGJlIGJ1aWx0IG9uIGEgc3lzdGVtIHRoYXTigJlzIHJlbGF0aXZlbHkgbmV3LCBhbmQgd2lsbCBiZSB1bmxpa2VseSB0byBoYXZlIHByb2R1Y3QtbWFya2V0IGZpdCBiZWNhdXNlIHRoZSBjb21wYW55IHdvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCBpdHMgYnVzaW5lc3MgZG9tYWluIHlldCwgYW5kIHdvbuKAmXQga25vdyB3aGVyZSB0aGUgcHJpbWFyeSBzb3VyY2VzIG9mIGNoYW5nZSB3aWxsIGNvbWUgZnJvbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHNpdHVhdGlvbiwgZGVzaWduaW5nIGZvciBjaGFuZ2UgYmVjb21lcyBhIGxvdCBoYXJkZXIuIElmIGl04oCZcyBhIGxvdCBtb3JlIGV4cGVuc2l2ZSB0byBtYWtlIHRoaW5ncyByZXNpbGllbnQgdG8gY2hhbmdlIGFuZCB5b3UgY2Fu4oCZdCB0ZWxsIHlldCB3aGljaCBwYXJ0cyBvZiB5b3VyIHN5c3RlbSB3aWxsIGNoYW5nZSwgaG93IGRvIHlvdSBtYWtlIHRoZSBkZWNpc2lvbiBhYm91dCB3aGVyZSB0byBtYWtlIHRoYXQgaW52ZXN0bWVudD8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBjb3VudGVyaW50dWl0aXZlIGFzIGl0IG1heSBzb3VuZCwgdGhlIGFuc3dlciBpcyBwcm9iYWJseSBub3doZXJlLiBBdCBsZWFzdCBub3QgeWV0LiBJbnN0ZWFkIHdhdGNoIGNoYW5nZSBjbG9zZWx5IGFuZCBidWlsZCBpbiBhIHdheSB0aGF0IG1pbmltaXplcyB0aGUgY29zdCBvZiBiZWluZyB3cm9uZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiDigJwmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9zaG9wLm9yZWlsbHkuY29tL3Byb2R1Y3QvOTc4MDU5NjUyMjcwNC5kbyZxdW90OyZndDs5NyBUaGluZ3MgRXZlcnkgU29mdHdhcmUgQXJjaGl0ZWN0IFNob3VsZCBLbm93Jmx0Oy9hJmd0O+KAnSBLZXZsaW4gSGVubmV5LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbWVkaXVtLmNvbS9Aa2V2bGluaGVubmV5L2h0dHBzLW1lZGl1bS1jb20ta2V2bGluaGVubmV5LXVzZS11bmNlcnRhaW50eS1hcy1hLWRyaXZlci00OTNlYmViZDU3NWQmcXVvdDsmZ3Q7ZGVzY3JpYmVzIGFuIGltcG9ydGFudCBhcHByb2FjaCB0byB0aGlua2luZyBhYm91dCB1bmNlcnRhaW50eSZsdDsvYSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2Jsb2NrcXVvdGUmZ3Q7CiAgJmx0O3AmZ3Q74oCcVGhlIHByZXNlbmNlIG9mIHR3byBvcHRpb25zIGlzIGFuIGluZGljYXRvciB0aGF0IHlvdSBuZWVkIHRvIGNvbnNpZGVyIHVuY2VydGFpbnR5IGluIHRoZSBkZXNpZ24uIFVzZSB0aGUgdW5jZXJ0YWludHkgYXMgYSBkcml2ZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHlvdSBjYW4gZGVmZXIgY29tbWl0bWVudCB0byBkZXRhaWxzIGFuZCB3aGVyZSB5b3UgY2FuIHBhcnRpdGlvbiBhbmQgYWJzdHJhY3QgdG8gcmVkdWNlIHRoZSBzaWduaWZpY2FuY2Ugb2YgZGVzaWduIGRlY2lzaW9ucy4gSWYgeW91IGhhcmR3aXJlIHRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQsIHlvdeKAmXJlIG1vcmUgbGlrZWx5IHRvIGJlIHN0dWNrIHdpdGggaXQg4oCTIGluY2lkZW50YWwgZGVjaXNpb25zIGJlY29tZSBzaWduaWZpY2FudCBhbmQgdGhlIHNvZnRuZXNzIG9mIHRoZSBzb2Z0d2FyZSBoYXJkZW5zLuKAnSZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7VGhpcyBmcmFtaW5nIGlzIGdyZWF0IGZvciBleHBsaWNpdCBkZWNpc2lvbnMsIGJ1dCB3aGF0IGlmIHlvdSBkb27igJl0IGtub3cgeW914oCZcmUgbWFraW5nIGEgY2hvaWNlPyZsdDsvcCZndDsKCiZsdDtwJmd0O01hbnkgdGltZXMsIHRoZSBjaG9pY2UgaXNu4oCZdCBldmVuIHZpc2libGUgeWV0LCBidXQgd2lsbCByZXZlYWwgaXRzZWxmIGxhdGVyLiBJbiB0aGVzZSBzaXR1YXRpb25zLCB0aGUgYW5zd2VyIGlzIG5vdCB0byBvdmVyIGdlbmVyYWxpemUsIGJ1aWxkaW5nIGFic3RyYWN0aW9ucyBldmVyeXdoZXJlIGp1c3QgaW4gY2FzZS4gSW5zdGVhZCwga2VlcCB0aGluZ3MgYXMgc2ltcGxlIGFzIHBvc3NpYmxlIHNvIHlvdSBjYW4gdW5kZXJzdGFuZCB0aGVtIGxhdGVyIGlmIHlvdSBoYXZlIHRvIG1ha2UgYSBjaGFuZ2UuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O1NpbXBsaWNpdHkgbWFrZXMgaXQgZWFzaWVyIHRvIGFkYXB0IHRvIGNoYW5nZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZWFybHkgZGF5cywgdGhlIENpcmNsZUNJIGFwcGxpY2F0aW9uIHdhcyBhIG1vbm9saXRoIHRoYXQgdG9vayBhIGN1c3RvbWVy4oCZcyBidWlsZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRhdGEgYW5kIHB1c2hlZCBpdCBpbnRvIG9uZSBvZiBzZXZlcmFsIExYQyBjb250YWluZXJzLiBFdmVyeSBjb250YWluZXIgdGhhdCB3ZSBzcHVuIHVwIHdhcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgc2FtZSBpbWFnZSB0aGF0IGNvbnRhaW5lZCBldmVyeXRoaW5nIHRoYXQgd2UgdGhvdWdodCBhbnlvbmUgd291bGQgZXZlciB3YW50IGluIHRoZWlyIHRlc3QgZW52aXJvbm1lbnQuIEluIGhpbmRzaWdodCwgdGhpcyBzb3VuZHMgbGlrZSBhIHRlcnJpYmxlIGlkZWEsIGJ1dCBhdCB0aGUgdGltZSwgaXQgd2FzIGZhbnRhc3RpYy4gSXQgd2FzIHNpbXBsZSB0byBtYWludGFpbiBhbmQgc3VwcG9ydGVkIHRoZSBuZWVkcyBvZiBvdXIgZWFybHkgY3VzdG9tZXJzLCBtYW55IG9mIHdob20gd2VyZSBidWlsZGluZyBSYWlscyBtb25vbGl0aHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXMgdGltZSBwYXNzZWQgYW5kIG91ciBjdXN0b21lciBiYXNlIGdyZXcsIHNvIGRpZCB0aGUgZGl2ZXJzaXR5IG9mIHRoZWlyIG5lZWRzIGluIHRlcm1zIG9mIHRlc3QgZW52aXJvbm1lbnRzLiBVcGdyYWRlZCB2ZXJzaW9ucyBvZiB0aGVpciB1bmRlcmx5aW5nIGRhdGFiYXNlcywgbm92ZWwgbmV3IGRldmVsb3BtZW50IGZyYW1ld29ya3MsIGV2ZW4gbmV3IG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbnMgYmVjYW1lIG5lY2Vzc2FyeS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgb3JpZ2luYWwgY29udGFpbmVyIG1hbmFnZW1lbnQgaW4gQ2lyY2xlQ0kgd2FzbuKAmXQgZGVzaWduZWQgaW4gYSB3YXkgdGhhdCBhbGxvd2VkIHVzIHRvIGFkYXB0IGVhc2lseSB0byB0aGVzZSBjaGFuZ2luZyBuZWVkcy4gQnV0IGl0IHdhcyBmYWlybHkgc2ltcGxlLiBTbyB3aGVuIHdlIHNldCBvdXQgdG8gc29sdmUgdGhlc2UgcHJvYmxlbXMsIHdlIGtuZXcgd2hlcmUgdG8gc3BsaWNlIGluIGEgbmV3IGFwcHJvYWNoIGFuZCBpdCB3YXMgbWluaW1hbCB3b3JrIHRvIGVuYWJsZSB0aGF0IHNwbGljaW5nLiBXZSBhbHNvIGRpZG7igJl0IGhhdmUgdG8gdW5yYXZlbCBhIHBvb3IgZ2VuZXJhbGl6YXRpb24gdGhhdCBkaWRu4oCZdCBzdXBwb3J0IG91ciBuZXcgcHJvYmxlbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3aGlsZSBzZWVtaW5nbHkgc2ltcGxlLCB3ZSB3ZXJlIGZpdmUgeWVhcnMgaW50byBzdWNjZXNzZnVsIGdyb3d0aCBhcyBhIGNvbXBhbnkgbWVldGluZyB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycyBvbiB0aGF0IHNpbXBsZSBzeXN0ZW0gYmVmb3JlIG91ciBmaXJzdCBjdXN0b21lcnMgdGVzdGVkIGl0cyByZXBsYWNlbWVudC4gSW4gdGhvc2UgZml2ZSB5ZWFycywgRG9ja2VyIHdhcyBjcmVhdGVkLCBhcyB3YXMgSGFzaGlDb3Jw4oCZcyBOb21hZC4gQ29tYmluZWQsIHRob3NlIHRvb2xzIGVsaW1pbmF0ZWQgaHVnZSBwb3J0aW9ucyBvZiB0aGUgd29yayBuZWNlc3NhcnkgdG8gZ2V0IHRoZSBmbGV4aWJsZSBhbmQgc2NhbGFibGUgZW52aXJvbm1lbnRzIHRoYXQgd2Ugc3VwcG9ydCBmb3IgY3VzdG9tZXJzIHRvZGF5LiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28sIGFzIHdlIHJldG9vbGVkIHRoZSBzeXN0ZW0gdG8gYWRhcHQgdG8gdGhlIGNoYW5nZWQgbWFya2V0IHdlIHdlcmUgaW4gYSBwb3NpdGlvbiB0byBhc2sg4oCcSG93IGRvIHdlIGRvIHRoaXMgaW4gYSB3YXkgdGhhdCBiZXR0ZXIgcG9zaXRpb25zIHVzIGZvciBpbmNyZW1lbnRhbCBjaGFuZ2U/4oCdIEl0IHdvdWxkIGJlIGRpZmZpY3VsdCB0byBvdmVyc3RhdGUgaG93IG11Y2ggdmFsdWUgdGhhdCBmaXZlIHllYXJzIG9mIGV4cGVyaWVuY2UgcHJvdmlkZWQgd2hlbiBkZXNpZ25pbmcgYSBzb2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdCBzb3VuZHMgd2VpcmQgYW5kIGdyb3NzbHkgdW5mYWlyIHRvIHNheSB0aGlzLCBidXQgbW9zdCBvZiB0aGUgdGltZSB3ZSBkb27igJl0IGV2ZW4ga25vdyB0aGF0IHdl4oCZcmUgbWFraW5nIGEgbW9udW1lbnRhbCBkZXNpZ24gZGVjaXNpb24gYmVjYXVzZSB0aGUgYWx0ZXJuYXRlIHBhdGggaGFzbuKAmXQgc2hvd24gdXAgeWV0LiBIb3cgZG8geW91IGd1YXJkIGFnYWluc3QgdGhpcz8mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7RGVmZXIsIGRlZmVyLCBkZWZlciZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUaGUgY29ycmVjdCBzb2x1dGlvbnMgaGF2ZSBhIGhhYml0IG9mIHJldmVhbGluZyB0aGVtc2VsdmVzIGlmIHlvdSBjYW4gZmluZCBhIHdheSB0byB3YWl0IGxvbmcgZW5vdWdoLiBUZWNobm9sb2d5IGdhaW5zIHRyYWN0aW9uIG9yIGRpZXMuIElmIHlvdSBjaG9zZSBhIGNvbnRhaW5lciBvcmNoZXN0cmF0aW9uIGVuZ2luZSBpbiAyMDE2LCB0aGVyZeKAmXMgYSByb3VnaGx5IDIwJSBjaGFuY2UgdGhhdCB5b3Ugd291bGQgaGF2ZSBjaG9zZW4gS3ViZXJuZXRlcy4gVGhhdCBtZWFucyBieSB0aGUgYmVnaW5uaW5nIG9mIDIwMTgsIGFsbW9zdCA4MCUgb2YgY29tcGFuaWVzIHdlcmUgc3dpdGNoaW5nLiBUaG9zZSBhcmUgbm90IGdyZWF0IG9kZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28gZGVmZXJyaW5nIGNhbiBiZSBnb29kLiBEZWZlcnJpbmcgdG8gdGhlIHBvaW50IG9mIGNyZWF0aW5nIGEgY3Jpc2lzIGlzIG5vdC4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7VGhpbmsgbGlrZSBhIHByb2R1Y3QgbWFuYWdlciZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3VyIGFyY2hpdGVjdHVyZSBpcyBhIGxlYWt5IGFic3RyYWN0aW9uLiBXaGlsZSBDaXJjbGVDSSBpcyBwcm9iYWJseSBhbiBleHRyZW1lIGV4YW1wbGUgb2YgdGhpcyBjYXNlIGR1ZSB0byB0aGUgYWNjZXNzIG91ciBjdXN0b21lcnMgaGF2ZSB0byBzeXN0ZW1zIGluIG91ciBwbGF0Zm9ybSwgdGhlcmUgaXMgYWx3YXlzIHNvbWUgaW1wbGljYXRpb24gZm9yIGN1c3RvbWVycyBvZiB0aGUgZGVjaXNpb25zIHlvdSBtYWtlIGluIGRlZmluaW5nIHlvdXIgYXJjaGl0ZWN0dXJlLiBSZWNvZ25pemluZyB0aGlzIGltcGFjdCBhbmQgYmVpbmcgYWJsZSB0byBjb2hlcmVudGx5IGRpc2N1c3MgYXBwcm9hY2hlcyBhbmQgYWx0ZXJuYXRpdmVzIGlzIGEgaHVnZSBhc3NldCB0aGF0IGFuIGVuZ2luZWVyIGNhbiBicmluZyB0byB0aGVpciBQTSBhbmQgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaGlsZSB3ZSB3ZXJlIHdpdG5lc3NpbmcgYWxsIG9mIHRoaXMgY2hhbmdlIGluIGhvdyBvdXIgY3VzdG9tZXJzIHdlcmUgYnVpbGRpbmcgc29mdHdhcmUsIG9uZSB0aGluZyB3ZSBpZ25vcmVkIGZvciB0b28gbG9uZyB3YXMgdGhlIHJpc2Ugb2YgRG9ja2VyLiBEb2NrZXIgZGlkbuKAmXQgZXZlbiBleGlzdCB3aGVuIENpcmNsZUNJIHN0YXJ0ZWQgaW4gMjAxMSwgdGhlbiBieSAyMDE0IGl0IHdhcyBldmVyeXdoZXJlLiBNYW55IG9mIG91ciBjdXN0b21lcnMgaGFkIHN0YXJ0ZWQgYnVpbGRpbmcgRG9ja2VyIGltYWdlcyBhcyBwYXJ0IG9mIHRoZWlyIGJ1aWxkIHRvIHByZXBhcmUgZm9yIGRlcGxveS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtEb2NrZXIgd2FzIG9yaWdpbmFsbHkgYnVpbHQgb24gdG9wIG9mIExYQywgYW5kIHRoYXQgbWVhbnQgaW4gdGhvc2UgZWFybHkgZGF5cyB3ZSBjb3VsZCBzdXBwb3J0IHRoZSB1c2Ugb2YgRG9ja2VyIGNvbW1hbmRzIHRvIGJ1aWxkIGltYWdlcyBhbmQgcHVzaCB0aGVtIHRvIHJlcG9zaXRvcmllcyBhbGwgaW5zaWRlIG9mIG9uZSBvZiBvdXIgTFhDIGNvbnRhaW5lcnMuIEluIDIwMTQsIERvY2tlciBsYXVuY2hlZCBzb21ldGhpbmcgY2FsbGVkIGxpYmNvbnRhaW5lciBhbmQgdGhleSBwdWxsZWQgYXBhcnQgdGhlIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBzeXN0ZW0gYW5kIGNyZWF0ZWQgZXhlY3V0aW9uIGRyaXZlcnMsIHdoaWNoIHNvb24gbGVkIHRvIHRoZSBkZXByZWNhdGlvbiBvZiB0aGUgTFhDIGRyaXZlci4gRGlzYXBwb2ludGluZywgYnV0IGl0IHN0aWxsIHdvcmtlZC4gVGhlbiBEb2NrZXIgZGVsZXRlZCBhbGwgTFhDIHN1cHBvcnQuIFRoYXQgd2FzIGJhZC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QWx3YXlzIHRoaW5rIGFib3V0IHVzZXJzJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVycyBhbmQgYXJjaGl0ZWN0cywgd2Ugc2F3IHRoaXMgY29taW5nLCBhbmQgZnJhbmtseSwgaXQgd2FzIHVuZGVyIHRoZSByYWRhciBvZiBvdXIgcHJvZHVjdCB0ZWFtLiBPdXIgbm9uLXRlY2huaWNhbCBwcm9kdWN0IGZvbGtzIGRpZG7igJl0IG5lY2Vzc2FyaWx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBidXQgb3VyIGVuZ2luZWVycyB3ZXJlIHRhbGtpbmcgYWJvdXQgaXQgZXZlcnkgZGF5LiBTbyBhcyBhbiBlbmdpbmVlciwgYW4gYXJjaGl0ZWN0LCBvciBhIGxlYWRlciBpbiB0ZWNobm9sb2d5LCB5b3UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBwcm9kdWN0IGFuZCB3b3JraW5nIHdpdGggeW91ciBwcm9kdWN0IG1hbmFnZXJzIHRvIGVuc3VyZSBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGUgaW1wbGljYXRpb25zIG9mIHRlY2huaWNhbCBjaG9pY2VzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0l04oCZcyBpbXBvcnRhbnQgdG8gc2VwYXJhdGUgdGhpcyBkaXNjdXNzaW9uIGZyb20gdGVjaG5pY2FsIGludmVzdG1lbnRzLiBUaGVyZSBpcyBhYnNvbHV0ZWx5IGEgcGxhY2UgZm9yIHRoaXMgdHlwZSBvZiBpbnZlc3RtZW50LCBhbmQsIGFuIGFyZ3VtZW50IHRoYXQgZnJhbWluZyB0aGVzZSBpbnZlc3RtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB5b3UgZnJhbWUgcHJvZHVjdCBpbnZlc3RtZW50cyBtYWtlcyBpdCBtdWNoIGVhc2llciB0byBtYWtlIHRyYWRlb2ZmIGRlY2lzaW9ucy4gSG93ZXZlciwgaWRlbnRpZnlpbmcgdGhlIGRpcmVjdGx5IGN1c3RvbWVyLXZpc2libGUgZmVhdHVyZSBpbXBhY3Qgb2YgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBtb3JlIGNvbW1vbmx5IGRpc2N1c3NlZCBpbXBhY3RzIG9mIGNvc3QsIHBlcmZvcm1hbmNlLCBzZWN1cml0eSwgZXRjLiZsdDsvcCZndDsKCiZsdDtwJmd0O0J1aWxkaW5nIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHlvdXIgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgdmFsdWUgYWNoaWV2ZWQgYnkgeW91ciBjdXN0b21lcnMgd2lsbCBwdXQgeW91IGluIGEgcG9zaXRpb24gdG8gbWFrZSBtb3JlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB3aGF0IGFuZCBob3cgdG8gYnVpbGQgYXMgeW91ciBidXNpbmVzcyBldm9sdmVzLiBUaGVuIHlvdSBjYW4gZm9jdXMgb24gZ2V0dGluZyBhaGVhZCBvZiB0aGF0IGV2b2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7S2VlcCB5b3VyIGhlYWQgdXAmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gQ2FuYWRpYW4gYW5kLCB1bnN1cnByaXNpbmdseSwgSSBncmV3IHVwIHBsYXlpbmcgaWNlIGhvY2tleS4gVGhyb3VnaG91dCBteSBjaGlsZGhvb2QsIEkgc3BlbnQgYW4gZW5kbGVzcyBhbW91bnQgb2YgdGltZSBhdCBwcmFjdGljZSBqdXN0IHNrYXRpbmc6IGZvcndhcmRzLCBiYWNrd2FyZHMsIHR1cm5pbmcsIHN0b3BwaW5nLCBmaWd1cmUgZWlnaHRzIGFyb3VuZCBjb25lcy4gVGhlbiBjYW1lIHN0aWNrIGhhbmRsaW5nLiBUaGUgaWRlYSB3YXMgdG8gaGF2ZSB0aGUgbW92ZW1lbnQgb24gdGhlIGljZSBiZWNvbWUgc2Vjb25kIG5hdHVyZSBzbyBJIGNvdWxkIGZvY3VzIG9uIHdoYXQgcmVhbGx5IG1hdHRlcmVkOiBzZWVpbmcgdGhlIHBsYXkgZGV2ZWxvcCwgZ2V0dGluZyBpbnRvIHNwYWNlLCBhbmQgdHJ5aW5nIHRvIHNjb3JlLiBNYWtlIHRoZSBmdW5kYW1lbnRhbHMgYWxtb3N0IGVmZm9ydGxlc3Mgc28geW91IGNhbiBwdXQgeW91ciBlbmVyZ3kgaW50byB0aGUgbm92ZWwgc3R1ZmYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gc29mdHdhcmUsIHdlIGhhdmUgYSBiYWQgdGVuZGVuY3kgdG8gbWFrZSB0aGUgZnVuZGFtZW50YWxzIGEgbG90IGhhcmRlciB0aGFuIHRoZXkgc2hvdWxkIGJlIGJ5IGFkb3B0aW5nIG5ldyB0ZWNobm9sb2d5IHRoYXQgd2UgdGhpbmsgaXMgZ29pbmcgdG8gYmUgZ2FtZSBjaGFuZ2luZywgYnV0IGVuZHMgdXAgaGF2aW5nIG1vZGVzdCB1cHNpZGUgaWYgYW55LiBUbyBtYWtlIHRoaW5ncyB3b3JzZSwgdGhlIGRvd25zaWRlIGlzIG9mdGVuIHVuYm91bmRlZCBhcyB3ZSBnZXQgb3VyIHRlYW1zIHVwIHRoZSBsZWFybmluZyBjdXJ2ZSwgZmluZCB1bnRlc3RlZCBlZGdlIGNhc2VzIGR1cmluZyBwcm9kdWN0aW9uIGluY2lkZW50cywgYW5kIGludmVudCBvdXIgb3duIOKAnGJlc3QgcHJhY3RpY2VzLuKAnSBBIHdvcmxkIHdoZXJlIFN0YWNrIE92ZXJmbG93IGhhcyBubyBhbnN3ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1doaWxlIHdl4oCZcmUgcHV0dGluZyB0aGlzIGVmZm9ydCBpbnRvIG91ciBub3ZlbCB0ZWNoLCB3ZeKAmXJlIG5vdCBmb2N1c2luZyBvbiBob3cgb3VyIHN5c3RlbXMgbmVlZCB0byBldm9sdmUgdG8gbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QSB0aW1lIHNpbXBsaWNpdHkgd291bGQgaGF2ZSBoZWxwZWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Q2lyY2xlQ0kgaXMgYSBDbG9qdXJlIHNob3AgYW5kLCBpbiBvdXIgZWFybHkgZGF5cywgd2UgZGVjaWRlZCB3ZeKAmWQgYmUgYmV0dGVyIGF0IGZyb250IGVuZCBkZXZlbG9wbWVudCBpZiB3ZSB1c2VkIHRoZSBzYW1lIGxhbmd1YWdlIHRoYXQgd2UgdXNlZCBpbiB0aGUgYmFja2VuZC4gU28gd2UgYWRvcHRlZCBPbSwgYSBDbG9qdXJlU2NyaXB0IHdyYXBwZXIgYXJvdW5kIFJlYWN0LiBBIGZldyB5ZWFycyBsYXRlciwgRGF2aWQgTm9sZW4sIHRoZSBwZXJzb24gd2hvIHN0YXJ0ZWQgT20sIGRlY2lkZWQgaGUgZGlkbuKAmXQgbGlrZSB0aGUgbW9kZWwgc28gaGUgcmVwbGFjZWQgaXQgd2l0aCBzb21ldGhpbmcgaW5jb21wYXRpYmxlIGNhbGxlZCBPbSBOZXh0LiBXZSB0cmllZCB0byBtaWdyYXRlIGluY3JlbWVudGFsbHkgdG8gT20gTmV4dCBhbmQgZW5kZWQgdXAgd2l0aCBhbiBvdmVybHkgY29tcGxleCBmcm9udGVuZCB3aXRoIHR3byBzdGF0ZSBtb2RlbHMgYW5kIG1hc3NpdmUgb3ZlcmhlYWQgdG8gZXZlcnkgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGVuZGVkIHVwIHJld3JpdGluZyBpdCBpbiBSZWFjdC4gSW4gcmV0cm9zcGVjdCwgT20gaGFkIGJvdGggaGlnaCByaXNrIGFuZCBoaWdoIGNvc3QgdG8gY2hhbmdlIGFuZCB3ZSBwYWlkIHRoZSBwcmljZS4gQW5kIHdlIHNwZW50IHRoYXQgdGltZSBsb29raW5nIGF0IG91ciBmZWV0LCBub3QgYWhlYWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm8gY29tcGFueSBoYXMgZXZlciB3b24gYmVjYXVzZSBvZiBhbiBhbWF6aW5nbHkgbm92ZWwgb3IgZXNvdGVyaWMgdGVjaG5vbG9neSBjaG9pY2UuIFRoZXJlIGlzIGFuIGVuZGxlc3MgbGlzdCwgaG93ZXZlciwgb2YgY29tcGFuaWVzIHRoYXQgaGF2ZSB3b24gYmVjYXVzZSB0aGV5IGNhbiBtb3ZlIHF1aWNrbHkgYW5kIHdpdGggYWdpbGl0eSwgYWRhcHRpbmcgdG8gY2hhbmdlIGFzIGl0IGhhcHBlbnMuIFRlY2hub2xvZ3kgc2hvdWxkIGJlIGFuIGFjY2VsZXJhdG9yIGhlbHBpbmcgdXMgbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4gV2VsbC11bmRlcnN0b29kLCBwcm9kdWN0aW9uLXRlc3RlZCB0b29scyBhcmUgZmFyIG1vcmUgbGlrZWx5IHRvIGZpdCB0aGF0IGJpbGwuIEFzIG15IGNvbGxlYWd1ZSBCZWFyIHNheXMsIOKAnElmIGEgdG9vbCBpc27igJl0IGhlbHBpbmcsIGl04oCZcyBub3QgYSB0b29sLCBpdOKAmXMgYSBjaG9yZS4gRHJvcCBpdC7igJ0mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7Q29uY2x1c2lvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtVbmZvcmVzZWVuIGNoYW5nZSBpcyB0b3Atb2YtbWluZCBmb3Igc28gbWFueSBvZiB1cyByaWdodCBub3csIGFuZCBpdOKAmXMgbW9yZSBvYnZpb3VzIHRoYW4gZXZlciB0aGF0LCBpbiBidXNpbmVzcywgbm9ib2R5IGNhbiBwcmVkaWN0IHRoZSBmdXR1cmUuIEl04oCZcyBhIHNhZmUgYmV0IHRoYXQgZm9sa3MgYXQgR00gZGlkbuKAmXQgc3RhcnQgdGhlIHllYXIgdGhpbmtpbmcgYWJvdXQgaG93IHRvIHVzZSB0aGVpciBmYWN0b3JpZXMgdG8gbWFrZSB2ZW50aWxhdG9ycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWluZyBwcmVwYXJlZCB0byBhZGFwdCBpbiB0aGUgZmFjZSBvZiBjaGFuZ2UgcmVxdWlyZXMgdGhpbmtpbmcgYWJvdXQgY2hhbmdlIGFzIGEgZHJpdmVyIGluIGV2ZXJ5dGhpbmcgeW91IGRvLiBXYXRjaCBob3cgeW91ciBtYXJrZXQgaXMgY2hhbmdpbmcgYW5kIHJlZmxlY3Q9IG9uIGhvdyB0aGF0IGltcGFjdHMgeW91ciBhcmNoaXRlY3R1cmUgc28gdGhhdCB5b3UgY2FuIG1ha2UgdGFyZ2V0ZWQsIGluY3JlbWVudGFsIGltcHJvdmVtZW50cyBpbiBpdHMgYWRhcHRhYmlsaXR5LiBUaGlzIHdpbGwgaGVscCBrZWVwIHlvdSBmb2N1c2VkIG9uIGV2b2x1dGlvbiB3aXRob3V0IHdhc3RpbmcgdGltZSBvciBtb25leSBvbiBhcmVhcyB0aGF0IHdvbuKAmXQgbmVlZCBpdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCbGFjayBTd2FuIGV2ZW50cyBhcmUgc28gdW51c3VhbCB0aGF0IHN0dWR5aW5nIHRoZSBzcGVjaWZpY3MgY2FuIGJlIGxvdyB2YWx1ZSwgYnV0IHRoZXkgcmVtaW5kIHVzIGhvdyBmYXIgcmVhbGl0eSBjYW4gYmUgZnJvbSBvdXIgcGxhbnMuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZW5naW5lZXJpbmcgbWFuYWdlcnMgY2FuIGVmZmVjdGl2ZWx5IHN1cHBvcnQgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWVuZ2luZWVyaW5nLW1hbmFnZXJzLWNhbi1lZmZlY3RpdmVseS1zdXBwb3J0LWVuZ2luZWVycy10ZWFtcy1hbmQtb3JnYW5pemF0aW9ucy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+V2VkLCAyOSBBcHIgMjAyMCAxNTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9ob3ctZW5naW5lZXJpbmctbWFuYWdlcnMtY2FuLWVmZmVjdGl2ZWx5LXN1cHBvcnQtZW5naW5lZXJzLXRlYW1zLWFuZC1vcmdhbml6YXRpb25zLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkxlbmEgUmVpbmhhcmQ8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIHR5cGljYWwgam9iIGRlc2NyaXB0aW9uIGZvciBtYW55IGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMgaXMgYWN0aW9uLXBhY2tlZC4gSXQgaXMgYSBtaXggb2YgaGFuZHMtb24gY29kaW5nLCB0ZWNobmljYWwgbGVhZGVyc2hpcCBhbmQgZGVjaXNpb24gbWFraW5nLCBwcm9jZXNzIGFuZCBwcm9qZWN0IG1hbmFnZW1lbnQsIHByb2R1Y3Qgb3ZlcnNpZ2h0LCBwZW9wbGUgbWFuYWdlbWVudCwgZmluZGluZyBhbmQgaGlyaW5nIHRhbGVudCDigKYgdGhlIGxpc3QgZ29lcyBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiBvdXIgd29yaywgd2UgZGVhbCB3aXRoIGJvdGggdGVjaG5pY2FsIGFuZCBwZW9wbGUgc3lzdGVtczogd2Ugc3VwcG9ydCBpbmRpdmlkdWFsIGVuZ2luZWVyc+KAmSBncm93dGg7IGhlbHAgdGVhbXMgYmVjb21lIHN1Y2Nlc3NmdWw7IGFuZCBtYWtlIHRoZSBvcmdhbml6YXRpb24gbW9yZSBwcm9kdWN0aXZlLCBmdW5jdGlvbmFsLCBhbmQgaW5ub3ZhdGl2ZS4gQWJvdmUgYWxsLCBhbiBlbmdpbmVlcmluZyBtYW5hZ2VyIGlzIGEgc2VydmljZSBvciBzdXBwb3J0IHJvbGUgYWNyb3NzIHRoZXNlIHZhcmlvdXMgbGF5ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1BlcmhhcHMgbW9zdCBmYXNjaW5hdGluZyBhbmQgZGlmZmljdWx0IGlzIHRoZSBoaWdoLWxldmVsIG9mIGFtYmlndWl0eSB0aGF0IGNvbWVzIHdpdGggZW5naW5lZXJpbmcgbWFuYWdlbWVudC4gTWFueSBwcm9ibGVtcyBvciBxdWVzdGlvbnMgZG9u4oCZdCBoYXZlIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLiBUaGVyZSBhcmVu4oCZdCBhYnNvbHV0ZSBhbnN3ZXJzIHRvIHdoYXQgaXQgbWVhbnMgdG8gYmUgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgZWl0aGVyLCBidXQgdGhlcmUgYXJlIGNlcnRhaW4gdmFsdWVzIGFuZCBndWlkZXBvc3RzIHRvIGZvbGxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgbG9vayBhdCB3aGF0IGNhbiBzaGFwZSBvdXIgdGhpbmtpbmcgYWJvdXQgb3VyIHJvbGUgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgYW5kIGhvdyB0byBlZmZlY3RpdmVseSBzdXBwb3J0IGluZGl2aWR1YWwgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1doYXQgZG8gZW5naW5lZXJzIG5lZWQgdG8gdGhyaXZlIGF0IHdvcms/Jmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SXQgaGVscHMgdG8gc3RhcnQgc2hhcGluZyBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IHJvbGVzIGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCBlbmdpbmVlcnMgbmVlZCwgYW5kIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGV5IHRocml2ZS4gUmVzZWFyY2ggZnJvbSBwZXJmb3JtYW5jZSBjb2FjaCBhbmQgdHJhaW5lciBQYWxvbWEgTWVkaW5hIGV4cG9zZXMgc2l4IGNvcmUgbmVlZHMgaHVtYW5zIGhhdmUgKGluY2x1ZGluZyBhdCB3b3JrKS4gU2hlIGNhbGxzIHRoaXMgcmVzZWFyY2ggdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGFsb21hbWVkaW5hLmNvbS9iaWNlcHMmcXVvdDsmZ3Q7QklDRVBTIG1vZGVsJmx0Oy9hJmd0OzombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7QmVsb25naW5nLiZsdDsvc3Ryb25nJmd0OyBBcyBodW1hbnMsIHdlIHN0cml2ZSB0byBiZSBwYXJ0IG9mIGEgY29tbXVuaXR5IG9mIGxpa2UtbWluZGVkIHBlb3BsZSB3aGVyZSB3ZSB1bmRlcnN0YW5kIGFuZCBzdXBwb3J0IGVhY2ggb3RoZXIuIFdlIGFsc28gd2FudCB0byBmZWVsIGFzIGlmIHdlIGFyZSBub3QgYmVpbmcgZGlzY3JpbWluYXRlZCBhZ2FpbnN0IG9yIG1hcmdpbmFsaXplZC4gQmVsb25naW5nIGlzIHJlYWxseSBpbXBvcnRhbnQgdG8gbWUgcGVyc29uYWxseTogSSBsb3ZlIHdvcmtpbmcgYXMgcGFydCBvZiBhIGRpc3RyaWJ1dGVkIHRlYW0sIGJ1dCBJIGFsc28gcmVhbGx5IGVuam95IHNlZWluZyBwZW9wbGUgaW4gcGVyc29uIGV2ZXJ5IG9uY2UgaW4gYSB3aGlsZS4gSXQgbWFrZXMgbWUgZmVlbCBtb3JlIGNvbm5lY3RlZCB0byB0aGVtLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7SW1wcm92ZW1lbnQuJmx0Oy9zdHJvbmcmZ3Q7IFdlIGFsc28gc2VlayB0byBjb250aW51b3VzbHkgbGVhcm4sIGltcHJvdmUsIGFuZCBncm93IGluIGFyZWFzIHRoYXQgbWF0dGVyIHRvIHVzLCBhcyB3ZWxsIGFzIHRvIG91ciB0ZWFtIG9yIGNvbXBhbnkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtDaG9pY2UuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8gaGF2ZSBjaG9pY2UsIGNvbnRyb2wsIGFuZCBhdXRvbm9teSBvdmVyIGltcG9ydGFudCBwYXJ0cyBvZiBvdXIgbGl2ZXMuIEluIG9uZSBvZiBteSBwcmV2aW91cyByb2xlcywgSSB0b29rIG9uIGEgbG90IG9mIHdvcmsgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLiBCdXQgdWx0aW1hdGVseSwgdGhlIGNvbnRyb2wgSSBoYWQgb3ZlciBteSBkb21haW4gd2FzIGxpbWl0ZWQgZHVlIHRvIG9yZ2FuaXphdGlvbmFsIGlzc3VlcyDigJMgd2hpY2ggbGVkIG1lIHRvIGxlYXZlIHRoZSBjb21wYW55LiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7RXF1YWxpdHkuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8ga25vdyB0aGF0IG91ciBhY2Nlc3MgdG8gaW5mb3JtYXRpb24sIG1vbmV5LCB0aW1lLCBhbmQgb3RoZXIgcmVzb3VyY2VzIGlzIGZhaXIgYW5kIGVxdWFsIGZvciBldmVyeW9uZSDigJMgbm90IGp1c3QgZm9yIG91cnNlbHZlcywgYnV0IGFsc28gZm9yIHRoZSBwZW9wbGUgYXJvdW5kIHVzLiBFdmVyeW9uZeKAmXMgbmVlZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZXF1YWxseSBpbXBvcnRhbnQuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtQcmVkaWN0YWJpbGl0eS4mbHQ7L3N0cm9uZyZndDsgV2UgbG9vayBmb3IgY2VydGFpbnR5LCBzYWZldHksIGFuZCBzdGFiaWxpdHkgaW4gb3VyIGxpdmVzLiBXZSBhbHNvIHdhbnQgZ29hbHMsIHN0cmF0ZWd5LCBhbmQgZGlyZWN0aW9uIHRvIGJlIGNvbnNpc3RlbnQg4oCTIGFuZCB0byBub3QgY2hhbmdlIHRvbyBxdWlja2x5LiBJ4oCZdmUgYmVlbiBsZWFkaW5nIHRlYW1zIGluIGZhc3QtZ3Jvd2luZyBzdGFydHVwcyBmb3IgdGhlIGxhc3QgY291cGxlIG9mIHllYXJzLCBhbmQgd2hlbiB0aGVyZeKAmXMgYSBsb3Qgb2YgY2hhbmdlIGhhcHBlbmluZywgaXTigJlzIGEgY2hhbGxlbmdlIHRvIGluc3RpbGwgcHJlZGljdGFiaWxpdHkgaW4gdGVhbXMuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtTaWduaWZpY2FuY2UuJmx0Oy9zdHJvbmcmZ3Q7IERlZXAgZG93biwgYWxsIG9mIHVzIHNlZWsgbWVhbmluZywgaW1wb3J0YW5jZSwgYW5kIHN0YXR1cy4gV2UgYWxzbyB3YW50IHRvIGJlIGFwcHJlY2lhdGVkIGZvciBvdXIgd29yayBieSBwZW9wbGUgd2hvc2Ugb3BpbmlvbnMgbWVhbiBzb21ldGhpbmcgdG8gdXMuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0lmIG91ciBjb3JlIG5lZWRzIGFyZSB0aHJlYXRlbmVkLCBwZW9wbGUgcmVzb3J0IHRvIGZpZ2h0LW9yLWZsaWdodCBtb2RlcyBvZiByZWFjdGlvbiwgd2hpY2ggYXJlIHZlcnkgc3RyZXNzZnVsLiBUaGUgZmFpbHVyZSB0byBtZWV0IGNvcmUgbmVlZHMgaGFzIGhpZ2ggY29zdHMgZm9yIG9yZ2FuaXphdGlvbnMgYnkgaGFybWluZyBwZW9wbGUgb24gb3VyIHRlYW1zLiBTbyBob3cgY2FuIGVuZ2luZWVyaW5nIG1hbmFnZXJzIHB1dCB0aGUgQklDRVBTIG1vZGVsIGludG8gYWN0aW9uIHRvIGhlbHAgdGhlaXIgdGVhbXMgdGhyaXZlPyZsdDsvcCZndDsKCiZsdDtoMiZndDtVc2luZyB0cnVzdC1iYXNlZCByZWxhdGlvbnNoaXBzIHRvIGhlbHAgZW5naW5lZXJzIGdyb3cmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgZm91bmRhdGlvbiBvZiBiZWluZyBhIGdvb2QgZW5naW5lZXJpbmcgbWFuYWdlciBpcyBnZXR0aW5nIHRvIGtub3cgb3VyIHRlYW1tYXRlcyBhbmQgdW5kZXJzdGFuZGluZyB3aGF0IGlzIGltcG9ydGFudCB0byB0aGVtLiBIZXJlIGFyZSBhIGZldyBwbGFjZXMgdG8gc3RhcnQgYnVpbGRpbmcgdHJ1c3Qgd2l0aGluIHlvdXIgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0FzayBxdWVzdGlvbnMuJmx0Oy9zdHJvbmcmZ3Q7IE9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCB0b29scyBtYW5hZ2VycyBoYXZlIGlzIGFza2luZyBnb29kIHF1ZXN0aW9ucy4gVGhlIGJhc2lzIGZvciBkb2luZyBvdXIgam9icyB3ZWxsIGlzIGxpc3RlbmluZywgb2JzZXJ2aW5nLCB0YWtpbmcgbm90ZSBvZiB3aGF0IG1vdGl2YXRlcyBvdXIgdGVhbW1hdGVzLCBhbmQgcmVhbGx5IGRpZ2dpbmcgaW50byB0aGVpciByZXNwb25zZXMgdG8gb3VyIHF1ZXN0aW9ucy4gSSB1c3VhbGx5IGdhdGhlciBxdWVzdGlvbnMgYmVmb3JlIEkgbWVldCB3aXRoIG15IHRlYW1tYXRlcyBvbmUtb24tb25lLCBzbyBJIGFtIHByZXBhcmVkIGFuZCBJIGNhbiBndWlkZSB0aGUgY29udmVyc2F0aW9uIHRvd2FyZHMgdW5kZXJzdGFuZGluZyB0aGVtIGJldHRlci4gT3ZlciB0aW1lLCBJIGhhdmUgYnVpbHQgYSBraXQgb2Ygb25lLW9uLW9uZSBxdWVzdGlvbnMgdGhhdCBJIHB1bGwgb3V0IHdoZW4gSSBuZWVkIHNvbWUgaW5zcGlyYXRpb24gZm9yIHRoZXNlIGNvbnZlcnNhdGlvbnMuIEFza2luZyBxdWVzdGlvbnMgaGVscHMgdXMgYWRqdXN0IG91ciBsZWFkZXJzaGlwIHN0eWxlIHRvIHRoZSBwZW9wbGUgd2UgYXJlIGxlYWRpbmcuIEl0IGFsc28gZW5zdXJlcyB0aGF0IHRoZXkgZmVlbCB1bmRlcnN0b29kIGFuZCBoZWFyZCwgd2hpY2ggYXJlIHJlYWxseSBpbXBvcnRhbnQgcGlsbGFycyBvZiBpbmNsdXNpb24gYW5kIGJlbG9uZ2luZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0JlIGN1cmlvdXMuJmx0Oy9zdHJvbmcmZ3Q7IFBlb3BsZSBhcmUgZnVsbCBvZiBzdXJwcmlzZXMsIGFuZCBzb21ldGltZXMgb3VyIHRlYW1tYXRlc+KAmSByZWFjdGlvbnMgbWF5IGJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBleHBlY3RlZC4gSSBvbmNlIHJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIGVuZ2luZWVyIG9uIG15IHRlYW0gd2hvIHdhcyBkZWVwbHkgdXBzZXQgYWJvdXQgdGhlIHNwZWNpZmljIHdvcmRpbmcgdXNlZCBpbiBhIHByb2R1Y3QtcmVsZWFzZSBub3RlIHRvIGN1c3RvbWVycy4gQXQgZmlyc3QgSSBkaWQgbm90IHVuZGVyc3RhbmQgdGhlaXIgc3Ryb25nIHJlYWN0aW9uLiBCdXQgd2hlbiB3ZSB0YWxrZWQsIEkgbGVhcm5lZCB0aGUgZW5naW5lZXIgaGFkIGJlZW4gb3ZlcnJ1bGVkIGJ5IHNvbWVvbmUgd2l0aCBtb3JlIHBvd2VyLCBtYWtpbmcgdGhlbSBmZWVsIGhlbHBsZXNzLCBhbmQgdGhyZWF0ZW5pbmcgdGhlaXIgY29yZSBuZWVkIGZvciBjaG9pY2UgYW5kIGVxdWFsaXR5LiZsdDsvcCZndDsKCiZsdDtwJmd0O1doYXQgbWFuYWdlcnMgbWlnaHQgcGVyY2VpdmUgYXMgbm8gYmlnIGRlYWwgY2FuIGJlIGVub3Jtb3VzIHRocmVhdHMgdG8gb3RoZXIgcGVvcGxlLiBDYXNlcyB3aGVyZSB3ZeKAmXJlIHN1cnByaXNlZCBieSBvdXIgdGVhbW1hdGVz4oCZIHJlYWN0aW9ucyBhcmUgZ29vZCBvcHBvcnR1bml0aWVzIHRvIGZvY3VzIG9uIGh1bWFuLWNlbnRyaWMgcmVzcG9uc2VzLCBsaWtlIGdpdmluZyBwZW9wbGUgdGhlIG9wcG9ydHVuaXR5IHRvIHRhbGsgdGhyb3VnaCB0aGVpciBmZWVsaW5ncy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0Nvbm5lY3QgdG8gdGhlIGJpZ2dlciBwaWN0dXJlLiZsdDsvc3Ryb25nJmd0OyBDcmVhdGluZyBhbiBpbXBhY3QgaXMgYSB2ZXJ5IGdvb2QgbW90aXZhdG9yIGZvciBhbGwgb2YgdXMsIHNvIGhlbHBpbmcgZW5naW5lZXJzIHVuZGVyc3RhbmQgaG93IHRoZWlyIHdvcmsgY29ubmVjdHMgdG8gdGhlIGJpZ2dlciBwaWN0dXJlIChob3cgaXQgaGVscHMgdXNlcnMgb3Igc3VwcG9ydHMgb3RoZXIgdGVhbXMpIGlzIGFuIGV4dHJlbWVseSBpbXBvcnRhbnQgYW5kIHN0cmF0ZWdpYyBza2lsbCBmb3IgbWFuYWdlcnMuIFdoaWxlIGdvYWwtc2V0dGluZyBmcmFtZXdvcmtzIGxpa2UgT0tScyBjYW4gaGVscCwgaXQgaXMgYWxzbyBjcnVjaWFsIHRvIGFsaWduIGVuZ2luZWVyaW5nIGluaXRpYXRpdmVzIHdpdGggaGlnaGVyLWxldmVsIGdvYWxzLCBhbmQgY29ubmVjdCB0aGVtIGNsZWFybHkgd2l0aCB1c2VyIHZhbHVlLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7SW52b2x2ZSBlbmdpbmVlcnMgaW4gZGVjaXNpb24gbWFraW5nLiZsdDsvc3Ryb25nJmd0OyBGZWVsaW5nIHRoYXQgZGVjaXNpb25zIGFyZSBmYWlyIGFuZCBlcXVpdGFibGUgaXMgYW4gaW1wb3J0YW50IGNvbXBvbmVudCBvZiB0aGUgQklDRVBTIG1vZGVsLiBXaGVuIHdlIG1ha2UgZGVjaXNpb25zLCBpdCBpcyBoZWxwZnVsIHRvIGFzayBldmVyeW9uZSBmb3IgdGhlaXIgb3BpbmlvbnMgZmlyc3QsIGFuZCB0YWtlIHRoZWlyIG9waW5pb25zIGludG8gYWNjb3VudC4gSXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBnbyB3aXRoIHdoYXQgZXZlcnlvbmUgd2FudHMuIEJ1dCB3ZSBjYW4gc3RpbGwgZG8gYSBnb29kIGpvYiBhdCBjb250ZXh0dWFsaXppbmcgdGhlIGRlY2lzaW9ucyB3ZSBtYWtlLCBhbmQgaGVscGluZyBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IHRoZWlyIGZlZWRiYWNrIHdhcyBjb25zaWRlcmVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7R2l2ZSBmZWVkYmFjayBmb3IgZ3Jvd3RoLiZsdDsvc3Ryb25nJmd0OyBPbmUgb2YgdGhlIGJlc3QgdGhpbmdzIHdlIGdldCB0byBkbyBhcyBlbmdpbmVlcmluZyBtYW5hZ2VycyBpcyBzdXBwb3J0IGVuZ2luZWVyc+KAmSBncm93dGguIEdpdmUgZmVlZGJhY2sgcmVndWxhcmx5IHRvIGhlbHAgdGhlIHBlb3BsZSBvbiB5b3VyIHRlYW0gdW5kZXJzdGFuZCB3aGVyZSB0aGV5IGFyZSBhdCBhbmQgZ3JvdyDigJMgYnkgY291cnNlLWNvcnJlY3Rpbmcgd2hlcmUgbmVlZGVkLCBhcyB3ZWxsIGFzIGJ5IGRvaW5nIG1vcmUgaW4gdGhlIGFyZWFzIGluIHdoaWNoIHRoZXkgYXJlIGFscmVhZHkgZG9pbmcgZ3JlYXQuIE1hbmFnZXJzIG5lZWQgZmVlZGJhY2sgYXMgd2VsbDogaXTigJlzIGltcG9ydGFudCB0byByZWd1bGFybHkgYXNrIHlvdXIgdGVhbSBmb3IgZmVlZGJhY2sgc28geW91IGNhbiBtYWtlIGFkanVzdG1lbnRzLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Q29hY2ggZW5naW5lZXJzLiZsdDsvc3Ryb25nJmd0OyBDb2FjaGluZyBoZWxwcyBwZW9wbGUgZmluZCBhbnN3ZXJzIHRoZW1zZWx2ZXMsIGltcHJvdmVzIHRoZWlyIHByb2JsZW0tc29sdmluZyBhbmQgbGVhZGVyc2hpcCBza2lsbHMsIGFuZCBpbmNyZWFzZXMgbGVhcm5pbmcsIHJlc2lsaWVuY2UsIGFuZCBzZWxmLW1hbmFnZW1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTcG9uc29yIGVuZ2luZWVycy4mbHQ7L3N0cm9uZyZndDsgVGhpbmsgYmFjayBvbiB5b3VyIGNhcmVlciwgYW5kIHdoZXRoZXIgeW91IGhhdmUgaGFkIGEgbWVudG9yIHdobyBjb25uZWN0ZWQgeW91IHdpdGggc29tZW9uZSwgcHV0IHlvdXIgbmFtZSBmb3J3YXJkLCBhbmQgdXNlZCB0aGVpciBpbmZsdWVuY2UgdG8gbWFrZSBhIGRpZmZlcmVuY2UgaW4geW91ciBjYXJlZXIuIEJlIHRoYXQgcGVyc29uIGZvciBzb21lb25lIGVsc2U6IGludmVzdCBpbiB0aGVpciBncm93dGgsIGxpZnQgdGhlbSB1cCwgYW5kIHB1dCB5b3VyIHdlaWdodCBiZWhpbmQgdGhlaXIgc3VjY2Vzcy4gU3VwcG9ydGluZyB5b3VyIHRlYW3igJlzIHN1Y2Nlc3MgY2FuIG1ha2UgYSByZWFsIGRpZmZlcmVuY2UgZm9yIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhpcyBpcyB0aGUgZm91bmRhdGlvbiBvZiBvdXIgd29yayBhcyBlbmdpbmVlcmluZyBtYW5hZ2Vycy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RHJpdmluZyBhIGN1bHR1cmUgb2YgdHJ1c3QgYW5kIGNvbnRpbnVvdXMgaW1wcm92ZW1lbnQgb24gdGVhbXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgbmV4dCBpbXBvcnRhbnQgYnVpbGRpbmcgYmxvY2sgaW4gb3VyIHdvcmsgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgaXMgdGhlIHRlYW0uIEFjY29yZGluZyB0byByZXNlYXJjaCwgaGlnaC1wZXJmb3JtaW5nIHRlYW1zIG5lZWQgdGhlIGZvbGxvd2luZyBlbGVtZW50cy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7UHN5Y2hvbG9naWNhbCBzYWZldHkuJmx0Oy9zdHJvbmcmZ3Q7IFRoaXMgaXMgYWJvdXQgYmVsaWV2aW5nIHRoYXQgd2Ugd2lsbCBub3QgYmUgcmVqZWN0ZWQsIGFuZCBmZWVsaW5nIGZyZWUgdG8gZXhwcmVzcyBvdXIgd29yay1yZWxhdGVkIHRob3VnaHRzIGFuZCBmZWVsaW5ncyB0byB0aGUgcGVvcGxlIGFyb3VuZCB1cy4gSXQgYWxzbyBtZWFucyBiZWxpZXZpbmcgdGhhdCBvdGhlcnMgd29u4oCZdCB0aGluayBsZXNzIG9mIHVzIGlmIHdlIG1ha2UgYSB3ZWxsLWludGVudGlvbmVkIG1pc3Rha2Ugb3IgYXNrIGZvciBoZWxwLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7U3RydWN0dXJlIGFuZCBjbGFyaXR5LiZsdDsvc3Ryb25nJmd0OyBFdmVyeW9uZSBvbiB0aGUgdGVhbSBzaG91bGQgdW5kZXJzdGFuZCBleHBlY3RhdGlvbnMsIGdvYWxzLCBhbmQgYWNjb3VudGFiaWxpdHkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtNZWFuaW5nIGFuZCBpbXBhY3QuJmx0Oy9zdHJvbmcmZ3Q7IEhpZ2gtcGVyZm9ybWluZyB0ZWFtcyBmaW5kIGEgc2Vuc2Ugb2YgcHVycG9zZSBpbiB0aGVpciB3b3JrLCBhbmQga25vdyB0aGF0IHRoZWlyIHdvcmsgaGFzIGFuIGltcGFjdC4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7THVja2lseSBmb3IgbWFuYWdlcnMsIHRoaXMgcmVzZWFyY2ggbmVhdGx5IGFsaWducyB3aXRoIHRoZSBCSUNFUFMgbW9kZWwuIEFsbCBodW1hbiBjb3JlIG5lZWRzIGFyZSByZXByZXNlbnRlZCBhbmQgaGF2ZSBpbXBhY3QgYXQgdGhlIHRlYW0gbGV2ZWwgYXMgd2VsbC4gQnkgdW5kZXJzdGFuZGluZyBhbmQgcmVzcG9uZGluZyB0byBwZW9wbGXigJlzIG1vdGl2YXRpb25zLCBsZWFkZXJzIGNyZWF0ZSB0aGUgYmFzaXMgZm9yIHRlYW1zICB0byBleHByZXNzIHRoZW1zZWx2ZXMg4oCTIGFuZCBwcm92aWRlIHRoZSBzdHJ1Y3R1cmUsIG1lYW5pbmcsIGFuZCBpbXBhY3QgdGhleSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgdHJ1c3QuJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBmaXJzdCBzdGVwIGluIGNyZWF0aW5nIHN0cnVjdHVyZSBpcyBidWlsZGluZyByZWxhdGlvbnNoaXBzLiBGb3Igb3VyIGRpc3RyaWJ1dGVkIHRlYW1zIGF0IENpcmNsZUNJLCB3ZeKAmXZlIGJ1aWx0IGRpZmZlcmVudCBzdHJ1Y3R1cmVzIHRvIGhlbHAgdGVhbW1hdGVzIGRvIHRoYXQsIHN1Y2ggYXMgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucyBhbmQgZW5naW5lZXJpbmcgdGFsa3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTdHJ1Y3R1cmUgYXJvdW5kIGhvdyB3ZSBjb2xsYWJvcmF0ZS4mbHQ7L3N0cm9uZyZndDsgT3VyIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0kgaGFzIGRvdWJsZWQgaW4gc2l6ZSBmb3IgdGhyZWUgeWVhcnMgaW4gYSByb3cuIE92ZXIgdGhpcyB0aW1lLCB3ZeKAmXZlIG1vdmVkIHRvIGEgbW9yZSBzdHJlYW1saW5lZCBlbmdpbmVlcmluZyBkZWxpdmVyeSBwcm9jZXNzIGZvciBhbGwgdGVhbXMuIEJ1dCB3ZSBzdGlsbCBsZWF2ZSBpdCB0byB0aGUgdGVhbXMgdG8gZGVjaWRlIGhvdyB0byBpbXBsZW1lbnQgdCBkYXktdG8tZGF5IHByb2Nlc3NlcywgaW5jbHVkaW5nIGRhaWx5IHN0YW5kdXAgbWVldGluZ3MsIHBsYW5uaW5nIHNlc3Npb25zLCBvciBjb2xsYWJvcmF0aW9uLiBFdmVyeSB0ZWFtIGhhcyBzcGVjaWZpYyBuZWVkcywgYW5kIHRoZXkga25vdyBiZXN0IGhvdyB0byBhZGRyZXNzIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtSZW1vdmUgYmxvY2tlcnMuJmx0Oy9zdHJvbmcmZ3Q7IFN0cnVjdHVyZXMgY2FuIGFsc28gaGVscCBtaXRpZ2F0ZSB0aGUgaW1wYWN0IG9mIGdldHRpbmcgYmxvY2tlZCBhdCB3b3JrLiBXZSBhbGwga25vdyBob3cgZnJ1c3RyYXRpbmcgaXQgaXMgdG8gYmUgc3R1Y2suIFB1dHRpbmcgdXAgcGF0aHdheXMgdG8gaGVscCBwZW9wbGUgZ2V0IHVuYmxvY2tlZCBjYW4gYmUgcmVhbGx5IGltcG9ydGFudCDigJMgZm9yIGV4YW1wbGUsIHNldHRpbmcgdXAgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucywgaW52ZXN0aW5nIGluIHNlbGYtc2VydmUgaW5mb3JtYXRpb24gYWNjZXNzLCBzdXBwb3J0aW5nIGVhY2ggb3RoZXIgYWNyb3NzIHRlYW1zLCBwdXR0aW5nIHVwIGVzY2FsYXRpb24gcGF0aHMgZm9yIHBlb3BsZSB0byBnZXQgaGVscCB3aGVuIHRoZXkgbmVlZCBpdCwgb3IgaGVscGluZyBwZW9wbGUgc3VwcG9ydCBlYWNoIG90aGVyIHRocm91Z2gga25vd2xlZGdlLXNoYXJpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtDb250aW51b3VzbHkgaW1wcm92ZS4mbHQ7L3N0cm9uZyZndDsgV2UgY2FuIHVzZSByZXRyb3NwZWN0aXZlcyB0byBkaXNjdXNzIGFuZCBpbXByb3ZlIGhvdyB3ZSB3b3JrIHRvZ2V0aGVyLiBCbGFtZWxlc3MgcG9zdG1vcnRlbXMgYXJlIGFsc28gYSBncmVhdCB0b29sIHRvIGhlbHAgdW5kZXJzdGFuZCBwcm9ibGVtcyBhbmQgZHJpdmUgdG93YXJkcyBzb2x1dGlvbnMuIENvZGUgcmV2aWV3cywgbWVudG9yaW5nLCBvciBrbm93bGVkZ2Ugc2hhcmluZyBjYW4gaGVscCB0ZWFtIG1lbWJlcnMgbGVhcm4gZnJvbSBlYWNoIG90aGVyLiBUaGUgd2F5IHdlIHRhbGsgYWJvdXQgbGVhcm5pbmcgbWF0dGVycyDigJMgZXNwZWNpYWxseSB0aGUgd2F5IHdlIGRpc2N1c3MgbWlzdGFrZXMuIFRoZXNlIGRlY2lzaW9ucyB3aWxsIGZ1bmRhbWVudGFsbHkgc2hhcGUgdGhlIGN1bHR1cmUgb2Ygb3VyIHRlYW1zLCBhbmQgZGV0ZXJtaW5lIHdoZXRoZXIgcGVvcGxlIGZlZWwgc2FmZSBvciB0aHJlYXRlbmVkIGluIHRoZWlyIGNvcmUgbmVlZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtEcml2ZSB0b3dhcmQgYWxpZ25tZW50LiZsdDsvc3Ryb25nJmd0OyBDb21tdW5pY2F0ZSBzdHJhdGVneSwgZGlyZWN0aW9uLCBhbmQgcmVsZXZhbnQgdGFjdGljYWwgZGV0YWlscyB0byBvdXIgdGVhbXMg4oCTIGFuZCByZW1lbWJlciBpdOKAmXMgYWxtb3N0IGltcG9zc2libGUgdG8gb3Zlci1jb21tdW5pY2F0ZSB0aGVzZSBkZXRhaWxzLiBBbHdheXMgcmVwZWF0IHdoYXTigJlzIGltcG9ydGFudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBlbmdpbmVlcmluZyBtYW5hZ2Vycywgd2UgYXJlIGxpa2UgbW9ydGFyOiBXZSBjb25uZWN0IHN0cnVjdHVyZXMsIHRlYW1zLCBhbmQgcGVvcGxlLiBXZSBob2xkIHRoZW0gdG9nZXRoZXIsIGJ1dCBhbHNvIGlkZW50aWZ5IGFuZCBmaWxsIGdhcHMgYXMgbmVlZGVkLiBIYW5kbGluZyBhbWJpZ3VpdHkgaXMgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgZGlmZmljdWx0IGFzcGVjdHMgb2YgZW5naW5lZXJpbmcgbWFuYWdlbWVudC4uIEZvciBhIGxvdCBvZiB3b3JrIGluIG91ciBmaWVsZCwgdGhlcmUgYXJlIG5vIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLCBsZXQgYWxvbmUgcmVzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T3VyIHdvcmsgaXNu4oCZdCBzbyBtdWNoIGFib3V0IHVzOyBpdOKAmXMgYWJvdXQgdGhlIHBlb3BsZSwgdGVhbXMsIGFuZCBvcmdhbml6YXRpb25zIHdlIHN1cHBvcnQuIFdlIGJ1aWxkIHN0cnVjdHVyZXMgdG8gaGVscCBvdGhlcnMgc2hpbmUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1N1cHBvcnRpbmcgb3JnYW5pemF0aW9uYWwgY2hhbmdlJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7TGFzdGx5LCBjcmVhdGluZyBlbnZpcm9ubWVudHMgaW4gd2hpY2ggZW5naW5lZXJzIGNhbiB0aHJpdmUgaXMgYWJvdXQgc3VwcG9ydGluZyBvdXIgb3JnYW5pemF0aW9uLiBXZSBuZWVkIHRvIHVzZSBvdXIgcG93ZXIgYXMgbWFuYWdlcnMgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLCBubyBtYXR0ZXIgdGhlIHNpemUgb2Ygb3VyIGJ1c2luZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtBZHZvY2F0ZSBmb3IgY2hhbmdlLiZsdDsvc3Ryb25nJmd0OyBUbyBiZSBlZmZlY3RpdmUgYXMgbWFuYWdlcnMsIHdlIG5lZWQgdG8gcHVzaCBmb3Igb3JnYW5pemF0aW9uYWwgY2hhbmdlIHRvIGltcHJvdmUgdGhlIGxhcmdlciBzdHJ1Y3R1cmVzIGFyb3VuZCB1cy4gRm9yIGV4YW1wbGUsIHdlIG1heSBuZWVkIHRvIGFkdm9jYXRlIGZvciBtb3JlIGNsYXJpdHkgYXJvdW5kIGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMsIGhhdmUgY29udmVyc2F0aW9ucyBhYm91dCB3aGF0IGVuZ2luZWVyaW5nIG1hbmFnZW1lbnQgc2hvdWxkIGJlIGxpa2UgaW4gb3VyIGNvbXBhbnksIGFuZCBkZXRlcm1pbmUgcmVxdWlyZW1lbnRzIGZvciBoaXJpbmcgZW5naW5lZXJpbmcgbWFuYWdlcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtNYW5hZ2UgdXAuJmx0Oy9zdHJvbmcmZ3Q7IE1hbmFnaW5nIG91ciBvd24gbWFuYWdlcnMgaXMgYSB1c2VmdWwgYnV0IGRpZmZpY3VsdCBza2lsbC4gRHJpdmluZyBvcmdhbml6YXRpb25hbCBjaGFuZ2UgYWxzbyBtZWFucyBtYWtpbmcgc3VyZSB0aGF0IG91ciBlbmdpbmVlcnPigJkgY29uY2VybnMgYXJlIGhlYXJkIGF0IHRoZSBoaWdoZXN0IGxldmVscywgYW5kIHRoYXQgd2UgdXNlIG91ciBwb3dlciB0byBtYWtlIHN1cmUgZW5naW5lZXJzIGhhdmUgYSB2b2ljZSBpbiB0aGUgcmVzdCBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgZnJhbWV3b3JrcyBhbmQgc3RhbmRhcmRzLiZsdDsvc3Ryb25nJmd0OyBXaGlsZSBpdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIG1ha2Ugcm9vbSBmb3IgaW5kaXZpZHVhbCBuZWVkcywgc3RydWN0dXJlcyBhbmQgZnJhbWV3b3JrcyBmb3IgbWFuYWdlcnMgaGVscCB1cyBob2xkIGVhY2ggb3RoZXIgYWNjb3VudGFibGUuIFRoZXkgYWxzbyAgaGVscCBsZXZlbCB0aGUgcGxheWluZyBmaWVsZCBhbmQgYnVpbGQgaW4gZXF1YWxpdHkgZm9yIHRoZSBwZW9wbGUgb24gb3VyIHRlYW1zLiBPbiBteSBjdXJyZW50IHRlYW0sIGV2ZXJ5IHF1YXJ0ZXIgd2UgcGljayBzb21lIGhpZ2gtcHJpb3JpdHkgcHJvamVjdHMgIHRvIGltcHJvdmUgaG93IHdlIHdvcmsgYXMgYW4gb3JnYW5pemF0aW9uLiBNb3N0IHJlY2VudGx5LCB3ZeKAmXZlIHdvcmtlZCBvbiBvdXIgaGlyaW5nIHByb2Nlc3MgYW5kIGluY2lkZW50IHJlbWVkaWF0aW9uOyBsYXN0IHllYXIsIHdlIGRldmVsb3BlZCBhbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvd2h5LXdlLXJlLWRlc2lnbmVkLW91ci1lbmdpbmVlcmluZy1jYXJlZXItcGF0aHMtYXQtY2lyY2xlY2kvJnF1b3Q7Jmd0O2ludGVybmFsIGNhcmVlciBncm93dGggZnJhbWV3b3JrIGZvciBlbmdpbmVlcnMmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtHcm93aW5nIGFzIGEgbGVhZGVyJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7QmVpbmcgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgaXNu4oCZdCBhbHdheXMgYSBzdHJhaWdodGZvcndhcmQgcGF0aDsgYSBsb3QgZGVwZW5kcyBvbiB3aGVyZSB3ZSBhcmUgYXQgaW4gb3VyIGNhcmVlcnMgYW5kIHdoZXJlIHdlIGFyZSBsb29raW5nIHRvIGdvLCBhcyB3ZWxsIGFzIHRoZSBncm93dGggc3RhZ2UsIHNpemUsIGFuZCBuZWVkcyBvZiBvdXIgb3JnYW5pemF0aW9ucy4gSW4gb3VyIGRhaWx5IHdvcmssIHdlIGhvbGQgdmFzdCBhbW91bnRzIG9mIHVuY2VydGFpbnR5IHdoaWxlIGFsc28gdHJ5aW5nIHRvIG1ha2UgcHJvZ3Jlc3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QW4gb3ZlcmFyY2hpbmcgdGhlbWUgaW4gbXkgd29yayBpbiBlbmdpbmVlcmluZyBtYW5hZ2VtZW50ICBoYXMgYmVlbiBncm93dGggYW5kIGltcHJvdmVtZW50LiBXZSByYXJlbHkgZGVhbCB3aXRoIGdyZWVuZmllbGQgcHJvamVjdHMgb3IgYXJlIGFibGUgdG8gYnVpbGQgYSB0ZWFtIG9yIGRlcGFydG1lbnQgZnJvbSBzY3JhdGNoLiBFdmVuIHdoZW4gd2UgZG8sIHdlIGJ1aWxkIG9uIGV4aXN0aW5nIHN0cnVjdHVyZXMgaW4gb3VyIG9yZ2FuaXphdGlvbi4gSSBiZWxpZXZlIG91ciBzdXBwb3J0aW5nIHJvbGUgbGFyZ2VseSBtZWFucyBoZWxwaW5nIGVuZ2luZWVycyBncm93LCBzdXBwb3J0aW5nIHRlYW1zIGF0IGNvbnRpbnVvdXNseSBsZWFybmluZywgYW5kIGhlbHBpbmcgb3JnYW5pemF0aW9ucyBiZWNvbWUgYmV0dGVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVyaW5nIG1hbmFnZXJzLCB3ZSBmcmVxdWVudGx5IGZhY2UgcXVlc3Rpb25zIHRoYXQgZG9u4oCZdCBjbGVhciByaWdodCBvciB3cm9uZyBhbnN3ZXJzLiBNYW55IHllYXJzIGFnbywgbXkgbGVhZGVyc2hpcCBjb2FjaCBlbmNvdXJhZ2VkIG1lIHRvIHVzZSB0aG9zZSBraW5kcyBvZiB1bmNlcnRhaW4gc2l0dWF0aW9ucyB0byBhc2sgbXlzZWxmLCDigJxXaGF0IGtpbmQgb2YgbGVhZGVyIGRvIEkgd2FudCB0byBiZT/igJ0mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJIHdhbnQgdG8gbGVhdmUgdGhlIGxhc3QgY2FsbCB0byBncm93dGggYW5kIGltcHJvdmVtZW50IHdpdGggeW91IChhbmQgbWUpOiBObyBtYXR0ZXIgd2hhdCB5b3VyIHJvbGUgb3IgY29tcGFueSBpcyBsaWtlLCB3b3JrIG9uIHNoYXBpbmcgeW91ciBhcHByb2FjaCB0byBlbmdpbmVlcmluZyBtYW5hZ2VtZW50LiBHZXQgdG8ga25vdyB0aGUgcGVvcGxlIHRoYXQgeW91IHdvcmsgd2l0aCwgYW5kIHVzZSBmZWVkYmFjayB0byBoZWxwIHRoZW0gY291cnNlLWNvcnJlY3QuIEJ1aWxkIHRlYW1zIHRoYXQgYXJlIHBzeWNob2xvZ2ljYWxseSBzYWZlIHBsYWNlcywgd2hlcmUgcGVvcGxlIGZpbmQgbWVhbmluZyBpbiBhIHNoYXJlZCBwdXJwb3NlLiBBbmQgdXNlIHlvdXIgcG93ZXIgYW5kIHByaXZpbGVnZSB0byBkcml2ZSBjaGFuZ2UgaW4geW91ciBvcmdhbml6YXRpb24uIE1ha2UgcGVvcGxlIHRoZSBjZW50ZXIgYW5kIGZvY3VzIG9mIHlvdXIgd29yaywgYW5kIGJ1aWxkIG9uIHRoYXQgZm91bmRhdGlvbiB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhleSBjYW4gdGhyaXZlLiAgQWx3YXlzIHB1c2ggdG8gY29udGludW91c2x5IGltcHJvdmUuIExlYWQgd2l0aCBodW1ibGVuZXNzLCBlbXBhdGh5LCBhbmQgbG90cyBvZiBjdXJpb3NpdHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2hhdCBraW5kIG9mIGxlYWRlciBkbyB5b3Ugd2FudCB0byBiZT8mbHQ7L3AmZ3Q7CgombHQ7aHIgLyZndDsKJmx0O3AmZ3Q7SWYgeW914oCZcmUgY3VyaW91cyBhYm91dCBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IGF0IENpcmNsZUNJIGFuZCB3b3JraW5nIHdpdGggdXM6IGpvaW4gdXMhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9ib2FyZHMuZ3JlZW5ob3VzZS5pby9jaXJjbGVjaSZxdW90OyZndDtXZeKAmXJlIGhpcmluZyBlbmdpbmVlcmluZyBtYW5hZ2VycyZsdDsvYSZndDsuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5CdWlsZGluZyBhbmQgZGVwbG95aW5nIEZsdXR0ZXIgYXBwcyB3aXRoIEZhc3RsYW5lPC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RlcGxveS1mbHV0dGVyLWFuZHJvaWQvPC9saW5rPgogICAgICAgIDxwdWJEYXRlPldlZCwgMjkgQXByIDIwMjAgMTA6MDA6MDAgLTA3MDA8L3B1YkRhdGU+CiAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9InRydWUiPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZGVwbG95LWZsdXR0ZXItYW5kcm9pZC88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5HYWJyaWVsIFNpbW1lcjwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvJnF1b3Q7Jmd0O0ZsdXR0ZXImbHQ7L2EmZ3Q7IGlzIGEgdG9vbGtpdCBwcm92aWRlZCBieSBHb29nbGUgZm9yIGJ1aWxkaW5nIGNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9ucywgaW5jbHVkaW5nIEFuZHJvaWQsIGlPUywgYW5kIHdlYiBhcHBzLiBBcyBtb3JlIGFwcHMgYXJlIHdyaXR0ZW4gdXNpbmcgaXQgYW5kIERhcnQgKHRoZSB1bmRlcmx5aW5nIGxhbmd1YWdlKSwgaXTigJlzIGJlY29taW5nIG1vcmUgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyBkZXZlbG9wZXJzIGNhbiBwYWNrYWdlIGFuZCBkZWxpdmVyIHRoZWlyIGNvZGUgdG8gdGhlaXIgdXNlcnMuIExldmVyYWdpbmcgQ2lyY2xlQ0kgYW5kIEZhc3RsYW5lLCB0aGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcHJvY2VzcyB0aGF0IGNhbiBiZSBhdXRvbWF0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbGluZyBGbHV0dGVyIGFuZCBjcmVhdGluZyB5b3VyIGZpcnN0IGFwcCBjYW4gYmUgZG9uZSBieSBmb2xsb3dpbmcgdGhlc2UgZ3VpZGVzOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvZG9jcy9nZXQtc3RhcnRlZC9pbnN0YWxsJnF1b3Q7Jmd0O0luc3RhbGwmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2ZsdXR0ZXIuZGV2L2RvY3MvZ2V0LXN0YXJ0ZWQvY29kZWxhYiZxdW90OyZndDtXcml0ZSB5b3VyIGZpcnN0IGFwcCZsdDsvYSZndDsuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBkZWZhdWx0IOKAnGhlbGxvIHdvcmxk4oCdIGFwcCB3aWxsIHN1ZmZpY2UuIFdlIHdvbuKAmXQgYmUgZGVhbGluZyBtdWNoIHdpdGggdGhlIGFwcGxpY2F0aW9uIGl0c2VsZi4gUHVzaCBpdCB0byBhIHJlcG9zaXRvcnkgb24gR2l0SHViLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Vuc3VyZSB0aGF0IHlvdSBhcmUgc2V0IHVwIHRvIHB1Ymxpc2ggYXBwcyB1c2luZyBHb29nbGUgUGxheSBvciB0aGUgQXBwbGUgQXBwIFN0b3JlIC0gc3RlcHMgZm9yIGVhY2ggd2lsbCB2YXJ5LCBzbyBiZSBzdXJlIHRvIGZvbGxvdyB0aGUgc3RlcHMgb3V0bGluZWQgZm9yIHRoZSByZXNwZWN0aXZlIHByb3ZpZGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBbmRyb2lkJmx0Oy9oMiZndDsKCiZsdDtwJmd0O1doZW4gcHVibGlzaGluZyBBbmRyb2lkIGFwcHMsIHRoZXJlIGFyZSBhIGZldyByZXF1aXJlbWVudHMgdG8gc2F0aXNmeSBiZWZvcmUgaW1wbGVtZW50aW5nIEZhc3RsYW5lLiBBbiDigJx1cGxvYWQga2V54oCdIGlzIHJlcXVpcmVkIHNvIHRoYXQgR29vZ2xlIGNhbiB2ZXJpZnkgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUgYXBwIGJlZm9yZSBhY2NlcHRpbmcgaXQuIFN0ZXBzIGZvciBzZXR0aW5nIHRoaXMgdXAgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9mbHV0dGVyLmRldi9kb2NzL2RlcGxveW1lbnQvYW5kcm9pZCZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oy4gSXTigJlzIHJlY29tbWVuZGVkIHRvIHVzZSBBcHBCdW5kbGVzIHdoZW4gYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBhcyBpdCBhbGxvd3MgR29vZ2xlIHRvIGJ1aWxkIGluZGl2aWR1YWwgQVBLcyBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyB3aGlsZSBrZWVwaW5nIGZpbGVzaXplIGRvd24uIFRha2Ugbm90ZSBvZiB3aGVyZSB5b3Ugc2F2ZSB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5qa3MmbHQ7L2NvZGUmZ3Q7IGZpbGUuIFdoaWxlIGl0IGNhbiBsaXZlIGluIHlvdXIgaG9tZSBkaXJlY3RvcnksIGhhdmluZyBpdCBzYXZlZCB0byBhIGdpdC1pZ25vcmVkIGRpcmVjdG9yeSBpbiB5b3VyIHByb2plY3Qgd2lsbCBjb21lIGluIGhhbmR5IHdoZW4gY29uZmlndXJpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1R3byB0aGluZ3MgZnJvbSB0aGlzIGd1aWRlIHdpbGwgbmVlZCB0byBiZSBhZGRlZCB0byBDaXJjbGVDSSBhcyAmbHQ7YSBocmVmPSZxdW90Oy9kb2NzLzIuMC9lbnYtdmFycy8mcXVvdDsmZ3Q7ZW52aW9ybm1lbnQgdmFyaWFibGVzJmx0Oy9hJmd0OzogdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlIGFuZCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7a2V5LmprcyZsdDsvY29kZSZndDsgZmlsZS4gVGhpcyB3aWxsIGFsbG93IHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBzaWduIHRoZSBhcHBsaWNhdGlvbi4gU2luY2Ugb25lIGZpbGUgcmVxdWlyZXMgbmV3bGluZXMgdG8gYmUgcHJlc2VudCwgYW5kIGFub3RoZXIgaXMgYSBiaW5hcnkgZmlsZSwgaXTigJlzIHJlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgYmFzZTY0LWVuY29kZWQgcHJpb3IgdG8gYWRkaW5nIHRoZW0gYXMgZW52aW9ybm1lbnQgdmFyaWFibGVzIHRvIHByZXNlcnZlIHRoZSBkYXRhLiZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBjYW4gZW5jb2RlIHRoZW0gYnkgcnVpbm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2F0ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7IHwgYmFzZTY0IC13IDAgIyAtdyAwIHdpbGwgZW5zdXJlIG5vIG5ld2xpbmVzIGFyZSBwcmVzZW50LgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBmaWxlcyBjYW4gdGhlbiBiZSByZS1hZGRlZCBkdXJpbmcgdGhlIGpvYiB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2VjaG8gJnF1b3Q7JEVOVl9WQVJJQUJMRV9OQU1FJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIGFsc28gd2FudCB0byBzZXQgdXAgYSBGYXN0bGFuZSBzZXJ2aWNlIGFjY291bnQgd2hpbGUgY3JlYXRpbmcgeW91ciBBbmRyb2lkIHNldHVwLiBZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5mYXN0bGFuZS50b29scy9nZXR0aW5nLXN0YXJ0ZWQvYW5kcm9pZC9zZXR1cC8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuIEJlIHN1cmUgdG8ga2VlcCB5b3VyIFNlcnZpY2UgQWNjb3VudCBKU09OIGZpbGUgaGFuZHkuIFdl4oCZbGwgYmUgYWRkaW5nIHRoYXQgdG8gdGhlIHBpcGVsaW5lIHNob3J0bHkuIEFsc28gbm90ZSB0aGF0IGNvbW1hbmRzIHNob3VsZCBiZSBydW4gZnJvbSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZCZsdDsvY29kZSZndDsgZGlyZWN0b3J5IHVuZGVyIHlvdXIgRmx1dHRlciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IHJlcXVpcmVkIGJ5IEZhc3RsYW5lIGNhbiBiZSBkb25lIGJ5IGFkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IEpTT04gZmlsZSBjb250ZW50cyBhcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IGVudmlvcm5tZW50IHZhcmlhYmxlLiBUaGlzIGlzIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1NVUFBMWV9KU09OX0tFWSZsdDsvY29kZSZndDsgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgYSBmaWxlIHBhdGggdG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0Zhc3RsYW5lJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05vdyB0aGF0IG91ciBlbnZpb3JubWVudCB2YXJpYWJsZXMgYXJlIGluIHBsYWNlIGFuZCB3ZSBjYW4gYnVpbGQgYSBzaWduZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LmFhYiZsdDsvY29kZSZndDsgZmlsZSB1c2luZyBGbHV0dGVyLCBpdOKAmXMgdGltZSB0byB0ZWxsIEZhc3RsYW5lIGhvdyB0byBkbyB0aGlzIGZvciB1cy4gV2XigJlsbCBzdGFydCB3aXRoIEFuZHJvaWQuIE9wZW5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZC9mYXN0bGFuZS9GYXN0ZmlsZSZsdDsvY29kZSZndDsgd2lsbCByZXZlYWwgc29tZSBkZWZhdWx0cyBmb3IgYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBidXQgdGhleSB3b27igJl0IHdvcmsgZm9yIG91ciB1c2UgY2FzZS4gV2XigJlyZSBidWlsZGluZyB3aXRoIEZsdXR0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rmlyc3QsIGxldOKAmXMgZGVmaW5lIGEgbmV3IOKAnGxhbmXigJ0uIFRoaXMgaXMgYSBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgRmFzdGxhbmUgd2lsbCBleGVjdXRlIHdoZW4gY2FsbGVkLiBGb3Igbm93LCB3ZeKAmWxsIGJlIHB1c2hpbmcgb3VyIGFwcCB0byB0aGUg4oCcYmV0YeKAnSBjaGFubmVsLCBub3QgdG8gcHJvZHVjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwoKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgaXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIGxhbmUuIE5leHQsIHdl4oCZbGwgd2FudCB0byBncmFiIGEgYnVpbGQgbnVtYmVyIHdoaWNoIGlzIGFuIGluY3JlbWVudGluZyBudW1iZXIgdXNlZCBhcyBhIHJlZmVyZW5jZSBmb3IgdGhlIHZlcnNpb24gb2YgdGhlIGFwcCAod2hpY2ggZGlmZmVycyBmcm9tIHRoZSB1c2VyLWZhY2luZyBzZW12ZXIpLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHRvIHRoZSBsYW5lOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ICBidWlsZF9udW1iZXIgPSBudW1iZXJfb2ZfY29tbWl0cygpCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgZW5zdXJlcyB0aGF0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZF9udW1iZXImbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0aGF0IGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBHaXQgcmVwb3NpdG9yeS4gVGhpcyBjYW4gYWxzbyBiZSBtYW51YWxseSBpbmNyZW1lbnRlZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVic3BlYy55YW1sJmx0Oy9jb2RlJmd0OyBmaWxlIHRoYXQgRmx1dHRlciB1c2VzIHRvIGJ1aWxkIHRoZSBwYWNrYWdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdl4oCZbGwgZG8gdGhlIGJ1aWxkaW5nLiBXZSBuZWVkIHRvIGdvIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5LCBydW4gYSBmZXcgc2hlbGwgY29tbWFuZHMgdG8gZmV0Y2ggb3VyIHBhY2thZ2VzLCBjbGVhbiB0aGUgcHJldmlvdXMgYnVpbGQgKGlmIGF2YWlsYWJsZSksIHRoZW4gYnVpbGQgdGhlIGFwcGJ1bmRsZSB3aXRoIG91ciBidWlsZCBudW1iZXIuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIERpci5jaGRpciAmcXVvdDsuLi8uLiZxdW90OyBkbwogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7cGFja2FnZXMmcXVvdDssICZxdW90O2dldCZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2NsZWFuJnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7YnVpbGQmcXVvdDssICZxdW90O2FwcGJ1bmRsZSZxdW90OywgJnF1b3Q7LS1idWlsZC1udW1iZXI9I3tidWlsZF9udW1iZXJ9JnF1b3Q7KQogIGVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtGaW5hbGx5LCB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYXBwIHN0b3JlIG9uIHRoZSBiZXRhIGNoYW5uZWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIHVwbG9hZF90b19wbGF5X3N0b3JlKHRyYWNrOiAnYmV0YScsIGFhYjogJy4uL2J1aWxkL2FwcC9vdXRwdXRzL2J1bmRsZS9yZWxlYXNlL2FwcC5hYWInKQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGxhbmUgd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwogIGJ1aWxkX251bWJlciA9IG51bWJlcl9vZl9jb21taXRzKCkKICBEaXIuY2hkaXIgJnF1b3Q7Li4vLi4mcXVvdDsgZG8KICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O3BhY2thZ2VzJnF1b3Q7LCAmcXVvdDtnZXQmcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtjbGVhbiZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2J1aWxkJnF1b3Q7LCAmcXVvdDthcHBidW5kbGUmcXVvdDssICZxdW90Oy0tYnVpbGQtbnVtYmVyPSN7YnVpbGRfbnVtYmVyfSZxdW90OykKICBlbmQKICB1cGxvYWRfdG9fcGxheV9zdG9yZSh0cmFjazogJ2JldGEnLCBhYWI6ICcuLi9idWlsZC9hcHAvb3V0cHV0cy9idW5kbGUvcmVsZWFzZS9hcHAuYWFiJykKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dvIGFoZWFkIGFuZCBzYXZlIHRoZSBmaWxlLCBhbmQgdGhlbiBydW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZmFzdGxhbmUgYmV0YSZsdDsvY29kZSZndDsuIEl0IHdpbGwgcnVuIHRocm91Z2ggdGhlIHN0ZXBzLCBidWlsZGluZyB0aGUgYXBwIGFuZCBwdXNoaW5nIHRoZSBhcHBsaWNhdGlvbiBmb3IgeW91LiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgd2XigJlsbCBkbyB0aGUgc2FtZSBmb3IgaU9TLCBidXQgcmVwbGFjaW5nIHNvbWUgb2YgdGhlIGNvbW1hbmRzIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBpT1MgY29tbWFuZHMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lvcy9GYXN0bGFuZSZsdDsvY29kZSZndDsgZGlyZWN0b3J5LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZGVzYyAmcXVvdDtEZXBsb3kgYSBuZXcgYnVpbGQgdG8gVGVzdGZsaWdodCZxdW90OwpsYW5lIDpiZXRhIGRvCiAgRGlyLmNoZGlyICZxdW90Oy4uLy4uJnF1b3Q7IGRvCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtwYWNrYWdlcyZxdW90OywgJnF1b3Q7Z2V0JnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7Y2xlYW4mcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtidWlsZCZxdW90OywgJnF1b3Q7aW9zJnF1b3Q7LCAmcXVvdDstLXJlbGVhc2UmcXVvdDssICZxdW90Oy0tbm8tY29kZXNpZ24mcXVvdDspCiAgZW5kCiAgYnVpbGRfaW9zX2FwcChzY2hlbWU6ICZxdW90O015QXBwJnF1b3Q7KQogIHVwbG9hZF90b190ZXN0ZmxpZ2h0CmVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhcHAgaXMgYnVpbHQgdHdpY2UuIFRoZSBmaXJzdCBidWlsZCBidWlsZHMgYWdhaW5zdCB0aGUgbGF0ZXN0IEZsdXR0ZXIgdG9vbGNoYWluLCB3aGlsZSB0aGUgc2Vjb25kIGJ1aWxkIGJ1aWxkcyB0aGUgYWN0dWFsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5pcGEmbHQ7L2NvZGUmZ3Q7IGZpbGUgdGhhdCB3aWxsIGJlIHVwbG9hZGVkIHRvIFRlc3RmbGlnaHQuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O05vdywgd2l0aCBDaXJjbGVDSSZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gcGxhY2UsIGl04oCZcyB0aW1lIHRvIGdldCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB3cml0dGVuIHNvIHRoYXQgYSBwdXNoIHRvIGEgYnJhbmNoIGlzIHRyYW5zbGF0ZWQgdG8gYSBuZXcgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7aU9TJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0ZvciBkZXBsb3lpbmcgd2l0aCBpT1MsIENpcmNsZUNJIGFscmVhZHkgaGFzIGRvY3MgdG8gY292ZXIgdGhpcyEgU3RlcHMgZm9yIHNldHRpbmcgdXAgRmFzdGxhbmUgZGVwbG95bWVudCB3aXRoIEZsdXR0ZXIgaXMgc2ltaWxhciB0byB0aGUgc3RlcHMgb3V0bGluZWQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvaW9zLWNvZGVzaWduaW5nLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OyBhbmQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZGVwbG95aW5nLWlvcy8jYXBwLXN0b3JlLWNvbm5lY3QmcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0FuZHJvaWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7V2hlbiBpdCBjb21lcyB0byB0aGUgRG9ja2VyIGltYWdlIHRvIHBpY2ssIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gRWl0aGVyIHlvdSBjYW4gYnVpbGQgYW5kIHB1c2ggdGhlIERvY2tlciBpbWFnZSB1c2VkIGJ5IHRoZSBGbHV0dGVyIHByb2plY3QgZm91bmQgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2Jsb2IvbWFzdGVyL2Rldi9jaS9kb2NrZXJfbGludXgvRG9ja2VyZmlsZSZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oywgb3IgeW91IGNhbiBwdWxsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dtZW1zdHIvZmx1dHRlci1mYXN0bGFuZTpsYXRlc3QmbHQ7L2NvZGUmZ3Q7LCB3aGljaCBpcyBidWlsdCBvbiB0b3Agb2YgYW4gZXhpc3RpbmcgRmx1dHRlciBEb2NrZXIgaW1hZ2UgYW5kIGluc3RhbGxzIEZhc3RsYW5lIGFsb25nc2lkZSBpdCwgYXZvaWRpbmcgYWRkaXRpb25hbCBvdmVyaGVhZCBvZiBpbnN0YWxsaW5nIGl0IGR1cmluZyBydW50aW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28gZW5zdXJlIHRoYXQgdGhlIGVudmlvcm5tZW50IHZhcmlhYmxlcyBtZW50aW9uZWQgZWFybGllciBhcmUgYWRkZWQgdG8geW91ciBwcm9qZWN0LiBOYW1lbHk6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQTEFZX1NUT1JFX1VQTE9BRF9LRVkmbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtrZXkuamtzJmx0Oy9jb2RlJmd0OyBmaWxlJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7UExBWV9TVE9SRV9VUExPQURfS0VZX0lORk8mbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCBmaWxlIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIGFuZCBvdGhlciBpbmZvIHJlZ2FyZGluZyB0aGUgdXBsb2FkIHNpZ25pbmcga2V5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IC0gWW91ciBHb29nbGUgU2VydmljZSBBY2NvdW50IEpTT04gc3RyaW5nIGZvciBhdXRoZW50aWNhdGlvbiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtJbiB5b3VyIHByb2plY3RzIHJvb3QsIGFkZCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLCBhbmQgaW4gdGhhdCBmb2xkZXIgYWRkIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y2lyY2xlY2kueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLiBBZGQgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSBuZXdseSBjcmVhdGVkIGZpbGU6Jmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7JwogIAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgc25pcHBldCBhYm92ZSBkZWZpbmVzIGFuIGV4ZWN1dG9yIHdlIGNhbiByZXVzZSBsYXRlciBpbiBvdXIgY29uZmlndXJhdGlvbiB0aGFua3MgdG8gdGhlIHVzZSBvZiByZXVzYWJsZSBjb25maWd1cmF0aW9uIGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYnMmbHQ7L2EmZ3Q7IGluIENpcmNsZUNJIDIuMS4gSXQgYWxzbyBpbmNsdWRlcyBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBlbnN1cmUgSmF2YSBkb2VzbuKAmXQgY29uc3VtZSBhbGwgb2Ygb3VyIG1lbW9yeSB3aGlsZSBidWlsZGluZyB0aGUgYXBwLiBOZXh0LCB3ZeKAmWxsIGRlZmluZSB0aGUgam9iIHdlIHdhbnQgdG8gcnVuIHRoZSBjb21tYW5kcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2pvYnM6CiAgYmV0YV9kZXBsb3k6CiAgICBleGVjdXRvcjogYW5kcm9pZC1mbHV0dGVyCiAgICBzdGVwczoKICAgICAgLSBjaGVja291dAogICAgICAtIHJ1bjogZWNobyAmcXVvdDskUExBWV9TVE9SRV9VUExPQURfS0VZJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGtleS5qa3MKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWV9JTkZPJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGFuZHJvaWQva2V5LnByb3BlcnRpZXMKICAgICAgLSBydW46IGNkIGFuZHJvaWQgJmFtcDthbXA7JmFtcDthbXA7IGZhc3RsYW5lIGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgd2XigJlsbCBkZWZpbmUgb3VyIHdvcmtmbG93IHdoaWNoIHdpbGwgb25seSBydW4gdGhlIGpvYiB3aGVuIHRoZSBuZXcgY29kZSBpcyBwdXNoZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2JldGEmbHQ7L2NvZGUmZ3Q7IGJyYW5jaC4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3dvcmtmbG93czoKICBkZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGJldGFfZGVwbG95OgogICAgICAgICAgZmlsdGVyczoKICAgICAgICAgICAgYnJhbmNoZXM6CiAgICAgICAgICAgICAgb25seTogYmV0YQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7Jwpqb2JzOgogIGJldGFfZGVwbG95OgogICAgZXhlY3V0b3I6IGFuZHJvaWQtZmx1dHRlcgogICAgc3RlcHM6CiAgICAgIC0gY2hlY2tvdXQKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWSZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBrZXkuamtzCiAgICAgIC0gcnVuOiBlY2hvICZxdW90OyRQTEFZX1NUT1JFX1VQTE9BRF9LRVlfSU5GTyZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBhbmRyb2lkL2tleS5wcm9wZXJ0aWVzCiAgICAgIC0gcnVuOiBjZCBhbmRyb2lkICZhbXA7YW1wOyZhbXA7YW1wOyBmYXN0bGFuZSBiZXRhCgp3b3JrZmxvd3M6CiAgZGVwbG95OgogICAgam9iczoKICAgICAgLSBiZXRhX2RlcGxveToKICAgICAgICAgIGZpbHRlcnM6CiAgICAgICAgICAgIGJyYW5jaGVzOgogICAgICAgICAgICAgIG9ubHk6IGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvcHJvamVjdHMvJnF1b3Q7Jmd0O1NldCB1cCB5b3VyIHByb2plY3Qgb24gQ2lyY2xlQ0kmbHQ7L2EmZ3Q7LiBPbmNlIHlvdSBjbGljayAmbHQ7c3Ryb25nJmd0O1NldCBVcCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7LCB5b3Ugd2lsbCBiZSBicm91Z2h0IHRvIGEgdGV4dCBlZGl0b3IgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBjb3B5IGluIHRoZSBjb25maWcgZnJvbSBhYm92ZS4gQ2xpY2sgJmx0O3N0cm9uZyZndDtTdGFydCBCdWlsZGluZyZsdDsvc3Ryb25nJmd0Oy4gTm93IGV2ZXJ5IG5ldyBjb21taXQgdG8gdGhlIGJldGEgYnJhbmNoIHdpbGwgcmVzdWx0IGluIGEgZGVwbG95LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIGFuIEV4cHJlc3MgR3JhcGhRTCBzZXJ2ZXIgdG8gSGVyb2t1PC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1hbi1leHByZXNzLWdyYXBocWwtc2VydmVyLXRvLWhlcm9rdS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VHVlLCAyOCBBcHIgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtYW4tZXhwcmVzcy1ncmFwaHFsLXNlcnZlci10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dyYXBocWwub3JnLyZxdW90OyZndDtHcmFwaFFMJmx0Oy9hJmd0OyBjb250aW51ZXMgdG8gZ3JvdyBpbiBwb3B1bGFyaXR5IHdpdGggZWFjaCBwYXNzaW5nIGRheSwgc2luY2UgaXRzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9lbmdpbmVlcmluZy5mYi5jb20vY29yZS1kYXRhL2dyYXBocWwtYS1kYXRhLXF1ZXJ5LWxhbmd1YWdlLyZxdW90OyZndDtwdWJsaWMgcmVsZWFzZSBieSBGYWNlYm9vayZsdDsvYSZndDsgaW4gMjAxNS4gVGhlIHRlY2hub2xvZ3kgZW5hYmxlcyBmcm9udCBlbmQgY2xpZW50cyB0byBxdWVyeSBleGFjdGx5IHdoYXQgdGhleSBuZWVkIGZyb20gdGhlIGJhY2tlbmQsIGFuZCBpcyBnYWluaW5nIHdpZGUgcmVjb2duaXRpb24gYW5kIGFkb3B0aW9uIGJ5IHJlcHV0YWJsZSBjb21wYW5pZXMgc3VjaCBhcyBQaW50ZXJlc3QsIENvdXJzZXJhLCBBaXJibmIsIGFuZCBGYWNlYm9vayBpdHNlbGYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBwb3N0LCB3ZSB3aWxsIGxlYXJuIGhvdyB0byBkZXBsb3kgYSBzaW1wbGUgR3JhcGhRTCBzZXJ2ZXIgd3JpdHRlbiBpbiBOb2RlLmpzIHRvIEhlcm9rdSB2aWEgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IChDSSkgcGlwZWxpbmUgdXNpbmcgQ2lyY2xlQ0kuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1ByZXJlcXVpc2l0ZXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUbyBmb2xsb3cgYWxvbmcgd2l0aCB0aGlzIHBvc3QsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhbHJlYWR5IHNldCB1cDombHQ7L3AmZ3Q7CiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL25vZGVqcy5vcmcvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlIC12Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsIHRvIHByaW50IG91dCB5b3VyIHZlcnNpb24gb2YgTm9kZS5qcyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdC1zY20uY29tLyZxdW90OyZndDtHaXQmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnaXQmbHQ7L2NvZGUmZ3Q7IG9uIHlvdXIgdGVybWluYWw7IHRoaXMgc2hvdWxkIHByaW50IG91dCBhdmFpbGFibGUgZ2l0IGNvbW1hbmRzKSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5oZXJva3UuY29tLyZxdW90OyZndDtIZXJva3UmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tLyZxdW90OyZndDtHaXRIdWImbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vc2lnbnVwLyZxdW90OyZndDtDaXJjbGVDSSZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDsjI1NjYWZmb2xkaW5nIHRoZSBHcmFwaFFMIHNlcnZlciBwcm9qZWN0ClRvIGJlZ2luIHNldHRpbmcgdXAgYSBHcmFwaFFMIHNlcnZlciwgY3JlYXRlIGEgbmV3IGZvbGRlciBmb3IgdGhlIHByb2plY3QgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtta2RpciBncmFwaHFsLXRlc3Qtc2VydmVyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7Tm93IGdvIGludG8gdGhlIHJvb3Qgb2YgdGhlIGZvbGRlciBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBzY2FmZm9sZCBhIG5ldyBOb2RlLmpzIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5pdCAteQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDtwJmd0O1RoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsteSZsdDsvY29kZSZndDsgb3B0aW9uYWwgZmxhZyBhbGxvd3MgeW91IHRvIHNraXAgY29uZmlybWluZyB0aGUgZGVmYXVsdCBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwYWNrYWdlLmpzb24mbHQ7L2NvZGUmZ3Q7IGZpbGUgYW5kIGp1c3QgYWNjZXB0cyB0aGVtLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGFyZSBnb2luZyB0byBjcmVhdGUgYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2V4cHJlc3Nqcy5jb20vJnF1b3Q7Jmd0O0V4cHJlc3NKUyZsdDsvYSZndDsgTm9kZS5qcyBhcHBsaWNhdGlvbiBhbmQgYnVpbGQgdGhlIEdyYXBoUUwgc2VydmVyLiBUbyBkbyB0aGlzLCB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIGZvbGxvd2luZyBwYWNrYWdlczombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2V4cHJlc3MmbHQ7L2NvZGUmZ3Q7OiB0byBjcmVhdGUgb3VyIEV4cHJlc3NKUyBOb2RlLmpzIGFwcGxpY2F0aW9uJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z3JhcGhxbCZsdDsvY29kZSZndDs6IHRoZSBHcmFwaFFMIG5wbSBwYWNrYWdlIGZvciBOb2RlLmpzJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OzogRXhwcmVzc0pTIG1pZGRsZXdhcmUgZm9yIEdyYXBoUUwmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbCB0aGVzZSBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBpbnN0YWxsIC0tc2F2ZSBleHByZXNzIGdyYXBocWwgZXhwcmVzcy1ncmFwaHFsCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIHRoZSByZXF1aXJlZCBwYWNrYWdlcyB0byBzdGFydCBwdXR0aW5nIHRvZ2V0aGVyIG91ciBHcmFwaFFMIHNlcnZlci4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgdGhlIEdyYXBoUUwgc2NoZW1hJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7Q3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bWtkaXIgc3JjCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1dpdGhpbiB0aGlzIGZvbGRlciwgY3JlYXRlIGEgbmV3IGZpbGUgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEuanMmbHQ7L2NvZGUmZ3Q7IGFuZCBwYXN0ZSBpbiB0aGUgY29kZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Owpjb25zdCB7IGJ1aWxkU2NoZW1hIH0gPSByZXF1aXJlKCZxdW90O2dyYXBocWwmcXVvdDspOwoKY29uc3Qgc2NoZW1hID0gYnVpbGRTY2hlbWEoYAogICAgdHlwZSBRdWVyeSB7CiAgICAgICAgdXNlcnM6IFtVc2VyIV0hLAogICAgICAgIHVzZXIoaWQ6IEludCEpOiBVc2VyIQogICAgfQoKICAgIHR5cGUgTXV0YXRpb24gewogICAgICAgIGVkaXRVc2VyKGlkOiBJbnQhLCBuYW1lOiBTdHJpbmchLCBlbWFpbDogU3RyaW5nISk6IFVzZXIhCiAgICB9CgogICAgdHlwZSBVc2VyIHsKICAgICAgICBpZDogSUQhCiAgICAgICAgbmFtZTogU3RyaW5nIQogICAgICAgIGVtYWlsOiBTdHJpbmcKICAgICAgICBwb3N0czogW1Bvc3QhXQogICAgfQoKICAgIHR5cGUgUG9zdCB7CiAgICAgICAgaWQ6IElEIQogICAgICAgIHRpdGxlOiBTdHJpbmchCiAgICAgICAgcHVibGlzaGVkOiBCb29sZWFuIQogICAgICAgIGxpbms6IFN0cmluZwogICAgfQpgKTsKCm1vZHVsZS5leHBvcnRzID0gc2NoZW1hOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBhYm92ZSBjb2RlLCB3ZSBoYXZlIGNyZWF0ZWQgZm91ciB0eXBlcywgY29uc2lzdGluZyBvZiB0d28gYnVpbHQtaW4gdHlwZXMgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7KSBhbmQgdHdvIGN1c3RvbSB0eXBlcyAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXNlciZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1Bvc3QmbHQ7L2NvZGUmZ3Q7KS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWdpbm5pbmcgd2l0aCB0aGUgY3VzdG9tIHR5cGVzLCB3ZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmc6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VyJmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHVzZXIgaW4gdGhlIGFwcGxpY2F0aW9uIHdpdGggaXRzIHJlc3BlY3RpdmUgZmllbGRzIGFuZCBhIHJlbGF0aW9uYWwgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cG9zdHMmbHQ7L2NvZGUmZ3Q7IGZpZWxkLCB3aGljaCByZXR1cm5zIGFuIGFycmF5IG9mIHBvc3RzIGNyZWF0ZWQgYnkgdGhlIHVzZXImbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQb3N0Jmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHB1YmxpY2F0aW9uIGNyZWF0ZWQgYnkgYSB1c2VyIGluIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGl0cyByZXNwZWN0aXZlIGZpZWxkcyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OzogaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyB0eXBlLCB3ZSBkZWZpbmVkIHR3byBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgcXVlcmllZCBmcm9tIG91ciBHcmFwaFFMIHNlcnZlciBhcyBmb2xsb3dzOgogICAgJmx0O3VsJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlcnMmbHQ7L2NvZGUmZ3Q7OiBhbiBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VycyZsdDsvY29kZSZndDsmbHQ7L2xpJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlciZsdDsvY29kZSZndDs6IGEgc2luZ2xlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1VzZXImbHQ7L2NvZGUmZ3Q7IHdpdGggdGhlIHNwZWNpZmllZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgaW4gdGhlIGFyZ3VtZW50cyBsaXN0Jmx0Oy9saSZndDsKICAgICZsdDsvdWwmZ3Q7CiAgJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7OiBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7IHR5cGUsIHdlIGRlZmluZWQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VkaXRVc2VyJmx0Oy9jb2RlJmd0OyBtdXRhdGlvbiwgd2hpY2gsIGdpdmVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgb2YgdGhlIHVzZXIsIGNhbiBiZSBjYWxsZWQgdG8gZWRpdCBhIHVzZXIgYW5kIHRoZW4gdXBkYXRlIHRoZSBpbmZvcm1hdGlvbiAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bmFtZSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VtYWlsJmx0Oy9jb2RlJmd0OykmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhlIHNjaGVtYSBpcyBjcmVhdGVkIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZFNjaGVtYSZsdDsvY29kZSZndDsgb2YgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dyYXBocWwmbHQ7L2NvZGUmZ3Q7IHBhY2thZ2UgYW5kIGV4cG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O01vY2tpbmcgZGF0YSZsdDsvaDImZ3Q7CiZsdDtwJmd0O0luIG9yZGVyIHRvIGhhdmUgcmVzdWx0cyBmb3Igb3VyIHF1ZXJpZXMsIHdlIG5lZWQgZGF0YS4gRm9yIHRoaXMgZXhlcmNpc2UsIHdlIHdpbGwgYmUgdXNpbmcgTW9uZ29EQi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIb3dldmVyLCBzaW5jZSB0aGUgZ29hbCBvZiB0aGlzIHBvc3QgaXMgdG8gZGVtb25zdHJhdGUgZGVwbG95aW5nIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyLCB3ZSB3b27igJl0IGJvdGhlciB3aXRoIHNldHRpbmcgdXAgYSBNb25nb0RCIHNlcnZlci4gSW5zdGVhZCwgd2Ugd2lsbCAgdXNlIGEgbW9ja2VkIHZlcnNpb24gdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O21vbmdvZGItbWVtb3J5LXNlcnZlciZsdDsvY29kZSZndDsuIFRoaXMgcGFja2FnZSBhbGxvd3MgdXMgdG8gY3JlYXRlIGFuZCB1c2UgYW4gaW4tbWVtb3J5IE1vbmdvREIgZGF0YWJhc2Ugc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHNldCB0aGlzIHVwLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhdCB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5zdGFsbCAtLXNhdmUgbW9uZ29kYiBtb25nb2RiLW1lbW9yeS1zZXJ2ZXIKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwombHQ7cCZndDtUaGlzIGluc3RhbGxhdGlvbiBtaWdodCB0YWtlIGEgd2hpbGUsIGRlcGVuZGluZyBvbiB5b3VyIGRvd25sb2FkIHNwZWVkLiBNb25nb0RCIHdhcyBhdCBsZWFzdCA2NiBtZWdhYnl0ZXMgaW4gc2l6ZSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhLmpzJmx0Oy9jb2RlJmd0OyBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3JjJmx0Oy9jb2RlJmd0OyBmb2xkZXIuIFRoaXMgZmlsZSB3aWxsIGV4cG9ydCBhbiBhcnJheSBvZiBoYXJkLWNvZGVkIHVzZXIgZGF0YS4gUGFzdGUgdGhlIGZvbGxvd2luZyBjb2RlIGJlbG93IGludG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBVc2VycyA9IFsKICB7CiAgICBpZDogMSwKICAgIG5hbWU6ICZxdW90O0Zpa2F5byBBZGVwb2p1JnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2ZpazRjaHJpc3RAeWFob28uY29tJnF1b3Q7LAogICAgcG9zdHM6IFsKICAgICAgewogICAgICAgIGlkOiAxLAogICAgICAgIHRpdGxlOiAmcXVvdDtDcmVhdGluZyBhbiBFbW9qaSBHYW1lIHdpdGggVnVlLCBBdXRoMCwgYW5kIEdvb2dsZSBWaXNpb24gQVBJJnF1b3Q7LAogICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSwKICAgICAgICBsaW5rOgogICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hdXRoMC5jb20vYmxvZy9jcmVhdGluZy1hbi1lbW9qaS1nYW1lLXdpdGgtdnVlLWF1dGgwLWFuZC1nb29nbGUtdmlzaW9uLWFwaS8mcXVvdDssCiAgICAgICAgYXV0aG9yOiAxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBpZDogMiwKICAgICAgICB0aXRsZTogJnF1b3Q7RWxlY3Ryb24gVHV0b3JpYWw6IEJ1aWxkaW5nIE1vZGVybiBEZXNrdG9wIEFwcHMgd2l0aCBWdWUuanMmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2F1dGgwLmNvbS9ibG9nL2VsZWN0cm9uLXR1dG9yaWFsLWJ1aWxkaW5nLW1vZGVybi1kZXNrdG9wLWFwcHMtd2l0aC12dWUtanMvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDMsCiAgICAgICAgdGl0bGU6ICZxdW90O1N0YXRlIE1hbmFnZW1lbnQgd2l0aCBWdWV4OiBhIFByYWN0aWNhbCBUdXRvcmlhbCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazoKICAgICAgICAgICZxdW90O2h0dHBzOi8vYXV0aDAuY29tL2Jsb2cvc3RhdGUtbWFuYWdlbWVudC13aXRoLXZ1ZXgtYS1wcmFjdGljYWwtdHV0b3JpYWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMiwKICAgIG5hbWU6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2pvaG5AY29tcGFueS5jb20mcXVvdDssCiAgICBwb3N0czogWwogICAgICB7CiAgICAgICAgaWQ6IDQsCiAgICAgICAgdGl0bGU6ICZxdW90O0J1aWxkIGEgQ0kgcG93ZXJlZCBSRVNUZnVsIEFQSSB3aXRoIExhcmF2ZWwmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2J1aWxkLWEtY2ktcG93ZXJlZC1yZXN0ZnVsLWFwaS13aXRoLWxhcmF2ZWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDUsCiAgICAgICAgdGl0bGU6ICZxdW90O0F1dG9tYXRlIHlvdXIgTnV4dC5qcyBhcHAgZGVwbG95bWVudCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazogJnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hdXRvbWF0ZS15b3VyLW51eHQtanMtYXBwLWRlcGxveW1lbnQvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMywKICAgIG5hbWU6ICZxdW90O0phbmUgUGF1bCZxdW90OywKICAgIGVtYWlsOiAmcXVvdDtqYW5lQGNvbXBhbnkuY29tJnF1b3Q7LAogICAgcG9zdHM6IFtdCiAgfQpdOwoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgVXNlcnMKfTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBjb2RlIGFib3ZlLCB3ZSBoYXZlIGFuIGFycmF5IG9mIHVzZXIgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgcG9zdHMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIHNlZWQgb3VyIGluLW1lbW9yeSBkYXRhYmFzZSBvbmNlIGl0IGlzIGluc3RhbnRpYXRlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCB0YXNrIGlzIHRvIHNldCB1cCBvdXIgbW9jayBNb25nb0RCIGRhdGFiYXNlIHNlcnZlci4gSW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhYmFzZS5qcyZsdDsvY29kZSZndDsgYW5kIGluc2VydCB0aGUgZm9sbG93aW5nIGNvZGUgaW50byB0aGUgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O01vbmdvTWVtb3J5U2VydmVyJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtyZXF1aXJlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtzMiZxdW90OyZndDsmcXVvdDttb25nb2RiLW1lbW9yeS1zZXJ2ZXImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O21vbmdvZGImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtjb25zdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bm8mcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90Oy4vZGF0YSZxdW90OyZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0Oyk7Jmx0Oy9zcGFuJmd0OwoKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7bGV0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDtudWxsJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXN5bmMmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7ZnVuY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25mJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoKSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDt7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7bmV3Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtNb25nb01lbW9yeVNlcnZlciZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygpOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtubyZxdW90OyZndDttb25nb0RCVVJMJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXdhaXQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7LiZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtnZXRDb25uZWN0aW9uU3RyaW5nJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3QmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvREJVUkwmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDssJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7CiAgICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDt1c2VOZXdVcmxQYXJzZXImbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs6Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDt0cnVlJmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSk7Jmx0Oy9zcGFuJmd0OwoKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtjMSZxdW90OyZndDsvL1NlZWQgRGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7CiAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtpZiZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7ISZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OykmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsKICAgICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RhdGFiYXNlJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RiJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbGxlY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O3VzZXJzJnF1b3Q7Jmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7aW5zZXJ0TWFueSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7VXNlcnMmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7CgogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7cmV0dXJuJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OzsmbHQ7L3NwYW4mZ3Q7CiZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vZHVsZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZXhwb3J0cyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtzdGFydERhdGFiYXNlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGNvZGUgYWJvdmUsIHdlIGV4cG9ydCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L2NvZGUmZ3Q7IGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBzdGFydHMgYSBuZXcgKG1vY2tlZCkgTW9uZ29EQiBzZXJ2ZXIgaW5zdGFuY2UgYW5kIGdldHMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuIEl0IHRoZW4gY3JlYXRlcyBhIG5ldyBNb25nb0RCIGNsaWVudCBjb25uZWN0aW9uIHVzaW5nIHRoZSBjb25uZWN0aW9uIHN0cmluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwgd2Ugc2VlZCBpdCB3aXRoIG91ciB1c2VyIGRhdGEgZXhwb3J0ZWQgZnJvbSBvdXIgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZGF0YS5qcyZsdDsvY29kZSZndDsgZmlsZS4gQSBjaGVjayBpcyBtYWRlIHRvIHNlZSBpZiB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIGlzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O251bGwmbHQ7L2NvZGUmZ3Q7IGJlZm9yZSBzZWVkaW5nIGl0IHdpdGggZGF0YSwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBmcm9tIGJlaW5nIGVudGVyZWQgaW50byB0aGUgZGF0YWJhc2UgZWFjaCB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdXAuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGRhdGFiYXNlIHJlZmVyZW5jZS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgb3VyIHJlc29sdmVycyZsdDsvaDImZ3Q7CiZsdDtwJmd0O05leHQgdXAsIHdlIG5lZWQgdG8gZGVmaW5lIHJlc29sdmVycyBmb3Igb3VyIEdyYXBoUUwgcXVlcmllcyBpbiBvcmRlciB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGRhdGEgZm9yIGVhY2ggcXVlcnkgb3BlcmF0aW9uLiBXZSB3aWxsIGRlZmluZSByZXNvbHZlcnMgZm9yIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt1c2VycyZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3VzZXImbHQ7L2NvZGUmZ3Q7IHF1ZXJpZXMgYW5kIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtlZGl0VXNlciZsdDsvY29kZSZndDsgbXV0YXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Jlc29sdmVycy5qcyZsdDsvY29kZSZndDsgYW5kIHBhc3RlIGluIHRoZSBmb2xsb3dpbmcgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IHJlc29sdmVycyA9IHsKICB1c2VyczogYXN5bmMgKF8sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIKICAgICAgLmNvbGxlY3Rpb24oJnF1b3Q7dXNlcnMmcXVvdDspCiAgICAgIC5maW5kKCkKICAgICAgLnRvQXJyYXkoKTsKICB9LAogIHVzZXI6IGFzeW5jICh7IGlkIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIuY29sbGVjdGlvbigmcXVvdDt1c2VycyZxdW90OykuZmluZE9uZSh7IGlkIH0pOwogIH0sCiAgLy9NdXRhdGlvbiByZXNvbHZlcnMKICBlZGl0VXNlcjogYXN5bmMgKHsgaWQsIG5hbWUsIGVtYWlsIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CgogICAgcmV0dXJuIGRiCiAgICAgIC5jb2xsZWN0aW9uKCZxdW90O3VzZXJzJnF1b3Q7KQogICAgICAuZmluZE9uZUFuZFVwZGF0ZSgKICAgICAgICB7IGlkIH0sCiAgICAgICAgeyAkc2V0OiB7IG5hbWUsIGVtYWlsIH0gfSwKICAgICAgICB7IHJldHVybk9yaWdpbmFsOiBmYWxzZSB9CiAgICAgICkKICAgICAgLnRoZW4ocmVzcCA9JmFtcDtndDsgcmVzcC52YWx1ZSk7CiAgfSAKfTsKCm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZXJzOwoKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgc2VlbiBhYm92ZSwgd2Ugbm93IGhhdmUgcmVzb2x2ZXJzIGZvciB0aGUgdGhyZWUgR3JhcGhRTCByZXF1ZXN0cyBhdmFpbGFibGUgb24gb3VyIHNlcnZlci4gVGhlc2UgcmVzb2x2ZXJzIGZldGNoIGFuZCB1cGRhdGUgZGF0YSB1c2luZyB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIHdlIGNyZWF0ZWQgZWFybGllciBieSByZWZlcmVuY2luZyBpdCBmcm9tIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb250ZXh0Jmx0Oy9jb2RlJmd0OyBvYmplY3Qgb2YgdGhlIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgcmVmZXJlbmNlIHdpbGwgYmUgYWRkZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbnRleHQmbHQ7L2NvZGUmZ3Q7IG9iamVjdCBvZiBvdXIgR3JhcGhRTCBzZXJ2ZXIgc2V0dXAgaW4gdGhlIG5leHQgc2VjdGlvbiB3aGVuIHdlIHB1dCBldmVyeXRoaW5nIHRvZ2V0aGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTZXR0aW5nIHVwIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O0l0IGlzIHRpbWUgdG8gcHV0IGV2ZXJ5IGNvbXBvbmVudCB3ZSBidWlsdCB0b2dldGhlciB0byBzZXQgdXAgb3VyIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlZm9yZSB3ZSBiZWdpbiwgd2UgbmVlZCB0byBpbnN0YWxsIG9uZSBtb3JlIHBhY2thZ2UuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIGNvbWVzIHdpdGggdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0dyYXBoaVFMJmx0Oy9jb2RlJmd0OyBhcHBsaWNhdGlvbiwgd2hpY2ggYWxsb3dzIHlvdSB0byBxdWVyeSB5b3VyIEdyYXBoUUwgZW5kcG9pbnQsIGJ1dCBsZXTigJlzIGFkZCBhIHRvb2wgdGhhdCBpcyBtb3JlIHJvYnVzdC4gV2Ugd2lsbCBpbnN0YWxsIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIHRvIGdpdmUgdXMgYSBmYW5jaWVyIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgb3VyIEdyYXBoUUwgZW5kcG9pbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSBmb2xsb3dpbmcgY29kZSB0byBpbnN0YWxsIHRoZSBwYWNrYWdlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGluc3RhbGwgLS1zYXZlIGdyYXBocWwtcGxheWdyb3VuZC1taWRkbGV3YXJlLWV4cHJlc3MKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7V2Ugd2lsbCB1c2UgdGhpcyBtaWRkbGV3YXJlIHRvIHNldCB1cCB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kIGZvciBxdWVyeWluZyBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0xldOKAmXMgc2V0IHVwIG91ciBzZXJ2ZXIgYnkgY3JlYXRpbmcgYSBmaWxlIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2luZGV4LmpzJmx0Oy9jb2RlJmd0OyBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBhbmQgcGxhY2luZyB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBleHByZXNzID0gcmVxdWlyZSgmcXVvdDtleHByZXNzJnF1b3Q7KTsKY29uc3QgZ3JhcGhxbEhUVFAgPSByZXF1aXJlKCZxdW90O2V4cHJlc3MtZ3JhcGhxbCZxdW90Oyk7CmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoJnF1b3Q7Li9zcmMvc2NoZW1hJnF1b3Q7KTsKY29uc3QgcmVzb2x2ZXJzID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9yZXNvbHZlcnMmcXVvdDspOwpjb25zdCBzdGFydERhdGFiYXNlID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9kYXRhYmFzZSZxdW90Oyk7CmNvbnN0IGV4cHJlc3NQbGF5Z3JvdW5kID0gcmVxdWlyZSgmcXVvdDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJnF1b3Q7KS5kZWZhdWx0OwoKLy8gQ3JlYXRlIGEgY29udGV4dCBmb3IgaG9sZGluZyBjb250ZXh0dWFsIGRhdGEgCmNvbnN0IGNvbnRleHQgPSBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IGRiID0gYXdhaXQgc3RhcnREYXRhYmFzZSgpOwoKICByZXR1cm4geyBkYiB9Owp9OwoKY29uc3QgYXBwID0gZXhwcmVzcygpOwoKYXBwLnVzZSgKICAmcXVvdDsvZ3JhcGhxbCZxdW90OywKICBncmFwaHFsSFRUUCh7CiAgICBzY2hlbWEsCiAgICByb290VmFsdWU6IHJlc29sdmVycywKICAgIGNvbnRleHQKICB9KQopOwoKLy9HcmFwaHFsIFBsYXlncm91bmQgcm91dGUKYXBwLmdldCgmcXVvdDsvcGxheWdyb3VuZCZxdW90OywgZXhwcmVzc1BsYXlncm91bmQoeyBlbmRwb2ludDogJnF1b3Q7L2dyYXBocWwmcXVvdDsgfSkpOwoKY29uc3QgcG9ydCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgJnF1b3Q7NDAwMCZxdW90OzsKCmFwcC5saXN0ZW4ocG9ydCk7Cgpjb25zb2xlLmxvZyhg8J+agCBTZXJ2ZXIgcmVhZHkgYXQgaHR0cDovL2xvY2FsaG9zdDo0MDAwL2dyYXBocWxgKTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBmaWxlIGFib3ZlLCB3ZSBzdGFydCBieSBpbXBvcnRpbmcgYWxsIG5lY2Vzc2FyeSBtb2R1bGVzLiBUaGVuLCB3ZSBjcmVhdGUgb3VyIEdyYXBoUUwgY29udGV4dCBhbmQgcmV0dXJuIGFuIG9iamVjdCBmcm9tIGl0IGNvbnRhaW5pbmcgdGhlIHJlZmVyZW5jZSB0byBvdXIgTW9uZ29EQiBpbnN0YW5jZS4gTmV4dCwgd2UgY3JlYXRlIG91ciBFeHByZXNzSlMgYXBwbGljYXRpb24gYW5kIHNldCB1cCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OyBtaWRkbGV3YXJlIHdpdGggR3JhcGhRTCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEmbHQ7L2NvZGUmZ3Q7LCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtyZXNvbHZlcnMmbHQ7L2NvZGUmZ3Q7LCBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29udGV4dCZsdDsvY29kZSZndDsuIFdlIHRoZW4gc2V0IHVwIHRoZSBHcmFwaFFMIFBsYXlncm91bmQgYXQgdGhlIHJvdXRlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBsb2FkIG91ciBHcmFwaFFMIGVuZHBvaW50LiBGaW5hbGx5LCB3ZSBzdGFydCBvdXIgRXhwcmVzc0pTIHNlcnZlciB0byBsaXN0ZW4gYXQgcG9ydCA0MDAwIGFuZCBwcmludCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1F1ZXJ5aW5nIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O05vdyB0aGF0IHdlIGhhdmUgb3VyIHNlcnZlciBzZXQgdXAsIGxldOKAmXMgdGFrZSBpdCBmb3IgYSBzcGluLiBGaXJzdCwgbGV04oCZcyBjcmVhdGUgYSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzdGFydCZsdDsvY29kZSZndDsgc2NyaXB0IGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3BhY2thZ2UuanNvbiZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHNjcmlwdCB0byB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2NyaXB0cyZsdDsvY29kZSZndDsgc2VjdGlvbiBvZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Li4uCgrigJxzY3JpcHRz4oCdIDogewoJLi4uLAoJ4oCcc3RhcnTigJ0gOiDigJxub2RlIGluZGV4Lmpz4oCdCn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25wbSBzdGFydCZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCB0aGUgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNlcnZlciBpcyB1cCBhbmQgcnVubmluZywgb3BlbiB1cCB5b3VyIGJyb3dzZXIgYW5kIHZpc2l0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMC9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBvcGVuIHVwIHRoZSBwbGF5Z3JvdW5kLiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDEucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgcGxheWdyb3VuZCBhdXRvbWF0aWNhbGx5IHBvaW50cyB0byBvdXIgR3JhcGhRTCBlbmRwb2ludC4gRnJvbSBoZXJlIHdlIGNhbiB3cml0ZSBxdWVyaWVzIGFnYWluc3Qgb3VyIGVuZHBvaW50IGFuZCBnZXQgdGhlIHJlc3VsdHMuIFBhc3RlIHRoZSBxdWVyeSBiZWxvdyBpbnRvIHRoZSBxdWVyeSBzZWN0aW9uIG9mIHRoZSBwbGF5Z3JvdW5kIGFuZCBoaXQgUGxheSB0byBydW4gaXQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt7CiAgdXNlcnMgewogICAgbmFtZQogICAgZW1haWwKICAgIHBvc3RzIHsKICAgICAgdGl0bGUKICAgICAgcHVibGlzaGVkCiAgICB9CiAgfQp9CgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtSdW5uaW5nIHRoZSBhYm92ZSBxdWVyeSB3aWxsIHByb2R1Y2UgdGhlIHJlc3VsdCBzaG93biBvbiB0aGUgc2NyZWVuIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsMi5wbmcmcXVvdDsgd2lkdGg9JnF1b3Q7ODc1JnF1b3Q7IC8mZ3Q7CiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIHNlZW4gYWJvdmUsIG91ciBHcmFwaFFMIHNlcnZlciBpcyB3b3JraW5nIGZpbmUgYW5kIHJldHVybmluZyB0aGUgZXhwZWN0ZWQgZGF0YS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRvIEhlcm9rdSB3aXRoIENpcmNsZUNJJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7T3VyIGZpbmFsIHRhc2sgaXMgdG8gZGVwbG95IG91ciBHcmFwaFFMIHNlcnZlciB0aHJvdWdoIGEgQ0kgcGlwZWxpbmUgd2l0aCBDaXJjbGVDSSBvbiB0aGUgSGVyb2t1IGhvc3RpbmcgcGxhdGZvcm0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2UgYXJlIGdvaW5nIHRvIHRha2UgdGhlIGZvbGxvd2luZyBzdGVwcyB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7UHVzaCB0aGUgcHJvamVjdCB0byBhIEdpdEh1YiByZXBvc2l0b3J5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgbmV3IEhlcm9rdSBhcHAgYW5kIGdldCB0aGUgSGVyb2t1IEFQSSBrZXkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgYSBuZXcgcHJvamVjdCB0byBvdXIgQ2lyY2xlQ0kgYWNjb3VudCBhbmQgY29ubmVjdCBpdCB0byB0aGUgR2l0SHViIHJlcG8mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgb3VyIEhlcm9rdSBhcHAgbmFtZSBhbmQgQVBJIGtleSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gb3VyIG5ldyBwcm9qZWN0Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7V3JpdGUgb3VyIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgZGVwbG95bWVudCB0byBIZXJva3UmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIHRoZSBjb25maWd1cmF0aW9uIHRvIG91ciBHaXRIdWIgcmVwbyB0byBkZXBsb3kgdG8gSGVyb2t1Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0xldOKAmXMgYmVnaW4uIEZpcnN0LCBwdXNoIHRoZSBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG8uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY3JlYXRlIGEgSGVyb2t1IGFwcGxpY2F0aW9uIGFzIHNob3duIGJlbG93LiBUaGUgbmFtZSB5b3UgZW50ZXIgaXMgdGhlIG5hbWUgeW91IHdpbGwgc2F2ZSBhcyB5b3VyIEhlcm9rdSBhcHAgbmFtZSBvbiBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWwzLnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7WW91IGNhbiBnZXQgeW91ciBIZXJva3UgQVBJIGtleSBieSBnb2luZyB0byAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgYW5kIHNjcm9sbGluZyBkb3duIHRvIHRoZSAmbHQ7c3Ryb25nJmd0O0FQSSBLZXkmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIHRvIGRlcGxveWluZyBvdXIgYXBwbGljYXRpb24gdG8gSGVyb2t1IGlzIHRvIGNvbm5lY3QgdGhlIGFwcGxpY2F0aW9uIG9uIG91ciBHaXRIdWIgcmVwb3NpdG9yeSB0byBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIZWFkIHRvIHlvdXIgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9kYXNoYm9hcmQmcXVvdDsmZ3Q7Q2lyY2xlQ0kgZGFzaGJvYXJkJmx0Oy9hJmd0OyBhbmQgYWRkIHRoZSBwcm9qZWN0IGluIHRoZSAmbHQ7c3Ryb25nJmd0O0FkZCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7IHNlY3Rpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsNC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCAoaW4gdGhpcyBjYXNlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NpbXBsZS1ncmFwaHFsLW5vZGUtc2VydmVyJmx0Oy9jb2RlJmd0OyksIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0IFVwIFByb2plY3QmbHQ7L3N0cm9uZyZndDsuIFRoaXMgd2lsbCBicmluZyB5b3UgdG8gYSBwYWdlIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDUucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IGJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIHByb2plY3QuIFRoaXMgd2lsbCBpbW1lZGlhdGVseSBnaXZlIHVzIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCBhIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIHByb2plY3QuIFRoaXMgaXMgdW5kZXJzdGFuZGFibGUsIGFzIHdlIGFyZSB5ZXQgdG8gaW5jbHVkZSBvdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlLiBXZSB3aWxsIGJlIGRvaW5nIHRoYXQgbGF0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIG5leHQgc3RlcCBpcyB0byBhZGQgb3VyIEhlcm9rdSBkZXRhaWxzIGFzICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wL2Vudi12YXJzLyZxdW90OyZndDtlbnZpcm9ubWVudCB2YXJpYWJsZXMmbHQ7L2EmZ3Q7IHRvIHRoZSBuZXdseSBzZXQgdXAgcHJvamVjdC4KSW4gb3JkZXIgdG8gcHVzaCBvdXIgcHJvamVjdCB0byBIZXJva3UgZnJvbSBDaXJjbGVDSSwgd2UgbmVlZCB0byBjb25maWd1cmUgYW4gYXV0aGVudGljYXRlZCBoYW5kc2hha2UgYmV0d2VlbiBDaXJjbGVDSSBhbmQgSGVyb2t1LiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcgdHdvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgc2V0dGluZ3MgZm9yIHlvdXIgQ2lyY2xlQ0kgcHJvamVjdC4gVGhlIHR3byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtIRVJPS1VfQVBQX05BTUUmbHQ7L2NvZGUmZ3Q7OiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIChpbiB0aGlzIGNhc2UgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2ltcGxlLWdyYXBocWwtbm9kZS1zZXJ2ZXImbHQ7L2NvZGUmZ3Q7KSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OzogWW91ciBIZXJva3UgYWNjb3VudCBBUEkga2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBvbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50Jmx0Oy9zdHJvbmcmZ3Q7IHRhYiBvZiB5b3VyIEhlcm9rdSBhY2NvdW50IHVuZGVyICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VG8gYWRkIHRoZXNlIGRldGFpbHMsIGhlYWQgb3ZlciB0byB5b3VyIENpcmNsZUNJIGRhc2hib2FyZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBmb3IgeW91ciBwcm9qZWN0LiBPbiB0aGUgc2lkZWJhciBtZW51IG9uIHRoZSBzZXR0aW5ncyBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O0Vudmlyb25tZW50IFZhcmlhYmxlcyZsdDsvc3Ryb25nJmd0OyB1bmRlciAmbHQ7c3Ryb25nJmd0O0J1aWxkIFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDYucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIHBhZ2UsIGNyZWF0ZSB0d28gdmFyaWFibGVzIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OyBhbmQgYWRkIHRoZSByZXNwZWN0aXZlIHZhbHVlcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZXNlIGluIHBsYWNlLCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBjYW4gdXNlIHRoZW0gdG8gbWFrZSBhdXRoZW50aWNhdGVkIGRlcGxveW1lbnRzIHRvIHRoZSBIZXJva3UgcGxhdGZvcm0uCk5vdywgbGV04oCZcyB3cml0ZSBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyIHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtDcmVhdGUgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsuY2lyY2xlY2kmbHQ7L2NvZGUmZ3Q7IGF0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCBhbmQgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgaXQuIEFkZCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uJmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpvcmJzOgogIGhlcm9rdTogY2lyY2xlY2kvaGVyb2t1QDAuMC4xMAp3b3JrZmxvd3M6CiAgaGVyb2t1X2RlcGxveToKICAgIGpvYnM6CiAgICAgIC0gaGVyb2t1L2RlcGxveS12aWEtZ2l0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7VGhlIGNvZGUgYWJvdmUgdXNlcyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7SGVyb2t1IG9yYiZsdDsvYSZndDsgdG8gcGVyZm9ybSBhIHNlYW1sZXNzIGRlcGxveW1lbnQgdG8gSGVyb2t1LiBBbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYiZsdDsvYSZndDsgaXMgYSByZXVzYWJsZSBwYWNrYWdlIG9mIGEgWUFNTCBjb25maWd1cmF0aW9uIHRoYXQgY29uZGVuc2VzIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoaXMgb25lIG1ha2VzIGl0IHZlcnkgZWFzeSB0byBkZXBsb3kgdG8gSGVyb2t1IHdpdGhvdXQgd3JpdGluZyBhIHNvcGhpc3RpY2F0ZWQgY29uZmlnIHlvdXJzZWxmLiZsdDsvcCZndDsKCiZsdDtwJmd0O1NhdmUgdGhpcyBmaWxlIGFuZCBwdXNoIHlvdXIgY2hhbmdlcyB0byB0aGUgR2l0SHViIHJlcG9zaXRvcnkuIFRoZW4gd2F0Y2ggeW91ciBDaXJjbGVDSSBkYXNoYm9hcmQgdHJpZ2dlciBhIGRlcGxveW1lbnQgYWZ0ZXIgdGhlIHN1Y2Nlc3NmdWwgcHVzaC4gWW91IHdpbGwgc2VlIGEgc3VjY2Vzc2Z1bCBkZXBsb3ltZW50IG9uIHlvdXIgZGFzaGJvYXJkIHNpbWlsYXIgdG8gdGhlIHNjcmVlbiBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWw3LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXdlc29tZSEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXTigJlzIG5vdyB2aXNpdCBvdXIgUGxheWdyb3VuZCBvbiB0aGUgbGl2ZSBhcHBsaWNhdGlvbiB0byBjb25maXJtIHRoYXQgb3VyIGRlcGxveW1lbnQgaXMgZmluZS4gVmlzaXQgdGhlIGxpbmsgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9ZT1VSX0hFUk9LVV9BUFBfTkFNRS5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7LiBGb3Igb3VyIGV4ZXJjaXNlLCB0aGlzIHdpbGwgYmUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9zaW1wbGUtZ3JhcGhxbC1ub2RlLXNlcnZlci5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7IGFzIHNlZW4gYmVsb3cuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsOC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SW4gdGhpcyBhcnRpY2xlLCB3ZSBoYXZlIGJlZW4gYWJsZSB0byBzdWNjZXNzZnVsbHkgcHV0IHRvZ2V0aGVyIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyIGFuZCBhdXRvbWF0ZSBpdHMgZGVwbG95bWVudCB1c2luZyBDaXJjbGVDSS4gR3JhcGhRTCBpcyBoZXJlIHRvIHN0YXkgYW5kIGlzIGV4cGVjdGVkIHRvIGdhaW4gbW9yZSBhZG9wdGlvbiwgc2luY2UgaXRzIG1hbnkgYmVuZWZpdHMgbWFrZSBpdCB3b3J0aHkgb2YgaW5jcmVhc2VkIHVzZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIYXBweSBjb2RpbmchJmx0Oy9wJmd0OwoKJmx0O2hyIC8mZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Eb2NrZXIgYW5kIENJL0NEIHR1dG9yaWFsOiBhIGRlZXAgZGl2ZSBpbnRvIGNvbnRhaW5lcnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZG9ja2VyLWFuZC1jaWNkLXR1dG9yaWFsLWEtZGVlcC1kaXZlLWludG8tY29udGFpbmVycy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+RnJpLCAyNCBBcHIgMjAyMCAxMjowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9kb2NrZXItYW5kLWNpY2QtdHV0b3JpYWwtYS1kZWVwLWRpdmUtaW50by1jb250YWluZXJzLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkFuZ2VsIFJpdmVyYTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtUaGlzIGlzIGEgZm9sbG93LXVwIHRvIGEgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7IHRoYXQgSSB3cm90ZSBhZnRlciBDaXJjbGVDSSAyLjAgd2FzIHJlbGVhc2VkLiBUaGlzIHJlbGVhc2UgaW1wbGVtZW50ZWQgYnVpbGQgc3VwcG9ydCB1c2luZyBEb2NrZXIgZXhlY3V0b3JzLiBBZnRlciB0aGUgcmVsZWFzZSwgd2UgcmVhbGl6ZWQgdGhhdCBvbmUgb2YgdGhlIGJpZ2dlc3QgYmFycmllcnMgdGhhdCBDaXJjbGVDSSB1c2VycyBlbmNvdW50ZXJlZCB3YXMgYSBsYWNrIG9mIGV4cGVyaWVuY2Ugd2l0aCBEb2NrZXIuIFRoaXMgd2FzIGNvbmZpcm1lZCB0aHJvdWdoIG15IGNvbnZlcnNhdGlvbnMgd2l0aCBudW1lcm91cyBkZXZlbG9wZXJzLCBpbiB0aGUgY29tbXVuaXR5IGFuZCBhdCBldmVudHMsIGFib3V0IHRoZWlyIHVzZSBvZiBjb250YWluZXIgdGVjaG5vbG9naWVzIGluIHRoZWlyICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmVzLiBUaGVzZSBjb252ZXJzYXRpb25zIGhhdmUgaGlnaGxpZ2h0ZWQgdGhhdCBtYW55IGRldmVsb3BlcnMgZG9u4oCZdCBoYXZlIGEgZnVsbCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byB1c2UgY29udGFpbmVyIHRlY2hub2xvZ2llcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgd2lsbCBleHBhbmQgb24gYW5kIGRlbW9uc3RyYXRlIHNvbWUgb2YgdGhlIG1vcmUgdXNlZnVsIERvY2tlciBjb21tYW5kcyBkaXNjdXNzZWQgaW4gbXkgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtXaGF0IGlzIERvY2tlcj8mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZSBpcyB0aGUgc2ltcGxpZmllZCBkZWZpbml0aW9uIG9mIERvY2tlciB0aGF0IEkgdXNlZCBpbiBteSBwcmV2aW91cyBwb3N0OiZsdDsvcCZndDsKCiZsdDtibG9ja3F1b3RlJmd0OwogICZsdDtwJmd0O0RvY2tlciBpcyBhIHBsYXRmb3JtIGZvciBkZXZlbG9wZXJzIGFuZCBzeXNhZG1pbnMgdG8gZGV2ZWxvcCwgZGVwbG95LCBhbmQgcnVuIGFwcGxpY2F0aW9ucyB1c2luZyBjb250YWluZXJzLiZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7RG9ja2VyIGlzIGFsc28gcmVmZXJyZWQgdG8gYXMgYW4gYXBwbGljYXRpb24gcGFja2FnaW5nIHRvb2wgdGhhdCBlbmFibGVzIGFwcGxpY2F0aW9ucyB0byBiZSBjb25maWd1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZC8jaW1hZ2VzLWFuZC1jb250YWluZXJzJnF1b3Q7Jmd0O0RvY2tlciBpbWFnZSZsdDsvYSZndDsgdGhhdCBjYW4gYmUgdXNlZCB0byBzcGF3biAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyNpbWFnZXMtYW5kLWNvbnRhaW5lcnMmcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IHRoYXQgcnVuIGluc3RhbmNlcyBvZiB0aGUgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIG1hbnkgYmVuZWZpdHMgaW5jbHVkaW5nIHJ1bnRpbWUgZW52aXJvbm1lbnQgaXNvbGF0aW9uLCBjb25zaXN0ZW5jeSB2aWEgY29kZSwgYW5kIHBvcnRhYmlsaXR5LiBEb2NrZXIgY29udGFpbmVycyBjYW4gcnVuIG9uIGFueSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgc3VwcG9ydHMgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZW5naW5lJnF1b3Q7Jmd0O0RvY2tlciBFbmdpbmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtCYXNpYyBEb2NrZXIgdGVybWlub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZeKAmXMgYSBsaXN0IG9mIGJhc2ljIERvY2tlciBjb21tYW5kcyBhbmQgdGVybXMgd2l0aCBsaW5rcyB0byBtb3JlIGluZm9ybWF0aW9uLiBUaGVzZSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgRG9ja2VyIGFuZCBjb250cm9sIHRoZSBleGVjdXRvci4gVGhlIGNvbW1hbmRzIGNhbiBiZSBydW4gbG9jYWxseSBvbiBhbnkgY29tcHV0ZXIgdGhhdCBoYXMgdGhlIERvY2tlciBlbmdpbmUgaW5zdGFsbGVkLiZsdDsvcCZndDsKCiZsdDtoMyZndDtCdWlsZGluZyBEb2NrZXIgaW1hZ2VzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBhIHRleHQgZG9jdW1lbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNvbW1hbmRzIGEgdXNlciBjb3VsZCBjYWxsIG9uIHRoZSBjb21tYW5kIGxpbmUgdG8gYXNzZW1ibGUgYW4gaW1hZ2UuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBEb2NrZXJmaWxlIGlzIGEgYmx1ZXByaW50IGZvciBidWlsZGluZyBEb2NrZXIgaW1hZ2VzLiBEb2NrZXJmaWxlIHRlbXBsYXRlcyBob2xkIGVsZW1lbnRzIHN1Y2ggYXMgdGhlIGJhc2Ugb3BlcmF0aW5nIHN5c3RlbSBpbWFnZSB1c2VkIGFzIGEgZm91bmRhdGlvbiwgZXhlY3V0aW9uIGNvbW1hbmRzIHRoYXQgaW5zdGFsbC9jb25maWd1cmUgZGVwZW5kZW5jaWVzLCBhbmQgY29weSBjb21tYW5kcyB0aGF0IHB1c2ggbG9jYWwgc291cmNlIGNvZGUgb3IgYXJ0aWZhY3RzIGludG8gdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBEb2NrZXJmaWxlIGZvciBhIHNpbXBsZSBOb2RlLmpzIGFwcGxpY2F0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7RlJPTSBub2RlOjEwCgojIENyZWF0ZSBhcHAgZGlyZWN0b3J5CldPUktESVIgL3Vzci9zcmMvYXBwCgojIEluc3RhbGwgYXBwIGRlcGVuZGVuY2llcwojIEEgd2lsZGNhcmQgaXMgdXNlZCB0byBlbnN1cmUgYm90aCBwYWNrYWdlLmpzb24gQU5EIHBhY2thZ2UtbG9jay5qc29uIGFyZSBjb3BpZWQKIyB3aGVyZSBhdmFpbGFibGUgKG5wbUA1KykKQ09QWSBwYWNrYWdlKi5qc29uIC4vCgpSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIyBJZiB5b3UgYXJlIGJ1aWxkaW5nIHlvdXIgY29kZSBmb3IgcHJvZHVjdGlvbgojIFJVTiBucG0gaW5zdGFsbCAtLW9ubHk9cHJvZHVjdGlvbgoKIyBCdW5kbGUgYXBwIHNvdXJjZQpDT1BZIC4gLgoKRVhQT1NFIDUwMDAKQ01EIFsgJnF1b3Q7bnBtJnF1b3Q7LCAmcXVvdDtzdGFydCZxdW90OyBdCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2ltYWdlcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7IGxpc3RzIERvY2tlciBpbWFnZXMgZm91bmQgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gbGlzdCBhbGwgb2YgdGhlIERvY2tlciBpbWFnZXMgYW5kIHJlbGF0ZWQgZGF0YSB0aGF0IGN1cnJlbnRseSBleGlzdCBvbiB0aGUgbG9jYWwgbWFjaGluZS4gSXTigJlzIGNvbXBhcmFibGUgdG8gYSBsaW51eCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtscyZsdDsvY29kZSZndDsgb3Igd2luZG93cyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkaXImbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdXNlZCB0byBzaG93IHRoZSBjb250ZW50cyBvZiBkaXJlY3RvcmllcyBpbiBhIHRlcm1pbmFsLiBUaGlzIGNvbW1hbmQgaXMgdmVyeSB1c2VmdWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRvIG1hbmFnZSwgbWFpbnRhaW4sIGFuZCBidWlsZCBEb2NrZXIgaW1hZ2VzIGxvY2FsbHkuIEJlbG93IGlzIGFuIGV4YW1wbGUgcmVzdWx0IG9mIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgZXhlY3V0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UkVQT1NJVE9SWSAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHICAgICAgICAgICAgICAgICBJTUFHRSBJRCAgICAgICAgICAgIENSRUFURUQgICAgICAgICAgICAgU0laRQphcml2M3JhL25vZGVqcy1jaXJjbGVjaSAgICAgICAgICAgICBsYXRlc3QgICAgICAgICAgICAgIGY0MTllNGE2YjFiOCAgICAgICAgMTEgZGF5cyBhZ28gICAgICAgICA5NDNNQgpub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAgICAgICAgICAgICAgICAgIDAxYjgxNjA1MWQzNCAgICAgICAgMiB3ZWVrcyBhZ28gICAgICAgICA5MTFNQgpjaXJjbGVjaS9weXRob24gICAgICAgICAgICAgICAgICAgICAzLjcuNiAgICAgICAgICAgICAgIDBkMjk3NTg5NmM3MyAgICAgICAgNSB3ZWVrcyBhZ28gICAgICAgICAxLjQzR0IKYXJpdjNyYS9pbmZyYXN0cnVjdHVyZS1hcy1jb2RlMTAxICAgbGF0ZXN0ICAgICAgICAgICAgICBjYjIxYTM2YTI5NzMgICAgICAgIDggd2Vla3MgYWdvICAgICAgICAgOTI5TUIKcHl0aG9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43LjYgICAgICAgICAgICAgICA4NzkxNjU1MzVhNTQgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgOTE5TUIKY2lyY2xlY2kvcnVzdCAgICAgICAgICAgICAgICAgICAgICAgMS1idXN0ZXIgICAgICAgICAgICAyMTgzMjliOTI5Y2YgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgMS42OEdCCnJ1c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtYnVzdGVyICAgICAgICAgICAgZjVmZGUwOTJhMWNkICAgICAgICAyIG1vbnRocyBhZ28gICAgICAgIDEuMTlHQgpweXRob24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcuNCAgICAgICAgICAgICAgIDlmYTU2ZDBhZGRhZSAgICAgICAgNiBtb250aHMgYWdvICAgICAgICA5MThNQgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGJ1aWxkIC10ICZhbXA7bHQ7aW1hZ2UgbmFtZSZhbXA7Z3Q7IC4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBjcmVhdGVzIGEgRG9ja2VyIGltYWdlIHdpdGggYSB0YWcgdXNpbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LXQmbHQ7L2NvZGUmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhYm92ZSBjb21tYW5kLCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgdmFsaWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDssIGJ1aWxkcyBhIERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgZXhlY3V0aW9uIGNvbW1hbmRzIGRlZmluZWQgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7LiBPbmUgY3JpdGljYWwgZWxlbWVudCB0byBidWlsZGluZyBpbWFnZXMgYW5kIHN0YXJ0aW5nIGNvbnRhaW5lcnMgaXMgdW5kZXJzdGFuZGluZyB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9hJmd0Oy4gQnVpbGRpbmcgRG9ja2VyIGltYWdlcyB1c2luZyB0aGlzIGNvbW1hbmQgc3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIERvY2tlciBpbWFnZXMgdXRpbGl6ZXMgYSBuYW1pbmcgY29udmVudGlvbiBtYWRlIHVwIG9mIHNsYXNoLXNlcGFyYXRlZCBuYW1lIGNvbXBvbmVudHMgdGhhdCBtYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgc2VwYXJhdG9ycy4gQSBzZXBhcmF0b3IgaXMgZGVmaW5lZCBhcyBhIHBlcmlvZCwgb25lIG9yIHR3byB1bmRlcnNjb3Jlcywgb3Igb25lIG9yIG1vcmUgZGFzaGVzLiBBIG5hbWUgY29tcG9uZW50IG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggYSBzZXBhcmF0b3IuIEEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7ZG9ja2VyIHRhZyZsdDsvYSZndDsgbmFtZSBtdXN0IGJlIHZhbGlkIEFTQ0lJIGFuZCBtYXkgY29udGFpbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHVuZGVyc2NvcmVzLCBwZXJpb2RzLCBhbmQgZGFzaGVzLiBBIHRhZyBuYW1lIG1heSBub3Qgc3RhcnQgd2l0aCBhIHBlcmlvZCBvciBhIGRhc2ggYW5kIG1heSBjb250YWluIGEgbWF4aW11bSBvZiAxMjggY2hhcmFjdGVycy4gWW91IGNhbiBncm91cCB5b3VyIGltYWdlcyB0b2dldGhlciB1c2luZyBuYW1lcyBhbmQgdGFncy4gSW4gdGhpcyBwb3N0LCB3ZSB3aWxsIHVzZSB0aGlzIG5hbWluZyBjb252ZW50aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB0aGF0IHdl4oCZdmUgZGlzY3Vzc2VkIG5hbWluZyBjb252ZW50aW9ucyBsZXTigJlzIGJ1aWxkIGEgRG9ja2VyIGltYWdlIGJhc2VkIG9uIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXJmaWxlJmx0Oy9jb2RlJmd0OyBpbiBvdXIgZXhhbXBsZSBhYm92ZS4gSW4gdGhpcyBwb3N0IHdlIGNhbiB1dGlsaXplIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9wdW5rZGF0YS9ub2RlanMtY2lyY2xlY2kmcXVvdDsmZ3Q7cHVua2RhdGEvbm9kZWpzLWNpcmNsZWNpJmx0Oy9hJmd0OyBnaXQgcmVwby4gQ2xvbmUgaXQgbG9jYWxseSBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7JCBjZCZsdDsvY29kZSZndDsgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlbiBydW4gdGhpcyBjb21tYW5kIHRvIGJ1aWxkIGEgbmV3IERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgcHJvamVjdCBzb3VyY2UgY29kZSBhbmQgdGhlIGV4YW1wbGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgYnVpbGQgLXQgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0FmdGVyIHJ1bm5pbmcgdGhpcyBidWlsZCBjb21tYW5kLCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtTZW5kaW5nIGJ1aWxkIGNvbnRleHQgdG8gRG9ja2VyIGRhZW1vbiAgOTguMDdNQgpTdGVwIDEvNyA6IEZST00gbm9kZToxMAogLS0tJmFtcDtndDsgMDFiODE2MDUxZDM0ClN0ZXAgMi83IDogV09SS0RJUiAvdXNyL3NyYy9hcHAKIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyAxMmIyZWRjMmI5N2MKU3RlcCAzLzcgOiBDT1BZIHBhY2thZ2UqLmpzb24gLi8KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyA1M2I1YjhlNGU2NTQKU3RlcCA0LzcgOiBSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyBlZWZkZjU2MGJjNGQKU3RlcCA1LzcgOiBDT1BZIC4gLgogLS0tJmFtcDtndDsgYWE3ZDU0ZTk1NWM2ClN0ZXAgNi83IDogRVhQT1NFIDUwMDAKIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gY2M0MjdkYmFmZGNjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgY2M0MjdkYmFmZGNjCiAtLS0mYW1wO2d0OyA0Y2U5MDg0ZTM5ZWIKU3RlcCA3LzcgOiBDTUQgWyAmcXVvdDtucG0mcXVvdDssICZxdW90O3N0YXJ0JnF1b3Q7IF0KIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gZjZlODU0NTk5ZGRjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgZjZlODU0NTk5ZGRjCiAtLS0mYW1wO2d0OyA3OWE4ZDk0Y2JmNDIKU3VjY2Vzc2Z1bGx5IGJ1aWx0IDc5YThkOTRjYmY0MgpTdWNjZXNzZnVsbHkgdGFnZ2VkIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2VzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgeW91ciBuZXdseSBjcmVhdGVkIERvY2tlciBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDskIGRvY2tlciBpbWFnZXMKClJFUE9TSVRPUlkgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRyAgICAgICAgICAgICAgICAgSU1BR0UgSUQgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNJWkUKdHV0b3JpYWwvY2lyY2xlY2ktbm9kZSAgICAgICAgICAgICAgMTAgICAgICAgICAgICAgICAgICA3OWE4ZDk0Y2JmNDIgICAgICAgIDQgbWludXRlcyBhZ28gICAgICAgMS4wM0dCCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyB5b3UgaGF2ZSBhbiBhd2Vzb21lIERvY2tlciBpbWFnZSBidWlsdCBhbmQgcmVhZHkgdG8gdXNlLiBJbiB0aGUgbmV4dCBzZWN0aW9uIEnigJlsbCBjcmVhdGUgbmV3IGluc3RhbmNlcyBvZiB0aGlzIERvY2tlciBpbWFnZSBpbiB0aGUgZm9ybSBvZiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvY29udGFpbmVyLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXIgY29udGFpbmVycyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBjb250YWluZXJzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IGFyZSBkZXNpZ25lZCB0byBydW4gYXBwbGljYXRpb25zIGluIGlzb2xhdGlvbiBhbmQgYXQgc2NhbGUuICBUaGV5IGFsbG93IGZvciBzdHJlYW1saW5pbmcgdGhlIG1hbmFnZW1lbnQgYW5kIGltcGxlbWVudGF0aW9uIG9mIGFwcGxpY2F0aW9ucy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7QmVmb3JlIHdlIHN0YXJ0IGNyZWF0aW5nIGFuZCBydW5uaW5nIERvY2tlciBjb250YWluZXJzLCBJ4oCZbGwgYWRkIHNvbWUgY29udGV4dC4gRG9ja2VyIGNvbnRhaW5lcnMgYXJlIG9iamVjdHMgdGhhdCBhcmUgYmFzZWQgb24gYW5kIHNwYXduZWQgZnJvbSBEb2NrZXIgaW1hZ2VzLiBEb2NrZXIgaW1hZ2VzIGFyZSB0ZW1wbGF0ZXMuIEkgbGlrZW4gdGhlbSB0byBjb29raWUgY3V0dGVyIG1vbGRzLiBDb29raWUgY3V0dGVyIG1vbGRzIGVuYWJsZSB5b3UgdG8gcXVpY2tseSBhbmQgY29uc2lzdGVudGx5IHByb2R1Y2UgaW5kaXZpZHVhbCBjb29raWVzIGZyb20gZG91Z2guIEkgbGlrZW4gdGhlc2UgY29va2llcyB0byBEb2NrZXIgY29udGFpbmVycyB3aGljaCBhcmUgZGlzdGluZ3Vpc2hlZCBpbiBzaGFwZSBieSB0aGUgdHlwZSBvZiBjb29raWUgbW9sZCwgb3IgRG9ja2VyIGNvbnRhaW5lciwgdXNlZCBpbiB0aGUgY3V0dGluZy9idWlsZGluZyBwcm9jZXNzLiBTbyB1c2luZyBteSBjb29raWUgY3V0dGVyIGFuYWxvZ3ksIERvY2tlciBpbWFnZXMgYXJlIHRoZSBjb29raWUgY3V0dGVyIGFuZCB0aGUgaW5kaXZpZHVhbCBjb29raWVzIGN1dCB1c2luZyB0aGF0IGN1dHRlciBhcmUgZXF1aXZhbGVudCB0byBEb2NrZXIgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCBJ4oCZdmUgcHJvYmFibHkgbWFkZSB5b3UgYSBiaXQgaHVuZ2FyeSBmb3IgY29va2llcywgbGV04oCZcyBzdGFydCBydW5uaW5nIHNvbWUgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBydW5zIGEgY29tbWFuZCBpbiBhIG5ldyBjb250YWluZXIuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY29tbWFuZCBvZiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgc3RhcnRpbmcgRG9ja2VyIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCBhIG5ldyBjb250YWluZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcnVuIC1kIC1wIDUwMDA6NTAwMCAtLW5hbWUgbm9kZXRlc3QwMSB0dXRvcmlhbC9jaXJjbGVjaS1ub2RlOjEwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NvbmdyYXRzISBZb3Ugc2hvdWxkIG5vdyBoYXZlIHRoZSBOb2RlLmpzIGltYWdlIHJ1bm5pbmcgaW4gdGhlIG5ldyBjb250YWluZXIgdGhhdCB5b3UganVzdCBjcmVhdGVkIGF2YWlsYWJsZSBvbiBwb3J0IDUwMDAuIE9wZW4gYSB3ZWIgYnJvd3NlciBhbmQgZ28gdG8gdGhpcyBhZGRyZXNzOiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtodHRwOi8vbG9jYWxob3N0OjUwMDAmbHQ7L2NvZGUmZ3Q7LiBJdCB3aWxsIHRha2UgeW91IHRoZSBzdGF0aWMg4oCcV2VsY29tZSB0byBDSS9DRCAxMDEgdXNpbmcgQ2lyY2xlQ0kh4oCdIHdlYiBwYWdlIHNlcnZlZCBieSB0aGlzIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsc28gdmVyaWZ5IHlvdXIgY29udGFpbmVyIGlzIHJ1bm5pbmcgYnkgZXhlY3V0aW5nIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbC4gV2XigJlsbCBkaXNjdXNzIHRoaXMgaW4gdGhlIG5leHQgc2VjdGlvbi4gQmVmb3JlIHRoYXQsIGxldOKAmXMgc3RhcnQgYW4gb3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGFwcGxpY2F0aW9uIGJ5IHJ1bm5pbmcgYW5vdGhlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnRlZCBvdXIgZmlyc3QgY29udGFpbmVyIHdpdGggdGhlIG5hbWUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDsgYW5kIHNpbmNlIGNvbnRhaW5lciBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgd2XigJlyZSBnb2luZyB0byBuYW1lIG91ciBuZXcgY29udGFpbmVyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7LiBBbm90aGVyIGNoYW5nZSB0aGF0IG11c3QgYmUgbWFkZSBpbiBvdXIgbmV3IGNvbnRhaW5lciBpcyB0aGUgcG9ydCBudW1iZXIuIFdl4oCZbGwgY2hhbmdlIGl0IGZyb20gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMCZsdDsvY29kZSZndDsgdG8gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMSZsdDsvY29kZSZndDsgc2luY2UgYXBwbGljYXRpb25zIGNhbm5vdCBvY2N1cHkgdGhlIHNhbWUgcG9ydCBudW1iZXIgb24gdGhlIHNhbWUgbmV0d29yayBpbnRlcmZhY2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RXhlY3V0ZSB0aGUgZm9sbG93aW5nICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtZCAtcCA1MDAxOjUwMDAgLS1uYW1lIG5vZGV0ZXN0MDIgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISBZb3Ugbm93IGhhdmUgdHdvIGNvbnRhaW5lcnMgcnVubmluZyBvbiB5b3VyIGxvY2FsIG1hY2hpbmUuIFlvdSBjYW4gZ28gdG8gdGhpcyBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMSZsdDsvY29kZSZndDsgaW4gYSBicm93c2VyIGFuZCBzZWUgdGhlIGFwcCBydW5uaW5nIGluIHlvdXIgc2Vjb25kIERvY2tlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaXMgdmVyeSByb2J1c3QgYW5kIGhhcyBtYW55IHByb3BlcnR5IGFuZCBjb25maWd1cmF0aW9uIGZsYWdzIHdoaWNoIEkgd29u4oCZdCBiZSBhYmxlIHRvIGFkZHJlc3Mgb3IgZGVtb25zdHJhdGUgaW4gdGhpcyBwb3N0LiBJIGhpZ2hseSByZWNvbW1lbmQgdGhhdCB5b3UgcmVhZCBhbmQgZmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgbWFueSB3YXlzIHRoYXQgeW91IGNhbiBleGVjdXRlIGFuZCBydW4gRG9ja2VyIGNvbnRhaW5lcnMuIFlvdSBjYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7cmVhZCB1cCBvbiBEb2NrZXIgY29udGFpbmVycyBjb21tYW5kcyBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9wcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbGlzdHMgYWxsIG9mIHRoZSBydW5uaW5nIERvY2tlciBjb250YWluZXJzLiBUaGlzIGNvbW1hbmQgc2VydmVzIGEgc2ltaWxhciBwdXJwb3NlIGFzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2UmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgYW5kIGxpc3RzIGFjdGl2ZWx5IHJ1bm5pbmcgY29udGFpbmVycy4gVXNlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDstYSZsdDsvY29kZSZndDsgZmxhZyB0byBzaG93IGFsbCBvZiB0aGUgcnVubmluZyBhbmQgbm90IHJ1bm5pbmcgY29udGFpbmVycy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoaXMgY29tbWFuZCBpbiBhIHRlcm1pbmFsIGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIGJvdGggb2YgdGhlIHByZXZpb3VzbHkgY3JlYXRlZCBjb250YWluZXJzIHJ1bm5pbmcgaW4gdGhlIHJlc3VsdHM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlIHJlc3VsdHMgd2lsbCBiZSBzaW1pbGFyIHRvIHRoaXMgc2hvd2luZyBib3RoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDEmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcnMgc3RpbGwgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0NPTlRBSU5FUiBJRCAgICAgICAgSU1BR0UgICAgICAgICAgICAgICAgICAgICAgIENPTU1BTkQgICAgICAgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNUQVRVUyAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICAgICAgIE5BTUVTCmRmZDMwMTgxZTE1YyAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAxMiBtaW51dGVzIGFnbyAgICAgIFVwIDEyIG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAxLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAyOCBtaW51dGVzIGFnbyAgICAgIFVwIDI4IG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAwLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7CiAgICAmbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvc3RhcnQvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdGFydHMgYW4gZXhpc3RpbmcgY29udGFpbmVyLiZsdDsvcCZndDsKICAmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsKICAgICZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9zdG9wLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdG9wcyBhbiBleGlzdGluZyBjb250YWluZXIuJmx0Oy9wJmd0OwogICZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgaXMgb25seSB1c2VkIHRvIHN0YXJ0ICZsdDtzdHJvbmcmZ3Q7ZXhpc3RpbmcmbHQ7L3N0cm9uZyZndDsgY29udGFpbmVycyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcnVuJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBVbmxlc3MgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy0tcm09dHJ1ZSZsdDsvY29kZSZndDsgZmxhZyBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgbmV3bHkgY3JlYXRlZCBjb250YWluZXJzIHdpbGwgcGVyc2lzdCBhbmQgY2FuIGJlIHJldXNlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RhcnQmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCZsdDsvY29kZSZndDsgY29tbWFuZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdG9wIHNvbWUgcnVubmluZyBjb250YWluZXJzIGJ5IGV4ZWN1dGluZyB0aGVzZSBjb21tYW5kczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBzdG9wIG5vZGV0ZXN0MDEgbm9kZXRlc3QwMgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBydW5uaW5nIGNvbnRhaW5lcnMgc2hvdWxkIG5vdyBiZSBpbmFjdGl2ZSBhbmQgc3RvcHBlZC4gU2luY2UgdGhleeKAmXJlIHN0b3BwZWQsIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgaW5kaWNhdGluZyBzdG9wcGVkIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtDT05UQUlORVIgSUQgICAgICAgIElNQUdFICAgICAgICAgICAgICAgICAgICAgICBDT01NQU5EICAgICAgICAgICAgICAgICAgQ1JFQVRFRCAgICAgICAgICAgICBTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICBOQU1FUwpkZmQzMDE4MWUxNWMgICAgICAgIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAgICAmcXVvdDtkb2NrZXItZW50cnlwb2ludC5z4oCmJnF1b3Q7ICAgMzEgbWludXRlcyBhZ28gICAgICBFeGl0ZWQgKDApIDM4IHNlY29uZHMgYWdvICAgICAgICAgICAgICAgICAgICAgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICBBYm91dCBhbiBob3VyIGFnbyAgIEV4aXRlZCAoMCkgMzggc2Vjb25kcyBhZ28gICAgICAgICAgICAgICAgICAgICAgIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhvdWdoIHRoZXNlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQgdGhleSB3aWxsIHBlcnNpc3QgYW5kIGNhbiBiZSByZXN0YXJ0ZWQgdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCZsdDsvY29kZSZndDsgY29tbWFuZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXRzIHN0YXJ0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAxJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgc28gd2UgY2FuIGxlYXJuIGhvdyB0byB1c2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBmZWF0dXJlcyBpbiB0aGUgbmV4dCBzZWN0aW9uLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHN0YXJ0IG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Tm93IHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBOb3RpY2UgdGhlIHN0YXR1cyBmb3IgdGhpcyBjb250YWluZXIgcmVhZHMgc2ltaWxhciB0byAgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXAgYWJvdXQgYSAzMCBzZWNvbmRzJmx0Oy9jb2RlJmd0OyBvciBzb21ldGhpbmcgdG8gdGhhdCBlZmZlY3QuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9ncy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ3MmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBmZXRjaGVzIGEgY29udGFpbmVy4oCZcyBsb2dzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIHNlZSBsb2dzIHRoYXQgYXJlIHByZXNlbnQgYXQgdGhlIHRpbWUgb2YgZXhlY3V0aW9uLiBTaW5jZSB5b3VyIGFwcHMgYXJlIHJ1bm5pbmcgaW5zaWRlIHRoZXNlIGNvbnRhaW5lcnMsIHRoZSBsb2dzIGNvbW1hbmQgaXMgdXNlZnVsIGZvciByZWFkaW5nIG91dCBjcml0aWNhbCBhcHAgb3V0cHV0cy4gVGhpcyBoZWxwcyBpbiB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgYXBwIGlzIHBlcmZvcm1pbmcgYW5kIGFueSBkZWJ1Z2dpbmcvdHJvdWJsZXNob290aW5nIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBydW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDEmbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBsb2dzIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIGNvbW1hbmQgeW91IHNob3VsZCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHdoYXTigJlzIHNob3duIGJlbG93LiBJdCBzaG93cyB0aGF0IHRoZSBhcHAgaW5zaWRlIGNvbnRhaW5lciBpcyB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O05vZGUgc2VydmVyIGlzIHJ1bm5pbmcuLgoKJmFtcDtndDsgbm9kZWpzLWNpcmNsZWNpQDAuMC4xIHN0YXJ0IC91c3Ivc3JjL2FwcAomYW1wO2d0OyBub2RlIGFwcC5qcwoKTm9kZSBzZXJ2ZXIgaXMgcnVubmluZy4uCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0gJmFtcDtsdDtjb250YWluZXIgbmFtZSZhbXA7Z3Q7Jmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgZGVsZXRlcyBhIGNvbnRhaW5lciBvciBtdWx0aXBsZSBjb250YWluZXJzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtQZXJzaXN0aW5nIERvY2tlciBjb250YWluZXJzIGNvbnN1bWVzIGRpc2sgc3BhY2UgYW5kIHJlc291cmNlcyBvbiBpdHMgaG9zdC4gT3BlcmF0aW9uYWxseSwgaXQgZG9lc27igJl0IG1ha2UgbXVjaCBzZW5zZSB0byBwZXJzaXN0IGV2ZXJ5IGNvbnRhaW5lciBvbiBkaXNrIHNpbmNlIGluIG1vc3QgY2FzZXMgY29udGFpbmVycyBhcmUgZGlzcG9zYWJsZSBhbmQgc2hvdWxkIGJlIHVzZWQgdGhhdCB3YXkuIFNvIHdoZW4gYSBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpdCBzaG91bGQgYmUgcGVybWFuZW50bHkgZGlzY2FyZGVkIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgcGVybWFuZW50bHkgZGVsZXRlcyBjb250YWluZXJzIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAyJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBzbyBsZXTigJlzIHNhdmUgc29tZSBkaXNrIHNwYWNlIGFuZCBkZWxldGUgaXQuIE5vdGUgdGhpcyBjb21tYW5kIHdpbGwgb25seSBkZWxldGUgaW5hY3RpdmUvc3RvcHBlZCBjb250YWluZXJzIGFuZCB3aWxsIGVycm9yIG91dCBpZiBpdOKAmXMgcnVuIGFnYWluc3QgYW4gYWN0aXZlL3J1bm5pbmcgY29udGFpbmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBybSBub2RldGVzdDAyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm8gbG9uZ2VyIHNlZSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMiZsdDsvY29kZSZndDsgY29udGFpbmVyIG9uIHRoZSBob3N0IGFmdGVyIHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGhhcyBvdGhlciBwcm9wZXJ0aWVzIGFuZCBmbGFncyBhbmQgeW91IHNob3VsZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcm0vJnF1b3Q7Jmd0O2ZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggdGhlbSBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ybWkvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBybWkmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBkZWxldGVzIERvY2tlciBpbWFnZXMgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGFwcGxpZXMgdG8gZGVsZXRpbmcgRG9ja2VyIGltYWdlcyBmcm9tIGEgaG9zdC4gSWYgdGhlcmUgYXJlIGV4aXN0aW5nIGNvbnRhaW5lcnMgb24gdGhlIGhvc3QgdGhhdCBhcmUgYmFzZWQgb24gYSBzcGVjaWZpYyBpbWFnZSwgdGhlbiB0aGlzIGNvbW1hbmQgd2lsbCBub3QgYWxsb3cgdGhlIGRlbGV0aW9uIG9mIHRoZSBjb250YWluZXIgYmFzZWQgb24gdGhlIGltYWdlLiBZb3UgbXVzdCBmaXJzdCBlbnN1cmUgdGhlIGNvbnRhaW5lciBpcyBzdG9wcGVkIGFuZCBkZWxldGVkIGJlZm9yZSB5b3UgY2FuIGRlbGV0ZSBEb2NrZXIgaW1hZ2VzIHVzaW5nIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtaSZsdDsvY29kZSZndDsgY29tbWFuZC4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtaS8mcXVvdDsmZ3Q7UmVhZCB1cCBvbiB0aGUgZG9ja2VyIHJtaSBjb21tYW5kIGhlcmUmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBpbWFnZSBkZXBsb3ltZW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtNYW55IERvY2tlciBpbWFnZXMgYXJlIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgaG9zdGVkIG9uIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2RvY2tlci1odWIvJnF1b3Q7Jmd0O0RvY2tlciBIdWIgUmVnaXN0cnkmbHQ7L2EmZ3Q7IHdoaWNoIGlzIGFuIG9ubGluZSBjZW50cmFsIGhvc3Rpbmcgc29sdXRpb24gZm9yIERvY2tlciBpbWFnZXMuIERvY2tlciBIdWIgZW5hYmxlcyBhbnlvbmUgd2l0aCBhbiBpbnRlcm5ldCBjb25uZWN0aW9uIHRvIHB1bGwgZG93biBwdWJsaWNseSBhdmFpbGFibGUgaW1hZ2VzIGZyb20gdGhlIHJlZ2lzdHJ5IHRvIHRoZWlyIGxvY2FsIG1hY2hpbmVzIG9yIHNlcnZlcnMuIEl0IGFsc28gZW5hYmxlcyByZWdpc3RlcmVkIHVzZXJzIHRvIHVwbG9hZCBhbmQgcHVibGljbHkgc2hhcmUgYW55IG9mIHRoZWlyIGNvbnRhaW5lcnMgc28gdGhhdCBhbnlvbmUgY2FuIHB1bGwgZG93biB0aGF0IGltYWdlIGZyb20gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2h1Yi5kb2NrZXIuY29tLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIEnigJlsbCBicmllZmx5IGRpc2N1c3Mgc29tZSBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItaHViLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0OyByZWxhdGVkIGNvbW1hbmRzLiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3B1bGwvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBwdWxsJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgcHVsbHMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IGZyb20gYSByZWdpc3RyeS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGVuYWJsZXMgeW91IHRvIGRvd25sb2FkIGEgdmFsaWQgRG9ja2VyIGltYWdlIGZyb20gRG9ja2VyIEh1Yi4gUHVibGljbHkgYXZhaWxhYmxlIERvY2tlciBpbWFnZXMgZG8gbm90IHJlcXVpcmUgYXV0aGVudGljYXRpb24uIElmIHRoZSByZWdpc3RyeSBpcyBwcml2YXRlIHlvdSB3aWxsIG5lZWQgdG8gYXV0aGVudGljYXRlIHVzaW5nIGFuIGFzc2lnbmVkIGNyZWRlbnRpYWwgdXN1YWxseSBpbiB0aGUgZm9ybSBvZiBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ2luJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbG9ncyBpbnRvIGEgRG9ja2VyIHJlZ2lzdHJ5LiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyB5b3UgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgYSBEb2NrZXIgUmVnaXN0cnkuIElmIHlvdeKAmXJlIHVzaW5nIHRoaXMgbG9naW4gY29tbWFuZCB5b3Ugc2hvdWxkICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8jcHJvdmlkZS1hLXBhc3N3b3JkLXVzaW5nLXN0ZGluJnF1b3Q7Jmd0O3BvcHVsYXRlIGEgLnR4dCBmaWxlJmx0Oy9hJmd0OyB3aXRoIHlvdXIgRG9ja2VyIEh1YiBhY2NvdW50IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBwcm90ZWN0IHRoZXNlIGNyZWRlbnRpYWxzIGZyb20gZXhwb3N1cmUuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcHVzaC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHB1c2gmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBwdXNoZXMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IHRvIGEgcmVnaXN0cnkuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBlbmFibGVzIHVzZXJzIHRvIHVwbG9hZCBpbWFnZXMgdG8gYSBEb2NrZXIgcmVnaXN0cnkgYW5kIHJlcXVpcmVzIHZhbGlkIGNyZWRlbnRpYWxzLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O1NvIHRoZXJlIHlvdSBoYXZlIGl0LiBJbiB0aGlzIHBvc3QgSSB3ZW50IGEgYml0IGRlZXBlciBpbiBleHBsYWluaW5nIERvY2tlciB0ZXJtaW5vbG9neSBhbmQgY29tbWFuZHMgYXMgd2VsbCBhcyBjb250YWluZXJzIGFuZCB0aGVpciB1c2FnZS4gVGhlIGNvbW1hbmRzIEkgZGlzY3Vzc2VkIGFuZCBkZW1vbnN0cmF0ZWQsIGFyZSB0aGUgbW9zdCB3aWRlbHkgdXNlZCBjb21tYW5kcyBpbiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGxlYXJuaW5nIGEgYml0IG1vcmUgYWJvdXQgdGhlbSBhbmQgdGhlaXIgcHJvcGVydGllcyBhbmQgZmxhZ3Mgd2lsbCBkZWZpbml0ZWx5IGhlbHAgeW91IGxldmVsIHVwIHlvdXIgRG9ja2VyIGFuZCBjb250YWluZXIgc2tpbGxzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZhbWlsaWFyaXppbmcgeW91cnNlbGYgd2l0aCB0aGVzZSBiYXNpYyBjb21tYW5kcyB3aWxsIHJlbW92ZSBvbmUgb2YgdGhlIGxhcmdlciBiYXJyaWVycyB0aGF0IG5ldyB1c2VycyBvZiBDaXJjbGVDSSBlbmNvdW50ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SWYgeW91IHdhbnQgdG8gbGVhcm4gbW9yZSBhYm91dCBDaXJjbGVDSSBjaGVjayBvdXQgdGhlICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wLyZxdW90OyZndDtkb2N1bWVudGF0aW9uIHNpdGUmbHQ7L2EmZ3Q7LCBhbmQgaWYgeW91IHJlYWxseSBnZXQgc3R1Y2sgeW91IGNhbiByZWFjaCBvdXQgdG8gdGhlIENpcmNsZUNJIGNvbW11bml0eSB2aWEgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mbHQ7L2EmZ3Q7IGNvbW11bml0eS9mb3J1bSBzaXRlLiZsdDsvcCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogIDwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:48 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:56:45 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"05313f894279ebd0","ot-tracer-traceid":"1fde94a41cc754d7","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889405581:91d97b58e30
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:11:45 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da2f07a5bd614-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce642a4c0000d6146f2b2200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:50 GMT
+- request:
+ method: head
+ uri: https://medium.com/media/7da74bb30f8a2a82b0acb89b213a018b/href
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 302
+ message: Found
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:56:45 GMT
+ Content-Type:
+ - application/octet-stream
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"352de0c311f8c6cc","ot-tracer-traceid":"5e3faccd38ee3795","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889405750:a4574d53e0c6
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Expires:
+ - Thu, 09 Sep 1999 09:09:09 GMT
+ Pragma:
+ - no-cache
+ Location:
+ - https://www.youtube.com/watch?v=QOCaacO8wus
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da2f18e86be4b-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce642af60000be4ba9253200000001
+ body:
+ encoding: UTF-8
+ string: ''
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:50 GMT
+- request:
+ method: head
+ uri: https://www.youtube.com/watch?v=QOCaacO8wus
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Cookie:
+ - __cfduid=d87384f92d730a527d5f2a8e68c0956bb1589889405; uid=lo_8PbSwmj7coVP;
+ sid=1:QdG5BWS6IzslDVvD7M9t443qbOiz7nh4FP7usEcZIhlK46vajVlPnOtJ5MXJp5Xo; optimizelyEndUserId=lo_8PbSwmj7coVP;
+ __cfruid=919155415894e958b1eb59117e980953ae286e1c-1589889405
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ X-Frame-Options:
+ - SAMEORIGIN
+ Cache-Control:
+ - no-cache
+ Content-Type:
+ - text/html; charset=utf-8
+ Expires:
+ - Tue, 27 Apr 1971 19:44:06 GMT
+ P3p:
+ - CP="This is not a P3P policy! See http://support.google.com/accounts/answer/151657?hl=it
+ for more info."
+ Strict-Transport-Security:
+ - max-age=31536000
+ X-Content-Type-Options:
+ - nosniff
+ Date:
+ - Tue, 19 May 2020 11:56:46 GMT
+ Server:
+ - YouTube Frontend Proxy
+ X-Xss-Protection:
+ - '0'
+ Transfer-Encoding:
+ - chunked
+ Alt-Svc:
+ - h3-27=":443"; ma=2592000,h3-25=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443";
+ ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443";
+ ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
+ Accept-Ranges:
+ - none
+ Vary:
+ - Accept-Encoding
+ body:
+ encoding: UTF-8
+ string: ''
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:51 GMT
+- request:
+ method: post
+ uri: https://api.twitter.com/oauth2/token
+ body:
+ encoding: UTF-8
+ string: grant_type=client_credentials
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Accept:
+ - "*/*"
+ Connection:
+ - close
+ Content-Type:
+ - application/x-www-form-urlencoded
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '153'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Tue, 19 May 2020 11:56:46 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Tue, 19 May 2020 11:56:46 GMT
+ Ml:
+ - A
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Connection-Hash:
+ - 13204233c35d40f76ae218b272a07040
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - DENY
+ X-Response-Time:
+ - '122'
+ X-Transaction:
+ - 0034ad8c002fe515
+ X-Tsa-Request-Body-Time:
+ - '0'
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Ua-Compatible:
+ - IE=edge,chrome=1
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"token_type":"bearer","access_token":"ACCESS_TOKEN"}'
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:51 GMT
+- request:
+ method: get
+ uri: https://api.twitter.com/1.1/statuses/show/948256083352735744.json?tweet_mode=extended
+ body:
+ encoding: UTF-8
+ string: ''
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Connection:
+ - close
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '3878'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Tue, 19 May 2020 11:56:46 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Tue, 19 May 2020 11:56:46 GMT
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Access-Level:
+ - read
+ X-Connection-Hash:
+ - 13f253a513cde3aa9823e988fbb48e97
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-Rate-Limit-Limit:
+ - '900'
+ X-Rate-Limit-Remaining:
+ - '897'
+ X-Rate-Limit-Reset:
+ - '1589890100'
+ X-Response-Time:
+ - '119'
+ X-Transaction:
+ - 0003e5ad005e58ee
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"created_at":"Tue Jan 02 18:14:02 +0000 2018","id":948256083352735744,"id_str":"948256083352735744","full_text":"I''m
+ a full-stack developer https:\/\/t.co\/wvFikfWJ7f","truncated":false,"display_text_range":[0,26],"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[],"media":[{"id":948256051085770752,"id_str":"948256051085770752","indices":[27,50],"media_url":"http:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","url":"https:\/\/t.co\/wvFikfWJ7f","display_url":"pic.twitter.com\/wvFikfWJ7f","expanded_url":"https:\/\/twitter.com\/bendhalpern\/status\/948256083352735744\/photo\/1","type":"photo","sizes":{"large":{"w":1536,"h":2048,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":900,"h":1200,"resize":"fit"},"small":{"w":510,"h":680,"resize":"fit"}}}]},"extended_entities":{"media":[{"id":948256051085770752,"id_str":"948256051085770752","indices":[27,50],"media_url":"http:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","media_url_https":"https:\/\/pbs.twimg.com\/media\/DSjh2rkVAAApeFR.jpg","url":"https:\/\/t.co\/wvFikfWJ7f","display_url":"pic.twitter.com\/wvFikfWJ7f","expanded_url":"https:\/\/twitter.com\/bendhalpern\/status\/948256083352735744\/photo\/1","type":"photo","sizes":{"large":{"w":1536,"h":2048,"resize":"fit"},"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":900,"h":1200,"resize":"fit"},"small":{"w":510,"h":680,"resize":"fit"}}}]},"source":"\u003ca
+ href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter
+ for iPhone\u003c\/a\u003e","in_reply_to_status_id":948243620846620673,"in_reply_to_status_id_str":"948243620846620673","in_reply_to_user_id":161419043,"in_reply_to_user_id_str":"161419043","in_reply_to_screen_name":"bendhalpern","user":{"id":161419043,"id_str":"161419043","name":"Ben
+ Halpern \ud83e\udd81","screen_name":"bendhalpern","location":"Brooklyn, NY\/Beacon,
+ NY","description":"Creator\/founder\/webmaster of https:\/\/t.co\/lhcCPP1ReQ
+ (@ThePracticalDev). Coder, buddhist, feminist, Batman. He\/Him.","url":"https:\/\/t.co\/qqIzCffhit","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/qqIzCffhit","expanded_url":"http:\/\/dev.to\/ben","display_url":"dev.to\/ben","indices":[0,23]}]},"description":{"urls":[{"url":"https:\/\/t.co\/lhcCPP1ReQ","expanded_url":"http:\/\/dev.to","display_url":"dev.to","indices":[29,52]}]}},"protected":false,"followers_count":39142,"friends_count":2168,"listed_count":689,"created_at":"Wed
+ Jun 30 20:15:57 +0000 2010","favourites_count":35151,"utc_offset":null,"time_zone":null,"geo_enabled":true,"verified":true,"statuses_count":15326,"lang":null,"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"EDECE9","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme3\/bg.gif","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme3\/bg.gif","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/855590922486136832\/g8m8zpCp_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/855590922486136832\/g8m8zpCp_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/161419043\/1492834234","profile_link_color":"3A1E75","profile_sidebar_border_color":"FFFFFF","profile_sidebar_fill_color":"E3E2DE","profile_text_color":"634047","profile_use_background_image":true,"has_extended_profile":true,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":65,"favorite_count":511,"favorited":false,"retweeted":false,"possibly_sensitive":false,"possibly_sensitive_appealable":false,"lang":"en"}'
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:51 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:56:47 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"74d03fbf5ddc5404","ot-tracer-traceid":"374e994e096fa2a5","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889407400:c6d4f36d2a98
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:11:47 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da2f9f8330e22-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce64303a00000e22b7ab4200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDExOjQ4OjUyIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:47 GMT
+- request:
+ method: get
+ uri: https://circleci.com/blog/feed.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/xml
+ Date:
+ - Tue, 19 May 2020 11:56:48 GMT
+ Etag:
+ - '"d148e5f0c8f6530989f97099948abd37"'
+ Last-Modified:
+ - Tue, 19 May 2020 02:33:22 GMT
+ Server:
+ - nginx
+ Strict-Transport-Security:
+ - max-age=15724800
+ X-Amz-Id-2:
+ - wC8wgqEFpBDT6GG6F9rtUb/Hz72I2r97VuqWiJHMfEvBvNckXCWKHBzc0I8A7/9dL1Ll57pMng0=
+ X-Amz-Request-Id:
+ - 145C953BCF9448A7
+ X-Frame-Options:
+ - SAMEORIGIN
+ Content-Length:
+ - '183502'
+ Connection:
+ - keep-alive
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiCiAgeG1sOmJhc2U9Imh0dHBzOi8vY2lyY2xlY2kuY29tLyIKICB4bWxuczphdG9tPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8Y2hhbm5lbD4KICAgIDx0aXRsZT5UaGUgQ2lyY2xlQ0kgQmxvZyBGZWVkIC0gQ2lyY2xlQ0k8L3RpdGxlPgogICAgPGRlc2NyaXB0aW9uPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgbmV3cywgdXBkYXRlcywgYW5kIGhhY2tzIGZyb20gQ2lyY2xlQ0kuPC9kZXNjcmlwdGlvbj4KICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvPC9saW5rPgogICAgPGF0b206bGluayBocmVmPSJodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2ZlZWQueG1sIiByZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Db250aW51b3VzIGludGVncmF0aW9uIGZvciBJb25pYyBhcHBsaWNhdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvY29udGlub3VzLWludGVncmF0aW9uLWZvci1pb25pYy1hcHBzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDE4IE1heSAyMDIwIDE3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbm91cy1pbnRlZ3JhdGlvbi1mb3ItaW9uaWMtYXBwcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5GaWtheW8gQWRlcG9qdTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtJbiB0aGUgd29ybGQgb2YgaHlicmlkIG1vYmlsZSBkZXZlbG9wbWVudCwgbm8gb3RoZXIgZnJhbWV3b3JrIGhhcyBkb25lIG1vcmUgZm9yIHRoZSBpbmR1c3RyeSB0aGFuIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tLyZxdW90OyZndDtJb25pYyBmcmFtZXdvcmsmbHQ7L2EmZ3Q7LiBDcmVhdGVkIGluIDIwMTMgYW5kIG9yaWdpbmFsbHkgYnVpbHQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXJqcy5vcmcvJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7IGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY29yZG92YS5hcGFjaGUub3JnLyZxdW90OyZndDtBcGFjaGUgQ29yZG92YSZsdDsvYSZndDssIElvbmljIGhhcyBncm93biB0byBhIGZ1bGwtZmVhdHVyZWQgYXBwbGljYXRpb24gZnJhbWV3b3JrIGZvciBkZXZlbG9waW5nIG1vYmlsZSwgZGVza3RvcCwgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93ZWIuZGV2L3Byb2dyZXNzaXZlLXdlYi1hcHBzLyZxdW90OyZndDtwcm9ncmVzc2l2ZSB3ZWIgYXBwbGljYXRpb25zJmx0Oy9hJmd0Oy4gSW9uaWMgaGFzIGFsc28gYmVjb21lIGZyYW1ld29yay1hZ25vc3RpYywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byB1c2UgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXIuaW8vJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oywgb3IgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3Z1ZWpzLm9yZy8mcXVvdDsmZ3Q7VnVlLmpzJmx0Oy9hJmd0OyBmb3IgZGV2ZWxvcG1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2Ugd2lsbCBiZSBidWlsZGluZyBhIGhhbmR5IHRhc2sgbWFuYWdlci4gV2Ugd2lsbCB3cml0ZSB0ZXN0cyBmb3IgZmVhdHVyZXMgaW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBzZXQgdXAgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbm91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgKENJKSBwaXBlbGluZSB0byBhdXRvbWF0ZSBvdXIgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFdlIHdpbGwgYmUgZGV2ZWxvcGluZyBvdXIgYXBwbGljYXRpb24gdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9yZWFjdCZxdW90OyZndDtJb25pYyBSZWFjdCZsdDsvYSZndDssIHRoZSBJb25pYyB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgZGV2ZWxvcGluZyB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBmb2xsb3cgdGhpcyBwb3N0LCBhIGZldyB0aGluZ3MgYXJlIHJlcXVpcmVkOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QmFzaWMga25vd2xlZGdlIG9mIFJlYWN0LmpzIChOb3QgYSBkZWFsLWJyZWFrZXIsIHlvdSBvbmx5IGhhdmUgdG8gY29weS1wYXN0ZSB0aGUgY29kZSBzbmlwcGV0cykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbm9kZWpzLm9yZyZxdW90OyZndDtOb2RlLmpzJmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtUaGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2NsaSZxdW90OyZndDtJb25pYyBDTEkmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L29sJmd0OwoKJmx0O2gyJmd0O1NjYWZmb2xkaW5nIHRoZSBJb25pYyBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBiZWdpbiwgbGV04oCZcyBzY2FmZm9sZCBhIG5ldyBJb25pYyBhcHBsaWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2lvbmljIHN0YXJ0IHRhc2stbWFuYWdlciB0YWJzIC0tdHlwZT1yZWFjdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgSW9uaWMgQ0xJIHRvIHNjYWZmb2xkIGEgbmV3IHByb2plY3QgZm9yIHVzIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0YWJzJmx0Oy9jb2RlJmd0OyB0ZW1wbGF0ZSBpbnNpZGUgYSBmb2xkZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGFzay1tYW5hZ2VyJmx0Oy9jb2RlJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1lvdSBtaWdodCBiZSBwcm9tcHRlZCBhdCBzb21lIHBvaW50IHdpdGggJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Q3JlYXRlIGZyZWUgSW9uaWMgYWNjb3VudD8mbHQ7L2NvZGUmZ3Q7LiBIaXQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7biZsdDsvY29kZSZndDsgdG8gZGVjbGluZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYW4gSW9uaWMgYWNjb3VudCBzZWUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9hcHBmbG93JnF1b3Q7Jmd0O2hlcmUmbHQ7L2EmZ3Q7LiZsdDsvaSZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmNlIHRoaXMgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb24gKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIHRhc2stbWFuYWdlciZsdDsvY29kZSZndDspIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHNlcnZlIHRoZSBhcHBsaWNhdGlvbiBpbiB5b3VyIHdlYiBicm93c2VyOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7aW9uaWMgc2VydmUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGlzIGNvbW1hbmQgaGFzIGNvbXBsZXRlZCwgeW91IHdpbGwgc2VlIGFuIGFwcGxpY2F0aW9uIHZpZXcgaW4geW91ciBicm93c2VyIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O0kgYW0gdXNpbmcgYSBtb2JpbGUgcHJldmlldyBhY3RpdmF0ZWQgaW4gQ2hyb21l4oCZcyBkZXZlbG9wbWVudCB0b29scy4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXNjYWZmb2xkLXByZXZpZXcucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtEb27igJl0IGJlIHN1cnByaXNlZCBpZiB5b3VycyBoYXMgYSBibGFjayBiYWNrZ3JvdW5kIGFuZCB3aGl0ZSBmb250LiBJdCB1c2VzIHRoZSBkZWZhdWx0IG1vZGUgb2YgeW91ciBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMiZndDtCdWlsZGluZyB0aGUgVGFzayBNYW5hZ2VyIGFwcGxpY2F0aW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05leHQsIGxldOKAmXMgYmVnaW4gYnVpbGRpbmcgdGhlIG1haW4gYXBwbGljYXRpb24uIEdvIGludG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyIG9mIHlvdXIgYXBwbGljYXRpb24gYW5kIG9wZW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGhvbWUgcGFnZSBmb3IgdGhlIG5ld2x5IHNjYWZmb2xkZWQgYXBwbGljYXRpb24uIFJlbW92ZSBldmVyeXRoaW5nIGluIHRoaXMgZmlsZSBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRzeAoKaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsKICBJb25Db250ZW50LAogIElvbkhlYWRlciwKICBJb25QYWdlLAogIElvblRpdGxlLAogIElvblRvb2xiYXIsCiAgSW9uTGlzdCwKICBJb25JdGVtU2xpZGluZywKICBJb25JdGVtLAogIElvbkxhYmVsLAogIElvbkl0ZW1PcHRpb25zLAogIElvbkl0ZW1PcHRpb24sCiAgSW9uRmFiLAogIElvbkZhYkJ1dHRvbiwKICBJb25JY29uLAogIElvbk1vZGFsLAogIElvbkJ1dHRvbiwKICBJb25DYXJkLAogIElvbkNhcmRDb250ZW50LAogIElvbklucHV0LAp9IGZyb20gJnF1b3Q7QGlvbmljL3JlYWN0JnF1b3Q7OwoKaW1wb3J0IHsgYWRkIH0gZnJvbSAmcXVvdDtpb25pY29ucy9pY29ucyZxdW90OzsKCmltcG9ydCAmcXVvdDsuL1RhYjEuY3NzJnF1b3Q7OwoKaW50ZXJmYWNlIFRhc2sgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwp9Cgpjb25zdCBUYWIxOiBSZWFjdC5GQyA9ICgpID0mYW1wO2d0OyB7CiAgY29uc3QgW3Rhc2tzLCBzZXRUYXNrc10gPSB1c2VTdGF0ZSZhbXA7bHQ7VGFza1tdJmFtcDtndDsoW10pOwogIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7CiAgY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKCiAgZnVuY3Rpb24gYWRkTmV3VGFzaygpIHsKICAgIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogICAgY29uc3QgbmV3VGFzayA9IHsKICAgICAgaWQ6IG5ld19pZCwKICAgICAgbmFtZTogdGFza05hbWUsCiAgICB9OwoKICAgIHRhc2tzLnB1c2gobmV3VGFzayk7CgogICAgc2V0VGFza3ModGFza3MpOwoKICAgIHNldFRhc2tOYW1lKCZxdW90OyZxdW90Oyk7CgogICAgc2V0U2hvd01vZGFsKGZhbHNlKTsKICB9CgogIHJldHVybiAoCiAgICAmYW1wO2x0O0lvblBhZ2UmYW1wO2d0OwogICAgICAmYW1wO2x0O0lvbkhlYWRlciZhbXA7Z3Q7CiAgICAgICAgJmFtcDtsdDtJb25Ub29sYmFyJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uVGl0bGUmYW1wO2d0O1Rhc2sgTWFuYWdlciZhbXA7bHQ7L0lvblRpdGxlJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25Ub29sYmFyJmFtcDtndDsKICAgICAgJmFtcDtsdDsvSW9uSGVhZGVyJmFtcDtndDsKICAgICAgJmFtcDtsdDtJb25Db250ZW50JmFtcDtndDsKICAgICAgICAmYW1wO2x0O0lvbkxpc3QmYW1wO2d0OwogICAgICAgICAge3Rhc2tzLmxlbmd0aCAmYW1wO2d0OyAwID8gKAogICAgICAgICAgICB0YXNrcy5tYXAoKGl0ZW06IFRhc2spID0mYW1wO2d0OyB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbVNsaWRpbmcga2V5PXtpdGVtLmlkfSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbSBjbGFzc05hbWU9JnF1b3Q7dG9kby1pdGVtJnF1b3Q7JmFtcDtndDsKICAgICAgICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDt7aXRlbS5uYW1lfSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbnMgc2lkZT0mcXVvdDtlbmQmcXVvdDsmYW1wO2d0OwogICAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsge319JmFtcDtndDtEb25lJmFtcDtsdDsvSW9uSXRlbU9wdGlvbiZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1PcHRpb25zJmFtcDtndDsKICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1TbGlkaW5nJmFtcDtndDsKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KQogICAgICAgICAgKSA6ICgKICAgICAgICAgICAgJmFtcDtsdDtJb25JdGVtJmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICApfQogICAgICAgICZhbXA7bHQ7L0lvbkxpc3QmYW1wO2d0OwoKICAgICAgICB7LyogTW9kYWwqL30KICAgICAgICAmYW1wO2x0O0lvbk1vZGFsIGlzT3Blbj17c2hvd01vZGFsfSZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkNhcmQmYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICZhbXA7bHQ7SW9uTGFiZWwmYW1wO2d0O0FkZCBOZXcgVGFzayZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAmYW1wO2x0O0lvbkNhcmRDb250ZW50JmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICAgJmFtcDtsdDtJb25JbnB1dAogICAgICAgICAgICAgICAgICB2YWx1ZT17dGFza05hbWV9CiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSZxdW90O0VudGVyIFRhc2sgTmFtZS4uLiZxdW90OwogICAgICAgICAgICAgICAgICBvbklvbkNoYW5nZT17KGUpID0mYW1wO2d0OyBzZXRUYXNrTmFtZShlLmRldGFpbC52YWx1ZSEpfQogICAgICAgICAgICAgICAgJmFtcDtndDsmYW1wO2x0Oy9Jb25JbnB1dCZhbXA7Z3Q7CiAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uCiAgICAgICAgICAgICAgICBleHBhbmQ9JnF1b3Q7ZnVsbCZxdW90OwogICAgICAgICAgICAgICAgY29sb3I9JnF1b3Q7cHJpbWFyeSZxdW90OwogICAgICAgICAgICAgICAgb25DbGljaz17KCkgPSZhbXA7Z3Q7IGFkZE5ld1Rhc2soKX0KICAgICAgICAgICAgICAmYW1wO2d0OwogICAgICAgICAgICAgICAgQWRkIFRhc2sKICAgICAgICAgICAgICAmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkQ29udGVudCZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uIG9uQ2xpY2s9eygpID0mYW1wO2d0OyBzZXRTaG93TW9kYWwoZmFsc2UpfSZhbXA7Z3Q7Q2xvc2UgTW9kYWwmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICZhbXA7bHQ7L0lvbk1vZGFsJmFtcDtndDsKCiAgICAgICAgey8qIEFkZCBUYXNrIEJ1dHRvbiAqL30KICAgICAgICAmYW1wO2x0O0lvbkZhYiB2ZXJ0aWNhbD0mcXVvdDtib3R0b20mcXVvdDsgaG9yaXpvbnRhbD0mcXVvdDtlbmQmcXVvdDsgc2xvdD0mcXVvdDtmaXhlZCZxdW90OyZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkZhYkJ1dHRvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsgc2V0U2hvd01vZGFsKHRydWUpfSZhbXA7Z3Q7CiAgICAgICAgICAgICZhbXA7bHQ7SW9uSWNvbiBpY29uPXthZGR9IC8mYW1wO2d0OwogICAgICAgICAgJmFtcDtsdDsvSW9uRmFiQnV0dG9uJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25GYWImYW1wO2d0OwogICAgICAmYW1wO2x0Oy9Jb25Db250ZW50JmFtcDtndDsKICAgICZhbXA7bHQ7L0lvblBhZ2UmYW1wO2d0OwogICk7Cn07CgpleHBvcnQgZGVmYXVsdCBUYWIxOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyBsZXTigJlzIGdvIHRocm91Z2ggdGhlIGNvZGUgc25pcHBldCBhYm92ZS4gVGhpcyBpcyB0aGUgZW50aXJlIGNvZGUgZm9yIG91ciBUYXNrIE1hbmFnZXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnQgYnkgaW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzIGluY2x1ZGluZyB0aGUgY3NzIGZpbGUgZm9yIG91ciBwYWdlLiBXZSB0aGVuIGRlZmluZSBhbiBpbnRlcmZhY2UgdG8gZGVmaW5lIG91ciB0YXNrIG9iamVjdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtpbnRlcmZhY2UgVGFzayB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7Cn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7TmV4dCwgd2UgY3JlYXRlIG91ciBjb21wb25lbnQgYXMgYSBSZWFjdCBmdW5jdGlvbiBjb21wb25lbnQgdHlwZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtSZWFjdC5GQyZsdDsvY29kZSZndDsgYW5kIGJlZ2luIHRoZSBmdW5jdGlvbiBieSBkZWZpbmluZyB0aGUgZGF0YSB3ZSB3YW50IHRvIGhvbGQgaW4gb3VyIHN0YXRlIHVzaW5nIGhvb2tzOiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tzJmx0Oy9jb2RlJmd0OyBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYXNrJmx0Oy9jb2RlJmd0O3MsIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2hvd01vZGFsJmx0Oy9jb2RlJmd0OyBib29sZWFuIHRvIGNvbnRyb2wgdGhlIG9wZW5pbmcgYW5kIGNsb3Npbmcgb2Ygb3VyIHRhc2sgY3JlYXRpb24gZm9ybSwgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tOYW1lJmx0Oy9jb2RlJmd0OyB3aGljaCBob2xkcyB0aGUgdmFsdWUgb2YgYSBuZXcgdGFzayBpbiB0aGUgcHJvY2VzcyBvZiBjcmVhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IFt0YXNrcywgc2V0VGFza3NdID0gdXNlU3RhdGUmYW1wO2x0O1Rhc2tbXSZhbXA7Z3Q7KFtdKTsKY29uc3QgW3Nob3dNb2RhbCwgc2V0U2hvd01vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTsKY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Rm9sbG93aW5nIHRoZXNlIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdlIGNhbGwgdG8gYWRkIGEgbmV3IHRhc2suIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyB0YXNrIGJ5IHNldHRpbmcgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lkJmx0Oy9jb2RlJmd0OyBiYXNlZCBvbiB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBhbmQgY2xlYXJzIHRoZSBmb3JtIGFmdGVyIGFkZGluZyB0aGUgbmV3IHRhc2sgdG8gb3VyIGV4aXN0aW5nIGxpc3Qgb2YgdGFza3MuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtmdW5jdGlvbiBhZGROZXdUYXNrKCkgewogIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogIGNvbnN0IG5ld1Rhc2sgPSB7CiAgICBpZDogbmV3X2lkLAogICAgbmFtZTogdGFza05hbWUsCiAgfTsKCiAgdGFza3MucHVzaChuZXdUYXNrKTsKCiAgc2V0VGFza3ModGFza3MpOwoKICBzZXRUYXNrTmFtZSgmcXVvdDsmcXVvdDspOwoKICBzZXRTaG93TW9kYWwoZmFsc2UpOwp9CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05leHQsIHdlIHJlbmRlciBvdXIgdGVtcGxhdGUgdG8gZGlzcGxheSBvdXIgbGlzdCBvZiB0YXNrcyBhbmQgYWxzbyBkaXNwbGF5IGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgcmVhZHMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmbHQ7L2NvZGUmZ3Q7IHdoZW4gdGhlIHRhc2sgbGlzdCBpcyBlbXB0eS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtGb2xsb3dpbmcgdGhlIGxpc3QgaXMgYSBtb2RhbCBjb21wb25lbnQgdGhhdCBjb250YWlucyBvdXIgdGFzayBmb3JtIGZvciBhZGRpbmcgbmV3IHRhc2tzLiBCZWxvdyB0aGUgY29tcG9uZW50IGlzIGEgZmxvYXRpbmcgYWN0aW9uIGJ1dHRvbiB0aGF0IHRoZSB1c2VyIGNsaWNrcyB0byBvcGVuIHRoZSBtb2RhbC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWZvcmUgd2UgcHJldmlldyB0aGlzLCBvcGVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEuY3NzJmx0Oy9jb2RlJmd0OyBsb2NhdGVkIGluIHRoZSBzYW1lIGZvbGRlciBhcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRzeCZsdDsvY29kZSZndDsgYW5kIHJlcGxhY2UgaXRzIGNvbnRlbnRzIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Lyogc3JjL3BhZ2VzL1RhYjEuY3NzICovCgoudG9kby1pdGVtIHsKICAtLW1pbi1oZWlnaHQ6IDcwcHg7CiAgZm9udC1zaXplOiAxLjJlbTsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHNpbXBseSBidW1wcyB1cCB0aGUgaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgdGhlIGxpc3QgaXRlbXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm93LCBnbyB0byB5b3VyIGJyb3dzZXIgYW5kIGxvYWQgdGhlIGhvbWVwYWdlIG9mIHlvdXIgYXBwbGljYXRpb24gKFRhYjEpLiBZb3Ugd2lsbCBzZWUgdGhlIHBhZ2UgZGlzcGxheWVkIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1ob21lLW5vLXRhc2tzLnBuZyZxdW90OyAvJmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QmVjYXVzZSB3ZSBoYXZlbuKAmXQgYWRkZWQgYW55IHRhc2tzIHlldCwgd2UgaGF2ZSB0aGUgbWVzc2FnZSAmbHQ7c3Ryb25nJmd0O1lvdSBoYXZlIHlldCB0byBhZGQgdGFza3MgZm9yIHRvZGF5Jmx0Oy9zdHJvbmcmZ3Q7IGRpc3BsYXllZC4gV2UgYWxzbyBoYXZlIG91ciAmbHQ7c3Ryb25nJmd0O0FkZCBUYXNrJmx0Oy9zdHJvbmcmZ3Q7IGJ1dHRvbiBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lciB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwbHVzJmx0Oy9jb2RlJmd0OyBzeW1ib2wuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0FkZGluZyB0YXNrcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBhZGQgYSBuZXcgdGFzaywgY2xpY2sgdGhlIGJvdHRvbS1yaWdodCBibHVlIGJ1dHRvbiB0byBwdWxsIHVwIHRoZSB0YXNrIGNyZWF0aW9uIGZvcm0gYW5kIHR5cGUgaW4gYSB0YXNrIGFzIHNob3duIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtdGFzay5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7QUREIFRBU0smbHQ7L3N0cm9uZyZndDsgdG8gYWRkIHRoZSB0YXNrIGFuZCBnbyBhaGVhZCB0byBhZGQgMiB0byAzIG1vcmUgdGFza3MuIFdlIHNob3VsZCBub3cgaGF2ZSBlbm91Z2ggdGFza3Mgb24gdGhlIHBhZ2UgZm9yIG91ciBhcHBsaWNhdGlvbiB0byBsb29rIGZ1bmN0aW9uYWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXRhc2stbGlzdC5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB3ZSBoYXZlIGEgZnVuY3Rpb25hbCBhcHBsaWNhdGlvbi4gTm90IHByb2R1Y3Rpb24tcmVhZHksIGJ1dCBnb29kIGVub3VnaCB0byBzdGFydCB0ZXN0aW5nLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBZGRpbmcgdGVzdHMgdG8gdGhlIFRhc2sgTWFuYWdlciBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtPbmUgYWR2YW50YWdlIHRoYXQgd2UgaGF2ZSB3aXRoIHRlc3Rpbmcgb3VyIElvbmljIGFwcGxpY2F0aW9ucyBpcyB0aGF0IHdoaWxlIHNjYWZmb2xkaW5nIHRoZSBhcHBsaWNhdGlvbiwgdGhlIElvbmljIENMSSBoYXMgc2V0IHVwIGFsbCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcywgaW4gdGVybXMgb2YgcGFja2FnZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCBmb3IgdGVzdGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUZXN0aW5nIElvbmljIFJlYWN0IGFwcGxpY2F0aW9ucyBpcyBkb25lIHVzaW5nIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vamVzdGpzLmlvLyZxdW90OyZndDtKZXN0Jmx0Oy9hJmd0OyB0ZXN0aW5nIGZyYW1ld29yayB0b2dldGhlciB3aXRoIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdGVzdGluZy1saWJyYXJ5LmNvbS9kb2NzL3JlYWN0LXRlc3RpbmctbGlicmFyeS9pbnRybyZxdW90OyZndDtSZWFjdCBUZXN0aW5nIExpYnJhcnkmbHQ7L2EmZ3Q7IGFuZCB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1yZWFjdC10ZXN0LXV0aWxzJnF1b3Q7Jmd0O0lvbmljIFJlYWN0IFRlc3QgVXRpbHMmbHQ7L2EmZ3Q7IGxpYnJhcnkgd2hpY2ggaXMgYSBzbWFsbCBzdWl0ZSBvZiB1dGlsaXRpZXMgdG8gc2ltdWxhdGUgY29tbW9uIGZlYXR1cmVzIGluIElvbmljIGxpa2UgZmlyaW5nIGN1c3RvbSBJb25pYyBldmVudHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIHByb2plY3QgYWxyZWFkeSBjb21lcyB3aXRoIGEgdGVzdCBmaWxlIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7QXBwLnRzeCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLiBBcyB5b3UgbWF5IGhhdmUgZ3Vlc3NlZCwgdGhlIHRlc3QgZmlsZSBpcyBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtBcHAudGVzdC50c3gmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGZvbGxvd3MgdGhlIGNvbnZlbnRpb24gZm9yIEplc3QgdGVzdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsvLyBzcmMvQXBwLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgQXBwIGZyb20gJnF1b3Q7Li9BcHAmcXVvdDs7Cgp0ZXN0KCZxdW90O3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZyZxdW90OywgKCkgPSZhbXA7Z3Q7IHsKICBjb25zdCB7IGJhc2VFbGVtZW50IH0gPSByZW5kZXIoJmFtcDtsdDtBcHAgLyZhbXA7Z3Q7KTsKICBleHBlY3QoYmFzZUVsZW1lbnQpLnRvQmVEZWZpbmVkKCk7Cn0pOwombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHRlc3Qgc2ltcGx5IGNoZWNrcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiByZW5kZXJzIHByb3Blcmx5IGFuZCBkb2VzIG5vdCBjcmFzaC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBydW4gdGhpcyB0ZXN0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBpbnZva2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2plc3QmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gcnVuIHRoZSB0ZXN0IGRlZmluZWQgaW4gdGhlIGZpbGUuIEFzIGRpcmVjdGVkLCBwcmVzcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDthJmx0Oy9jb2RlJmd0OyB0byBydW4gYWxsIHRlc3RzLiBUaGUgYWJvdmUgY29tbWFuZCBpcyB0aGUgY29tbWFuZCB3ZSB3aWxsIGJlIHVzaW5nIHRvIHJ1biBhbGwgdGVzdHMgaW4gb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgbGV04oCZcyBhZGQgc29tZSB0ZXN0cyBvZiBvdXIgb3duLiBXZSB3aWxsIGJlIGNyZWF0aW5nIGEgdGVzdCBmaWxlIHRvIHRlc3QgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIHdlIGhhdmUgaW4gb3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlIHdoaWNoIGhvdXNlcyBvdXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRlc3QudHN4Jmx0Oy9jb2RlJmd0OyBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyLiBJdOKAmXMgdGhlIHNhbWUgcGxhY2UgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VGFiMS50c3gmbHQ7L2NvZGUmZ3Q7IGZpbGUgaXMgbG9jYXRlZC4gSW5zaWRlIHRoZSBuZXdseSBjcmVhdGVkIGZpbGUsIHBsYWNlIGluIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgVGFiMSBmcm9tICZxdW90Oy4vVGFiMSZxdW90OzsKCnRlc3QoJnF1b3Q7UGFnZSB0aXRsZSBpcyBUYXNrIE1hbmFnZXImcXVvdDssIGFzeW5jICgpID0mYW1wO2d0OyB7CiAgY29uc3QgeyBmaW5kQnlUZXh0IH0gPSByZW5kZXIoJmFtcDtsdDtUYWIxIC8mYW1wO2d0Oyk7CiAgYXdhaXQgZmluZEJ5VGV4dCgmcXVvdDtUYXNrIE1hbmFnZXImcXVvdDspOwp9KTsKCnRlc3QoJnF1b3Q7V2hlbiB0aGVyZSBhcmUgbm8gVGFza3MsIGluZm9ybSB0aGUgdXNlciB0aGF0IG5vIHRhc2tzIGhhdmUgYmVlbiBjcmVhdGVkJnF1b3Q7LCBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IHsgZmluZEJ5VGV4dCB9ID0gcmVuZGVyKCZhbXA7bHQ7VGFiMSAvJmFtcDtndDspOwogIGF3YWl0IGZpbmRCeVRleHQoJnF1b3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmcXVvdDspOwp9KTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBmaWxlLCB3ZSBoYXZlIGFkZGVkIHR3byB0ZXN0cy4gVGhlIGZpcnN0IHRlc3QgY2hlY2tzIGlmIG91ciBwYWdlIGRpc3BsYXlzIHdpdGggdGhlIGNvcnJlY3QgdGl0bGUgd2hpY2ggaXMgJmx0O3N0cm9uZyZndDtUYXNrIE1hbmFnZXImbHQ7L3N0cm9uZyZndDsuIFRoZSBzZWNvbmQgdGVzdCBjaGVja3MgaWYgb3VyIGFwcGxpY2F0aW9uIGluaXRpYWxseSBsb2FkcyB3aXRob3V0IHRhc2tzLCBhbmQgaWYgaXQgZG9lcywgaXQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgJmx0O3N0cm9uZyZndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3csIGxldOKAmXMgcnVuIHRoZXNlIHRlc3RzIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGF0IHRoZSByb290IG9mIG91ciBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSBhIHNjcmVlbiBzaW1pbGFyIHRvIHRoZSBvbmUgYmVsb3cgb24geW91ciBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi10ZXN0cy1sb2NhbC1ydW4ucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIG91ciB0ZXN0cyBydW5uaW5nIGFzIGV4cGVjdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBdXRvbWF0aW5nIG91ciB0ZXN0aW5nJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBmaW5hbCB0YXNrIGlzIHRvIGF1dG9tYXRlIG91ciBjb250aW51b3VzIGludGVncmF0aW9uIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhhdCwgd2Ugd2lsbCBiZSBkb2luZyB0aGUgZm9sbG93aW5nOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QWRkIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgdG8gb3VyIHByb2plY3QgdG8gc2V0IHVwIGEgQ0kgcGlwZWxpbmUgb24gQ2lyY2xlQ0kmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIG91ciBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG9zaXRvcnkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDcmVhdGUgYSBDaXJjbGVDSSBwcm9qZWN0IGZvciBvdXIgYXBwbGljYXRpb24mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtSdW4gdGhlIENJIHBpcGVsaW5lIG9uIENpcmNsZUNJJmx0Oy9saSZndDsKJmx0Oy9vbCZndDsKCiZsdDtwJmd0O0xldOKAmXMgZ2V0IHRvIGl0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZpcnN0LCBsZXTigJlzIGFkZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3Igb3VyIENJIHBpcGVsaW5lIHRvIG91ciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLiBJbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbmZpZy55bWwmbHQ7L2NvZGUmZ3Q7IGZpbGUsIGVudGVyIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpqb2JzOgogIGJ1aWxkOgogICAgd29ya2luZ19kaXJlY3Rvcnk6IH4vcmVwbwogICAgZG9ja2VyOgogICAgICAtIGltYWdlOiBjaW1nL25vZGU6MTIuMTYKICAgIHN0ZXBzOgogICAgICAtIGNoZWNrb3V0CiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdXBkYXRlLW5wbQogICAgICAgICAgY29tbWFuZDogJnF1b3Q7c3VkbyBucG0gaW5zdGFsbCAtZyBucG1ANSZxdW90OwogICAgICAtIHJlc3RvcmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgLSBydW46CiAgICAgICAgICBuYW1lOiBpbnN0YWxsLXBhY2thZ2VzCiAgICAgICAgICBjb21tYW5kOiBucG0gaW5zdGFsbAogICAgICAtIHNhdmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgICAgIHBhdGhzOgogICAgICAgICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdGVzdAogICAgICAgICAgY29tbWFuZDogbnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgY29uZmlndXJhdGlvbiBwdWxscyBpbiBhIE5vZGUuanMgaW1hZ2UgYW5kIGluc3RhbGxzIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGRlZmluZWQgaW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0Oy4gT25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCB0aGUgdGVzdCBzY3JpcHQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bnBtIHJ1biB0ZXN0Jmx0Oy9jb2RlJmd0OyBpcyB0aGVuIGV4ZWN1dGVkIHRvIHJ1biBhbGwgdGhlIHRlc3RzIGluIG91ciBhcHBsaWNhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGdvb2QgdG8gZ28uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY29tbWl0IGFsbCB5b3VyIGNoYW5nZXMgYW5kIHB1c2ggdGhlIHByb2plY3QgdG8gYSBHaXRIdWIgcmVwb3NpdG9yeSBvbiB0aGUgR2l0SHViIGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgQ2lyY2xlQ0kgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIGlzIHRvIHNldCB1cCB0aGUgcmVwb3NpdG9yeSBmb3Igb3VyIHByb2plY3QgYXMgYSBDaXJjbGVDSSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBDaXJjbGVDSSBjb25zb2xlLCBnbyB0byB0aGUgJmx0O3N0cm9uZyZndDtBZGQgUHJvamVjdHMmbHQ7L3N0cm9uZyZndDsgcGFnZSB0byBhZGQgdGhlIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtcHJvamVjdC5wbmcmcXVvdDsgYWx0PSZxdW90O0FkZCBQcm9qZWN0JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0Oy4gVGhpcyB3aWxsIGxvYWQgdGhlIG5leHQgc2NyZWVuLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3N0YXJ0LWJ1aWxkaW5nMS5wbmcmcXVvdDsgYWx0PSZxdW90O1N0YXJ0IEJ1aWxkaW5nIC0gQ29uZmlnIHNhbXBsZSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBzZXR1cCBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7LiBCZWZvcmUgdGhlIGJ1aWxkIHN0YXJ0cywgeW91IGdldCBhIHByb21wdCB0byBlaXRoZXIgZG93bmxvYWQgYW5kIHVzZSB0aGUgcHJvdmlkZWQgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBoYXZlIGl0IG9uIGEgc2VwYXJhdGUgYnJhbmNoIG9yIHNldCB1cCBvbmUgbWFudWFsbHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzIucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIEFkZCBtYW51YWxseSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1NlbGVjdCAmbHQ7c3Ryb25nJmd0O0FkZCBNYW51YWxseSZsdDsvc3Ryb25nJmd0OyB0byBwcm9jZWVkLiBUaGlzIHdpbGwgcHJvbXB0IGFub3RoZXIgZGlhbG9nIHRoYXQgY2hlY2tzIHRvIGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXQgdXAgdG8gYmVnaW4gYnVpbGRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzMucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIENvbmZpcm0gY29uZmlndXJhdGlvbiZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsgdG8gY29tcGxldGUgdGhlIHNldHVwLiBUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgcGlwZWxpbmUgdXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBvdXIgcHJvamVjdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGUgYnVpbGQgaXMgZG9uZSBydW5uaW5nLCB5b3Ugd2lsbCBnZXQgYSBzdWNjZXNzZnVsIGJ1aWxkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtc3VjY2Vzc2Z1bC5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHN1Y2Nlc3NmdWwmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O2J1aWxkJmx0Oy9zdHJvbmcmZ3Q7IHRvIHNlZSB0aGUgYmVoaW5kLXRoZS1zY2VuZXMgcHJvY2VzcyhJIGhhdmUgY29sbGFwc2VkIHRoZSAmbHQ7ZW0mZ3Q7dGVzdCZsdDsvZW0mZ3Q7IHN0ZXApLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtcHJvY2Vzcy5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHByb2Nlc3MmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBzY3JlZW4sIG91ciBwcm9qZWN0IGlzIHByb3Blcmx5IHNldCB1cCBhbmQgYWxsIG91ciB0ZXN0cyBhcmUgcnVubmluZyBmaW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgYXMgeW91IGRldmVsb3AsIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgbW9yZSBmZWF0dXJlcywgYWRkIHRlc3RzIHRvIHRoZW0gYW5kIHB1c2ggdG8gR2l0SHViLiBPbmNlIHlvdSBwdXNoLCB0aGUgQ0kgcGlwZWxpbmUgd2lsbCBydW4gYW5kIGFsbCB5b3VyIHRlc3RzIHdpbGwgYmUgZXhlY3V0ZWQuIElmIGFueSB0ZXN0IGZhaWxzLCB5b3VyIGJ1aWxkIHdpbGwgZmFpbCB3aGljaCB3aWxsIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbiB0byBiZSBmaXhlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW914oCZcmUgbm90IHB1c2hpbmcgYW55IGJ1Z3MgaW50byB5b3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIHRoaXMgYXJ0aWNsZSwgd2UgaGF2ZSBzZXQgdXAgYW4gYXV0b21hdGVkIENJIHBpcGVsaW5lIGZvciBvdXIgSW9uaWMgYXBwbGljYXRpb25zIHRvIGltcHJvdmUgb3VyIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGF1dG9tYXRpbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4gSGF2aW5nIGEgQ0kgcGlwZWxpbmUgdGhhdCBwcm9wZXJseSBydW5zIG91ciB0ZXN0cyBwcm90ZWN0cyB1cyBhZ2FpbnN0IG91cnNlbHZlcyBieSBlbnN1cmluZyB0aGF0IHdlIGRvbuKAmXQgZW5kIHVwIHdpdGggYnJva2VuIGFwcGxpY2F0aW9ucyBvciB0aGF0IHdlIGRvbuKAmXQgcHVzaCBidWdneSBjb2RlIHRvIG91ciB0ZWFt4oCZcyByZXBvc2l0b3J5IHdoaWxlIHdvcmtpbmcgdG9nZXRoZXIgb24gYSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyA6KSZsdDsvcCZndDsKCiZsdDtociAvJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3R3aXR0ZXIuY29tL2NvZGVyb25mbGVlaz9sYW5nPWVuJnF1b3Q7Jmd0O0Zpa2F5byZsdDsvYSZndDsgaXMgYSBmdWxsc3RhY2sgZGV2ZWxvcGVyIGFuZCBhdXRob3Igd2l0aCBvdmVyIGEgZGVjYWRlIG9mIGV4cGVyaWVuY2UgZGV2ZWxvcGluZyB3ZWIgYW5kIG1vYmlsZSBzb2x1dGlvbnMuIEhlIGlzIGN1cnJlbnRseSB0aGUgU29mdHdhcmUgTGVhZCBhdCBUZWNoIFNwZWNpYWxpc3QgQ29uc3VsdGluZyBhbmQgZGV2ZWxvcHMgY291cnNlcyBmb3IgUGFja3QgYW5kIFVkZW15LiBIZSBoYXMgYSBzdHJvbmcgcGFzc2lvbiBmb3IgdGVhY2hpbmcgYW5kIGhvcGVzIHRvIGJlY29tZSBhIGZ1bGwtdGltZSBhdXRob3IuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5EcmF3biBPdXQgQ29udmVyc2F0aW9ucywgZmVhdHVyaW5nIENpcmNsZUNJIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlciwgUGF0IFNoaWVsZHM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZHJhd24tb3V0LWNvbnZlcnNhdGlvbi1mZWF0dXJpbmctY2lyY2xlY2ktcHJpbmNpcGFsLXNvZnR3YXJlLWVuZ2luZWVyLXBhdC1zaGllbGRzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5GcmksIDE1IE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RyYXduLW91dC1jb252ZXJzYXRpb24tZmVhdHVyaW5nLWNpcmNsZWNpLXByaW5jaXBhbC1zb2Z0d2FyZS1lbmdpbmVlci1wYXQtc2hpZWxkcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Db3JleSBMZXdpczwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtPbiB0aGlzIGVwaXNvZGUgb2YgRHJhd24gT3V0IENvbnZlcnNhdGlvbnMsIHdlIHRhbGsgYWJvdXQgc29tZXRoaW5nIG5lYXIgYW5kIGRlYXIgdG8gb3VyIGhlYXJ0cyDigJMgQ2lyY2xlQ0kuIFdlLCBhbG9uZyB3aXRoIGh1bmRyZWQgb2YgdGhvdXNhbmRzIG9mIG90aGVyIGRldmVsb3BlcnMgYXQgY29tcGFuaWVzIGxpa2UgU3BvdGlmeSwgRmFjZWJvb2ssIEZvcmQgYW5kIEFldG5hLCB1c2UgQ2lyY2xlQ0kgZXZlcnkgZGF5IHRvIG1ha2Ugc3VyZSB0aGF0IHdl4oCZcmUgZGVwbG95aW5nIHF1YWxpdHkgY29kZSwgYW5kIGJ1aWxkaW5nIGVmZmljaWVuY2llcyBpbnRvIG91ciBlbmdpbmVlcmluZyBwcm9jZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0LCB3aGF0IGV4YWN0bHkgaXMgdW5kZXJuZWF0aCBvdXIgcGxhdGZvcm3igJlzIGhvb2Q/Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Sm9pbiBvdXIgQ1RPIFJvYiBadWJlciBhcyBoZSBob3N0cyBDaXJjbGVDSeKAmXMgUHJpbmNpcGFsIFNvZnR3YXJlIEVuZ2luZWVyIFBhdCBTaGllbGRzIHRvIGRpc2N1c3MgdGhlIGlubmVyLXdvcmtpbmdzIG9mIG91ciB0ZWNobm9sb2d5IGFuZCBwbGF0Zm9ybS4gVGhleSBkaXNjdXNzIGV2ZXJ5dGhpbmcgZnJvbSBwcm9kdWN0IGZlYXR1cmVzIHRvIGFyY2hpdGVjdHVyZSBhbmQgdGFsayBhYm91dCBob3cgYW5kIHdoeSB0aGUgY29yZSBlbGVtZW50cyBvZiBvdXIgcGxhdGZvcm0gZ290IGJ1aWx0LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3JvYi1wYXQucG5nJnF1b3Q7IGFsdD0mcXVvdDtyb2ItcGF0LnBuZyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1JvYiBldmVuIHRha2VzIGEgdHVybiB3aXRoIHRoZSBtYXJrZXJzIHRvIGRpc2N1c3MgZG9tYWluLWRyaXZlbiBkZXNpZ24sIGF1dGhlbnRpY2F0aW9uIGFuZCBtb3JlLiBMZWFybiBldmVyeXRoaW5nIHlvdSBldmVyIHdhbnRlZCB0byBrbm93IGFib3V0IENpcmNsZUNJIGFuZCBtb3JlIGluIHRvZGF54oCZcyBjb252ZXJzYXRpb24uJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXImcXVvdDsmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3lvdXR1LmJlL1dMOVJRNmZNbGUwJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvY2lyY2xlY2kuZ2lmJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsKICAmbHQ7L2EmZ3Q7CgombHQ7YnIgLyZndDsKCiAgJmx0O3AmZ3Q7CiAgICAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8veW91dHUuYmUvV0w5UlE2Zk1sZTAmcXVvdDsgc3R5bGU9JnF1b3Q7Y29sb3I6IzAwMDBFRTsmcXVvdDsmZ3Q7CiAgICAgIFdhdGNoIHRoZSBmdWxsIHZpZGVvIGhlcmUKICAgICZsdDsvYSZndDsKICAmbHQ7L3AmZ3Q7CiZsdDsvZGl2Jmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZG8gSSB1c2UgSW5mcmFzdHJ1Y3R1cmUgYXMgQ29kZT88L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWRvLWktaWFjLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE1heSAyMDIwIDEyOjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2hvdy1kby1pLWlhYy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5BbmdlbCBSaXZlcmE8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7SW5mcmFzdHJ1Y3R1cmUgYXMgY29kZSAoSWFDKSBpcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBhbmQgcHJvdmlzaW9uaW5nIGNsb3VkIGFuZCBJVCByZXNvdXJjZXMgdmlhIG1hY2hpbmUgcmVhZGFibGUgZGVmaW5pdGlvbiBmaWxlcyBhbmQgaXMgYSBwYXJ0IG9mIG1vZGVybiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lcy4gSWFDIGVuYWJsZXMgb3JnYW5pemF0aW9ucyB0byBwcm92aXNpb24sIG1hbmFnZSwgYW5kIGRlc3Ryb3kgY29tcHV0ZSByZXNvdXJjZXMgdXNpbmcgbW9kZXJuIERldk9wcyB0b29scy4gSWFDIGVuYWJsZXMgdGhpcyBieSBzdGF0aWNhbGx5IGRlZmluaW5nIGFuZCBkZWNsYXJpbmcgdGhlc2UgcmVzb3VyY2VzIGluIGNvZGUsIHRoZW4gZGVwbG95aW5nIGFuZCBkeW5hbWljYWxseSBtYWludGFpbmluZyB0aGVzZSByZXNvdXJjZXMgdmlhIGNvZGUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gcmVjZW50IGludGVyYWN0aW9ucyB3aXRoIGRldmVsb3BlcnMsIEnigJl2ZSByZWFsaXplZCB0aGF0IG1hbnkgYXJlIGVpdGhlciBub3QgYXdhcmUgb2YgSWFDLCBvciBhcmUgYXdhcmUgYnV0IGhhdmUgYWJhbmRvbmVkIHRoZWlyIGluaXRpYWwgZWZmb3J0cyBiZWNhdXNlIHJhbXBpbmcgdXAgd2FzIHRvbyBjdW1iZXJzb21lLiBJbiB0aGlzIHBvc3QsIEkgd2lsbCBkaXNjdXNzIHRoZSBiZW5lZml0cyBvZiBJYUMgYW5kIHNvbWUgb2YgdGhlIHRvb2xpbmcgb3B0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgYWxvbmcgd2l0aCBhIGJyaWVmIGRlbW9uc3RyYXRpb24gb24gaG93IHRvIHVzZSB0aGVtIGluIGhvcGVzIG9mIGVhc2luZyB0aGUgdHJhbnNpdGlvbiB0byB1c2luZyBJYUMuIEkgd2lsbCBmb2N1cyBvbiB0aGUgdHdvIG1vc3QgcG9wdWxhciBJYUMgdG9vbHMgdXNlZCBpbiB0aGUgaW5kdXN0cnkgdG9kYXk6ICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cudGVycmFmb3JtLmlvLyZxdW90OyZndDtIYXNoaUNvcnDigJlzIFRlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtCZWZvcmUgeW91IGdldCBzdGFydGVkLCB5b3XigJlsbCBuZWVkIHRvIGhhdmUgdGhlc2UgdGhpbmdzOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9mcmVlJnF1b3Q7Jmd0O0dvb2dsZSBDbG91ZCZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NyZWF0ZSBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3Jlc291cmNlLW1hbmFnZXIvZG9jcy9jcmVhdGluZy1tYW5hZ2luZy1wcm9qZWN0cyNjcmVhdGluZ19hX3Byb2plY3QmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIHByb2plY3QmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FwcC5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkgQVBJIHRva2VuJmx0Oy9hJmd0OyBhbmQgc2F2ZSBpdCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgbG9jYWwgaW5zdGFsbCBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vc2RrL2RvY3MvcXVpY2tzdGFydHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIFNESyBDTEkmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSBsb2NhbCBpbnN0YWxsIG9mIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaHViLmRvY2tlci5jb20vc2VhcmNoLz90eXBlPWVkaXRpb24mYW1wO2FtcDtvZmZlcmluZz1jb21tdW5pdHkmcXVvdDsmZ3Q7RG9ja2VyIGNsaWVudCZsdDsvYSZndDsmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBHb29nbGUgQ2xvdWQgcHJvamVjdCBjcmVkZW50aWFscyZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDbG91ZFBsYXRmb3JtL2NvbW11bml0eS9ibG9iL21hc3Rlci90dXRvcmlhbHMvZ2V0dGluZy1zdGFydGVkLW9uLWdjcC13aXRoLXRlcnJhZm9ybS9pbmRleC5tZCNnZXR0aW5nLXByb2plY3QtY3JlZGVudGlhbHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIGNyZWRlbnRpYWxzJmx0Oy9hJmd0OyBpbiBvcmRlciB0byBwZXJmb3JtIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgdXNpbmcgSWFDIHRvb2xpbmcuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9hcGlzL2NyZWRlbnRpYWxzL3NlcnZpY2VhY2NvdW50a2V5JnF1b3Q7Jmd0O0NyZWF0ZSBTZXJ2aWNlIEFjY291bnQgS2V5IHBhZ2UmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7U2VsZWN0IHRoZSBkZWZhdWx0IHNlcnZpY2UgYWNjb3VudCBvciBjcmVhdGUgYSBuZXcgb25lLCBzZWxlY3QgSlNPTiBhcyB0aGUga2V5IHR5cGUsIGFuZCBjbGljayAmbHQ7c3Ryb25nJmd0O0NyZWF0ZSZsdDsvc3Ryb25nJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O1NhdmUgdGhpcyBKU09OIGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgYW5kIHJlbmFtZSB0aGUgZmlsZSB0byAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaWNkX2RlbW9fZ2NwX2NyZWRzLmpzb24mbHQ7L2NvZGUmZ3Q7LiBUaGlzIGlzICZsdDtzdHJvbmcmZ3Q7dmVyeSBpbXBvcnRhbnQmbHQ7L3N0cm9uZyZndDsgZm9yIGVuYWJsaW5nIHRoZSBHb29nbGUgQ2xvdWQgQ0xJIGluIHRoZSBjb250YWluZXIgbGF0ZXIgb24mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBhIFB1bHVtaSBBUEkgdG9rZW4mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7WW91IHdpbGwgbmVlZCB0byBnZXQgYSBQdWx1bWkgQVBJIHRva2VuIHRvIHN0b3JlIHlvdXIgcHJvamVjdCBzdGF0ZSBvbiBQdWx1bWnigJlzIGJhY2tlbmQgY2xvdWQuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vYXBwLnB1bHVtaS5jb20vJnF1b3Q7Jmd0O2FwcC5wdWx1bWkuY29tLyZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1NlbGVjdCBhbiBPcmdhbml6YXRpb24mbHQ7L3N0cm9uZyZndDsgb24gdGhlIHVwcGVyIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSBhbmQgc2VsZWN0IHlvdXIgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O0FjY2VzcyBUb2tlbnMmbHQ7L3N0cm9uZyZndDsgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7TmV3IEFjY2VzcyBUb2tlbiZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7Q3JlYXRlJmx0Oy9zdHJvbmcmZ3Q7IGFuZCBzYXZlIHRoZSBuZXcgQVBJIHRva2VuIHRoYXQgd2FzIGNyZWF0ZWQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemUgeW91ciBQdWx1bWkgcHJvamVjdCBsYXRlciZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7aDImZ3Q7RG9ja2VyIHB1bGwgSWFDMTAxIERvY2tlciBpbWFnZSZsdDsvaDImZ3Q7CgombHQ7cCZndDtBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlZCBhbmQgeW914oCZcmUgcmVhZHkgdG8gcHVsbCB0aGUgZG9ja2VyIGltYWdlIGZvciB0aGlzIHdvcmtzaG9wLiBJbiB0ZXJtaW5hbCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBwdWxsIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm93IGhhdmUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2FyaXYzcmEvaWFjMTAxJmx0Oy9jb2RlJmd0OyBkb2NrZXIgaW1hZ2UgbG9jYWxseS4gWW91IGNhbiB2ZXJpZnkgYnV5IHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgYW5kIHlvdSBzaG91bGQgc2VlIHRoZSBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0RvY2tlciBydW4gSWFDMTAxIGNvbnRhaW5lciZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgd2XigJlsbCBjcmVhdGUgYSBuZXcgRG9ja2VyIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YXJpdjNyYS9pYWMxMDEmbHQ7L2NvZGUmZ3Q7IGltYWdlIHdoaWNoIGhhcyBhbGwgdGhlIElhQyB0b29scyBhbmQgY29kZSBwcmUtYmFrZWQuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O01vdW50aW5nIHRoZSAvLmNvbmZpZy9nY2xvdWQvIGRpcmVjdG9yeSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtCZWZvcmUgcnVubmluZyB0aGUgbmV3IGNvbnRhaW5lciB5b3UgbmVlZCB0aGUgYWJzb2x1dGUgcGF0aCB0byB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkuIE9uIG15IE1hY09TIG1hY2hpbmUsIG15IGFic29sdXRlIHBhdGggaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7L1VzZXJzL2FuZ2VsLy5jb25maWcvZ2Nsb3VkLyZsdDsvY29kZSZndDsuIEJlIHN1cmUgdG8gZ2V0IHlvdXIgYWJzb2x1dGUgZmlsZSBwYXRoIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2Nsb3VkJmx0Oy9jb2RlJmd0OyBkaXJlY3Rvcnkgb24geW91ciBsb2NhbCBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtSdW4gSWFDMTAxIGNvbnRhaW5lciB3aXRoIG1vdW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtSdW4gdGhpcyBjb21tYW5kIGluIGEgdGVybWluYWwgcnVuIGJ1dCBiZSBzdXJlIHRvIHJlcGxhY2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0OyZsdDsvY29kZSZndDsgYml0IHdpdGggeW91ciBhY3R1YWwgYWJzb2x1dGUgcGF0aCB0byB5b3VyIGxvY2FsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dsb2N1ZC8mbHQ7L2NvZGUmZ3Q7ZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtaXQgLS1uYW1lIGlhY3Rlc3QgLS1tb3VudCB0eXBlPWJpbmQsc291cmNlPSZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0Oy5jb25maWcvZ2Nsb3VkLyx0YXJnZXQ9L3Jvb3QvLmNvbmZpZy9nY2xvdWQvIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJYUMxMDEgY29udGFpbmVyIGlzIHJ1bm5pbmcmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGUgcHJldmlvdXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgeW91ciBJYUMxMDEgY29udGFpbmVyIHdpbGwgYmUgdXAgYW5kIHJ1bm5pbmcgYW5kIHlvdXIgdGVybWluYWwgc2hlbGwgaGFzIGRyb3BwZWQgeW91IGludG8gdGhlIHJ1bm5pbmcgY29udGFpbmVyLiBFdmVyeSBjb21tYW5kIHlvdSBydW4gaW4geW91ciB0ZXJtaW5hbCBzaGVsbCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBEb2NrZXIgY29udGFpbmVyIGZyb20gbm93IG9uIHVudGlsIHlvdSBtYW51YWxseSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtleGl0Jmx0Oy9jb2RlJmd0OyB0aGUgY29udGFpbmVyLiBUaGUgY29udGFpbmVyIGhhcyB0aGUgVGVycmFmb3JtIGFuZCBQdWx1bWkgQ0xJIHRvb2xzIGluc3RhbGxlZCwgYXMgd2VsbCBhcyBleGFtcGxlIGNvZGUgZm9yIGVhY2ggdGhhdCBjcmVhdGVzIGluZnJhc3RydWN0dXJlIGluIHRoZWlyIHJlc3BlY3RpdmUgdG9vbHMuIFRoZSBjb250YWluZXIgcHJvamVjdHMgZmlsZXMgYXJlIG1hcHBlZCBhcyBmb2xsb3dzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHJvamVjdHMvCnxfIHRlcnJhZm9ybS9nY3AvY29tcHV0ZS8gICAjIENvbnRhaW5zIHRoZSBUZXJyYWZvcm0gY29kZSBmaWxlcwp8XyBwdWx1bWkvZ2NwL2NvbXB1dGUvICAgICAgIyBDb250YWlucyB0aGUgUHVsdW1pIGNvZGUgZmlsZXMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gyJmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2EmZ3Q7IGlzIGEgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgYnVpbGRpbmcsIGNoYW5naW5nLCBhbmQgdmVyc2lvbmluZyBpbmZyYXN0cnVjdHVyZSBzYWZlbHkgYW5kIGVmZmljaWVudGx5LiBUZXJyYWZvcm0gY2FuIG1hbmFnZSBleGlzdGluZyBzZXJ2aWNlIHByb3ZpZGVycyBhcyB3ZWxsIGFzIGN1c3RvbSBpbi1ob3VzZSBzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q29uZmlndXJhdGlvbiBmaWxlcyBkZXNjcmliZSB0aGUgY29tcG9uZW50cyBuZWVkZWQgdG8gcnVuIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yIHlvdXIgZW50aXJlIGRhdGFjZW50ZXIgb24gVGVycmFmb3JtLiBUZXJyYWZvcm0gZ2VuZXJhdGVzIGFuIGV4ZWN1dGlvbiBwbGFuIGRlc2NyaWJpbmcgd2hhdCBpdCB3aWxsIGRvIHRvIHJlYWNoIHRoZSBkZXNpcmVkIHN0YXRlLCBhbmQgdGhlbiBleGVjdXRlcyBpdCB0byBidWlsZCB0aGUgZGVzY3JpYmVkIGluZnJhc3RydWN0dXJlLiBBcyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBUZXJyYWZvcm0gaXMgYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBjaGFuZ2VkIGFuZCBjcmVhdGUgaW5jcmVtZW50YWwgZXhlY3V0aW9uIHBsYW5zIHdoaWNoIGNhbiBiZSBhcHBsaWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZSBpbmZyYXN0cnVjdHVyZSBUZXJyYWZvcm0gY2FuIG1hbmFnZSBpbmNsdWRlcyBsb3ctbGV2ZWwgY29tcG9uZW50cyBzdWNoIGFzIGNvbXB1dGUgaW5zdGFuY2VzLCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZywgYXMgd2VsbCBhcyBoaWdoLWxldmVsIGNvbXBvbmVudHMgc3VjaCBhcyBETlMgZW50cmllcywgU2FhUyBmZWF0dXJlcywgZXRjLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBUZXJyYWZvcm0mbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCB3aXRoIHByb3Zpc2lvbmluZyBzb21lIHJlc291cmNlcyBpbiBHQ1AgdXNpbmcgVGVycmFmb3JtIGNvZGUuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDttYWluLnRmICZsdDsvY29kZSZndDsgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBjb2RlIHRoYXQgaGFzIG91ciBpbmZyYXN0cnVjdHVyZSBkZWZpbmVkLiBJbiB0aGlzIGZpbGUgd2XigJlyZSBjcmVhdGluZyBhIG5ldyBjb21wdXRlIGluc3RhbmNlIHRoYXQgd2lsbCBpbnN0YWxsIGFuZCBydW4gYSBQeXRob24gRmxhc2sgYXBwIHBhY2thZ2VkIGluIGEgRG9ja2VyIGNvbnRhaW5lci4gVGhlIFRlcnJhZm9ybSBjb2RlIHdpbGwgYWxzbyBjcmVhdGUgc29tZSBmaXJld2FsbCBydWxlcyB0aGF0IHdpbGwgYWxsb3cgcHVibGljIGFjY2VzcyB0byB0aGUgYXBwIG92ZXIgcG9ydCA1MDAwLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHByb3Zpc2lvbiB0aGlzLCBydW4gdGhpcyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NkIH4vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJbml0aWFsaXppbmcgVGVycmFmb3JtJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1doaWxlIGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBydW4gdGhpcyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7dGVycmZvcm0gaW5pdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSByZXN1bHRzIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cm9vdEBkOWNlNzIxMjkzZTI6fi9wcm9qZWN0L3RlcnJhZm9ybS9nY3AvY29tcHV0ZSMgdGVycmFmb3JtIGluaXQKCkluaXRpYWxpemluZyB0aGUgYmFja2VuZC4uLgoKSW5pdGlhbGl6aW5nIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBDaGVja2luZyBmb3IgYXZhaWxhYmxlIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBEb3dubG9hZGluZyBwbHVnaW4gZm9yIHByb3ZpZGVyICZxdW90O2dvb2dsZSZxdW90OyAoaGFzaGljb3JwL2dvb2dsZSkgMy4xMC4wLi4uCgoqIHByb3ZpZGVyLmdvb2dsZTogdmVyc2lvbiA9ICZxdW90O34mYW1wO2d0OyAzLjEwJnF1b3Q7CgpUZXJyYWZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7aDMmZ3Q7UHJldmlld2luZyB3aXRoIFRlcnJhZm9ybSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUZXJyYWZvcm0gaGFzIGEgY29tbWFuZCB0aGF0IGFsbG93cyB5b3UgdG8gZHJ5IHJ1biBhbmQgdmFsaWRhdGUgeW91ciBUZXJyYWZvcm0gY29kZSB3aXRob3V0IGFjdHVhbGx5IGV4ZWN1dGluZyBhbnl0aGluZy4gVGhlIGNvbW1hbmQgaXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybSBwbGFuJmx0Oy9jb2RlJmd0OyB3aGljaCBhbHNvIGdyYXBocyBhbGwgdGhlIGFjdGlvbnMgYW5kIGNoYW5nZXMgdGhhdCBUZXJyYWZvcm0gd2lsbCBleGVjdXRlIGFnYWluc3QgeW91ciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS4gSW4gdGhlIHRlcm1pbmFsIHJ1bjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3RlcnJhZm9ybSBwbGFuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSByZXN1bHRzIHNpbWlsYXIgdG8gdGhpcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0FuIGV4ZWN1dGlvbiBwbGFuIGhhcyBiZWVuIGdlbmVyYXRlZCBhbmQgaXMgc2hvd24gYmVsb3cuClJlc291cmNlIGFjdGlvbnMgYXJlIGluZGljYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKICArIGNyZWF0ZQoKVGVycmFmb3JtIHdpbGwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGFjdGlvbnM6CgogICMgZ29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwuaHR0cC01MDAwIHdpbGwgYmUgY3JlYXRlZAogICsgcmVzb3VyY2UgJnF1b3Q7Z29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwmcXVvdDsgJnF1b3Q7aHR0cC01MDAwJnF1b3Q7IHsKICAgICAgKyBjcmVhdGlvbl90aW1lc3RhbXAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVzdGluYXRpb25fcmFuZ2VzID0gKGtub3duIGFmdGVyIGFwcGx5KQogIH0KCiAgICAjIGdvb2dsZV9jb21wdXRlX2luc3RhbmNlLmRlZmF1bHQgd2lsbCBiZSBjcmVhdGVkCiAgKyByZXNvdXJjZSAmcXVvdDtnb29nbGVfY29tcHV0ZV9pbnN0YW5jZSZxdW90OyAmcXVvdDtkZWZhdWx0JnF1b3Q7IHsKICAgICAgKyBjYW5faXBfZm9yd2FyZCAgICAgICA9IGZhbHNlCiAgICAgICsgY3B1X3BsYXRmb3JtICAgICAgICAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVsZXRpb25fcHJvdGVjdGlvbiAgPSBmYWxzZQogICAgICArIGd1ZXN0X2FjY2VsZXJhdG9yICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGlkICAgICAgICAgICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGluc3RhbmNlX2lkICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVsX2ZpbmdlcnByaW50ICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVscyAgICAgICAgICAgICAgID0gewogICAgICAgICAgKyAmcXVvdDtjb250YWluZXItdm0mcXVvdDsgPSAmcXVvdDtjb3Mtc3RhYmxlLTY5LTEwODk1LTYyLTAmcXVvdDsKICAgICAgICB9CiAgICAgICsgbWFjaGluZV90eXBlICAgICAgICAgPSAmcXVvdDtnMS1zbWFsbCZxdW90OwogIH0KICBQbGFuOiAyIHRvIGFkZCwgMCB0byBjaGFuZ2UsIDAgdG8gZGVzdHJveS4KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgeW91IGNhbiBzZWUsIFRlcnJhZm9ybSBpcyBnb2luZyB0byBjcmVhdGUgbmV3IEdDUCByZXNvdXJjZXMgZm9yIHlvdSBiYXNlZCBvbiB0aGUgY29kZSBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bWFpbi50ZiZsdDsvY29kZSZndDsgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGFwcGx5Jmx0Oy9oMyZndDsKCiZsdDtwJmd0O05vdyB5b3XigJlyZSByZWFkeSB0byBjcmVhdGUgdGhlIG5ldyBpbmZyYXN0cnVjdHVyZSBhbmQgZGVwbG95IHRoZSBhcHBsaWNhdGlvbi4gUnVuIHRoaXMgY29tbWFuZCBpbiB0aGUgdGVybWluYWw6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt0ZXJyYWZvcm0gYXBwbHkKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGVycmFmb3JtIHdpbGwgcHJvbXB0IHlvdSB0byBjb25maXJtIHlvdXIgY29tbWFuZC4gVHlwZSB5ZXMgYW5kIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0RvIHlvdSB3YW50IHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucz8KICBUZXJyYWZvcm0gd2lsbCBwZXJmb3JtIHRoZSBhY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KICBPbmx5ICd5ZXMnIHdpbGwgYmUgYWNjZXB0ZWQgdG8gYXBwcm92ZS4KCiAgRW50ZXIgYSB2YWx1ZTogeWVzCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RlcnJhZm9ybSB3aWxsIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgYW5kIHlvdSB3aWxsIGhhdmUgYW4gYXBwbGljYXRpb24gdXAgYW5kIHJ1bm5pbmcgb24gR0NQIHNob3J0bHkgYWZ0ZXIgaXQgY29tcGxldGVzLiBQbGVhc2Ugbm90ZSB0aGF0IGl0IHdpbGwgdGFrZSAzLTUgbWludXRlcyBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbWUgb25saW5lIGFmdGVyIFRlcnJhZm9ybSBjb21wbGV0ZXMuIEl04oCZcyBub3QgYW4gaW5zdGFudCBwcm9jZXNzIGJlY2F1c2UgdGhlIGJhY2tlbmQgc3lzdGVtcyBhcmUgcHJvdmlzaW9uaW5nIGFuZCBicmluZ2luZyB0aGluZ3Mgb25saW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgZG9uZSwgeW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7bGFuZ3VhZ2Utc2hlbGwgaGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7T3V0cHV0czoKClB1YmxpY19JUF9BZGRyZXNzICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgMzQuNzQuNzUuMTcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1B1YmxpY19JUF9BZGRyZXNzJmx0Oy9jb2RlJmd0OyB2YWx1ZSBpcyB0aGUgSVAgQWRkcmVzcyB0aGF0IHlvdXIgYXBwIGlzIHJ1bm5pbmcgb24sIHNvIGlmIHlvdSBnbyB0byBhIGJyb3dzZXIgYW5kIHBsdWcgdGhhdCBudW1iZXIgaW4gcGx1cyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7OjUwMDAmbHQ7L2NvZGUmZ3Q7IHBvcnQgYWRkcmVzcyAoaXQgd291bGQgbG9vayBsaWtlIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7MzQuNzQuNzUuMTc6NTAwMCZsdDsvY29kZSZndDspIHlvdSB3aWxsIHNlZSB5b3VyIGFwcCBydW5uaW5nIGluIEdDUC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Tm93IHRoYXQgeW91IGhhdmUgcHJvb2YgdGhhdCB5b3VyIEdvb2dsZSBDb21wdXRlIGluc3RhbmNlIGFuZCB5b3VyIGFwcGxpY2F0aW9uIHdvcmssIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gZGVzdHJveSB0aGUgYXNzZXRzIHRoYXQgeW91IGNyZWF0ZWQgaW4gdGhpcyB0dXRvcmlhbC4gWW91IGNhbiBsZWF2ZSBpdCB1cCBhbmQgcnVubmluZywgYnV0IGJlIGF3YXJlIHRoYXQgdGhlcmUgaXMgYSBjb3N0IGFzc29jaWF0ZWQgd2l0aCBhbnkgYXNzZXRzIHJ1bm5pbmcgb24gdGhlIEdvb2dsZSBDbG91ZCBQbGF0Zm9ybSBhbmQgeW91IHdpbGwgYmUgbGlhYmxlIGZvciB0aG9zZSBjb3N0cy4gR29vZ2xlIGdpdmVzIGEgZ2VuZXJvdXMgJDMwMCBjcmVkaXQgZm9yIGl0cyBmcmVlIHRyaWFsIHNpZ24tdXAsIGJ1dCB5b3UgY291bGQgZWFzaWx5IGVhdCB0aHJvdWdoIHRoYXQgaWYgeW91IGxlYXZlIGFzc2V0cyBydW5uaW5nLiBJdOKAmXMgdXAgdG8geW91LCBidXQgcnVubmluZyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0ZXJyYWZvcm0gZGVzdHJveSZsdDsvY29kZSZndDsgd2lsbCB0ZXJtaW5hdGUgYW55IHJ1bm5pbmcgYXNzZXRzLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIEnigJlsbCBkZW1vbnN0cmF0ZSBob3cgdG8gcGVyZm9ybSBpbmZyYXN0cnVjdHVyZSBwcm92aXNpb25pbmcgdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtQdWx1bWkgU0RLJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9wcm9kdWN0LyNzZGsmcXVvdDsmZ3Q7UHVsdW1pIFNESyZsdDsvYSZndDsgaXMgYW4gb3BlbiBzb3VyY2UgZnJhbWV3b3JrIGZvciBkZWZpbmluZyBhbmQgZGVwbG95aW5nIGNsb3VkIGFwcHMgYW5kIElhQy4gUHVsdW1pIGVuYWJsZXMgZGV2ZWxvcGVycyB0byB3cml0ZSBjb2RlIGluIHRoZWlyIGZhdm9yaXRlIGxhbmd1YWdlIHN1Y2ggYXMgVHlwZVNjcmlwdCwgSmF2YVNjcmlwdCwgUHl0aG9uLCBhbmQgR28uIFRoaXMgZW5hYmxlcyBtb2Rlcm4gYXBwcm9hY2hlcyB0byBjbG91ZCBhcHBsaWNhdGlvbnMgYW5kIGluZnJhc3RydWN0dXJlIHdpdGhvdXQgbmVlZGluZyB0byBsZWFybiBhbm90aGVyIFlBTUwgb3IgRFNMIGRpYWxlY3QuIFRoaXMgdW5sb2NrcyBhYnN0cmFjdGlvbnMgYW5kIHJldXNlLCBhcyB3ZWxsIGFzIGFjY2VzcyB0byB5b3VyIGZhdm9yaXRlIElERXMsIHJlZmFjdG9yaW5nLCBhbmQgdGVzdGluZyB0b29scy4gTWFzdGVyIG9uZSB0b29sY2hhaW4gYW5kIHNldCBvZiBmcmFtZXdvcmtzIGFuZCBnbyB0byBhbnkgY2xvdWQgKEFXUywgQXp1cmUsIEdDUCwgb3IgS3ViZXJuZXRlcykgd2l0aCBlYXNlLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBQdWx1bWkmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUgZXhwZXJpZW5jZWQgYnVpbGRpbmcgaW5mcmFzdHJ1Y3R1cmUgdXNpbmcgVGVycmFmb3JtLCBub3cgeW914oCZbGwgbGVhcm4gaG93IHRvIHByb3Zpc2lvbiBhbmQgZGVwbG95IG5ldyBpbmZyYXN0cnVjdHVyZSB1c2luZyBQdWx1bWkuIFRoZSBQdWx1bWkgZXhhbXBsZSB3aWxsIGNyZWF0ZSB0aGUgc2FtZSBHQ1AgcmVzb3VyY2VzIHByZXZpb3VzbHkgdXNpbmcgUHVsdW1pIGNvZGUgYW5kIHRvb2xzLiBQdWx1bWkgZW5hYmxlcyB5b3UgdG8gZGVmaW5lIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgaW4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHdoaWNoIHByb3ZpZGVzIGxvdHMgb2YgZmxleGliaWxpdHkuIEluIHRoaXMgZXhhbXBsZSwgd2XigJlyZSB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vd3d3LnB5dGhvbi5vcmcvJnF1b3Q7Jmd0O1B5dGhvbiZsdDsvYSZndDsgYXMgb3VyIGxhbmd1YWdlLiBUaGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7X19tYWluLnB5X18mbHQ7L2NvZGUmZ3Q7IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC9wdWx1bWkvZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgaXMgd2hlcmUgd2VyZSBnb2luZyB0byBkZWZpbmUgb3VyIGluZnJhc3RydWN0dXJlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlIHN1cmUgdG8gaGF2ZSB5b3VyIFB1bHVtaSBBUEkgdG9rZW4gYXZhaWxhYmxlLiBZb3XigJlsbCBuZWVkIGl0IGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIFB1bHVtaSBleGFtcGxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7fi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGRpcmVjdG9yeS4gUnVuIHRoaXMgY29tbWFuZCB0byBjaGFuZ2UgaW50byB0aGUgUHVsdW1pIGV4YW1wbGUgZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2Qgfi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gzJmd0O0luc3RhbGxpbmcgZGVwZW5kaWVuY2llcyBmb3IgUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1NpbmNlIHdl4oCZcmUgZGVmaW5pbmcgb3VyIElhQyBzcGVjcyB1c2luZyBQeXRob24gd2XigJlsbCBuZWVkIHRvIGZpcnN0IGluc3RhbGwgdGhlIFB1bHVtaSBQeXRob24gU0RLIGRlcGVuZGVuY2llcy4gSW4gdGhlIHRlcm1pbmFsIHJ1biB0aGlzIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtwaXAgaW5zdGFsbCAtciAuLi9yZXF1aXJlbWVudHMudHh0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtQcmV2aWV3aW5nIHdpdGggUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1B1bHVtaSBoYXMgYSBkcnktcnVuIGNvbW1hbmQgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBwcmV2aWV3Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRpc3BsYXlzIGEgcHJldmlldyBvZiB0aGUgdXBkYXRlcyB0byBhbiBleGlzdGluZyBzdGFjayB3aG9zZSBzdGF0ZSBpcyByZXByZXNlbnRlZCBieSBhbiBleGlzdGluZyBzdGF0ZSBmaWxlLiBUaGUgbmV3IGRlc2lyZWQgc3RhdGUgaXMgY29tcHV0ZWQgYnkgcnVubmluZyBhIFB1bHVtaSBwcm9ncmFtLCBhbmQgZXh0cmFjdGluZyBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbnMgZnJvbSBpdHMgcmVzdWx0aW5nIG9iamVjdCBncmFwaC4gVGhlc2UgYWxsb2NhdGlvbnMgYXJlIHRoZW4gY29tcGFyZWQgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc3RhdGUgdG8gZGV0ZXJtaW5lIHdoYXQgb3BlcmF0aW9ucyBtdXN0IHRha2UgcGxhY2UgdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZCBzdGF0ZS4gTm8gY2hhbmdlcyB0byB0aGUgc3RhY2sgd2lsbCBhY3R1YWxseSB0YWtlIHBsYWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGlzIGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHByZXZpZXcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHJlc3VsdHMgcHJvbXB0aW5nIHlvdSBmb3IgdGhlIFB1bHVtaSBBUEkgdG9rZW4geW91IGNyZWF0ZWQgZWFybGllci4gUGFzdGUgdGhlIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLiBBZnRlciB5b3UgcGFzdGUgdGhlIHRva2VuIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O01hbmFnZSB5b3VyIFB1bHVtaSBzdGFja3MgYnkgbG9nZ2luZyBpbi4KUnVuIGBwdWx1bWkgbG9naW4gLS1oZWxwYCBmb3IgYWx0ZXJuYXRpdmUgbG9naW4gb3B0aW9ucy4KRW50ZXIgeW91ciBhY2Nlc3MgdG9rZW4gZnJvbSBodHRwczovL2FwcC5wdWx1bWkuY29tL2FjY291bnQvdG9rZW5zCiAgICBvciBoaXQgJmFtcDtsdDtFTlRFUiZhbXA7Z3Q7IHRvIGxvZyBpbiB1c2luZyB5b3VyIGJyb3dzZXIgICAgICAgICAgICAgICAgICAgOgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1doZW4gcGFzdGluZyB0aGUgQVBJIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLCBubyB2YWx1ZXMgd2lsbCBiZSBkaXNwbGF5ZWQuIEl0IHdpbGwgcmVtYWluIGludmlzaWJsZSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuJmx0Oy9pJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBtYXkgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGEgc3RhY2sgaW4gdGhlIHRlcm1pbmFsLiBJZiBzbywgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkZXYmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB0aGVuIGhpdCBlbnRlci4gWW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UHJldmlld2luZyB1cGRhdGUgKGRldik6CiAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICAgICBQbGFuCiArICAgcHVsdW1pOnB1bHVtaTpTdGFjayAgICAgIGNvbXB1dGUtZGV2ICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6TmV0d29yayAgIG5ldHdvcmsgICAgICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6SW5zdGFuY2UgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJTilIAgZ2NwOmNvbXB1dGU6RmlyZXdhbGwgIGZpcmV3YWxsICAgICAgICAgICAgICAgICAgICBjcmVhdGUKClJlc291cmNlczoKICAgICsgNSB0byBjcmVhdGUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUganVzdCBlbmFibGVkIGFjY2VzcyB0byB0aGUgUHVsdW1pIGJhY2tlbmQgY2xvdWQgd2hpY2gga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXRlIG9mIHlvdXIgaW5mcmFzdHJ1Y3R1cmVzLiBOb3cgeW914oCZcmUgcmVhZHkgdG8gcnVuIHNvbWUgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7UHVsdW1pIHVwJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1RvIGV4ZWN1dGUgdGhlIFB1bHVtaSBjb2RlLCB1c2UgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIHVwJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGNyZWF0ZXMgb3IgdXBkYXRlcyByZXNvdXJjZXMgaW4gYSBzdGFjay4gVGhlIG5ldyBkZXNpcmVkIGdvYWwgc3RhdGUgZm9yIHRoZSB0YXJnZXQgc3RhY2sgaXMgY29tcHV0ZWQgYnkgcnVubmluZyB0aGUgY3VycmVudCBQdWx1bWkgcHJvZ3JhbSBhbmQgb2JzZXJ2aW5nIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9ucyB0byBwcm9kdWNlIGEgcmVzb3VyY2UgZ3JhcGguIFRoaXMgZ29hbCBzdGF0ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIGV4aXN0aW5nIHN0YXRlIHRvIGRldGVybWluZSB3aGF0IGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQvb3IgZGVsZXRlIG9wZXJhdGlvbnMgbXVzdCB0YWtlIHBsYWNlIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgZ29hbCBzdGF0ZSBpbiB0aGUgbW9zdCBtaW5pbWFsbHkgZGlzcnVwdGl2ZSB3YXkuIEFmdGVyd2FyZCwgdGhpcyBjb21tYW5kIHJlY29yZHMgYSBmdWxsIHRyYW5zYWN0aW9uYWwgc25hcHNob3Qgb2YgdGhlIHN0YWNr4oCZcyBuZXcgc3RhdGUgc28gdGhhdCB0aGUgc3RhY2sgbWF5IGJlIHVwZGF0ZWQgaW5jcmVtZW50YWxseSBhZ2FpbiBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgdGVybWluYWwgcnVuOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHVwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1NlbGVjdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7eWVzJmx0Oy9jb2RlJmd0OyBvcHRpb24gYW5kIGhpdCBlbnRlci4gVGhlIFB1bHVtaSBhcHAgd2lsbCBleGVjdXRlLCBhbmQgc2hvcnRseSBhZnRlciB5b3XigJlsbCBoYXZlIGEgY29tcGxldGUgc2VydmVyIHJ1bm5pbmcgYW4gYXBwbGljYXRpb24gb24gR0NQLiBZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtVcGRhdGluZyAoZGV2KToKICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cwogKyAgIHB1bHVtaTpwdWx1bWk6U3RhY2sgICAgICBjb21wdXRlLWRldiAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUnOKUgCBnY3A6Y29tcHV0ZTpOZXR3b3JrICAgbmV0d29yayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGVkCiArICAg4pSc4pSAIGdjcDpjb21wdXRlOkZpcmV3YWxsICBmaXJld2FsbCAgICAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUlOKUgCBnY3A6Y29tcHV0ZTpJbnN0YW5jZSAgd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDEgIGNyZWF0ZWQKCk91dHB1dHM6CiAgICBleHRlcm5hbF9pcCAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICBpbnN0YW5jZV9tZXRhX2RhdGE6IHsKICAgICAgICBnY2UtY29udGFpbmVyLWRlY2xhcmF0aW9uOiAmcXVvdDtzcGVjOlxuICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDFcbiAgICAgIGltYWdlOiBhcml2M3JhL3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxOmxhdGVzdFxuICAgICAgc3RkaW46IGZhbHNlXG4gICAgICB0dHk6IGZhbHNlXG4gIHJlc3RhcnRQb2xpY3k6IEFsd2F5c1xuJnF1b3Q7CiAgICB9CiAgICBpbnN0YW5jZV9uYW1lICAgICA6ICZxdW90O3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxJnF1b3Q7CiAgICBpbnN0YW5jZV9uZXR3b3JrICA6IFsKICAgICAgICBbMF06IHsKICAgICAgICAgICAgYWNjZXNzQ29uZmlncyAgICA6IFsKICAgICAgICAgICAgICAgIFswXTogewogICAgICAgICAgICAgICAgICAgIG5hdElwICAgICAgICAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICAgICAgICAgICAgICAgICAgbmV0d29ya190aWVyICAgICAgIDogJnF1b3Q7UFJFTUlVTSZxdW90OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgOiAmcXVvdDtuaWMwJnF1b3Q7CiAgICAgICAgfQogICAgXQoKUmVzb3VyY2VzOgogICAgKyA1IGNyZWF0ZWQKCkR1cmF0aW9uOiA1OHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlc2UgcmVzdWx0cywgeW914oCZbGwgc2VlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXh0ZXJuYWxfaXAmbHQ7L2NvZGUmZ3Q7IGtleS4gSXTigJlzIHZhbHVlIGlzIHRoZSBJUCBBZGRyZXNzIHRvIHRoZSBwdWJsaWMgZmFjaW5nIGFwcGxpY2F0aW9uIGV4cG9zZWQgb24gcG9ydCA1MDAwLiBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIFRlcnJhZm9ybSBleGFtcGxlLCB5b3UgY2FuIGFjY2VzcyB0aGUgYXBwbGljYXRpb24gaW4gYSBicm93c2VyLiBSZW1lbWJlciB0byBhbGxvdyBmb3IgYSBmZXcgbWludXRlcyBzbyB0aGUgYmFja2VuZCBzeXN0ZW0gY2FuIGJyaW5nIGV2ZXJ5dGhpbmcgb25saW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQdWx1bWkgZGVzdHJveSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtQdWx1bWkgaGFzIGEgY29tbWFuZCB0byB0ZXJtaW5hdGUgYWxsIG9mIHRoZSBjbG91ZCByZXNvdXJjZXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBkZXN0cm95Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRlbGV0ZXMgYW4gZW50aXJlIGV4aXN0aW5nIHN0YWNrIGJ5IG5hbWUuIFRoZSBjdXJyZW50IHN0YXRlIGlzIGxvYWRlZCBmcm9tIHRoZSBhc3NvY2lhdGVkIHN0YXRlIGZpbGUgaW4gdGhlIHdvcmtzcGFjZS4gQWZ0ZXIgcnVubmluZyB0byBjb21wbGV0aW9uLCBhbGwgb2YgdGhpcyBzdGFja+KAmXMgcmVzb3VyY2VzIGFuZCBhc3NvY2lhdGVkIHN0YXRlIHdpbGwgYmUgZ29uZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtSdW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGluIHRoZSB0ZXJtaW5hbCBhbmQgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5ZXMmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB3aGVuIHByb21wdGVkIHRvICZsdDtzdHJvbmcmZ3Q7cGVybWFuZW50bHkmbHQ7L3N0cm9uZyZndDsgZGVzdHJveSB0aGUgR0NQIHJlc291cmNlcyBjcmVhdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O0NvbmdyYXR1bGF0aW9ucyEgWW914oCZdmUganVzdCBsZXZlbGVkIHVwIGFuZCBub3cgaGF2ZSBleHBlcmllbmNlIHByb3Zpc2lvbmluZyBhbmQgZGVwbG95aW5nIGFwcGxpY2F0aW9ucyB0byBHQ1AgdXNpbmcgdGhlIG1vZGVybiBJYUMgdG9vbHMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O1RlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4gVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2lsbCBoZWxwIHlvdSBleHBhbmQgeW91ciBrbm93bGVkZ2UgZnJvbSBoZXJlOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9jbGktaW5kZXguaHRtbCZxdW90OyZndDtUZXJyYWZvcm0gR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9kb2NzL2dldC1zdGFydGVkLyZxdW90OyZndDtQdWx1bWkgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS9vcmIvcHVsdW1pL3B1bHVtaSZxdW90OyZndDtQdWx1bWkgb3JiIGZvciBDaXJjbGVDSSZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyZxdW90OyZndDtEb2NrZXIgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm0vY29tbXVuaXR5L2Jsb2IvbWFzdGVyL3R1dG9yaWFscy9nZXR0aW5nLXN0YXJ0ZWQtb24tZ2NwLXdpdGgtdGVycmFmb3JtL2luZGV4Lm1kI2dldHRpbmctcHJvamVjdC1jcmVkZW50aWFscyZxdW90OyZndDtHb29nbGUgQ2xvdWQgUGxhdGZvcm0mbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogICAgICAKICAgICAgPGl0ZW0+CiAgICAgICAgPHRpdGxlPkEgbG9vayBhdCBDaXJjbGVDSeKAmXMgaW5kdXN0cnktbGVhZGluZyBzdXBwb3J0IGZvciB0cmFuc2l0aW9uLXJlbGF0ZWQgbWVkaWNhbCBsZWF2ZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hLWxvb2stYXQtY2lyY2xlY2ktcy1pbmR1c3RyeS1sZWFkaW5nLXN1cHBvcnQtZm9yLXRyYW5zaXRpb24tcmVsYXRlZC1tZWRpY2FsLWxlYXZlLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5XZWQsIDEzIE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2EtbG9vay1hdC1jaXJjbGVjaS1zLWluZHVzdHJ5LWxlYWRpbmctc3VwcG9ydC1mb3ItdHJhbnNpdGlvbi1yZWxhdGVkLW1lZGljYWwtbGVhdmUvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RWxpemFiZXRoIEJlbGw8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7T25lIG9mIHRoZSBncmVhdCB0aGluZ3MgYWJvdXQgd29ya2luZyBhdCBDaXJjbGVDSSBpcyB0aGF0IHRoZSBjb21wYW55IGJlbGlldmVzIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGJlIGFibGUgdG8gYmUgdGhlaXIgd2hvbGUgc2VsZiBhdCB3b3JrLiBJbmNsdXNpdml0eSwgZGVtb25zdHJhdGluZyB0cnVzdCBhbmQgcmVzcGVjdCwgYW5kIG1ha2luZyBzdXJlIGV2ZXJ5b25lIGhhcyB0aGUgdG9vbHMgYW5kIHN1cHBvcnQgdGhleSBuZWVkIGFyZSBhbGwgYnVyaWVkIGRlZXAgaW4gdGhlIGN1bHR1cmUgaGVyZSDigJMgaXQgaXMgYSBiaWcgcGFydCBvZiBob3cgd2UgZGVsaXZlciB0aGUgYmVzdCB2YWx1ZSBmb3Igb3VyIGN1c3RvbWVycy4gV2l0aCB0aGF0IGluIG1pbmQsIHRoZSBjb21wYW55IHJlY2VudGx5IHJvbGxlZCBvdXQgYSBuZXcgaGVhbHRoY2FyZSBwb2xpY3kgZm9yIG91ciB0cmFuc2dlbmRlciBjby13b3JrZXJzLiBJbiBhIGZpcnN0IGZvciBjb21wYW5pZXMgaW4gdGhlIENJL0NEIHNwYWNlLCBDaXJjbGVDSSBub3cgb2ZmZXJzIGZ1bGx5LWNvbXBlbnNhdGVkIHBhaWQgbGVhdmUgZm9yIGVtcGxveWVlcyByZWNvdmVyaW5nIGZyb20gdHJhbnNpdGlvbi1yZWxhdGVkIG1lZGljYWwgcHJvY2VkdXJlcy4gVGhpcyBwb2xpY3kgaXMgYW4gZXh0cmVtZWx5IGltcG9ydGFudCBhZGRpdGlvbiB0byBDaXJjbGVDSeKAmXMgYmVuZWZpdHMgcGFja2FnZSBhbmQgYW5vdGhlciBleGFtcGxlIG9mIHRoZSBjb21wYW554oCZcyBkZWRpY2F0aW9uIHRvIHRoZSB3ZWxsLWJlaW5nIG9mIGFsbCBlbXBsb3llZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VHJhbnNpdGlvbiBpcyBhbiBpbW1lbnNlbHkgc3RyZXNzZnVsIHByb2Nlc3MsIGFuZCB0aGUgbWVkaWNhbCBwcm9jZWR1cmVzIHJlcXVpcmVkIHRvIHRyZWF0IHRoZSBkeXNwaG9yaWEgZXhwZXJpZW5jZWQgYnkgc29tZSB0cmFuc2dlbmRlciBwZW9wbGUgb2Z0ZW4gbmVlZCBhIHZlcnkgY2FyZWZ1bCBhcHByb2FjaCB0byByZWNvdmVyeS4mbHQ7L3AmZ3Q7CgombHQ7YmxvY2txdW90ZSZndDsKICAmbHQ7cCZndDtUaGUgZ29hbCBvZiB0aGUgcG9saWN5IGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRyYW5zZ2VuZGVyIGVtcGxveWVlcyBmZWVsIHN1cHBvcnRlZCBkdXJpbmcgdGhpcyBkaWZmaWN1bHQgdGltZSwgYW5kIGJ5IGVuc3VyaW5nIHRoYXQgdHJhbnNnZW5kZXIgZW1wbG95ZWVzIGhhdmUgYWNjZXNzIHRvIGFwcHJvcHJpYXRlbHkgY29tcGVuc2F0ZWQgbWVkaWNhbCBsZWF2ZSwgdGhlIGNvbXBhbnkgY2FuIHJlbW92ZSBtYWpvciBzb3VyY2VzIG9mIHVubmVjZXNzYXJ5IHN0cmVzcy4gVGhpcyB3YXksIHdlIGNhbiByZXR1cm4gdG8gd29yayBoYXBwaWVyLCBoZWFsdGhpZXIsIGFuZCBiZXR0ZXIgYWJsZSB0byBkbyBvdXIgYmVzdCBmb3Igb3VyIGN1c3RvbWVycyBhbmQgb3VyIGNvbGxlYWd1ZXMuJmx0Oy9wJmd0OwombHQ7L2Jsb2NrcXVvdGUmZ3Q7CgombHQ7aDImZ3Q7SG93IHRoaXMgcG9saWN5IGNhbWUgdG9nZXRoZXImbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgcHVzaCBmb3IgdGhlIGZvcm1hbGl6YXRpb24gb2YgdGhlc2UgYmVuZWZpdHMgZ3JldyBvdXQgb2YgdGhlIGVmZm9ydHMgb2YgbWFueSBpbmRpdmlkdWFscy4gVG9nZXRoZXIsIHRoZSB0cmFucyBlbXBsb3llZXMgYXQgQ2lyY2xlQ0kgZGlzY3Vzc2VkIHRoZSBpc3N1ZSBhbW9uZ3N0IG91cnNlbHZlcywgb3VyIG1hbmFnZXJzLCBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIHdobyBzdXBwb3J0ZWQgdXMgaW4gYnJpbmdpbmcgdGhlIHRvcGljIHRvIG91ciBleGVjdXRpdmUgdGVhbS4gQnkgYnVpbGRpbmcgY29uc2Vuc3VzLCBib3RoIHdpdGhpbiB0aGUgdHJhbnMgcG9wdWxhdGlvbiBhdCB0aGUgY29tcGFueSBhbmQgb3VyIGNpc2dlbmRlciBjb2xsZWFndWVzLCB3ZSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IGFkdm9jYXRlIGZvciBhIGZvcm1hbGl6YXRpb24gb2YsIGFuZCBhIGNvbW1pdG1lbnQgdG8sIHRoaXMgaW5kdXN0cnktbGVhZGluZyB0cmFucyBoZWFsdGhjYXJlIGJlbmVmaXQuIFF1ZWVyU3BoZXJlLCB0aGUgRW1wbG95ZWUgUmVzb3VyY2UgR3JvdXAgaGVyZSBhdCBDaXJjbGVDSSBmb3IgTEdCVFFJQSsgZW1wbG95ZWVzLCBoZWxwZWQgY29vcmRpbmF0ZSB0aGUgZWZmb3J0IHRvIGFkdm9jYXRlLCBhbmQgdGhlIHJlc3VsdCB3YXMgYSBwb2xpY3kgdGhhdCBoZWxwcyBlbnN1cmUgdHJhbnMgZW1wbG95ZWVzIGdldCB0aGUgc3VwcG9ydCB3ZSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uZSBvZiB0aGUgYmVzdCB0aGluZ3MgZm9yIG1lIGFib3V0IHdvcmtpbmcgYXQgQ2lyY2xlQ0kgaXMgaG93IGVtcG93ZXJlZCBJIGZlZWwgdG8gY2FsbCBhdHRlbnRpb24gdG8gaXNzdWVzIG9yIHByYWN0aWNlcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCBhbmQgYnJpbmcgcGVvcGxlIHRvZ2V0aGVyIHRvIHdvcmsgb24gdGhlbSwgdG8gdGhlIGJlbmVmaXQgb2YgYm90aCB0aGUgY29tcGFueSBhcyBhIHdob2xlIGFuZCB1bmRlcnJlcHJlc2VudGVkIG9yIG1hcmdpbmFsaXplZCBlbXBsb3llZXMuIFRyYW5zIHBlb3BsZSBmYWNlIHN5c3RlbWljIGJpYXM6IHRoZXJlIGFyZSBubyBmZWRlcmFsLWxldmVsIHByb3RlY3Rpb25zIGZyb20gZGlzY3JpbWluYXRpb24gb24gdGhlIGJhc2lzIG9mIGdlbmRlciBpZGVudGl0eSBpbiB0aGUgVW5pdGVkIFN0YXRlcywgYW5kIG9mIHRoZSB0cmFucyBwb3B1bGF0aW9uIHN1cnZleWVkIGJ5IHRoZSBOYXRpb25hbCBDZW50ZXIgZm9yIFRyYW5zZ2VuZGVyIEVxdWFsaXR5IGluIDIwMTUsIDgwJSBvZiB0aG9zZSB3aG8gd2VyZSBlbXBsb3llZCByZXBvcnRlZCBleHBlcmllbmNpbmcgaGFyYXNzbWVudCwgbWlzdHJlYXRtZW50LCBvciBoYWQgdG8gdGFrZSBzdGVwcyB0byBhdm9pZCB0aG9zZSBob3N0aWxlIHdvcmtwbGFjZSBiZWhhdmlvcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SSBrbm93IGZpcnN0aGFuZCBob3cgZGlmZmljdWx0IGJlaW5nIG91dCBhdCB3b3JrIGNhbiBiZS4gQXQgYSBwcmV2aW91cyBlbXBsb3llciBlYXJseSBpbiBteSB0cmFuc2l0aW9uLCBJIGZlbHQgYWxpZW5hdGVkIGFuZCBkaXNsaWtlZCBieSBjb2xsZWFndWVzIHdobyBoYWQgcHJldmlvdXNseSBiZWVuIGZyaWVuZGx5IGJlZm9yZSB0aGV5IGtuZXcgSSB3YXMgdHJhbnNnZW5kZXIuIEkgaGF2ZSBoYWQgdG8gbWluaW1pemUgdGhlIGZhY3QgdGhhdCBJ4oCZbSB0cmFucywgdG9sZXJhdGUgYWN0aXZlIGhvc3RpbGl0eSBmcm9tIGNvd29ya2Vycywgb3IgcHJldGVuZCB0aGF0IEkgd2FzIGNpc2dlbmRlciwgaW4gb3JkZXIgdG8gcHJvdGVjdCBteSBqb2IuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgQ2lyY2xlQ0ksIEkgaGF2ZSBmZWx0IHN1cHBvcnRlZCwgcmVzcGVjdGVkLCBhbmQgYWJsZSB0byBjb25maWRlbnRseSBiZSBteXNlbGYuIEkgZmVlbCBleGNlcHRpb25hbGx5IGZvcnR1bmF0ZSB0byBoYXZlIGEgd29uZGVyZnVsIGdyb3VwIG9mIHRyYW5zZ2VuZGVyIGNvbGxlYWd1ZXMgYW5kIGZyaWVuZHMgKHdlIG1ha2UgdXAgNyUgb2YgdGhlIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0ksIGFuZCAzJSBvZiB0aGUgb3JnIGluIHRvdGFsLCBjb21wYXJlZCB0byAwLjYlIG9mIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24pLCBhbmQgdG8gd29yayBzb21ld2hlcmUgd2hlcmUgb3VyIHZpZXdzIGFuZCBleHBlcmllbmNlcyBhcmUgdmFsdWVkIGF0IHRoZSBoaWdoZXN0IGxldmVscyBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0lmIHlvdSBsaWtlIHRoZSBzb3VuZCBvZiB3b3JraW5nIHNvbWV3aGVyZSB3aXRoIGEgcmVtb3RlLWZpcnN0IGN1bHR1cmUgYW5kIGNvbGxhYm9yYXRpbmcgb24gaW50ZXJlc3RpbmcgcHJvYmxlbXMgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIHRyYW5zIGZvbHggYW5kIGFsbGllcywgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9jYXJlZXJzLyZxdW90OyZndDtjaGVjayBvdXQgb3VyIG9wZW5pbmdzIGhlcmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIEdhdHNieSBhcHBzIHRvIEhlcm9rdTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtZ2F0c2J5LWFwcHMtdG8taGVyb2t1LzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDExIE1heSAyMDIwIDA5OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1nYXRzYnktYXBwcy10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9qYW1zdGFjay5vcmcvJnF1b3Q7Jmd0O0pBTVN0YWNrJmx0Oy9hJmd0OyBpcyBxdWlja2x5IGJlY29taW5nIGEgYmlnIGRlYWwgaW4gdGhlIHdvcmxkIG9mIHdlYiBkZXZlbG9wbWVudC4gSkFNU3RhY2ssIHdoaWNoIHN0YW5kcyBmb3IgSmF2YXNjcmlwdCwgQVBJcywgYW5kIEhUTUwgbWFya3VwLCBpcyBhIG1vZGVybiBhcmNoaXRlY3R1cmUgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMgYW5kIG9uZSBvZiBpdHMgbWFqb3IgZmVhdHVyZXMgaXMgdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBhIGRhdGFiYXNlIGFuZCBhIHdlYiBzZXJ2ZXIgaXMgb3B0aW9uYWwuIFRoZSBKQU1TdGFjayBhcmNoaXRlY3R1cmUgaXMgYWltZWQgYXQgZGVjb3VwbGluZyB0aGUgZnJvbnRlbmQgYW5kIHRoZSBiYWNrZW5kIGJ5IGdlbmVyYXRpbmcgYSBmcm9udGVuZCBtYWRlIG9mIEhUTUwsIENTUywgYW5kIEphdmFzY3JpcHQgYW5kIGEgYmFja2VuZCB0aGF0IGlzIHNpbXBseSBhIGNvbnRlbnQgQVBJIHJldHVybmluZyBKU09OIG9yIFhNTC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmUgb2YgdGhlIGxlYWRpbmcgSkFNU3RhY2sgcGxhdGZvcm1zIHRvZGF5IGlzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnLyZxdW90OyZndDtHYXRzYnkuanMmbHQ7L2EmZ3Q7LiBHYXRzYnkuanMgaXMgYSBmcmVlIGFuZCBvcGVuLXNvdXJjZSBmcmFtZXdvcmsgYmFzZWQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3JlYWN0anMub3JnLyZxdW90OyZndDtSZWFjdC5qcyZsdDsvYSZndDsgdGhhdCBoZWxwcyBkZXZlbG9wZXJzIGJ1aWxkIGhpZ2gtc3BlZWQgd2ViIGFwcGxpY2F0aW9ucy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHR1dG9yaWFsLCB3ZSB3aWxsIGJlIGRlbW9uc3RyYXRpbmcgaG93IHRvIGRlcGxveSBhIEdhdHNieS5qcyBzaXRlIHRvIHRoZSBwb3B1bGFyIEhlcm9rdSBwbGF0Zm9ybSBieSBidWlsZGluZyBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmUgZm9yIGl0cyBkZXBsb3ltZW50IHVzaW5nIENpcmNsZUNJLiZsdDsvcCZndDsKCiZsdDtoMiZndDtQcmVyZXF1aXNpdGVzJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIG9yZGVyIHRvIGZvbGxvdyBhbG9uZyB3aXRoIHRoaXMgcG9zdCwgeW91IHdpbGwgbmVlZCBhIGZldyB0aGluZ3MgaW4gcGxhY2U6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7ICZhbXA7Z3Q7PSAxMC4xNiBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZSAtdiZsdDsvY29kZSZndDsgb24geW91ciB0ZXJtaW5hbCB0byBwcmludCBvdXQgeW91ciB2ZXJzaW9uIG9mIE5vZGVKUyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7R2l0Jmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2l0Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsLiBUaGlzIHNob3VsZCBwcmludCBvdXQgYXZhaWxhYmxlIGdpdCBjb21tYW5kcykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuaGVyb2t1LmNvbS8mcXVvdDsmZ3Q7SGVyb2t1Jmx0Oy9hJmd0OyBhY2NvdW50Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O0dpdEh1YiZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7V2l0aCB0aGVzZSwgeW91IGFyZSByZWFkeSB0byBmb2xsb3cgYWxvbmcuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NyZWF0aW5nIGEgR2F0c2J5LmpzIHByb2plY3QmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7VG8gYmVnaW4sIHdlIG5lZWQgdG8gY3JlYXRlIG91ciBHYXRzYnkuanMgcHJvamVjdC4gSW4gYW4gYXBwcm9wcmlhdGUgbG9jYXRpb24gd2l0aGluIHlvdXIgc3lzdGVtLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGdhdHNieSBuZXcgZ2F0c2J5LWhlcm9rdS1kZXBsb3kKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBwYXJ0IG9mIHRoaXMgY29tbWFuZCBpcyB0aGUgZm9sZGVyIG5hbWUgZm9yIG15IHByb2plY3QgdG8gYmUgc2NhZmZvbGRlZCBpbi4gWW91IGNhbiB1c2UgYW55IHByZWZlcnJlZCBuYW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCB3aWxsIGltbWVkaWF0ZWx5IGJlZ2luIHNjYWZmb2xkaW5nIGEgbmV3IEdhdHNieS5qcyBwcm9qZWN0LiBZb3UgbWlnaHQgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGVpdGhlciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5YXJuJmx0Oy9jb2RlJmd0OyBvciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7IGFzIHlvdXIgcGFja2FnZSBtYW5hZ2VyLCBmb3IgdGhpcyB0dXRvcmlhbCwgZ28gd2l0aCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNjYWZmb2xkaW5nIHByb2Nlc3MgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIGdhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OykgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gYm9vdCB1cCBhIHNlcnZlciB0byBzZXJ2ZSB0aGUgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBydW4gZGV2ZWxvcAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgc2VydmUgdGhlIGFwcGxpY2F0aW9uIGF0IHRoZSBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8mbHQ7L2NvZGUmZ3Q7IGFuZCBkaXNwbGF5IHRoZSBwYWdlIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MS5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIGEgZnVuY3Rpb25hbCBHYXRzYnkuanMgc2l0ZSB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7U2V0dGluZyB1cCBhIEhlcm9rdSBBcHAgZm9yIEdhdHNieSZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBzZXQgdXAgYSBIZXJva3UgYXBwIGZvciBvdXIgR2F0c2J5IGFwcGxpY2F0aW9uLCB3ZSBuZWVkIHRvIGxvZyBpbnRvIEhlcm9rdSBhbmQgY3JlYXRlIGEgbmV3IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5Mi5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdlIG5lZWQgdG8gZ2V0IHRoZSBuYW1lIG9mIG91ciBhcHBsaWNhdGlvbiAodGhpcyB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBmb3IgdGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgYWJvdmUpIGFuZCB0aGUgQVBJIGtleSBmb3Igb3VyIEhlcm9rdSBhY2NvdW50LiBUaGUgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIEhlcm9rdSAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXZSB3aWxsIG5lZWQgdGhlc2UgdHdvIHZhbHVlcyAodGhlIGFwcCBuYW1lIGFuZCBBUEkga2V5KSBsYXRlciBvbiB0byBjcmVhdGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9uIG91ciBDaXJjbGVDSSBwcm9qZWN0IGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiBvdXIgSGVyb2t1IGFjY291bnQgaXMgdG8gaW5zdGFsbCBzb21lIG5lY2Vzc2FyeSBidWlsZHBhY2tzLiBCdWlsZHBhY2tzIGFyZSBzY3JpcHRzIHRoYXQgcnVuIHdoZW4geW91ciBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZC4gV2Ugd2lsbCBuZWVkIHR3byBidWlsZCBwYWNrcyBmb3IgdGhpcyBleGVyY2lzZTombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0O2hlcm9rdS9ub2RlanM6IFJlcXVpcmVkIGZvciBhbGwgTm9kZS5qcyBhcHBsaWNhdGlvbnMmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtoZXJva3UvaGVyb2t1LWJ1aWxkcGFjay1zdGF0aWM6IFRoZSBIZXJva3UgQnVpbGRwYWNrIFN0YXRpYyBwYWNrYWdlIChiZWNhdXNlIEdhdHNieS5qc+KAmXMgYnVpbGQgaXMgbWFkZSB1cCBvZiBzdGF0aWMgZmlsZXMsIHRoaXMgd2lsbCBoZWxwIHVzIHNlcnZlIHRoZSBzdGF0aWMgZmlsZXMgb24gdGhlIEhlcm9rdSBwbGF0Zm9ybSkmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7R28gdG8geW91ciBIZXJva3UgYXBwbGljYXRpb27igJlzICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgcGFnZSBhbmQgc2Nyb2xsIGRvd24gdG8gJmx0O3N0cm9uZyZndDtCdWlsZHBhY2tzJmx0Oy9zdHJvbmcmZ3Q7ICh5b3UgbWlnaHQgYWxyZWFkeSBzZWUgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgYnVpbGRwYWNrIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQpLiBDbGljayAmbHQ7c3Ryb25nJmd0O0FkZCBidWlsZHBhY2smbHQ7L3N0cm9uZyZndDsgYW5kIHlvdSB3aWxsIHNlZSBhIGRpYWxvZyBwb3AgdXAgc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnkzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rm9yIGVhY2ggYnVpbGRwYWNrICgmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3Uvbm9kZWpzJmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L2hlcm9rdS1idWlsZHBhY2stc3RhdGljJmx0Oy9jb2RlJmd0OykgZW50ZXIgdGhlIGlkZW50aWZpZXIgaW50byB0aGUgdGV4dCBmaWVsZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTYXZlIENoYW5nZXMmbHQ7L3N0cm9uZyZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtOb3RlOiZsdDsvc3Ryb25nJmd0OyAmbHQ7aSZndDtJZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCwgb25seSBhZGQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2hlcm9rdS9oZXJva3UtYnVpbGRwYWNrLXN0YXRpYyZsdDsvY29kZSZndDsgYnVpbGQgcGFjay4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgZG9pbmcgdGhpcyBmb3IgYm90aCBidWlsZHBhY2tzLCB5b3Ugd2lsbCBzZWUgdGhlIHR3byBidWlsZCBwYWNrcyBub3cgbGlzdGVkIGluICZsdDtzdHJvbmcmZ3Q7QnVpbGRwYWNrcyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGF0IGNvbXBsZXRlcyB0aGUgc2V0IHVwIHJlcXVpcmVkIGZvciBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1NldHRpbmcgdXAgdGhlIEdhdHNieS5qcyBwcm9qZWN0IG9uIENpcmNsZUNJJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBuZXh0IHRhc2sgaXMgdG8gZ2V0IG91ciBHYXRzYnkuanMgcHJvamVjdCBzZXQgdXAgb24gQ2lyY2xlQ0kuIFdlIG5lZWQgdG8gcHVzaCBvdXIgY29kZSB0byBhIEdpdEh1YiByZXBvc2l0b3J5IG9uIHRoZSBhY2NvdW50IHlvdSBoYXZlIGxpbmtlZCB0byB5b3VyIENpcmNsZUNJIGFjY291bnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgZ28gdG8gdGhlICZsdDtzdHJvbmcmZ3Q7QWRkIFByb2plY3RzJmx0Oy9zdHJvbmcmZ3Q7IHBhZ2UgdG8gYWRkIHRoZSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk0LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0OyB0byBiZWdpbiBzZXR0aW5nIHVwIHRoZSBwcm9qZWN0LiBUaGlzIHdpbGwgbG9hZCB0aGUgbmV4dCBzY3JlZW4uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk1LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhlIHNldHVwIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsuIEJlZm9yZSB0aGUgYnVpbGQgc3RhcnRzLCB5b3Ugd2lsbCBnZXQgYSBwcm9tcHQgdG8gZWl0aGVyIGRvd25sb2FkIGFuZCB1c2UgdGhlIHByb3ZpZGVkIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgaGF2ZSBpdCBhZGRlZCBvbiBhIHNlcGFyYXRlIGJyYW5jaCBvciBzZXQgb25lIHVwIG1hbnVhbGx5LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk2LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U2VsZWN0ICZsdDtzdHJvbmcmZ3Q7QWRkIE1hbnVhbGx5Jmx0Oy9zdHJvbmcmZ3Q7IHRvIHByb2NlZWQuIFRoaXMgd2lsbCBwcm9tcHQgYW5vdGhlciBkaWFsb2cgdGhhdCBjaGVja3MgdG8gY29uZmlybSB0aGF0IHlvdSBoYXZlIGEgY29uZmlndXJhdGlvbiBmaWxlIHNldCB1cCB0byBiZWdpbiBidWlsZGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTcucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGNvbXBsZXRlIHRoZSBzZXR1cC4gVGhlIGJ1aWxkIHdpbGwgc3VyZWx5IGZhaWwgYmVjYXVzZSB3ZSBoYXZlIG5vdCBzZXQgdXAgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB5ZXQsIHRoaXMgd2Ugd2lsbCBkbyBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiB0aGUgQ2lyY2xlQ0kgY29uc29sZSBpcyB0byBzZXQgdXAgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZW52LXZhcnMvJnF1b3Q7Jmd0O2Vudmlyb25tZW50IHZhcmlhYmxlcyZsdDsvYSZndDsgZm9yIHRoZSBwcm9qZWN0IHdlIGp1c3QgYWRkZWQuIFRoaXMgd2lsbCBlbmFibGUgaXQgdG8gaGF2ZSBhdXRoZW50aWNhdGVkIGFjY2VzcyB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIGZvciBkZXBsb3ltZW50cy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHbyB0byB5b3VyIHByb2plY3TigJlzIHNldHRpbmdzIGJ5IGNsaWNraW5nICZsdDtzdHJvbmcmZ3Q7UHJvamVjdCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgJmx0O3N0cm9uZyZndDtQaXBlbGluZXMmbHQ7L3N0cm9uZyZndDsgcGFnZSAobWFrZSBzdXJlIHlvdXIgcHJvamVjdCBpcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2plY3QpLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5OC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBuYXZpZ2F0ZSB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBwYWdlLiBPbiB0aGlzIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7RW52aXJvbm1lbnQgVmFyaWFibGVzJmx0Oy9zdHJvbmcmZ3Q7IG9uIHRoZSBzaWRlIG1lbnUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk5LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFnZSwgY2xpY2sgJmx0O3N0cm9uZyZndDtBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUgYnV0dG9uJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTAucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZGQgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Jmx0Oy9wJmd0OwombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDs6IFRoaXMgaXMgdGhlIG5hbWUgb2YgeW91ciBIZXJva3UgYXBwbGljYXRpb24gKGluIHRoaXMgY2FzZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnYXRzYnktaGVyb2t1LWRlcGxveSZsdDsvY29kZSZndDspJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7SEVST0tVX0FQSV9LRVkmbHQ7L2NvZGUmZ3Q7OiBZb3VyIEhlcm9rdSBhY2NvdW50IEFQSSBrZXkgZm91bmQgdW5kZXIgdGhlICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCZsdDsvc3Ryb25nJmd0OyB0YWIgb2YgeW91ciBIZXJva3UgYWNjb3VudCBpbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50IFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O09uY2UgYWRkZWQsIHlvdSB3aWxsIGhhdmUgZXZlcnl0aGluZyBzZXQgdXAgb24geW91ciBDaXJjbGVDSSBjb25zb2xlIGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRoZSBHYXRic3kuanMgc2l0ZSB1c2luZyBvcmJzJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy8mcXVvdDsmZ3Q7T3JicyZsdDsvYSZndDsgYXJlIHJldXNhYmxlIHBhY2thZ2VzIG9mIFlBTUwgY29uZmlndXJhdGlvbiB0aGF0IGNvbmRlbnNlIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoZXkgZW5hYmxlIGRldmVsb3BlcnMgdG8gZWFzaWx5IHVzZSBwb3dlcmZ1bCBwaXBlbGluZSBmdW5jdGlvbmFsaXRpZXMgd2l0aCBhbGwgdGhlIGJvaWxlcnBsYXRlIGFic3RyYWN0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBleGVyY2lzZSwgd2Ugd2lsbCBiZSB1c2luZyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7b3JiIGZvciBIZXJva3UmbHQ7L2EmZ3Q7IHRvIGNvbmZpZ3VyZSBvdXIgcGlwZWxpbmUgdG8gZGVwbG95IG91ciBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0IGJlZm9yZSB0aGF0LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGZpbGUgdG8gaW5zdHJ1Y3Qgb3VyIEhlcm9rdSBCdWlsZHBhY2sgU3RhdGljIHBhY2thZ2Ugb24gaG93IHRvIGRlcGxveSBhbmQgc2VydmUgb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgbmV3IGZpbGUgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3RhdGljLmpzb24mbHQ7L2NvZGUmZ3Q7IGFuZCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGUgaW50byBpdDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3sKICAmcXVvdDtyb290JnF1b3Q7OiAmcXVvdDtwdWJsaWMvJnF1b3Q7LAogICZxdW90O2hlYWRlcnMmcXVvdDs6IHsKICAgICZxdW90Oy8qKiZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJnF1b3Q7CiAgICB9LAogICAgJnF1b3Q7LyoqLmNzcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy8qKi5qcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy9zdGF0aWMvKiomcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0sCiAgICAmcXVvdDsvaWNvbnMvKi5wbmcmcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0KICB9LAogICZxdW90O2h0dHBzX29ubHkmcXVvdDs6IHRydWUsCiAgJnF1b3Q7ZXJyb3JfcGFnZSZxdW90OzogJnF1b3Q7NDA0Lmh0bWwmcXVvdDsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgbW9zdCBpbXBvcnRhbnQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaGVyZSBpcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkuIFdoZW4gR2F0c2J5LmpzIHJ1bnMgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2J1aWxkJmx0Oy9jb2RlJmd0OyBzY3JpcHQgKHRoaXMgaXMgYWxzbyB0aGUgc2NyaXB0IHVzZWQgYnkgSGVyb2t1IHRvIHJ1biB0aGUgYnVpbGQgYmVmb3JlIGRlcGxveW1lbnQpLCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1YmxpYyZsdDsvY29kZSZndDsgZm9sZGVyIGlzIGdlbmVyYXRlZCBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBjb250YWluaW5nIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb2R1Y3Rpb24gdmVyc2lvbiBpcyB3aGF0IHRoZSBob3N0IHNlcnZlcyB0byB1c2Vycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaHVzLCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkgaXMgdXNlZCB0byBwb2ludCB0byB0aGlzIGZvbGRlciBzbyB0aGF0IHRoZSBob3N0IHNlcnZlcyB0aGUgYXBwcm9wcmlhdGUgY29kZS4gT3RoZXIgcGFyYW1ldGVycyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gYXJlIHNpbXBseSBiZXN0LXByYWN0aWNlIGNvbmZpZ3VyYXRpb25zIGZvciBHYXRzYnkuanMgc2l0ZXMuIEZvciBleGFtcGxlLCBjYWNoaW5nIGd1aWRlbGluZXMgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvY2FjaGluZy8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7R29vZCEgTm93IHdlIGNhbiB3cml0ZSBvdXIgZGVwbG95bWVudCBzY3JpcHQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgdGhlIHJvb3Qgb2YgeW91ciBHYXRzYnkuanMgcHJvamVjdCwgY3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgYW5kIGEgZmlsZSB3aXRoaW4gaXQgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0Oy4gSW5zaWRlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGU6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt2ZXJzaW9uOiAyLjEKb3JiczoKICBoZXJva3U6IGNpcmNsZWNpL2hlcm9rdUAwLjAuMTAKd29ya2Zsb3dzOgogIGhlcm9rdV9kZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGhlcm9rdS9kZXBsb3ktdmlhLWdpdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGF04oCZcyBpdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgY29uZmlndXJhdGlvbiBhYm92ZSwgd2UgcHVsbCBpbiB0aGUgSGVyb2t1IG9yYiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaXJjbGVjaS9oZXJva3VAMC4wLjEwJmx0Oy9jb2RlJmd0OyB3aGljaCBhdXRvbWF0aWNhbGx5IGdpdmVzIHVzIGFjY2VzcyB0byBhIHBvd2VyZnVsIHNldCBvZiBIZXJva3Ugam9icyBhbmQgY29tbWFuZHMuIE9uZSBvZiB0aG9zZSBqb2JzIGlzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3UvZGVwbG95LXZpYS1naXQmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGRlcGxveXMgeW91ciBhcHBsaWNhdGlvbiBzdHJhaWdodCBmcm9tIHlvdXIgR2l0SHViIHJlcG8gdG8geW91ciBIZXJva3UgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIGpvYiBhbHJlYWR5IHRha2VzIGNhcmUgb2YgaW5zdGFsbGluZyB0aGUgSGVyb2t1IENMSSwgaW5zdGFsbGluZyBwcm9qZWN0IGRlcGVuZGVuY2llcywgcnVubmluZyB0aGUgYnVpbGQgc2NyaXB0LCBhbmQgZGVwbG95aW5nIHRoZSBhcHBsaWNhdGlvbi4gSXQgYWxzbyBwaWNrcyB1cCBvdXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGggZGVwbG95bWVudCB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgdGhlIG1vbWVudCBvZiB0cnV0aCAoZHJ1bSByb2xsKS4gTGV04oCZcyBjb21taXQgYWxsIHRoZSBjaGFuZ2VzIHdlIGhhdmUgbWFkZSB0byBvdXIgR2F0c2J5LmpzIHByb2plY3QgYW5kIHB1c2ggdG8gb3VyIHJlcG8gdG8gdHJpZ2dlciB0aGUgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTEucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBzZWUgdGhlIGJlaGluZC10aGUtc2NlbmVzIHpjdGlvbiBvZiB0aGUgZGVwbG95bWVudCwgeW91IGNhbiBjbGljayBpbnRvIHRoZSBidWlsZC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTIucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgZm9yIHRoZSBmaW5hbCBjb25maXJtYXRpb24gdGhhdCB0aGUgZGVwbG95bWVudCBvZiBvdXIgR2F0c2J5LmpzIHNpdGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bCwgdmlzaXQgdGhlIGRlZmF1bHQgSGVyb2t1IGFkZHJlc3MgZm9yIHRoZSBzaXRlIGF0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vW0FQUF9OQU1FXS5oZXJva3VhcHAuY29tJmx0Oy9jb2RlJmd0Oy4gSWYgeW91IHVzZWQgdGhlIHNhbWUgbmFtZSBhcyBJIGRpZCBmb3IgdGhpcyBleGVyY2lzZSwgdGhhdCB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vZ2F0c2J5LWhlcm9rdS1kZXBsb3kuaGVyb2t1YXBwLmNvbS8mbHQ7L2NvZGUmZ3Q7LiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93ICh0aGlzIG1pZ2h0IGJlIGRpZmZlcmVudCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IEdhdHNieS5qcyBzdGFydGVyIHRlbXBsYXRlLCBsZWFybiBtb3JlIGFib3V0IHN0YXJ0ZXJzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvcGx1Z2lucy10aGVtZXMtYW5kLXN0YXJ0ZXJzLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OykuJmx0Oy9wJmd0OwoKJmx0O3AgYWxpZ249JnF1b3Q7Y2VudGVyJnF1b3Q7Jmd0OwogICAmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTEzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NvbmNsdXNpb24mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2UgZGVwbG95ZWQgYSBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UgdXNpbmcgQ2lyY2xlQ0kgb3Jicy4gTm93IHdoZW4gd2UgcHVzaCBvdXIgY29kZSwgYWxsIGNoYW5nZXMgd2lsbCBiZSBkZXBsb3llZCBhdXRvbWF0aWNhbGx5LiBUaGlzIHR1dG9yaWFsIGhhcyBhbHNvIGRlbW9uc3RyYXRlZCBob3cgQ2lyY2xlQ0kgb3JicyBtYWtlcyBkZXBsb3ltZW50IGVhc3kuIEluc3RlYWQgb2Ygd3JpdGluZyBtYW55IGxpbmVzIG9mIGNvbmZpZyBuZWVkIHRvIGRlcGxveSB0byBIZXJva3UsIG9yYnMgYWJzdHJhY3QgYWxsIG9mIHRoYXQgaW50byBjb252ZW5pZW50IGNvbW1hbmRzIGZvciB1cyB0byB1c2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2hlY2sgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kgb3JicyByZWdpc3RyeSZsdDsvYSZndDsgZm9yIG9yYnMgdGhhdCBzdWl0IHlvdXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGRlcGxveW1lbnQgZGVzdGluYXRpb24gb2YgY2hvaWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyEmbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5MZXR0aW5nIGNoYW5nZSBhbmQgdW5jZXJ0YWludHkgYWR2YW5jZSB5b3VyIHNvZnR3YXJlIGFyY2hpdGVjdHVyZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VGh1LCAwNyBNYXkgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Sb2IgWnViZXI8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIGZpcnN0IGxpbmVzIG9mIENpcmNsZUNJ4oCZcyBjb2RlYmFzZSB3ZXJlIHdyaXR0ZW4gbmVhcmx5IG5pbmUgeWVhcnMgYWdvLiBMb29raW5nIGJhY2sgb24gd2hhdCB3ZSBoYXZlIGJ1aWx0IHNvIGZhciB3aXRoIHRoZSBjbGFyaXR5IG9mIGhpbmRzaWdodCBleHBvc2VzIHNvbWUgaW50ZXJlc3RpbmcgdGhlbWVzIHRoYXQgY2FuIGJlIGluc3RydWN0aXZlIGluIGlkZW50aWZ5aW5nIGFwcHJvYWNoZXMgdG8gZGVhbGluZyB3aXRoIGNoYW5nZS4gV2hpbGUgdGhleSB3ZXJlbuKAmXQgYWxsIGludGVudGlvbmFsLCBpdCBkb2VzbuKAmXQgbWFrZSB0aGVtIGFueSBsZXNzIHZhbHVhYmxlLiBUaHJlZSBzdWNoIHRoZW1lcyBhcmU6IGRlZmVycmluZyB0aGUgbmVlZCB0byBoYW5kbGUgY2hhbmdlLCB0aGlua2luZyBsaWtlIGEgcHJvZHVjdCBtYW5hZ2VyLCBhbmQga2VlcGluZyB5b3VyIGhlYWQgdXAuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NoYW5nZSBpcyBhIGNvbnN0YW50IGluIHRlY2hub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Q2hhbmdlIG1pZ2h0IGJlIG9uZSBvZiB0aGUgb25seSBjb25zdGFudHMgZW5naW5lZXJzIHdpbGwgZGVhbCB3aXRoIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGVpciBjYXJlZXJzLiBJdCBjZXJ0YWlubHkgZHJpdmVzIG1hbnkgb2Ygb3VyIG1vc3QgaW50ZXJlc3RpbmcgY2hhbGxlbmdlcy4gVGhlIG1hcmtldCBpcyBjaGFuZ2luZywgb3VyIGJ1c2luZXNzIGlzIGV2b2x2aW5nLCBvdXIgY3VzdG9tZXIgYmFzZSBpcyBncm93aW5nLCBhbmQgb3VyIHRlYW0gaXMgc2NhbGluZy4gV2UgbmVlZCB0byBidWlsZCBhIHNvbHV0aW9uIHRoYXQgbWVldHMgdG9kYXnigJlzIG5lZWRzIGJ1dCBzZXRzIHVzIHVwIGZvciB0aGUgZGVtYW5kcyBvZiB0b21vcnJvdy4gSG93IGRvIHdlIGRlc2lnbiBvdXIgc3lzdGVtcyBpbiBhIG1hbm5lciB0aGF0IGNhbiBhZGFwdCBhbmQgY2hhbmdlIHRvIHRoaW5ncyB0aGF0IGRvbuKAmXQgZXZlbiBleGlzdCB3aGVuIHdlIHN0YXJ0IGJ1aWxkaW5nIGl0PyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZXJlIGhhcyBiZWVuIGEgbG90IG9mIHRhbGsgaW4gcmVjZW50IHllYXJzIGFib3V0IGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGV2b2x2ZSBvciBtb3JlIGVhc2lseSBhZGFwdCB0byBjaGFuZ2UuIFRoZW4gd2Ugc3RhcnQgdG8gZGViYXRlIHRoZSBtZXJpdHMgb2YgdGhlc2UgYXJjaGl0ZWN0dXJlcyB1c2luZyBhIGxpbmUgb2YgdGhpbmtpbmcgdGhhdCBzdWdnZXN0cyB5b3UgYXJlIGNob29zaW5nIHRvIGhhdmUgYSDigJxNaWNyb3NlcnZpY2VzIEFyY2hpdGVjdHVyZeKAnSBvciBhbiDigJxFdmVudC1Ecml2ZW4gQXJjaGl0ZWN0dXJl4oCdIG9yIGEg4oCcU2VydmVybGVzcyBBcmNoaXRlY3R1cmUu4oCdIEkgd291bGQgcG9zaXQgdGhhdCB0aGlzIHR5cGUgb2YgZGVzY3JpcHRpb24gY3JlYXRlcyBhIGZhbHNlIHNlbnNlIG9mIGZpbmFsaXR5IHRoYXQgZG9lc27igJl0IGFjdHVhbGx5IGV4aXN0IGluIG1vc3QgcmVhbC13b3JsZCBzeXN0ZW1zLiZsdDsvcCZndDsKCiZsdDtwJmd0O091dHNpZGUgb2YgdGhlIHlvdW5nZXN0IG9mIHByb2plY3RzLCBpdOKAmXMgdW5saWtlbHkgdGhhdCB5b3UgY2FuIGRlc2NyaWJlIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCB5b3UgaGF2ZSB3aXRoIGFueSBzaW1wbGUgb25lLWxpbmVyLiBJdOKAmXMgbW9yZSBsaWtlbHkganVzdCDigJx5b3VyIGFyY2hpdGVjdHVyZSzigJ0gYW5kIGlmIHlvdeKAmXZlIGJlZW4gd29ya2luZyBvbiBpdCBmb3IgYW55IHNpZ25pZmljYW50IGFtb3VudCBvZiB0aW1lLCB5b3UgbWF5IGhhdmUgYXBwbGllZCBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0dGVybnMgYWxvbmcgdGhlIHdheSB0byBzb2x2ZSBzcGVjaWZpYyBwcm9ibGVtcy4gVGhlcmXigJlzIHByb2JhYmx5IGEgbW9ub2xpdGggc29tZXdoZXJlLCBzb21lIG51bWJlciBvZiBtaWNyb3NlcnZpY2VzLCBhIGZldyBldmVudHMsIGFuZCBhIHNlcnZlcmxlc3MgZWxlbWVudCBvciB0d28uIE9uIHRvcCBvZiBhbGwgdGhhdCwgeW91IG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YgdHJhbnNpdGlvbmluZyBzb21lIG9mIHRob3NlIHBpZWNlcyBmcm9tIG9uZSBwYXR0ZXJuIHRvIGFub3RoZXIuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0Rlc2lnbiBhcmNoaXRlY3R1cmUgdG8gc29sdmUgcHJvYmxlbXMmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gb2Z0ZW4gYXNrZWQgYnkgZm9sa3Mgd2hpY2ggYXJjaGl0ZWN0dXJlIHRoZXkgc2hvdWxkIGNob29zZSwgb3Igd2hlbiB0aGV5IHNob3VsZCBzd2l0Y2ggZnJvbSBvbmUgdG8gYW5vdGhlci4gSSBoYXZlIGEgZ3JlYXQgdGVuZGVuY3kgdG8gZGlzYXBwb2ludCB3aXRoIGFuc3dlcnMgbGlrZSDigJx3aGF0IHByb2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gc29sdmU/4oCdJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28sIHdoYXQgJmx0O3N0cm9uZyZndDtzaG91bGQmbHQ7L3N0cm9uZyZndDsgeW91IGJlIHRoaW5raW5nIGFib3V0IGFzIHlvdXIgcHJvZHVjdCBldm9sdmVzIGFuZCB5b3VyIG5lZWRzIGFyZSBjaGFuZ2luZz8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGVyZSBhcmUgYSBsb3Qgb2YgYXBwcm9hY2hlcyB0aGF0IHdlIGNhbiB1c2UgdG8gZGVzaWduIHNvZnR3YXJlIGFuZCBzeXN0ZW1zIHRvIGJlIG1vcmUgcmVzaWxpZW50IHRvIGNoYW5nZS4gVGhlIGFsbHVyZSBvZiBub3QgaGF2aW5nIHRvIGRvIGNvbXBsZXggcmVmYWN0b3Jpbmcgb3IgcmVidWlsZGluZyBkb3duIHRoZSByb2FkIGxlYWRzIHVzIHRvIHdhbnQgdG8gZGVzaWduIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG93IGNvc3Qgb2YgY2hhbmdlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2hpbGUgZ2VuZXJhbGl6ZWQgYWJzdHJhY3Rpb25zIGFuZCByZXVzYWJsZSBjb21wb25lbnRzIGFyZSBhdCB0aGUgY29yZSBvZiByZWR1Y2luZyB0aGUgaW1wYWN0IG9mIGNoYW5nZSwgdGhleSBhcmUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Jsb2cuY29kaW5naG9ycm9yLmNvbS90aGUtZGVsdXNpb24tb2YtcmV1c2UvJnF1b3Q7Jmd0O2hhcmQgdG8gZ2V0IHJpZ2h0IGluIHRoZSBmaXJzdCBwbGFjZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0l04oCZcyBoYXJkIHRvIHByZWRpY3QgdGhlIGZ1dHVyZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtBdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHRlY2huaWNhbCBsYW5kc2NhcGUgaXMgY2hhbmdpbmcsIHlvdXIgYnVzaW5lc3MgYW5kIHlvdXIgb3JnYW5pemF0aW9uIGFyZSBib3RoIGV2b2x2aW5nIGFzIHdlbGwuIFRoZXNlIGJvdGggaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiB5b3VyIGFyY2hpdGVjdHVyYWwgZGVjaXNpb25zLiBUaGUgc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlIHRoYXQgeW91IGFyZSB1bmRlcmdvaW5nIHdpbGwgaW5mbHVlbmNlIHRoZSBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUgYmVzdCBzdWl0ZWQgdG8gYWJzb3JiIHRob3NlIGNoYW5nZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGVhcmx5IGRheXMgb2YgYSBwcm9qZWN0IG9yIGNvbXBhbnksIGl04oCZcyBwb3NzaWJsZSB0byBtYWtlIHN3ZWVwaW5nIGZ1bmRhbWVudGFsIHNoaWZ0cyBpbiB0aGUgb2JqZWN0aXZlLiBFeHRyZW1lLCBidXQgbm90IHVuY29tbW9uLCBleGFtcGxlcyBpbmNsdWRlIFRpbnkgU3BlY2sgYmVjb21pbmcgU2xhY2sgYW5kIE9kZW8gYmVjb21pbmcgVHdpdHRlci4gV2hlbiB0aGUgZG9tYWluIG9mIHlvdXIgYnVzaW5lc3MgY2FuIG1vdmUgdGhhdCBkcmFzdGljYWxseSwgdGhlIGNsZWFuIGJvdW5kYXJpZXMgb2YgeW91ciBEREQgbW9kZWwgYXJlIG91dCB0aGUgd2luZG93LiBJbiBhIHNldCBvZiBtaWNyb3NlcnZpY2VzLCB0aGVzZSBib3VuZGFyaWVzIHdpbGwgYmUgY29kaWZpZWQsIHNvIGlmIHlvdSBoYXZlIHRvIGN1dCB0aHJvdWdoIHRoZW0sIHlvdeKAmWxsIGxpa2VseSBiZSB0aGFua2Z1bCBmb3IgYSBtb3JlIHBsaWFibGUgbW9ub2xpdGguJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB5b3UgZmluZCBwcm9kdWN0IC8gbWFya2V0IGZpdCwgeW91ciBwcmlvcml0aWVzIHdpbGwgc2hpZnQgdG93YXJkcyBzdXBwb3J0aW5nIHlvdXIgcmFwaWQgZ3Jvd3RoLiBXaXRoIHN5c3RlbSBzY2FsZSBhcyBhIGRyaXZlciBvZiBjaGFuZ2UsIHRoZSBhYmlsaXR5IHRvIHJlc3BvbmQgdG8gY2hhbmdlIGlzIG9mdGVuIHRpZWQgdG8gdGhlIGluZGVwZW5kZW5jZSBvZiBzeXN0ZW1zIGJhc2VkIG9uIHRoZWlyIG9wZXJhdGlvbmFsIGNoYXJhY3RlcmlzdGljcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGF0IHNjYWxpbmcgcGhhc2UsIHlvdeKAmWxsIGhhdmUgYSBsYXJnZXIgb3JnYW5pemF0aW9uIGFuZCBmYXIgbW9yZSB0ZWFtcy4gSWYgeW914oCZcmUgbHVja3kgeW914oCZbGwgYmUgYmFjayB0byBzdXN0YWluYWJsZSBwcm9kdWN0IGV2b2x1dGlvbi4gVGhlbiB0aGUgY29zdCBvZiBjaGFuZ2Ugd2lsbCBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIGFtb3VudCBvZiBjcm9zcy10ZWFtIGNvb3JkaW5hdGlvbiByZXF1aXJlZCB0byBtYWtlIGEgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtoMiZndDtEZWZlciByZXNwb25zZSB0byBjaGFuZ2UmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7V2hlbiBhbiBpbmRpdmlkdWFsIG9yIHRlYW0gaGFzIGEgcHJvYmxlbSB0aGV54oCZcmUgdHJ5aW5nIHRvIHNvbHZlLCB0aGV5IGdlbmVyYWxseSBzdGFydCBvZmYgd2l0aCBhIHByZXR0eSBzaW1wbGUgZGlyZWN0aXZlIOKAkyBsZXTigJlzIGJ1aWxkIHRvIHNvbHZlIHRoYXQgcHJvYmxlbS4gV2hhdOKAmXMgdGhlIG1vc3QgZWZmZWN0aXZlIGFyY2hpdGVjdHVyZSB3ZSBjYW4gdXNlIHRvIGJ1aWxkIGEgdmlhYmxlIHByb2R1Y3QgYXQgdGhlIGxvd2VzdCBjb3N0PyBUaGlzIGlzIGdlbmVyYWxseSB0cnVlIHdoZXRoZXIgaXTigJlzIGEgc3RhcnR1cCBvciBhIGh1Z2UgbXVsdGluYXRpb25hbCBjb3Jwb3JhdGlvbi4gQSBuZXcgcHJvamVjdCB3aWxsIGJlIGJ1aWx0IG9uIGEgc3lzdGVtIHRoYXTigJlzIHJlbGF0aXZlbHkgbmV3LCBhbmQgd2lsbCBiZSB1bmxpa2VseSB0byBoYXZlIHByb2R1Y3QtbWFya2V0IGZpdCBiZWNhdXNlIHRoZSBjb21wYW55IHdvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCBpdHMgYnVzaW5lc3MgZG9tYWluIHlldCwgYW5kIHdvbuKAmXQga25vdyB3aGVyZSB0aGUgcHJpbWFyeSBzb3VyY2VzIG9mIGNoYW5nZSB3aWxsIGNvbWUgZnJvbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHNpdHVhdGlvbiwgZGVzaWduaW5nIGZvciBjaGFuZ2UgYmVjb21lcyBhIGxvdCBoYXJkZXIuIElmIGl04oCZcyBhIGxvdCBtb3JlIGV4cGVuc2l2ZSB0byBtYWtlIHRoaW5ncyByZXNpbGllbnQgdG8gY2hhbmdlIGFuZCB5b3UgY2Fu4oCZdCB0ZWxsIHlldCB3aGljaCBwYXJ0cyBvZiB5b3VyIHN5c3RlbSB3aWxsIGNoYW5nZSwgaG93IGRvIHlvdSBtYWtlIHRoZSBkZWNpc2lvbiBhYm91dCB3aGVyZSB0byBtYWtlIHRoYXQgaW52ZXN0bWVudD8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBjb3VudGVyaW50dWl0aXZlIGFzIGl0IG1heSBzb3VuZCwgdGhlIGFuc3dlciBpcyBwcm9iYWJseSBub3doZXJlLiBBdCBsZWFzdCBub3QgeWV0LiBJbnN0ZWFkIHdhdGNoIGNoYW5nZSBjbG9zZWx5IGFuZCBidWlsZCBpbiBhIHdheSB0aGF0IG1pbmltaXplcyB0aGUgY29zdCBvZiBiZWluZyB3cm9uZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiDigJwmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9zaG9wLm9yZWlsbHkuY29tL3Byb2R1Y3QvOTc4MDU5NjUyMjcwNC5kbyZxdW90OyZndDs5NyBUaGluZ3MgRXZlcnkgU29mdHdhcmUgQXJjaGl0ZWN0IFNob3VsZCBLbm93Jmx0Oy9hJmd0O+KAnSBLZXZsaW4gSGVubmV5LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbWVkaXVtLmNvbS9Aa2V2bGluaGVubmV5L2h0dHBzLW1lZGl1bS1jb20ta2V2bGluaGVubmV5LXVzZS11bmNlcnRhaW50eS1hcy1hLWRyaXZlci00OTNlYmViZDU3NWQmcXVvdDsmZ3Q7ZGVzY3JpYmVzIGFuIGltcG9ydGFudCBhcHByb2FjaCB0byB0aGlua2luZyBhYm91dCB1bmNlcnRhaW50eSZsdDsvYSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2Jsb2NrcXVvdGUmZ3Q7CiAgJmx0O3AmZ3Q74oCcVGhlIHByZXNlbmNlIG9mIHR3byBvcHRpb25zIGlzIGFuIGluZGljYXRvciB0aGF0IHlvdSBuZWVkIHRvIGNvbnNpZGVyIHVuY2VydGFpbnR5IGluIHRoZSBkZXNpZ24uIFVzZSB0aGUgdW5jZXJ0YWludHkgYXMgYSBkcml2ZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHlvdSBjYW4gZGVmZXIgY29tbWl0bWVudCB0byBkZXRhaWxzIGFuZCB3aGVyZSB5b3UgY2FuIHBhcnRpdGlvbiBhbmQgYWJzdHJhY3QgdG8gcmVkdWNlIHRoZSBzaWduaWZpY2FuY2Ugb2YgZGVzaWduIGRlY2lzaW9ucy4gSWYgeW91IGhhcmR3aXJlIHRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQsIHlvdeKAmXJlIG1vcmUgbGlrZWx5IHRvIGJlIHN0dWNrIHdpdGggaXQg4oCTIGluY2lkZW50YWwgZGVjaXNpb25zIGJlY29tZSBzaWduaWZpY2FudCBhbmQgdGhlIHNvZnRuZXNzIG9mIHRoZSBzb2Z0d2FyZSBoYXJkZW5zLuKAnSZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7VGhpcyBmcmFtaW5nIGlzIGdyZWF0IGZvciBleHBsaWNpdCBkZWNpc2lvbnMsIGJ1dCB3aGF0IGlmIHlvdSBkb27igJl0IGtub3cgeW914oCZcmUgbWFraW5nIGEgY2hvaWNlPyZsdDsvcCZndDsKCiZsdDtwJmd0O01hbnkgdGltZXMsIHRoZSBjaG9pY2UgaXNu4oCZdCBldmVuIHZpc2libGUgeWV0LCBidXQgd2lsbCByZXZlYWwgaXRzZWxmIGxhdGVyLiBJbiB0aGVzZSBzaXR1YXRpb25zLCB0aGUgYW5zd2VyIGlzIG5vdCB0byBvdmVyIGdlbmVyYWxpemUsIGJ1aWxkaW5nIGFic3RyYWN0aW9ucyBldmVyeXdoZXJlIGp1c3QgaW4gY2FzZS4gSW5zdGVhZCwga2VlcCB0aGluZ3MgYXMgc2ltcGxlIGFzIHBvc3NpYmxlIHNvIHlvdSBjYW4gdW5kZXJzdGFuZCB0aGVtIGxhdGVyIGlmIHlvdSBoYXZlIHRvIG1ha2UgYSBjaGFuZ2UuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O1NpbXBsaWNpdHkgbWFrZXMgaXQgZWFzaWVyIHRvIGFkYXB0IHRvIGNoYW5nZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZWFybHkgZGF5cywgdGhlIENpcmNsZUNJIGFwcGxpY2F0aW9uIHdhcyBhIG1vbm9saXRoIHRoYXQgdG9vayBhIGN1c3RvbWVy4oCZcyBidWlsZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRhdGEgYW5kIHB1c2hlZCBpdCBpbnRvIG9uZSBvZiBzZXZlcmFsIExYQyBjb250YWluZXJzLiBFdmVyeSBjb250YWluZXIgdGhhdCB3ZSBzcHVuIHVwIHdhcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgc2FtZSBpbWFnZSB0aGF0IGNvbnRhaW5lZCBldmVyeXRoaW5nIHRoYXQgd2UgdGhvdWdodCBhbnlvbmUgd291bGQgZXZlciB3YW50IGluIHRoZWlyIHRlc3QgZW52aXJvbm1lbnQuIEluIGhpbmRzaWdodCwgdGhpcyBzb3VuZHMgbGlrZSBhIHRlcnJpYmxlIGlkZWEsIGJ1dCBhdCB0aGUgdGltZSwgaXQgd2FzIGZhbnRhc3RpYy4gSXQgd2FzIHNpbXBsZSB0byBtYWludGFpbiBhbmQgc3VwcG9ydGVkIHRoZSBuZWVkcyBvZiBvdXIgZWFybHkgY3VzdG9tZXJzLCBtYW55IG9mIHdob20gd2VyZSBidWlsZGluZyBSYWlscyBtb25vbGl0aHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXMgdGltZSBwYXNzZWQgYW5kIG91ciBjdXN0b21lciBiYXNlIGdyZXcsIHNvIGRpZCB0aGUgZGl2ZXJzaXR5IG9mIHRoZWlyIG5lZWRzIGluIHRlcm1zIG9mIHRlc3QgZW52aXJvbm1lbnRzLiBVcGdyYWRlZCB2ZXJzaW9ucyBvZiB0aGVpciB1bmRlcmx5aW5nIGRhdGFiYXNlcywgbm92ZWwgbmV3IGRldmVsb3BtZW50IGZyYW1ld29ya3MsIGV2ZW4gbmV3IG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbnMgYmVjYW1lIG5lY2Vzc2FyeS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgb3JpZ2luYWwgY29udGFpbmVyIG1hbmFnZW1lbnQgaW4gQ2lyY2xlQ0kgd2FzbuKAmXQgZGVzaWduZWQgaW4gYSB3YXkgdGhhdCBhbGxvd2VkIHVzIHRvIGFkYXB0IGVhc2lseSB0byB0aGVzZSBjaGFuZ2luZyBuZWVkcy4gQnV0IGl0IHdhcyBmYWlybHkgc2ltcGxlLiBTbyB3aGVuIHdlIHNldCBvdXQgdG8gc29sdmUgdGhlc2UgcHJvYmxlbXMsIHdlIGtuZXcgd2hlcmUgdG8gc3BsaWNlIGluIGEgbmV3IGFwcHJvYWNoIGFuZCBpdCB3YXMgbWluaW1hbCB3b3JrIHRvIGVuYWJsZSB0aGF0IHNwbGljaW5nLiBXZSBhbHNvIGRpZG7igJl0IGhhdmUgdG8gdW5yYXZlbCBhIHBvb3IgZ2VuZXJhbGl6YXRpb24gdGhhdCBkaWRu4oCZdCBzdXBwb3J0IG91ciBuZXcgcHJvYmxlbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3aGlsZSBzZWVtaW5nbHkgc2ltcGxlLCB3ZSB3ZXJlIGZpdmUgeWVhcnMgaW50byBzdWNjZXNzZnVsIGdyb3d0aCBhcyBhIGNvbXBhbnkgbWVldGluZyB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycyBvbiB0aGF0IHNpbXBsZSBzeXN0ZW0gYmVmb3JlIG91ciBmaXJzdCBjdXN0b21lcnMgdGVzdGVkIGl0cyByZXBsYWNlbWVudC4gSW4gdGhvc2UgZml2ZSB5ZWFycywgRG9ja2VyIHdhcyBjcmVhdGVkLCBhcyB3YXMgSGFzaGlDb3Jw4oCZcyBOb21hZC4gQ29tYmluZWQsIHRob3NlIHRvb2xzIGVsaW1pbmF0ZWQgaHVnZSBwb3J0aW9ucyBvZiB0aGUgd29yayBuZWNlc3NhcnkgdG8gZ2V0IHRoZSBmbGV4aWJsZSBhbmQgc2NhbGFibGUgZW52aXJvbm1lbnRzIHRoYXQgd2Ugc3VwcG9ydCBmb3IgY3VzdG9tZXJzIHRvZGF5LiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28sIGFzIHdlIHJldG9vbGVkIHRoZSBzeXN0ZW0gdG8gYWRhcHQgdG8gdGhlIGNoYW5nZWQgbWFya2V0IHdlIHdlcmUgaW4gYSBwb3NpdGlvbiB0byBhc2sg4oCcSG93IGRvIHdlIGRvIHRoaXMgaW4gYSB3YXkgdGhhdCBiZXR0ZXIgcG9zaXRpb25zIHVzIGZvciBpbmNyZW1lbnRhbCBjaGFuZ2U/4oCdIEl0IHdvdWxkIGJlIGRpZmZpY3VsdCB0byBvdmVyc3RhdGUgaG93IG11Y2ggdmFsdWUgdGhhdCBmaXZlIHllYXJzIG9mIGV4cGVyaWVuY2UgcHJvdmlkZWQgd2hlbiBkZXNpZ25pbmcgYSBzb2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdCBzb3VuZHMgd2VpcmQgYW5kIGdyb3NzbHkgdW5mYWlyIHRvIHNheSB0aGlzLCBidXQgbW9zdCBvZiB0aGUgdGltZSB3ZSBkb27igJl0IGV2ZW4ga25vdyB0aGF0IHdl4oCZcmUgbWFraW5nIGEgbW9udW1lbnRhbCBkZXNpZ24gZGVjaXNpb24gYmVjYXVzZSB0aGUgYWx0ZXJuYXRlIHBhdGggaGFzbuKAmXQgc2hvd24gdXAgeWV0LiBIb3cgZG8geW91IGd1YXJkIGFnYWluc3QgdGhpcz8mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7RGVmZXIsIGRlZmVyLCBkZWZlciZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUaGUgY29ycmVjdCBzb2x1dGlvbnMgaGF2ZSBhIGhhYml0IG9mIHJldmVhbGluZyB0aGVtc2VsdmVzIGlmIHlvdSBjYW4gZmluZCBhIHdheSB0byB3YWl0IGxvbmcgZW5vdWdoLiBUZWNobm9sb2d5IGdhaW5zIHRyYWN0aW9uIG9yIGRpZXMuIElmIHlvdSBjaG9zZSBhIGNvbnRhaW5lciBvcmNoZXN0cmF0aW9uIGVuZ2luZSBpbiAyMDE2LCB0aGVyZeKAmXMgYSByb3VnaGx5IDIwJSBjaGFuY2UgdGhhdCB5b3Ugd291bGQgaGF2ZSBjaG9zZW4gS3ViZXJuZXRlcy4gVGhhdCBtZWFucyBieSB0aGUgYmVnaW5uaW5nIG9mIDIwMTgsIGFsbW9zdCA4MCUgb2YgY29tcGFuaWVzIHdlcmUgc3dpdGNoaW5nLiBUaG9zZSBhcmUgbm90IGdyZWF0IG9kZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28gZGVmZXJyaW5nIGNhbiBiZSBnb29kLiBEZWZlcnJpbmcgdG8gdGhlIHBvaW50IG9mIGNyZWF0aW5nIGEgY3Jpc2lzIGlzIG5vdC4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7VGhpbmsgbGlrZSBhIHByb2R1Y3QgbWFuYWdlciZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3VyIGFyY2hpdGVjdHVyZSBpcyBhIGxlYWt5IGFic3RyYWN0aW9uLiBXaGlsZSBDaXJjbGVDSSBpcyBwcm9iYWJseSBhbiBleHRyZW1lIGV4YW1wbGUgb2YgdGhpcyBjYXNlIGR1ZSB0byB0aGUgYWNjZXNzIG91ciBjdXN0b21lcnMgaGF2ZSB0byBzeXN0ZW1zIGluIG91ciBwbGF0Zm9ybSwgdGhlcmUgaXMgYWx3YXlzIHNvbWUgaW1wbGljYXRpb24gZm9yIGN1c3RvbWVycyBvZiB0aGUgZGVjaXNpb25zIHlvdSBtYWtlIGluIGRlZmluaW5nIHlvdXIgYXJjaGl0ZWN0dXJlLiBSZWNvZ25pemluZyB0aGlzIGltcGFjdCBhbmQgYmVpbmcgYWJsZSB0byBjb2hlcmVudGx5IGRpc2N1c3MgYXBwcm9hY2hlcyBhbmQgYWx0ZXJuYXRpdmVzIGlzIGEgaHVnZSBhc3NldCB0aGF0IGFuIGVuZ2luZWVyIGNhbiBicmluZyB0byB0aGVpciBQTSBhbmQgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaGlsZSB3ZSB3ZXJlIHdpdG5lc3NpbmcgYWxsIG9mIHRoaXMgY2hhbmdlIGluIGhvdyBvdXIgY3VzdG9tZXJzIHdlcmUgYnVpbGRpbmcgc29mdHdhcmUsIG9uZSB0aGluZyB3ZSBpZ25vcmVkIGZvciB0b28gbG9uZyB3YXMgdGhlIHJpc2Ugb2YgRG9ja2VyLiBEb2NrZXIgZGlkbuKAmXQgZXZlbiBleGlzdCB3aGVuIENpcmNsZUNJIHN0YXJ0ZWQgaW4gMjAxMSwgdGhlbiBieSAyMDE0IGl0IHdhcyBldmVyeXdoZXJlLiBNYW55IG9mIG91ciBjdXN0b21lcnMgaGFkIHN0YXJ0ZWQgYnVpbGRpbmcgRG9ja2VyIGltYWdlcyBhcyBwYXJ0IG9mIHRoZWlyIGJ1aWxkIHRvIHByZXBhcmUgZm9yIGRlcGxveS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtEb2NrZXIgd2FzIG9yaWdpbmFsbHkgYnVpbHQgb24gdG9wIG9mIExYQywgYW5kIHRoYXQgbWVhbnQgaW4gdGhvc2UgZWFybHkgZGF5cyB3ZSBjb3VsZCBzdXBwb3J0IHRoZSB1c2Ugb2YgRG9ja2VyIGNvbW1hbmRzIHRvIGJ1aWxkIGltYWdlcyBhbmQgcHVzaCB0aGVtIHRvIHJlcG9zaXRvcmllcyBhbGwgaW5zaWRlIG9mIG9uZSBvZiBvdXIgTFhDIGNvbnRhaW5lcnMuIEluIDIwMTQsIERvY2tlciBsYXVuY2hlZCBzb21ldGhpbmcgY2FsbGVkIGxpYmNvbnRhaW5lciBhbmQgdGhleSBwdWxsZWQgYXBhcnQgdGhlIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBzeXN0ZW0gYW5kIGNyZWF0ZWQgZXhlY3V0aW9uIGRyaXZlcnMsIHdoaWNoIHNvb24gbGVkIHRvIHRoZSBkZXByZWNhdGlvbiBvZiB0aGUgTFhDIGRyaXZlci4gRGlzYXBwb2ludGluZywgYnV0IGl0IHN0aWxsIHdvcmtlZC4gVGhlbiBEb2NrZXIgZGVsZXRlZCBhbGwgTFhDIHN1cHBvcnQuIFRoYXQgd2FzIGJhZC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QWx3YXlzIHRoaW5rIGFib3V0IHVzZXJzJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVycyBhbmQgYXJjaGl0ZWN0cywgd2Ugc2F3IHRoaXMgY29taW5nLCBhbmQgZnJhbmtseSwgaXQgd2FzIHVuZGVyIHRoZSByYWRhciBvZiBvdXIgcHJvZHVjdCB0ZWFtLiBPdXIgbm9uLXRlY2huaWNhbCBwcm9kdWN0IGZvbGtzIGRpZG7igJl0IG5lY2Vzc2FyaWx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBidXQgb3VyIGVuZ2luZWVycyB3ZXJlIHRhbGtpbmcgYWJvdXQgaXQgZXZlcnkgZGF5LiBTbyBhcyBhbiBlbmdpbmVlciwgYW4gYXJjaGl0ZWN0LCBvciBhIGxlYWRlciBpbiB0ZWNobm9sb2d5LCB5b3UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBwcm9kdWN0IGFuZCB3b3JraW5nIHdpdGggeW91ciBwcm9kdWN0IG1hbmFnZXJzIHRvIGVuc3VyZSBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGUgaW1wbGljYXRpb25zIG9mIHRlY2huaWNhbCBjaG9pY2VzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0l04oCZcyBpbXBvcnRhbnQgdG8gc2VwYXJhdGUgdGhpcyBkaXNjdXNzaW9uIGZyb20gdGVjaG5pY2FsIGludmVzdG1lbnRzLiBUaGVyZSBpcyBhYnNvbHV0ZWx5IGEgcGxhY2UgZm9yIHRoaXMgdHlwZSBvZiBpbnZlc3RtZW50LCBhbmQsIGFuIGFyZ3VtZW50IHRoYXQgZnJhbWluZyB0aGVzZSBpbnZlc3RtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB5b3UgZnJhbWUgcHJvZHVjdCBpbnZlc3RtZW50cyBtYWtlcyBpdCBtdWNoIGVhc2llciB0byBtYWtlIHRyYWRlb2ZmIGRlY2lzaW9ucy4gSG93ZXZlciwgaWRlbnRpZnlpbmcgdGhlIGRpcmVjdGx5IGN1c3RvbWVyLXZpc2libGUgZmVhdHVyZSBpbXBhY3Qgb2YgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBtb3JlIGNvbW1vbmx5IGRpc2N1c3NlZCBpbXBhY3RzIG9mIGNvc3QsIHBlcmZvcm1hbmNlLCBzZWN1cml0eSwgZXRjLiZsdDsvcCZndDsKCiZsdDtwJmd0O0J1aWxkaW5nIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHlvdXIgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgdmFsdWUgYWNoaWV2ZWQgYnkgeW91ciBjdXN0b21lcnMgd2lsbCBwdXQgeW91IGluIGEgcG9zaXRpb24gdG8gbWFrZSBtb3JlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB3aGF0IGFuZCBob3cgdG8gYnVpbGQgYXMgeW91ciBidXNpbmVzcyBldm9sdmVzLiBUaGVuIHlvdSBjYW4gZm9jdXMgb24gZ2V0dGluZyBhaGVhZCBvZiB0aGF0IGV2b2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7S2VlcCB5b3VyIGhlYWQgdXAmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gQ2FuYWRpYW4gYW5kLCB1bnN1cnByaXNpbmdseSwgSSBncmV3IHVwIHBsYXlpbmcgaWNlIGhvY2tleS4gVGhyb3VnaG91dCBteSBjaGlsZGhvb2QsIEkgc3BlbnQgYW4gZW5kbGVzcyBhbW91bnQgb2YgdGltZSBhdCBwcmFjdGljZSBqdXN0IHNrYXRpbmc6IGZvcndhcmRzLCBiYWNrd2FyZHMsIHR1cm5pbmcsIHN0b3BwaW5nLCBmaWd1cmUgZWlnaHRzIGFyb3VuZCBjb25lcy4gVGhlbiBjYW1lIHN0aWNrIGhhbmRsaW5nLiBUaGUgaWRlYSB3YXMgdG8gaGF2ZSB0aGUgbW92ZW1lbnQgb24gdGhlIGljZSBiZWNvbWUgc2Vjb25kIG5hdHVyZSBzbyBJIGNvdWxkIGZvY3VzIG9uIHdoYXQgcmVhbGx5IG1hdHRlcmVkOiBzZWVpbmcgdGhlIHBsYXkgZGV2ZWxvcCwgZ2V0dGluZyBpbnRvIHNwYWNlLCBhbmQgdHJ5aW5nIHRvIHNjb3JlLiBNYWtlIHRoZSBmdW5kYW1lbnRhbHMgYWxtb3N0IGVmZm9ydGxlc3Mgc28geW91IGNhbiBwdXQgeW91ciBlbmVyZ3kgaW50byB0aGUgbm92ZWwgc3R1ZmYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gc29mdHdhcmUsIHdlIGhhdmUgYSBiYWQgdGVuZGVuY3kgdG8gbWFrZSB0aGUgZnVuZGFtZW50YWxzIGEgbG90IGhhcmRlciB0aGFuIHRoZXkgc2hvdWxkIGJlIGJ5IGFkb3B0aW5nIG5ldyB0ZWNobm9sb2d5IHRoYXQgd2UgdGhpbmsgaXMgZ29pbmcgdG8gYmUgZ2FtZSBjaGFuZ2luZywgYnV0IGVuZHMgdXAgaGF2aW5nIG1vZGVzdCB1cHNpZGUgaWYgYW55LiBUbyBtYWtlIHRoaW5ncyB3b3JzZSwgdGhlIGRvd25zaWRlIGlzIG9mdGVuIHVuYm91bmRlZCBhcyB3ZSBnZXQgb3VyIHRlYW1zIHVwIHRoZSBsZWFybmluZyBjdXJ2ZSwgZmluZCB1bnRlc3RlZCBlZGdlIGNhc2VzIGR1cmluZyBwcm9kdWN0aW9uIGluY2lkZW50cywgYW5kIGludmVudCBvdXIgb3duIOKAnGJlc3QgcHJhY3RpY2VzLuKAnSBBIHdvcmxkIHdoZXJlIFN0YWNrIE92ZXJmbG93IGhhcyBubyBhbnN3ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1doaWxlIHdl4oCZcmUgcHV0dGluZyB0aGlzIGVmZm9ydCBpbnRvIG91ciBub3ZlbCB0ZWNoLCB3ZeKAmXJlIG5vdCBmb2N1c2luZyBvbiBob3cgb3VyIHN5c3RlbXMgbmVlZCB0byBldm9sdmUgdG8gbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QSB0aW1lIHNpbXBsaWNpdHkgd291bGQgaGF2ZSBoZWxwZWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Q2lyY2xlQ0kgaXMgYSBDbG9qdXJlIHNob3AgYW5kLCBpbiBvdXIgZWFybHkgZGF5cywgd2UgZGVjaWRlZCB3ZeKAmWQgYmUgYmV0dGVyIGF0IGZyb250IGVuZCBkZXZlbG9wbWVudCBpZiB3ZSB1c2VkIHRoZSBzYW1lIGxhbmd1YWdlIHRoYXQgd2UgdXNlZCBpbiB0aGUgYmFja2VuZC4gU28gd2UgYWRvcHRlZCBPbSwgYSBDbG9qdXJlU2NyaXB0IHdyYXBwZXIgYXJvdW5kIFJlYWN0LiBBIGZldyB5ZWFycyBsYXRlciwgRGF2aWQgTm9sZW4sIHRoZSBwZXJzb24gd2hvIHN0YXJ0ZWQgT20sIGRlY2lkZWQgaGUgZGlkbuKAmXQgbGlrZSB0aGUgbW9kZWwgc28gaGUgcmVwbGFjZWQgaXQgd2l0aCBzb21ldGhpbmcgaW5jb21wYXRpYmxlIGNhbGxlZCBPbSBOZXh0LiBXZSB0cmllZCB0byBtaWdyYXRlIGluY3JlbWVudGFsbHkgdG8gT20gTmV4dCBhbmQgZW5kZWQgdXAgd2l0aCBhbiBvdmVybHkgY29tcGxleCBmcm9udGVuZCB3aXRoIHR3byBzdGF0ZSBtb2RlbHMgYW5kIG1hc3NpdmUgb3ZlcmhlYWQgdG8gZXZlcnkgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGVuZGVkIHVwIHJld3JpdGluZyBpdCBpbiBSZWFjdC4gSW4gcmV0cm9zcGVjdCwgT20gaGFkIGJvdGggaGlnaCByaXNrIGFuZCBoaWdoIGNvc3QgdG8gY2hhbmdlIGFuZCB3ZSBwYWlkIHRoZSBwcmljZS4gQW5kIHdlIHNwZW50IHRoYXQgdGltZSBsb29raW5nIGF0IG91ciBmZWV0LCBub3QgYWhlYWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm8gY29tcGFueSBoYXMgZXZlciB3b24gYmVjYXVzZSBvZiBhbiBhbWF6aW5nbHkgbm92ZWwgb3IgZXNvdGVyaWMgdGVjaG5vbG9neSBjaG9pY2UuIFRoZXJlIGlzIGFuIGVuZGxlc3MgbGlzdCwgaG93ZXZlciwgb2YgY29tcGFuaWVzIHRoYXQgaGF2ZSB3b24gYmVjYXVzZSB0aGV5IGNhbiBtb3ZlIHF1aWNrbHkgYW5kIHdpdGggYWdpbGl0eSwgYWRhcHRpbmcgdG8gY2hhbmdlIGFzIGl0IGhhcHBlbnMuIFRlY2hub2xvZ3kgc2hvdWxkIGJlIGFuIGFjY2VsZXJhdG9yIGhlbHBpbmcgdXMgbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4gV2VsbC11bmRlcnN0b29kLCBwcm9kdWN0aW9uLXRlc3RlZCB0b29scyBhcmUgZmFyIG1vcmUgbGlrZWx5IHRvIGZpdCB0aGF0IGJpbGwuIEFzIG15IGNvbGxlYWd1ZSBCZWFyIHNheXMsIOKAnElmIGEgdG9vbCBpc27igJl0IGhlbHBpbmcsIGl04oCZcyBub3QgYSB0b29sLCBpdOKAmXMgYSBjaG9yZS4gRHJvcCBpdC7igJ0mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7Q29uY2x1c2lvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtVbmZvcmVzZWVuIGNoYW5nZSBpcyB0b3Atb2YtbWluZCBmb3Igc28gbWFueSBvZiB1cyByaWdodCBub3csIGFuZCBpdOKAmXMgbW9yZSBvYnZpb3VzIHRoYW4gZXZlciB0aGF0LCBpbiBidXNpbmVzcywgbm9ib2R5IGNhbiBwcmVkaWN0IHRoZSBmdXR1cmUuIEl04oCZcyBhIHNhZmUgYmV0IHRoYXQgZm9sa3MgYXQgR00gZGlkbuKAmXQgc3RhcnQgdGhlIHllYXIgdGhpbmtpbmcgYWJvdXQgaG93IHRvIHVzZSB0aGVpciBmYWN0b3JpZXMgdG8gbWFrZSB2ZW50aWxhdG9ycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWluZyBwcmVwYXJlZCB0byBhZGFwdCBpbiB0aGUgZmFjZSBvZiBjaGFuZ2UgcmVxdWlyZXMgdGhpbmtpbmcgYWJvdXQgY2hhbmdlIGFzIGEgZHJpdmVyIGluIGV2ZXJ5dGhpbmcgeW91IGRvLiBXYXRjaCBob3cgeW91ciBtYXJrZXQgaXMgY2hhbmdpbmcgYW5kIHJlZmxlY3Q9IG9uIGhvdyB0aGF0IGltcGFjdHMgeW91ciBhcmNoaXRlY3R1cmUgc28gdGhhdCB5b3UgY2FuIG1ha2UgdGFyZ2V0ZWQsIGluY3JlbWVudGFsIGltcHJvdmVtZW50cyBpbiBpdHMgYWRhcHRhYmlsaXR5LiBUaGlzIHdpbGwgaGVscCBrZWVwIHlvdSBmb2N1c2VkIG9uIGV2b2x1dGlvbiB3aXRob3V0IHdhc3RpbmcgdGltZSBvciBtb25leSBvbiBhcmVhcyB0aGF0IHdvbuKAmXQgbmVlZCBpdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCbGFjayBTd2FuIGV2ZW50cyBhcmUgc28gdW51c3VhbCB0aGF0IHN0dWR5aW5nIHRoZSBzcGVjaWZpY3MgY2FuIGJlIGxvdyB2YWx1ZSwgYnV0IHRoZXkgcmVtaW5kIHVzIGhvdyBmYXIgcmVhbGl0eSBjYW4gYmUgZnJvbSBvdXIgcGxhbnMuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZW5naW5lZXJpbmcgbWFuYWdlcnMgY2FuIGVmZmVjdGl2ZWx5IHN1cHBvcnQgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWVuZ2luZWVyaW5nLW1hbmFnZXJzLWNhbi1lZmZlY3RpdmVseS1zdXBwb3J0LWVuZ2luZWVycy10ZWFtcy1hbmQtb3JnYW5pemF0aW9ucy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+V2VkLCAyOSBBcHIgMjAyMCAxNTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9ob3ctZW5naW5lZXJpbmctbWFuYWdlcnMtY2FuLWVmZmVjdGl2ZWx5LXN1cHBvcnQtZW5naW5lZXJzLXRlYW1zLWFuZC1vcmdhbml6YXRpb25zLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkxlbmEgUmVpbmhhcmQ8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIHR5cGljYWwgam9iIGRlc2NyaXB0aW9uIGZvciBtYW55IGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMgaXMgYWN0aW9uLXBhY2tlZC4gSXQgaXMgYSBtaXggb2YgaGFuZHMtb24gY29kaW5nLCB0ZWNobmljYWwgbGVhZGVyc2hpcCBhbmQgZGVjaXNpb24gbWFraW5nLCBwcm9jZXNzIGFuZCBwcm9qZWN0IG1hbmFnZW1lbnQsIHByb2R1Y3Qgb3ZlcnNpZ2h0LCBwZW9wbGUgbWFuYWdlbWVudCwgZmluZGluZyBhbmQgaGlyaW5nIHRhbGVudCDigKYgdGhlIGxpc3QgZ29lcyBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiBvdXIgd29yaywgd2UgZGVhbCB3aXRoIGJvdGggdGVjaG5pY2FsIGFuZCBwZW9wbGUgc3lzdGVtczogd2Ugc3VwcG9ydCBpbmRpdmlkdWFsIGVuZ2luZWVyc+KAmSBncm93dGg7IGhlbHAgdGVhbXMgYmVjb21lIHN1Y2Nlc3NmdWw7IGFuZCBtYWtlIHRoZSBvcmdhbml6YXRpb24gbW9yZSBwcm9kdWN0aXZlLCBmdW5jdGlvbmFsLCBhbmQgaW5ub3ZhdGl2ZS4gQWJvdmUgYWxsLCBhbiBlbmdpbmVlcmluZyBtYW5hZ2VyIGlzIGEgc2VydmljZSBvciBzdXBwb3J0IHJvbGUgYWNyb3NzIHRoZXNlIHZhcmlvdXMgbGF5ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1BlcmhhcHMgbW9zdCBmYXNjaW5hdGluZyBhbmQgZGlmZmljdWx0IGlzIHRoZSBoaWdoLWxldmVsIG9mIGFtYmlndWl0eSB0aGF0IGNvbWVzIHdpdGggZW5naW5lZXJpbmcgbWFuYWdlbWVudC4gTWFueSBwcm9ibGVtcyBvciBxdWVzdGlvbnMgZG9u4oCZdCBoYXZlIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLiBUaGVyZSBhcmVu4oCZdCBhYnNvbHV0ZSBhbnN3ZXJzIHRvIHdoYXQgaXQgbWVhbnMgdG8gYmUgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgZWl0aGVyLCBidXQgdGhlcmUgYXJlIGNlcnRhaW4gdmFsdWVzIGFuZCBndWlkZXBvc3RzIHRvIGZvbGxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgbG9vayBhdCB3aGF0IGNhbiBzaGFwZSBvdXIgdGhpbmtpbmcgYWJvdXQgb3VyIHJvbGUgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgYW5kIGhvdyB0byBlZmZlY3RpdmVseSBzdXBwb3J0IGluZGl2aWR1YWwgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1doYXQgZG8gZW5naW5lZXJzIG5lZWQgdG8gdGhyaXZlIGF0IHdvcms/Jmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SXQgaGVscHMgdG8gc3RhcnQgc2hhcGluZyBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IHJvbGVzIGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCBlbmdpbmVlcnMgbmVlZCwgYW5kIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGV5IHRocml2ZS4gUmVzZWFyY2ggZnJvbSBwZXJmb3JtYW5jZSBjb2FjaCBhbmQgdHJhaW5lciBQYWxvbWEgTWVkaW5hIGV4cG9zZXMgc2l4IGNvcmUgbmVlZHMgaHVtYW5zIGhhdmUgKGluY2x1ZGluZyBhdCB3b3JrKS4gU2hlIGNhbGxzIHRoaXMgcmVzZWFyY2ggdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGFsb21hbWVkaW5hLmNvbS9iaWNlcHMmcXVvdDsmZ3Q7QklDRVBTIG1vZGVsJmx0Oy9hJmd0OzombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7QmVsb25naW5nLiZsdDsvc3Ryb25nJmd0OyBBcyBodW1hbnMsIHdlIHN0cml2ZSB0byBiZSBwYXJ0IG9mIGEgY29tbXVuaXR5IG9mIGxpa2UtbWluZGVkIHBlb3BsZSB3aGVyZSB3ZSB1bmRlcnN0YW5kIGFuZCBzdXBwb3J0IGVhY2ggb3RoZXIuIFdlIGFsc28gd2FudCB0byBmZWVsIGFzIGlmIHdlIGFyZSBub3QgYmVpbmcgZGlzY3JpbWluYXRlZCBhZ2FpbnN0IG9yIG1hcmdpbmFsaXplZC4gQmVsb25naW5nIGlzIHJlYWxseSBpbXBvcnRhbnQgdG8gbWUgcGVyc29uYWxseTogSSBsb3ZlIHdvcmtpbmcgYXMgcGFydCBvZiBhIGRpc3RyaWJ1dGVkIHRlYW0sIGJ1dCBJIGFsc28gcmVhbGx5IGVuam95IHNlZWluZyBwZW9wbGUgaW4gcGVyc29uIGV2ZXJ5IG9uY2UgaW4gYSB3aGlsZS4gSXQgbWFrZXMgbWUgZmVlbCBtb3JlIGNvbm5lY3RlZCB0byB0aGVtLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7SW1wcm92ZW1lbnQuJmx0Oy9zdHJvbmcmZ3Q7IFdlIGFsc28gc2VlayB0byBjb250aW51b3VzbHkgbGVhcm4sIGltcHJvdmUsIGFuZCBncm93IGluIGFyZWFzIHRoYXQgbWF0dGVyIHRvIHVzLCBhcyB3ZWxsIGFzIHRvIG91ciB0ZWFtIG9yIGNvbXBhbnkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtDaG9pY2UuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8gaGF2ZSBjaG9pY2UsIGNvbnRyb2wsIGFuZCBhdXRvbm9teSBvdmVyIGltcG9ydGFudCBwYXJ0cyBvZiBvdXIgbGl2ZXMuIEluIG9uZSBvZiBteSBwcmV2aW91cyByb2xlcywgSSB0b29rIG9uIGEgbG90IG9mIHdvcmsgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLiBCdXQgdWx0aW1hdGVseSwgdGhlIGNvbnRyb2wgSSBoYWQgb3ZlciBteSBkb21haW4gd2FzIGxpbWl0ZWQgZHVlIHRvIG9yZ2FuaXphdGlvbmFsIGlzc3VlcyDigJMgd2hpY2ggbGVkIG1lIHRvIGxlYXZlIHRoZSBjb21wYW55LiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7RXF1YWxpdHkuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8ga25vdyB0aGF0IG91ciBhY2Nlc3MgdG8gaW5mb3JtYXRpb24sIG1vbmV5LCB0aW1lLCBhbmQgb3RoZXIgcmVzb3VyY2VzIGlzIGZhaXIgYW5kIGVxdWFsIGZvciBldmVyeW9uZSDigJMgbm90IGp1c3QgZm9yIG91cnNlbHZlcywgYnV0IGFsc28gZm9yIHRoZSBwZW9wbGUgYXJvdW5kIHVzLiBFdmVyeW9uZeKAmXMgbmVlZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZXF1YWxseSBpbXBvcnRhbnQuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtQcmVkaWN0YWJpbGl0eS4mbHQ7L3N0cm9uZyZndDsgV2UgbG9vayBmb3IgY2VydGFpbnR5LCBzYWZldHksIGFuZCBzdGFiaWxpdHkgaW4gb3VyIGxpdmVzLiBXZSBhbHNvIHdhbnQgZ29hbHMsIHN0cmF0ZWd5LCBhbmQgZGlyZWN0aW9uIHRvIGJlIGNvbnNpc3RlbnQg4oCTIGFuZCB0byBub3QgY2hhbmdlIHRvbyBxdWlja2x5LiBJ4oCZdmUgYmVlbiBsZWFkaW5nIHRlYW1zIGluIGZhc3QtZ3Jvd2luZyBzdGFydHVwcyBmb3IgdGhlIGxhc3QgY291cGxlIG9mIHllYXJzLCBhbmQgd2hlbiB0aGVyZeKAmXMgYSBsb3Qgb2YgY2hhbmdlIGhhcHBlbmluZywgaXTigJlzIGEgY2hhbGxlbmdlIHRvIGluc3RpbGwgcHJlZGljdGFiaWxpdHkgaW4gdGVhbXMuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtTaWduaWZpY2FuY2UuJmx0Oy9zdHJvbmcmZ3Q7IERlZXAgZG93biwgYWxsIG9mIHVzIHNlZWsgbWVhbmluZywgaW1wb3J0YW5jZSwgYW5kIHN0YXR1cy4gV2UgYWxzbyB3YW50IHRvIGJlIGFwcHJlY2lhdGVkIGZvciBvdXIgd29yayBieSBwZW9wbGUgd2hvc2Ugb3BpbmlvbnMgbWVhbiBzb21ldGhpbmcgdG8gdXMuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0lmIG91ciBjb3JlIG5lZWRzIGFyZSB0aHJlYXRlbmVkLCBwZW9wbGUgcmVzb3J0IHRvIGZpZ2h0LW9yLWZsaWdodCBtb2RlcyBvZiByZWFjdGlvbiwgd2hpY2ggYXJlIHZlcnkgc3RyZXNzZnVsLiBUaGUgZmFpbHVyZSB0byBtZWV0IGNvcmUgbmVlZHMgaGFzIGhpZ2ggY29zdHMgZm9yIG9yZ2FuaXphdGlvbnMgYnkgaGFybWluZyBwZW9wbGUgb24gb3VyIHRlYW1zLiBTbyBob3cgY2FuIGVuZ2luZWVyaW5nIG1hbmFnZXJzIHB1dCB0aGUgQklDRVBTIG1vZGVsIGludG8gYWN0aW9uIHRvIGhlbHAgdGhlaXIgdGVhbXMgdGhyaXZlPyZsdDsvcCZndDsKCiZsdDtoMiZndDtVc2luZyB0cnVzdC1iYXNlZCByZWxhdGlvbnNoaXBzIHRvIGhlbHAgZW5naW5lZXJzIGdyb3cmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgZm91bmRhdGlvbiBvZiBiZWluZyBhIGdvb2QgZW5naW5lZXJpbmcgbWFuYWdlciBpcyBnZXR0aW5nIHRvIGtub3cgb3VyIHRlYW1tYXRlcyBhbmQgdW5kZXJzdGFuZGluZyB3aGF0IGlzIGltcG9ydGFudCB0byB0aGVtLiBIZXJlIGFyZSBhIGZldyBwbGFjZXMgdG8gc3RhcnQgYnVpbGRpbmcgdHJ1c3Qgd2l0aGluIHlvdXIgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0FzayBxdWVzdGlvbnMuJmx0Oy9zdHJvbmcmZ3Q7IE9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCB0b29scyBtYW5hZ2VycyBoYXZlIGlzIGFza2luZyBnb29kIHF1ZXN0aW9ucy4gVGhlIGJhc2lzIGZvciBkb2luZyBvdXIgam9icyB3ZWxsIGlzIGxpc3RlbmluZywgb2JzZXJ2aW5nLCB0YWtpbmcgbm90ZSBvZiB3aGF0IG1vdGl2YXRlcyBvdXIgdGVhbW1hdGVzLCBhbmQgcmVhbGx5IGRpZ2dpbmcgaW50byB0aGVpciByZXNwb25zZXMgdG8gb3VyIHF1ZXN0aW9ucy4gSSB1c3VhbGx5IGdhdGhlciBxdWVzdGlvbnMgYmVmb3JlIEkgbWVldCB3aXRoIG15IHRlYW1tYXRlcyBvbmUtb24tb25lLCBzbyBJIGFtIHByZXBhcmVkIGFuZCBJIGNhbiBndWlkZSB0aGUgY29udmVyc2F0aW9uIHRvd2FyZHMgdW5kZXJzdGFuZGluZyB0aGVtIGJldHRlci4gT3ZlciB0aW1lLCBJIGhhdmUgYnVpbHQgYSBraXQgb2Ygb25lLW9uLW9uZSBxdWVzdGlvbnMgdGhhdCBJIHB1bGwgb3V0IHdoZW4gSSBuZWVkIHNvbWUgaW5zcGlyYXRpb24gZm9yIHRoZXNlIGNvbnZlcnNhdGlvbnMuIEFza2luZyBxdWVzdGlvbnMgaGVscHMgdXMgYWRqdXN0IG91ciBsZWFkZXJzaGlwIHN0eWxlIHRvIHRoZSBwZW9wbGUgd2UgYXJlIGxlYWRpbmcuIEl0IGFsc28gZW5zdXJlcyB0aGF0IHRoZXkgZmVlbCB1bmRlcnN0b29kIGFuZCBoZWFyZCwgd2hpY2ggYXJlIHJlYWxseSBpbXBvcnRhbnQgcGlsbGFycyBvZiBpbmNsdXNpb24gYW5kIGJlbG9uZ2luZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0JlIGN1cmlvdXMuJmx0Oy9zdHJvbmcmZ3Q7IFBlb3BsZSBhcmUgZnVsbCBvZiBzdXJwcmlzZXMsIGFuZCBzb21ldGltZXMgb3VyIHRlYW1tYXRlc+KAmSByZWFjdGlvbnMgbWF5IGJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBleHBlY3RlZC4gSSBvbmNlIHJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIGVuZ2luZWVyIG9uIG15IHRlYW0gd2hvIHdhcyBkZWVwbHkgdXBzZXQgYWJvdXQgdGhlIHNwZWNpZmljIHdvcmRpbmcgdXNlZCBpbiBhIHByb2R1Y3QtcmVsZWFzZSBub3RlIHRvIGN1c3RvbWVycy4gQXQgZmlyc3QgSSBkaWQgbm90IHVuZGVyc3RhbmQgdGhlaXIgc3Ryb25nIHJlYWN0aW9uLiBCdXQgd2hlbiB3ZSB0YWxrZWQsIEkgbGVhcm5lZCB0aGUgZW5naW5lZXIgaGFkIGJlZW4gb3ZlcnJ1bGVkIGJ5IHNvbWVvbmUgd2l0aCBtb3JlIHBvd2VyLCBtYWtpbmcgdGhlbSBmZWVsIGhlbHBsZXNzLCBhbmQgdGhyZWF0ZW5pbmcgdGhlaXIgY29yZSBuZWVkIGZvciBjaG9pY2UgYW5kIGVxdWFsaXR5LiZsdDsvcCZndDsKCiZsdDtwJmd0O1doYXQgbWFuYWdlcnMgbWlnaHQgcGVyY2VpdmUgYXMgbm8gYmlnIGRlYWwgY2FuIGJlIGVub3Jtb3VzIHRocmVhdHMgdG8gb3RoZXIgcGVvcGxlLiBDYXNlcyB3aGVyZSB3ZeKAmXJlIHN1cnByaXNlZCBieSBvdXIgdGVhbW1hdGVz4oCZIHJlYWN0aW9ucyBhcmUgZ29vZCBvcHBvcnR1bml0aWVzIHRvIGZvY3VzIG9uIGh1bWFuLWNlbnRyaWMgcmVzcG9uc2VzLCBsaWtlIGdpdmluZyBwZW9wbGUgdGhlIG9wcG9ydHVuaXR5IHRvIHRhbGsgdGhyb3VnaCB0aGVpciBmZWVsaW5ncy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0Nvbm5lY3QgdG8gdGhlIGJpZ2dlciBwaWN0dXJlLiZsdDsvc3Ryb25nJmd0OyBDcmVhdGluZyBhbiBpbXBhY3QgaXMgYSB2ZXJ5IGdvb2QgbW90aXZhdG9yIGZvciBhbGwgb2YgdXMsIHNvIGhlbHBpbmcgZW5naW5lZXJzIHVuZGVyc3RhbmQgaG93IHRoZWlyIHdvcmsgY29ubmVjdHMgdG8gdGhlIGJpZ2dlciBwaWN0dXJlIChob3cgaXQgaGVscHMgdXNlcnMgb3Igc3VwcG9ydHMgb3RoZXIgdGVhbXMpIGlzIGFuIGV4dHJlbWVseSBpbXBvcnRhbnQgYW5kIHN0cmF0ZWdpYyBza2lsbCBmb3IgbWFuYWdlcnMuIFdoaWxlIGdvYWwtc2V0dGluZyBmcmFtZXdvcmtzIGxpa2UgT0tScyBjYW4gaGVscCwgaXQgaXMgYWxzbyBjcnVjaWFsIHRvIGFsaWduIGVuZ2luZWVyaW5nIGluaXRpYXRpdmVzIHdpdGggaGlnaGVyLWxldmVsIGdvYWxzLCBhbmQgY29ubmVjdCB0aGVtIGNsZWFybHkgd2l0aCB1c2VyIHZhbHVlLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7SW52b2x2ZSBlbmdpbmVlcnMgaW4gZGVjaXNpb24gbWFraW5nLiZsdDsvc3Ryb25nJmd0OyBGZWVsaW5nIHRoYXQgZGVjaXNpb25zIGFyZSBmYWlyIGFuZCBlcXVpdGFibGUgaXMgYW4gaW1wb3J0YW50IGNvbXBvbmVudCBvZiB0aGUgQklDRVBTIG1vZGVsLiBXaGVuIHdlIG1ha2UgZGVjaXNpb25zLCBpdCBpcyBoZWxwZnVsIHRvIGFzayBldmVyeW9uZSBmb3IgdGhlaXIgb3BpbmlvbnMgZmlyc3QsIGFuZCB0YWtlIHRoZWlyIG9waW5pb25zIGludG8gYWNjb3VudC4gSXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBnbyB3aXRoIHdoYXQgZXZlcnlvbmUgd2FudHMuIEJ1dCB3ZSBjYW4gc3RpbGwgZG8gYSBnb29kIGpvYiBhdCBjb250ZXh0dWFsaXppbmcgdGhlIGRlY2lzaW9ucyB3ZSBtYWtlLCBhbmQgaGVscGluZyBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IHRoZWlyIGZlZWRiYWNrIHdhcyBjb25zaWRlcmVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7R2l2ZSBmZWVkYmFjayBmb3IgZ3Jvd3RoLiZsdDsvc3Ryb25nJmd0OyBPbmUgb2YgdGhlIGJlc3QgdGhpbmdzIHdlIGdldCB0byBkbyBhcyBlbmdpbmVlcmluZyBtYW5hZ2VycyBpcyBzdXBwb3J0IGVuZ2luZWVyc+KAmSBncm93dGguIEdpdmUgZmVlZGJhY2sgcmVndWxhcmx5IHRvIGhlbHAgdGhlIHBlb3BsZSBvbiB5b3VyIHRlYW0gdW5kZXJzdGFuZCB3aGVyZSB0aGV5IGFyZSBhdCBhbmQgZ3JvdyDigJMgYnkgY291cnNlLWNvcnJlY3Rpbmcgd2hlcmUgbmVlZGVkLCBhcyB3ZWxsIGFzIGJ5IGRvaW5nIG1vcmUgaW4gdGhlIGFyZWFzIGluIHdoaWNoIHRoZXkgYXJlIGFscmVhZHkgZG9pbmcgZ3JlYXQuIE1hbmFnZXJzIG5lZWQgZmVlZGJhY2sgYXMgd2VsbDogaXTigJlzIGltcG9ydGFudCB0byByZWd1bGFybHkgYXNrIHlvdXIgdGVhbSBmb3IgZmVlZGJhY2sgc28geW91IGNhbiBtYWtlIGFkanVzdG1lbnRzLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Q29hY2ggZW5naW5lZXJzLiZsdDsvc3Ryb25nJmd0OyBDb2FjaGluZyBoZWxwcyBwZW9wbGUgZmluZCBhbnN3ZXJzIHRoZW1zZWx2ZXMsIGltcHJvdmVzIHRoZWlyIHByb2JsZW0tc29sdmluZyBhbmQgbGVhZGVyc2hpcCBza2lsbHMsIGFuZCBpbmNyZWFzZXMgbGVhcm5pbmcsIHJlc2lsaWVuY2UsIGFuZCBzZWxmLW1hbmFnZW1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTcG9uc29yIGVuZ2luZWVycy4mbHQ7L3N0cm9uZyZndDsgVGhpbmsgYmFjayBvbiB5b3VyIGNhcmVlciwgYW5kIHdoZXRoZXIgeW91IGhhdmUgaGFkIGEgbWVudG9yIHdobyBjb25uZWN0ZWQgeW91IHdpdGggc29tZW9uZSwgcHV0IHlvdXIgbmFtZSBmb3J3YXJkLCBhbmQgdXNlZCB0aGVpciBpbmZsdWVuY2UgdG8gbWFrZSBhIGRpZmZlcmVuY2UgaW4geW91ciBjYXJlZXIuIEJlIHRoYXQgcGVyc29uIGZvciBzb21lb25lIGVsc2U6IGludmVzdCBpbiB0aGVpciBncm93dGgsIGxpZnQgdGhlbSB1cCwgYW5kIHB1dCB5b3VyIHdlaWdodCBiZWhpbmQgdGhlaXIgc3VjY2Vzcy4gU3VwcG9ydGluZyB5b3VyIHRlYW3igJlzIHN1Y2Nlc3MgY2FuIG1ha2UgYSByZWFsIGRpZmZlcmVuY2UgZm9yIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhpcyBpcyB0aGUgZm91bmRhdGlvbiBvZiBvdXIgd29yayBhcyBlbmdpbmVlcmluZyBtYW5hZ2Vycy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RHJpdmluZyBhIGN1bHR1cmUgb2YgdHJ1c3QgYW5kIGNvbnRpbnVvdXMgaW1wcm92ZW1lbnQgb24gdGVhbXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgbmV4dCBpbXBvcnRhbnQgYnVpbGRpbmcgYmxvY2sgaW4gb3VyIHdvcmsgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgaXMgdGhlIHRlYW0uIEFjY29yZGluZyB0byByZXNlYXJjaCwgaGlnaC1wZXJmb3JtaW5nIHRlYW1zIG5lZWQgdGhlIGZvbGxvd2luZyBlbGVtZW50cy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7UHN5Y2hvbG9naWNhbCBzYWZldHkuJmx0Oy9zdHJvbmcmZ3Q7IFRoaXMgaXMgYWJvdXQgYmVsaWV2aW5nIHRoYXQgd2Ugd2lsbCBub3QgYmUgcmVqZWN0ZWQsIGFuZCBmZWVsaW5nIGZyZWUgdG8gZXhwcmVzcyBvdXIgd29yay1yZWxhdGVkIHRob3VnaHRzIGFuZCBmZWVsaW5ncyB0byB0aGUgcGVvcGxlIGFyb3VuZCB1cy4gSXQgYWxzbyBtZWFucyBiZWxpZXZpbmcgdGhhdCBvdGhlcnMgd29u4oCZdCB0aGluayBsZXNzIG9mIHVzIGlmIHdlIG1ha2UgYSB3ZWxsLWludGVudGlvbmVkIG1pc3Rha2Ugb3IgYXNrIGZvciBoZWxwLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7U3RydWN0dXJlIGFuZCBjbGFyaXR5LiZsdDsvc3Ryb25nJmd0OyBFdmVyeW9uZSBvbiB0aGUgdGVhbSBzaG91bGQgdW5kZXJzdGFuZCBleHBlY3RhdGlvbnMsIGdvYWxzLCBhbmQgYWNjb3VudGFiaWxpdHkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtNZWFuaW5nIGFuZCBpbXBhY3QuJmx0Oy9zdHJvbmcmZ3Q7IEhpZ2gtcGVyZm9ybWluZyB0ZWFtcyBmaW5kIGEgc2Vuc2Ugb2YgcHVycG9zZSBpbiB0aGVpciB3b3JrLCBhbmQga25vdyB0aGF0IHRoZWlyIHdvcmsgaGFzIGFuIGltcGFjdC4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7THVja2lseSBmb3IgbWFuYWdlcnMsIHRoaXMgcmVzZWFyY2ggbmVhdGx5IGFsaWducyB3aXRoIHRoZSBCSUNFUFMgbW9kZWwuIEFsbCBodW1hbiBjb3JlIG5lZWRzIGFyZSByZXByZXNlbnRlZCBhbmQgaGF2ZSBpbXBhY3QgYXQgdGhlIHRlYW0gbGV2ZWwgYXMgd2VsbC4gQnkgdW5kZXJzdGFuZGluZyBhbmQgcmVzcG9uZGluZyB0byBwZW9wbGXigJlzIG1vdGl2YXRpb25zLCBsZWFkZXJzIGNyZWF0ZSB0aGUgYmFzaXMgZm9yIHRlYW1zICB0byBleHByZXNzIHRoZW1zZWx2ZXMg4oCTIGFuZCBwcm92aWRlIHRoZSBzdHJ1Y3R1cmUsIG1lYW5pbmcsIGFuZCBpbXBhY3QgdGhleSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgdHJ1c3QuJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBmaXJzdCBzdGVwIGluIGNyZWF0aW5nIHN0cnVjdHVyZSBpcyBidWlsZGluZyByZWxhdGlvbnNoaXBzLiBGb3Igb3VyIGRpc3RyaWJ1dGVkIHRlYW1zIGF0IENpcmNsZUNJLCB3ZeKAmXZlIGJ1aWx0IGRpZmZlcmVudCBzdHJ1Y3R1cmVzIHRvIGhlbHAgdGVhbW1hdGVzIGRvIHRoYXQsIHN1Y2ggYXMgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucyBhbmQgZW5naW5lZXJpbmcgdGFsa3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTdHJ1Y3R1cmUgYXJvdW5kIGhvdyB3ZSBjb2xsYWJvcmF0ZS4mbHQ7L3N0cm9uZyZndDsgT3VyIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0kgaGFzIGRvdWJsZWQgaW4gc2l6ZSBmb3IgdGhyZWUgeWVhcnMgaW4gYSByb3cuIE92ZXIgdGhpcyB0aW1lLCB3ZeKAmXZlIG1vdmVkIHRvIGEgbW9yZSBzdHJlYW1saW5lZCBlbmdpbmVlcmluZyBkZWxpdmVyeSBwcm9jZXNzIGZvciBhbGwgdGVhbXMuIEJ1dCB3ZSBzdGlsbCBsZWF2ZSBpdCB0byB0aGUgdGVhbXMgdG8gZGVjaWRlIGhvdyB0byBpbXBsZW1lbnQgdCBkYXktdG8tZGF5IHByb2Nlc3NlcywgaW5jbHVkaW5nIGRhaWx5IHN0YW5kdXAgbWVldGluZ3MsIHBsYW5uaW5nIHNlc3Npb25zLCBvciBjb2xsYWJvcmF0aW9uLiBFdmVyeSB0ZWFtIGhhcyBzcGVjaWZpYyBuZWVkcywgYW5kIHRoZXkga25vdyBiZXN0IGhvdyB0byBhZGRyZXNzIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtSZW1vdmUgYmxvY2tlcnMuJmx0Oy9zdHJvbmcmZ3Q7IFN0cnVjdHVyZXMgY2FuIGFsc28gaGVscCBtaXRpZ2F0ZSB0aGUgaW1wYWN0IG9mIGdldHRpbmcgYmxvY2tlZCBhdCB3b3JrLiBXZSBhbGwga25vdyBob3cgZnJ1c3RyYXRpbmcgaXQgaXMgdG8gYmUgc3R1Y2suIFB1dHRpbmcgdXAgcGF0aHdheXMgdG8gaGVscCBwZW9wbGUgZ2V0IHVuYmxvY2tlZCBjYW4gYmUgcmVhbGx5IGltcG9ydGFudCDigJMgZm9yIGV4YW1wbGUsIHNldHRpbmcgdXAgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucywgaW52ZXN0aW5nIGluIHNlbGYtc2VydmUgaW5mb3JtYXRpb24gYWNjZXNzLCBzdXBwb3J0aW5nIGVhY2ggb3RoZXIgYWNyb3NzIHRlYW1zLCBwdXR0aW5nIHVwIGVzY2FsYXRpb24gcGF0aHMgZm9yIHBlb3BsZSB0byBnZXQgaGVscCB3aGVuIHRoZXkgbmVlZCBpdCwgb3IgaGVscGluZyBwZW9wbGUgc3VwcG9ydCBlYWNoIG90aGVyIHRocm91Z2gga25vd2xlZGdlLXNoYXJpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtDb250aW51b3VzbHkgaW1wcm92ZS4mbHQ7L3N0cm9uZyZndDsgV2UgY2FuIHVzZSByZXRyb3NwZWN0aXZlcyB0byBkaXNjdXNzIGFuZCBpbXByb3ZlIGhvdyB3ZSB3b3JrIHRvZ2V0aGVyLiBCbGFtZWxlc3MgcG9zdG1vcnRlbXMgYXJlIGFsc28gYSBncmVhdCB0b29sIHRvIGhlbHAgdW5kZXJzdGFuZCBwcm9ibGVtcyBhbmQgZHJpdmUgdG93YXJkcyBzb2x1dGlvbnMuIENvZGUgcmV2aWV3cywgbWVudG9yaW5nLCBvciBrbm93bGVkZ2Ugc2hhcmluZyBjYW4gaGVscCB0ZWFtIG1lbWJlcnMgbGVhcm4gZnJvbSBlYWNoIG90aGVyLiBUaGUgd2F5IHdlIHRhbGsgYWJvdXQgbGVhcm5pbmcgbWF0dGVycyDigJMgZXNwZWNpYWxseSB0aGUgd2F5IHdlIGRpc2N1c3MgbWlzdGFrZXMuIFRoZXNlIGRlY2lzaW9ucyB3aWxsIGZ1bmRhbWVudGFsbHkgc2hhcGUgdGhlIGN1bHR1cmUgb2Ygb3VyIHRlYW1zLCBhbmQgZGV0ZXJtaW5lIHdoZXRoZXIgcGVvcGxlIGZlZWwgc2FmZSBvciB0aHJlYXRlbmVkIGluIHRoZWlyIGNvcmUgbmVlZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtEcml2ZSB0b3dhcmQgYWxpZ25tZW50LiZsdDsvc3Ryb25nJmd0OyBDb21tdW5pY2F0ZSBzdHJhdGVneSwgZGlyZWN0aW9uLCBhbmQgcmVsZXZhbnQgdGFjdGljYWwgZGV0YWlscyB0byBvdXIgdGVhbXMg4oCTIGFuZCByZW1lbWJlciBpdOKAmXMgYWxtb3N0IGltcG9zc2libGUgdG8gb3Zlci1jb21tdW5pY2F0ZSB0aGVzZSBkZXRhaWxzLiBBbHdheXMgcmVwZWF0IHdoYXTigJlzIGltcG9ydGFudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBlbmdpbmVlcmluZyBtYW5hZ2Vycywgd2UgYXJlIGxpa2UgbW9ydGFyOiBXZSBjb25uZWN0IHN0cnVjdHVyZXMsIHRlYW1zLCBhbmQgcGVvcGxlLiBXZSBob2xkIHRoZW0gdG9nZXRoZXIsIGJ1dCBhbHNvIGlkZW50aWZ5IGFuZCBmaWxsIGdhcHMgYXMgbmVlZGVkLiBIYW5kbGluZyBhbWJpZ3VpdHkgaXMgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgZGlmZmljdWx0IGFzcGVjdHMgb2YgZW5naW5lZXJpbmcgbWFuYWdlbWVudC4uIEZvciBhIGxvdCBvZiB3b3JrIGluIG91ciBmaWVsZCwgdGhlcmUgYXJlIG5vIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLCBsZXQgYWxvbmUgcmVzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T3VyIHdvcmsgaXNu4oCZdCBzbyBtdWNoIGFib3V0IHVzOyBpdOKAmXMgYWJvdXQgdGhlIHBlb3BsZSwgdGVhbXMsIGFuZCBvcmdhbml6YXRpb25zIHdlIHN1cHBvcnQuIFdlIGJ1aWxkIHN0cnVjdHVyZXMgdG8gaGVscCBvdGhlcnMgc2hpbmUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1N1cHBvcnRpbmcgb3JnYW5pemF0aW9uYWwgY2hhbmdlJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7TGFzdGx5LCBjcmVhdGluZyBlbnZpcm9ubWVudHMgaW4gd2hpY2ggZW5naW5lZXJzIGNhbiB0aHJpdmUgaXMgYWJvdXQgc3VwcG9ydGluZyBvdXIgb3JnYW5pemF0aW9uLiBXZSBuZWVkIHRvIHVzZSBvdXIgcG93ZXIgYXMgbWFuYWdlcnMgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLCBubyBtYXR0ZXIgdGhlIHNpemUgb2Ygb3VyIGJ1c2luZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtBZHZvY2F0ZSBmb3IgY2hhbmdlLiZsdDsvc3Ryb25nJmd0OyBUbyBiZSBlZmZlY3RpdmUgYXMgbWFuYWdlcnMsIHdlIG5lZWQgdG8gcHVzaCBmb3Igb3JnYW5pemF0aW9uYWwgY2hhbmdlIHRvIGltcHJvdmUgdGhlIGxhcmdlciBzdHJ1Y3R1cmVzIGFyb3VuZCB1cy4gRm9yIGV4YW1wbGUsIHdlIG1heSBuZWVkIHRvIGFkdm9jYXRlIGZvciBtb3JlIGNsYXJpdHkgYXJvdW5kIGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMsIGhhdmUgY29udmVyc2F0aW9ucyBhYm91dCB3aGF0IGVuZ2luZWVyaW5nIG1hbmFnZW1lbnQgc2hvdWxkIGJlIGxpa2UgaW4gb3VyIGNvbXBhbnksIGFuZCBkZXRlcm1pbmUgcmVxdWlyZW1lbnRzIGZvciBoaXJpbmcgZW5naW5lZXJpbmcgbWFuYWdlcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtNYW5hZ2UgdXAuJmx0Oy9zdHJvbmcmZ3Q7IE1hbmFnaW5nIG91ciBvd24gbWFuYWdlcnMgaXMgYSB1c2VmdWwgYnV0IGRpZmZpY3VsdCBza2lsbC4gRHJpdmluZyBvcmdhbml6YXRpb25hbCBjaGFuZ2UgYWxzbyBtZWFucyBtYWtpbmcgc3VyZSB0aGF0IG91ciBlbmdpbmVlcnPigJkgY29uY2VybnMgYXJlIGhlYXJkIGF0IHRoZSBoaWdoZXN0IGxldmVscywgYW5kIHRoYXQgd2UgdXNlIG91ciBwb3dlciB0byBtYWtlIHN1cmUgZW5naW5lZXJzIGhhdmUgYSB2b2ljZSBpbiB0aGUgcmVzdCBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgZnJhbWV3b3JrcyBhbmQgc3RhbmRhcmRzLiZsdDsvc3Ryb25nJmd0OyBXaGlsZSBpdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIG1ha2Ugcm9vbSBmb3IgaW5kaXZpZHVhbCBuZWVkcywgc3RydWN0dXJlcyBhbmQgZnJhbWV3b3JrcyBmb3IgbWFuYWdlcnMgaGVscCB1cyBob2xkIGVhY2ggb3RoZXIgYWNjb3VudGFibGUuIFRoZXkgYWxzbyAgaGVscCBsZXZlbCB0aGUgcGxheWluZyBmaWVsZCBhbmQgYnVpbGQgaW4gZXF1YWxpdHkgZm9yIHRoZSBwZW9wbGUgb24gb3VyIHRlYW1zLiBPbiBteSBjdXJyZW50IHRlYW0sIGV2ZXJ5IHF1YXJ0ZXIgd2UgcGljayBzb21lIGhpZ2gtcHJpb3JpdHkgcHJvamVjdHMgIHRvIGltcHJvdmUgaG93IHdlIHdvcmsgYXMgYW4gb3JnYW5pemF0aW9uLiBNb3N0IHJlY2VudGx5LCB3ZeKAmXZlIHdvcmtlZCBvbiBvdXIgaGlyaW5nIHByb2Nlc3MgYW5kIGluY2lkZW50IHJlbWVkaWF0aW9uOyBsYXN0IHllYXIsIHdlIGRldmVsb3BlZCBhbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvd2h5LXdlLXJlLWRlc2lnbmVkLW91ci1lbmdpbmVlcmluZy1jYXJlZXItcGF0aHMtYXQtY2lyY2xlY2kvJnF1b3Q7Jmd0O2ludGVybmFsIGNhcmVlciBncm93dGggZnJhbWV3b3JrIGZvciBlbmdpbmVlcnMmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtHcm93aW5nIGFzIGEgbGVhZGVyJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7QmVpbmcgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgaXNu4oCZdCBhbHdheXMgYSBzdHJhaWdodGZvcndhcmQgcGF0aDsgYSBsb3QgZGVwZW5kcyBvbiB3aGVyZSB3ZSBhcmUgYXQgaW4gb3VyIGNhcmVlcnMgYW5kIHdoZXJlIHdlIGFyZSBsb29raW5nIHRvIGdvLCBhcyB3ZWxsIGFzIHRoZSBncm93dGggc3RhZ2UsIHNpemUsIGFuZCBuZWVkcyBvZiBvdXIgb3JnYW5pemF0aW9ucy4gSW4gb3VyIGRhaWx5IHdvcmssIHdlIGhvbGQgdmFzdCBhbW91bnRzIG9mIHVuY2VydGFpbnR5IHdoaWxlIGFsc28gdHJ5aW5nIHRvIG1ha2UgcHJvZ3Jlc3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QW4gb3ZlcmFyY2hpbmcgdGhlbWUgaW4gbXkgd29yayBpbiBlbmdpbmVlcmluZyBtYW5hZ2VtZW50ICBoYXMgYmVlbiBncm93dGggYW5kIGltcHJvdmVtZW50LiBXZSByYXJlbHkgZGVhbCB3aXRoIGdyZWVuZmllbGQgcHJvamVjdHMgb3IgYXJlIGFibGUgdG8gYnVpbGQgYSB0ZWFtIG9yIGRlcGFydG1lbnQgZnJvbSBzY3JhdGNoLiBFdmVuIHdoZW4gd2UgZG8sIHdlIGJ1aWxkIG9uIGV4aXN0aW5nIHN0cnVjdHVyZXMgaW4gb3VyIG9yZ2FuaXphdGlvbi4gSSBiZWxpZXZlIG91ciBzdXBwb3J0aW5nIHJvbGUgbGFyZ2VseSBtZWFucyBoZWxwaW5nIGVuZ2luZWVycyBncm93LCBzdXBwb3J0aW5nIHRlYW1zIGF0IGNvbnRpbnVvdXNseSBsZWFybmluZywgYW5kIGhlbHBpbmcgb3JnYW5pemF0aW9ucyBiZWNvbWUgYmV0dGVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVyaW5nIG1hbmFnZXJzLCB3ZSBmcmVxdWVudGx5IGZhY2UgcXVlc3Rpb25zIHRoYXQgZG9u4oCZdCBjbGVhciByaWdodCBvciB3cm9uZyBhbnN3ZXJzLiBNYW55IHllYXJzIGFnbywgbXkgbGVhZGVyc2hpcCBjb2FjaCBlbmNvdXJhZ2VkIG1lIHRvIHVzZSB0aG9zZSBraW5kcyBvZiB1bmNlcnRhaW4gc2l0dWF0aW9ucyB0byBhc2sgbXlzZWxmLCDigJxXaGF0IGtpbmQgb2YgbGVhZGVyIGRvIEkgd2FudCB0byBiZT/igJ0mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJIHdhbnQgdG8gbGVhdmUgdGhlIGxhc3QgY2FsbCB0byBncm93dGggYW5kIGltcHJvdmVtZW50IHdpdGggeW91IChhbmQgbWUpOiBObyBtYXR0ZXIgd2hhdCB5b3VyIHJvbGUgb3IgY29tcGFueSBpcyBsaWtlLCB3b3JrIG9uIHNoYXBpbmcgeW91ciBhcHByb2FjaCB0byBlbmdpbmVlcmluZyBtYW5hZ2VtZW50LiBHZXQgdG8ga25vdyB0aGUgcGVvcGxlIHRoYXQgeW91IHdvcmsgd2l0aCwgYW5kIHVzZSBmZWVkYmFjayB0byBoZWxwIHRoZW0gY291cnNlLWNvcnJlY3QuIEJ1aWxkIHRlYW1zIHRoYXQgYXJlIHBzeWNob2xvZ2ljYWxseSBzYWZlIHBsYWNlcywgd2hlcmUgcGVvcGxlIGZpbmQgbWVhbmluZyBpbiBhIHNoYXJlZCBwdXJwb3NlLiBBbmQgdXNlIHlvdXIgcG93ZXIgYW5kIHByaXZpbGVnZSB0byBkcml2ZSBjaGFuZ2UgaW4geW91ciBvcmdhbml6YXRpb24uIE1ha2UgcGVvcGxlIHRoZSBjZW50ZXIgYW5kIGZvY3VzIG9mIHlvdXIgd29yaywgYW5kIGJ1aWxkIG9uIHRoYXQgZm91bmRhdGlvbiB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhleSBjYW4gdGhyaXZlLiAgQWx3YXlzIHB1c2ggdG8gY29udGludW91c2x5IGltcHJvdmUuIExlYWQgd2l0aCBodW1ibGVuZXNzLCBlbXBhdGh5LCBhbmQgbG90cyBvZiBjdXJpb3NpdHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2hhdCBraW5kIG9mIGxlYWRlciBkbyB5b3Ugd2FudCB0byBiZT8mbHQ7L3AmZ3Q7CgombHQ7aHIgLyZndDsKJmx0O3AmZ3Q7SWYgeW914oCZcmUgY3VyaW91cyBhYm91dCBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IGF0IENpcmNsZUNJIGFuZCB3b3JraW5nIHdpdGggdXM6IGpvaW4gdXMhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9ib2FyZHMuZ3JlZW5ob3VzZS5pby9jaXJjbGVjaSZxdW90OyZndDtXZeKAmXJlIGhpcmluZyBlbmdpbmVlcmluZyBtYW5hZ2VycyZsdDsvYSZndDsuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5CdWlsZGluZyBhbmQgZGVwbG95aW5nIEZsdXR0ZXIgYXBwcyB3aXRoIEZhc3RsYW5lPC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RlcGxveS1mbHV0dGVyLWFuZHJvaWQvPC9saW5rPgogICAgICAgIDxwdWJEYXRlPldlZCwgMjkgQXByIDIwMjAgMTA6MDA6MDAgLTA3MDA8L3B1YkRhdGU+CiAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9InRydWUiPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZGVwbG95LWZsdXR0ZXItYW5kcm9pZC88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5HYWJyaWVsIFNpbW1lcjwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvJnF1b3Q7Jmd0O0ZsdXR0ZXImbHQ7L2EmZ3Q7IGlzIGEgdG9vbGtpdCBwcm92aWRlZCBieSBHb29nbGUgZm9yIGJ1aWxkaW5nIGNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9ucywgaW5jbHVkaW5nIEFuZHJvaWQsIGlPUywgYW5kIHdlYiBhcHBzLiBBcyBtb3JlIGFwcHMgYXJlIHdyaXR0ZW4gdXNpbmcgaXQgYW5kIERhcnQgKHRoZSB1bmRlcmx5aW5nIGxhbmd1YWdlKSwgaXTigJlzIGJlY29taW5nIG1vcmUgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyBkZXZlbG9wZXJzIGNhbiBwYWNrYWdlIGFuZCBkZWxpdmVyIHRoZWlyIGNvZGUgdG8gdGhlaXIgdXNlcnMuIExldmVyYWdpbmcgQ2lyY2xlQ0kgYW5kIEZhc3RsYW5lLCB0aGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcHJvY2VzcyB0aGF0IGNhbiBiZSBhdXRvbWF0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbGluZyBGbHV0dGVyIGFuZCBjcmVhdGluZyB5b3VyIGZpcnN0IGFwcCBjYW4gYmUgZG9uZSBieSBmb2xsb3dpbmcgdGhlc2UgZ3VpZGVzOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvZG9jcy9nZXQtc3RhcnRlZC9pbnN0YWxsJnF1b3Q7Jmd0O0luc3RhbGwmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2ZsdXR0ZXIuZGV2L2RvY3MvZ2V0LXN0YXJ0ZWQvY29kZWxhYiZxdW90OyZndDtXcml0ZSB5b3VyIGZpcnN0IGFwcCZsdDsvYSZndDsuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBkZWZhdWx0IOKAnGhlbGxvIHdvcmxk4oCdIGFwcCB3aWxsIHN1ZmZpY2UuIFdlIHdvbuKAmXQgYmUgZGVhbGluZyBtdWNoIHdpdGggdGhlIGFwcGxpY2F0aW9uIGl0c2VsZi4gUHVzaCBpdCB0byBhIHJlcG9zaXRvcnkgb24gR2l0SHViLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Vuc3VyZSB0aGF0IHlvdSBhcmUgc2V0IHVwIHRvIHB1Ymxpc2ggYXBwcyB1c2luZyBHb29nbGUgUGxheSBvciB0aGUgQXBwbGUgQXBwIFN0b3JlIC0gc3RlcHMgZm9yIGVhY2ggd2lsbCB2YXJ5LCBzbyBiZSBzdXJlIHRvIGZvbGxvdyB0aGUgc3RlcHMgb3V0bGluZWQgZm9yIHRoZSByZXNwZWN0aXZlIHByb3ZpZGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBbmRyb2lkJmx0Oy9oMiZndDsKCiZsdDtwJmd0O1doZW4gcHVibGlzaGluZyBBbmRyb2lkIGFwcHMsIHRoZXJlIGFyZSBhIGZldyByZXF1aXJlbWVudHMgdG8gc2F0aXNmeSBiZWZvcmUgaW1wbGVtZW50aW5nIEZhc3RsYW5lLiBBbiDigJx1cGxvYWQga2V54oCdIGlzIHJlcXVpcmVkIHNvIHRoYXQgR29vZ2xlIGNhbiB2ZXJpZnkgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUgYXBwIGJlZm9yZSBhY2NlcHRpbmcgaXQuIFN0ZXBzIGZvciBzZXR0aW5nIHRoaXMgdXAgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9mbHV0dGVyLmRldi9kb2NzL2RlcGxveW1lbnQvYW5kcm9pZCZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oy4gSXTigJlzIHJlY29tbWVuZGVkIHRvIHVzZSBBcHBCdW5kbGVzIHdoZW4gYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBhcyBpdCBhbGxvd3MgR29vZ2xlIHRvIGJ1aWxkIGluZGl2aWR1YWwgQVBLcyBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyB3aGlsZSBrZWVwaW5nIGZpbGVzaXplIGRvd24uIFRha2Ugbm90ZSBvZiB3aGVyZSB5b3Ugc2F2ZSB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5qa3MmbHQ7L2NvZGUmZ3Q7IGZpbGUuIFdoaWxlIGl0IGNhbiBsaXZlIGluIHlvdXIgaG9tZSBkaXJlY3RvcnksIGhhdmluZyBpdCBzYXZlZCB0byBhIGdpdC1pZ25vcmVkIGRpcmVjdG9yeSBpbiB5b3VyIHByb2plY3Qgd2lsbCBjb21lIGluIGhhbmR5IHdoZW4gY29uZmlndXJpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1R3byB0aGluZ3MgZnJvbSB0aGlzIGd1aWRlIHdpbGwgbmVlZCB0byBiZSBhZGRlZCB0byBDaXJjbGVDSSBhcyAmbHQ7YSBocmVmPSZxdW90Oy9kb2NzLzIuMC9lbnYtdmFycy8mcXVvdDsmZ3Q7ZW52aW9ybm1lbnQgdmFyaWFibGVzJmx0Oy9hJmd0OzogdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlIGFuZCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7a2V5LmprcyZsdDsvY29kZSZndDsgZmlsZS4gVGhpcyB3aWxsIGFsbG93IHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBzaWduIHRoZSBhcHBsaWNhdGlvbi4gU2luY2Ugb25lIGZpbGUgcmVxdWlyZXMgbmV3bGluZXMgdG8gYmUgcHJlc2VudCwgYW5kIGFub3RoZXIgaXMgYSBiaW5hcnkgZmlsZSwgaXTigJlzIHJlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgYmFzZTY0LWVuY29kZWQgcHJpb3IgdG8gYWRkaW5nIHRoZW0gYXMgZW52aW9ybm1lbnQgdmFyaWFibGVzIHRvIHByZXNlcnZlIHRoZSBkYXRhLiZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBjYW4gZW5jb2RlIHRoZW0gYnkgcnVpbm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2F0ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7IHwgYmFzZTY0IC13IDAgIyAtdyAwIHdpbGwgZW5zdXJlIG5vIG5ld2xpbmVzIGFyZSBwcmVzZW50LgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBmaWxlcyBjYW4gdGhlbiBiZSByZS1hZGRlZCBkdXJpbmcgdGhlIGpvYiB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2VjaG8gJnF1b3Q7JEVOVl9WQVJJQUJMRV9OQU1FJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIGFsc28gd2FudCB0byBzZXQgdXAgYSBGYXN0bGFuZSBzZXJ2aWNlIGFjY291bnQgd2hpbGUgY3JlYXRpbmcgeW91ciBBbmRyb2lkIHNldHVwLiBZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5mYXN0bGFuZS50b29scy9nZXR0aW5nLXN0YXJ0ZWQvYW5kcm9pZC9zZXR1cC8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuIEJlIHN1cmUgdG8ga2VlcCB5b3VyIFNlcnZpY2UgQWNjb3VudCBKU09OIGZpbGUgaGFuZHkuIFdl4oCZbGwgYmUgYWRkaW5nIHRoYXQgdG8gdGhlIHBpcGVsaW5lIHNob3J0bHkuIEFsc28gbm90ZSB0aGF0IGNvbW1hbmRzIHNob3VsZCBiZSBydW4gZnJvbSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZCZsdDsvY29kZSZndDsgZGlyZWN0b3J5IHVuZGVyIHlvdXIgRmx1dHRlciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IHJlcXVpcmVkIGJ5IEZhc3RsYW5lIGNhbiBiZSBkb25lIGJ5IGFkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IEpTT04gZmlsZSBjb250ZW50cyBhcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IGVudmlvcm5tZW50IHZhcmlhYmxlLiBUaGlzIGlzIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1NVUFBMWV9KU09OX0tFWSZsdDsvY29kZSZndDsgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgYSBmaWxlIHBhdGggdG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0Zhc3RsYW5lJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05vdyB0aGF0IG91ciBlbnZpb3JubWVudCB2YXJpYWJsZXMgYXJlIGluIHBsYWNlIGFuZCB3ZSBjYW4gYnVpbGQgYSBzaWduZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LmFhYiZsdDsvY29kZSZndDsgZmlsZSB1c2luZyBGbHV0dGVyLCBpdOKAmXMgdGltZSB0byB0ZWxsIEZhc3RsYW5lIGhvdyB0byBkbyB0aGlzIGZvciB1cy4gV2XigJlsbCBzdGFydCB3aXRoIEFuZHJvaWQuIE9wZW5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZC9mYXN0bGFuZS9GYXN0ZmlsZSZsdDsvY29kZSZndDsgd2lsbCByZXZlYWwgc29tZSBkZWZhdWx0cyBmb3IgYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBidXQgdGhleSB3b27igJl0IHdvcmsgZm9yIG91ciB1c2UgY2FzZS4gV2XigJlyZSBidWlsZGluZyB3aXRoIEZsdXR0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rmlyc3QsIGxldOKAmXMgZGVmaW5lIGEgbmV3IOKAnGxhbmXigJ0uIFRoaXMgaXMgYSBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgRmFzdGxhbmUgd2lsbCBleGVjdXRlIHdoZW4gY2FsbGVkLiBGb3Igbm93LCB3ZeKAmWxsIGJlIHB1c2hpbmcgb3VyIGFwcCB0byB0aGUg4oCcYmV0YeKAnSBjaGFubmVsLCBub3QgdG8gcHJvZHVjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwoKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgaXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIGxhbmUuIE5leHQsIHdl4oCZbGwgd2FudCB0byBncmFiIGEgYnVpbGQgbnVtYmVyIHdoaWNoIGlzIGFuIGluY3JlbWVudGluZyBudW1iZXIgdXNlZCBhcyBhIHJlZmVyZW5jZSBmb3IgdGhlIHZlcnNpb24gb2YgdGhlIGFwcCAod2hpY2ggZGlmZmVycyBmcm9tIHRoZSB1c2VyLWZhY2luZyBzZW12ZXIpLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHRvIHRoZSBsYW5lOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ICBidWlsZF9udW1iZXIgPSBudW1iZXJfb2ZfY29tbWl0cygpCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgZW5zdXJlcyB0aGF0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZF9udW1iZXImbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0aGF0IGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBHaXQgcmVwb3NpdG9yeS4gVGhpcyBjYW4gYWxzbyBiZSBtYW51YWxseSBpbmNyZW1lbnRlZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVic3BlYy55YW1sJmx0Oy9jb2RlJmd0OyBmaWxlIHRoYXQgRmx1dHRlciB1c2VzIHRvIGJ1aWxkIHRoZSBwYWNrYWdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdl4oCZbGwgZG8gdGhlIGJ1aWxkaW5nLiBXZSBuZWVkIHRvIGdvIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5LCBydW4gYSBmZXcgc2hlbGwgY29tbWFuZHMgdG8gZmV0Y2ggb3VyIHBhY2thZ2VzLCBjbGVhbiB0aGUgcHJldmlvdXMgYnVpbGQgKGlmIGF2YWlsYWJsZSksIHRoZW4gYnVpbGQgdGhlIGFwcGJ1bmRsZSB3aXRoIG91ciBidWlsZCBudW1iZXIuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIERpci5jaGRpciAmcXVvdDsuLi8uLiZxdW90OyBkbwogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7cGFja2FnZXMmcXVvdDssICZxdW90O2dldCZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2NsZWFuJnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7YnVpbGQmcXVvdDssICZxdW90O2FwcGJ1bmRsZSZxdW90OywgJnF1b3Q7LS1idWlsZC1udW1iZXI9I3tidWlsZF9udW1iZXJ9JnF1b3Q7KQogIGVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtGaW5hbGx5LCB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYXBwIHN0b3JlIG9uIHRoZSBiZXRhIGNoYW5uZWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIHVwbG9hZF90b19wbGF5X3N0b3JlKHRyYWNrOiAnYmV0YScsIGFhYjogJy4uL2J1aWxkL2FwcC9vdXRwdXRzL2J1bmRsZS9yZWxlYXNlL2FwcC5hYWInKQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGxhbmUgd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwogIGJ1aWxkX251bWJlciA9IG51bWJlcl9vZl9jb21taXRzKCkKICBEaXIuY2hkaXIgJnF1b3Q7Li4vLi4mcXVvdDsgZG8KICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O3BhY2thZ2VzJnF1b3Q7LCAmcXVvdDtnZXQmcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtjbGVhbiZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2J1aWxkJnF1b3Q7LCAmcXVvdDthcHBidW5kbGUmcXVvdDssICZxdW90Oy0tYnVpbGQtbnVtYmVyPSN7YnVpbGRfbnVtYmVyfSZxdW90OykKICBlbmQKICB1cGxvYWRfdG9fcGxheV9zdG9yZSh0cmFjazogJ2JldGEnLCBhYWI6ICcuLi9idWlsZC9hcHAvb3V0cHV0cy9idW5kbGUvcmVsZWFzZS9hcHAuYWFiJykKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dvIGFoZWFkIGFuZCBzYXZlIHRoZSBmaWxlLCBhbmQgdGhlbiBydW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZmFzdGxhbmUgYmV0YSZsdDsvY29kZSZndDsuIEl0IHdpbGwgcnVuIHRocm91Z2ggdGhlIHN0ZXBzLCBidWlsZGluZyB0aGUgYXBwIGFuZCBwdXNoaW5nIHRoZSBhcHBsaWNhdGlvbiBmb3IgeW91LiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgd2XigJlsbCBkbyB0aGUgc2FtZSBmb3IgaU9TLCBidXQgcmVwbGFjaW5nIHNvbWUgb2YgdGhlIGNvbW1hbmRzIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBpT1MgY29tbWFuZHMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lvcy9GYXN0bGFuZSZsdDsvY29kZSZndDsgZGlyZWN0b3J5LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZGVzYyAmcXVvdDtEZXBsb3kgYSBuZXcgYnVpbGQgdG8gVGVzdGZsaWdodCZxdW90OwpsYW5lIDpiZXRhIGRvCiAgRGlyLmNoZGlyICZxdW90Oy4uLy4uJnF1b3Q7IGRvCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtwYWNrYWdlcyZxdW90OywgJnF1b3Q7Z2V0JnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7Y2xlYW4mcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtidWlsZCZxdW90OywgJnF1b3Q7aW9zJnF1b3Q7LCAmcXVvdDstLXJlbGVhc2UmcXVvdDssICZxdW90Oy0tbm8tY29kZXNpZ24mcXVvdDspCiAgZW5kCiAgYnVpbGRfaW9zX2FwcChzY2hlbWU6ICZxdW90O015QXBwJnF1b3Q7KQogIHVwbG9hZF90b190ZXN0ZmxpZ2h0CmVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhcHAgaXMgYnVpbHQgdHdpY2UuIFRoZSBmaXJzdCBidWlsZCBidWlsZHMgYWdhaW5zdCB0aGUgbGF0ZXN0IEZsdXR0ZXIgdG9vbGNoYWluLCB3aGlsZSB0aGUgc2Vjb25kIGJ1aWxkIGJ1aWxkcyB0aGUgYWN0dWFsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5pcGEmbHQ7L2NvZGUmZ3Q7IGZpbGUgdGhhdCB3aWxsIGJlIHVwbG9hZGVkIHRvIFRlc3RmbGlnaHQuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O05vdywgd2l0aCBDaXJjbGVDSSZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gcGxhY2UsIGl04oCZcyB0aW1lIHRvIGdldCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB3cml0dGVuIHNvIHRoYXQgYSBwdXNoIHRvIGEgYnJhbmNoIGlzIHRyYW5zbGF0ZWQgdG8gYSBuZXcgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7aU9TJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0ZvciBkZXBsb3lpbmcgd2l0aCBpT1MsIENpcmNsZUNJIGFscmVhZHkgaGFzIGRvY3MgdG8gY292ZXIgdGhpcyEgU3RlcHMgZm9yIHNldHRpbmcgdXAgRmFzdGxhbmUgZGVwbG95bWVudCB3aXRoIEZsdXR0ZXIgaXMgc2ltaWxhciB0byB0aGUgc3RlcHMgb3V0bGluZWQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvaW9zLWNvZGVzaWduaW5nLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OyBhbmQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZGVwbG95aW5nLWlvcy8jYXBwLXN0b3JlLWNvbm5lY3QmcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0FuZHJvaWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7V2hlbiBpdCBjb21lcyB0byB0aGUgRG9ja2VyIGltYWdlIHRvIHBpY2ssIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gRWl0aGVyIHlvdSBjYW4gYnVpbGQgYW5kIHB1c2ggdGhlIERvY2tlciBpbWFnZSB1c2VkIGJ5IHRoZSBGbHV0dGVyIHByb2plY3QgZm91bmQgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2Jsb2IvbWFzdGVyL2Rldi9jaS9kb2NrZXJfbGludXgvRG9ja2VyZmlsZSZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oywgb3IgeW91IGNhbiBwdWxsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dtZW1zdHIvZmx1dHRlci1mYXN0bGFuZTpsYXRlc3QmbHQ7L2NvZGUmZ3Q7LCB3aGljaCBpcyBidWlsdCBvbiB0b3Agb2YgYW4gZXhpc3RpbmcgRmx1dHRlciBEb2NrZXIgaW1hZ2UgYW5kIGluc3RhbGxzIEZhc3RsYW5lIGFsb25nc2lkZSBpdCwgYXZvaWRpbmcgYWRkaXRpb25hbCBvdmVyaGVhZCBvZiBpbnN0YWxsaW5nIGl0IGR1cmluZyBydW50aW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28gZW5zdXJlIHRoYXQgdGhlIGVudmlvcm5tZW50IHZhcmlhYmxlcyBtZW50aW9uZWQgZWFybGllciBhcmUgYWRkZWQgdG8geW91ciBwcm9qZWN0LiBOYW1lbHk6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQTEFZX1NUT1JFX1VQTE9BRF9LRVkmbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtrZXkuamtzJmx0Oy9jb2RlJmd0OyBmaWxlJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7UExBWV9TVE9SRV9VUExPQURfS0VZX0lORk8mbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCBmaWxlIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIGFuZCBvdGhlciBpbmZvIHJlZ2FyZGluZyB0aGUgdXBsb2FkIHNpZ25pbmcga2V5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IC0gWW91ciBHb29nbGUgU2VydmljZSBBY2NvdW50IEpTT04gc3RyaW5nIGZvciBhdXRoZW50aWNhdGlvbiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtJbiB5b3VyIHByb2plY3RzIHJvb3QsIGFkZCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLCBhbmQgaW4gdGhhdCBmb2xkZXIgYWRkIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y2lyY2xlY2kueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLiBBZGQgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSBuZXdseSBjcmVhdGVkIGZpbGU6Jmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7JwogIAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgc25pcHBldCBhYm92ZSBkZWZpbmVzIGFuIGV4ZWN1dG9yIHdlIGNhbiByZXVzZSBsYXRlciBpbiBvdXIgY29uZmlndXJhdGlvbiB0aGFua3MgdG8gdGhlIHVzZSBvZiByZXVzYWJsZSBjb25maWd1cmF0aW9uIGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYnMmbHQ7L2EmZ3Q7IGluIENpcmNsZUNJIDIuMS4gSXQgYWxzbyBpbmNsdWRlcyBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBlbnN1cmUgSmF2YSBkb2VzbuKAmXQgY29uc3VtZSBhbGwgb2Ygb3VyIG1lbW9yeSB3aGlsZSBidWlsZGluZyB0aGUgYXBwLiBOZXh0LCB3ZeKAmWxsIGRlZmluZSB0aGUgam9iIHdlIHdhbnQgdG8gcnVuIHRoZSBjb21tYW5kcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2pvYnM6CiAgYmV0YV9kZXBsb3k6CiAgICBleGVjdXRvcjogYW5kcm9pZC1mbHV0dGVyCiAgICBzdGVwczoKICAgICAgLSBjaGVja291dAogICAgICAtIHJ1bjogZWNobyAmcXVvdDskUExBWV9TVE9SRV9VUExPQURfS0VZJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGtleS5qa3MKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWV9JTkZPJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGFuZHJvaWQva2V5LnByb3BlcnRpZXMKICAgICAgLSBydW46IGNkIGFuZHJvaWQgJmFtcDthbXA7JmFtcDthbXA7IGZhc3RsYW5lIGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgd2XigJlsbCBkZWZpbmUgb3VyIHdvcmtmbG93IHdoaWNoIHdpbGwgb25seSBydW4gdGhlIGpvYiB3aGVuIHRoZSBuZXcgY29kZSBpcyBwdXNoZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2JldGEmbHQ7L2NvZGUmZ3Q7IGJyYW5jaC4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3dvcmtmbG93czoKICBkZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGJldGFfZGVwbG95OgogICAgICAgICAgZmlsdGVyczoKICAgICAgICAgICAgYnJhbmNoZXM6CiAgICAgICAgICAgICAgb25seTogYmV0YQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7Jwpqb2JzOgogIGJldGFfZGVwbG95OgogICAgZXhlY3V0b3I6IGFuZHJvaWQtZmx1dHRlcgogICAgc3RlcHM6CiAgICAgIC0gY2hlY2tvdXQKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWSZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBrZXkuamtzCiAgICAgIC0gcnVuOiBlY2hvICZxdW90OyRQTEFZX1NUT1JFX1VQTE9BRF9LRVlfSU5GTyZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBhbmRyb2lkL2tleS5wcm9wZXJ0aWVzCiAgICAgIC0gcnVuOiBjZCBhbmRyb2lkICZhbXA7YW1wOyZhbXA7YW1wOyBmYXN0bGFuZSBiZXRhCgp3b3JrZmxvd3M6CiAgZGVwbG95OgogICAgam9iczoKICAgICAgLSBiZXRhX2RlcGxveToKICAgICAgICAgIGZpbHRlcnM6CiAgICAgICAgICAgIGJyYW5jaGVzOgogICAgICAgICAgICAgIG9ubHk6IGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvcHJvamVjdHMvJnF1b3Q7Jmd0O1NldCB1cCB5b3VyIHByb2plY3Qgb24gQ2lyY2xlQ0kmbHQ7L2EmZ3Q7LiBPbmNlIHlvdSBjbGljayAmbHQ7c3Ryb25nJmd0O1NldCBVcCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7LCB5b3Ugd2lsbCBiZSBicm91Z2h0IHRvIGEgdGV4dCBlZGl0b3IgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBjb3B5IGluIHRoZSBjb25maWcgZnJvbSBhYm92ZS4gQ2xpY2sgJmx0O3N0cm9uZyZndDtTdGFydCBCdWlsZGluZyZsdDsvc3Ryb25nJmd0Oy4gTm93IGV2ZXJ5IG5ldyBjb21taXQgdG8gdGhlIGJldGEgYnJhbmNoIHdpbGwgcmVzdWx0IGluIGEgZGVwbG95LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIGFuIEV4cHJlc3MgR3JhcGhRTCBzZXJ2ZXIgdG8gSGVyb2t1PC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1hbi1leHByZXNzLWdyYXBocWwtc2VydmVyLXRvLWhlcm9rdS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VHVlLCAyOCBBcHIgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtYW4tZXhwcmVzcy1ncmFwaHFsLXNlcnZlci10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dyYXBocWwub3JnLyZxdW90OyZndDtHcmFwaFFMJmx0Oy9hJmd0OyBjb250aW51ZXMgdG8gZ3JvdyBpbiBwb3B1bGFyaXR5IHdpdGggZWFjaCBwYXNzaW5nIGRheSwgc2luY2UgaXRzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9lbmdpbmVlcmluZy5mYi5jb20vY29yZS1kYXRhL2dyYXBocWwtYS1kYXRhLXF1ZXJ5LWxhbmd1YWdlLyZxdW90OyZndDtwdWJsaWMgcmVsZWFzZSBieSBGYWNlYm9vayZsdDsvYSZndDsgaW4gMjAxNS4gVGhlIHRlY2hub2xvZ3kgZW5hYmxlcyBmcm9udCBlbmQgY2xpZW50cyB0byBxdWVyeSBleGFjdGx5IHdoYXQgdGhleSBuZWVkIGZyb20gdGhlIGJhY2tlbmQsIGFuZCBpcyBnYWluaW5nIHdpZGUgcmVjb2duaXRpb24gYW5kIGFkb3B0aW9uIGJ5IHJlcHV0YWJsZSBjb21wYW5pZXMgc3VjaCBhcyBQaW50ZXJlc3QsIENvdXJzZXJhLCBBaXJibmIsIGFuZCBGYWNlYm9vayBpdHNlbGYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBwb3N0LCB3ZSB3aWxsIGxlYXJuIGhvdyB0byBkZXBsb3kgYSBzaW1wbGUgR3JhcGhRTCBzZXJ2ZXIgd3JpdHRlbiBpbiBOb2RlLmpzIHRvIEhlcm9rdSB2aWEgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IChDSSkgcGlwZWxpbmUgdXNpbmcgQ2lyY2xlQ0kuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1ByZXJlcXVpc2l0ZXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUbyBmb2xsb3cgYWxvbmcgd2l0aCB0aGlzIHBvc3QsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhbHJlYWR5IHNldCB1cDombHQ7L3AmZ3Q7CiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL25vZGVqcy5vcmcvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlIC12Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsIHRvIHByaW50IG91dCB5b3VyIHZlcnNpb24gb2YgTm9kZS5qcyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdC1zY20uY29tLyZxdW90OyZndDtHaXQmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnaXQmbHQ7L2NvZGUmZ3Q7IG9uIHlvdXIgdGVybWluYWw7IHRoaXMgc2hvdWxkIHByaW50IG91dCBhdmFpbGFibGUgZ2l0IGNvbW1hbmRzKSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5oZXJva3UuY29tLyZxdW90OyZndDtIZXJva3UmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tLyZxdW90OyZndDtHaXRIdWImbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vc2lnbnVwLyZxdW90OyZndDtDaXJjbGVDSSZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDsjI1NjYWZmb2xkaW5nIHRoZSBHcmFwaFFMIHNlcnZlciBwcm9qZWN0ClRvIGJlZ2luIHNldHRpbmcgdXAgYSBHcmFwaFFMIHNlcnZlciwgY3JlYXRlIGEgbmV3IGZvbGRlciBmb3IgdGhlIHByb2plY3QgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtta2RpciBncmFwaHFsLXRlc3Qtc2VydmVyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7Tm93IGdvIGludG8gdGhlIHJvb3Qgb2YgdGhlIGZvbGRlciBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBzY2FmZm9sZCBhIG5ldyBOb2RlLmpzIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5pdCAteQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDtwJmd0O1RoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsteSZsdDsvY29kZSZndDsgb3B0aW9uYWwgZmxhZyBhbGxvd3MgeW91IHRvIHNraXAgY29uZmlybWluZyB0aGUgZGVmYXVsdCBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwYWNrYWdlLmpzb24mbHQ7L2NvZGUmZ3Q7IGZpbGUgYW5kIGp1c3QgYWNjZXB0cyB0aGVtLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGFyZSBnb2luZyB0byBjcmVhdGUgYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2V4cHJlc3Nqcy5jb20vJnF1b3Q7Jmd0O0V4cHJlc3NKUyZsdDsvYSZndDsgTm9kZS5qcyBhcHBsaWNhdGlvbiBhbmQgYnVpbGQgdGhlIEdyYXBoUUwgc2VydmVyLiBUbyBkbyB0aGlzLCB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIGZvbGxvd2luZyBwYWNrYWdlczombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2V4cHJlc3MmbHQ7L2NvZGUmZ3Q7OiB0byBjcmVhdGUgb3VyIEV4cHJlc3NKUyBOb2RlLmpzIGFwcGxpY2F0aW9uJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z3JhcGhxbCZsdDsvY29kZSZndDs6IHRoZSBHcmFwaFFMIG5wbSBwYWNrYWdlIGZvciBOb2RlLmpzJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OzogRXhwcmVzc0pTIG1pZGRsZXdhcmUgZm9yIEdyYXBoUUwmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbCB0aGVzZSBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBpbnN0YWxsIC0tc2F2ZSBleHByZXNzIGdyYXBocWwgZXhwcmVzcy1ncmFwaHFsCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIHRoZSByZXF1aXJlZCBwYWNrYWdlcyB0byBzdGFydCBwdXR0aW5nIHRvZ2V0aGVyIG91ciBHcmFwaFFMIHNlcnZlci4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgdGhlIEdyYXBoUUwgc2NoZW1hJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7Q3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bWtkaXIgc3JjCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1dpdGhpbiB0aGlzIGZvbGRlciwgY3JlYXRlIGEgbmV3IGZpbGUgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEuanMmbHQ7L2NvZGUmZ3Q7IGFuZCBwYXN0ZSBpbiB0aGUgY29kZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Owpjb25zdCB7IGJ1aWxkU2NoZW1hIH0gPSByZXF1aXJlKCZxdW90O2dyYXBocWwmcXVvdDspOwoKY29uc3Qgc2NoZW1hID0gYnVpbGRTY2hlbWEoYAogICAgdHlwZSBRdWVyeSB7CiAgICAgICAgdXNlcnM6IFtVc2VyIV0hLAogICAgICAgIHVzZXIoaWQ6IEludCEpOiBVc2VyIQogICAgfQoKICAgIHR5cGUgTXV0YXRpb24gewogICAgICAgIGVkaXRVc2VyKGlkOiBJbnQhLCBuYW1lOiBTdHJpbmchLCBlbWFpbDogU3RyaW5nISk6IFVzZXIhCiAgICB9CgogICAgdHlwZSBVc2VyIHsKICAgICAgICBpZDogSUQhCiAgICAgICAgbmFtZTogU3RyaW5nIQogICAgICAgIGVtYWlsOiBTdHJpbmcKICAgICAgICBwb3N0czogW1Bvc3QhXQogICAgfQoKICAgIHR5cGUgUG9zdCB7CiAgICAgICAgaWQ6IElEIQogICAgICAgIHRpdGxlOiBTdHJpbmchCiAgICAgICAgcHVibGlzaGVkOiBCb29sZWFuIQogICAgICAgIGxpbms6IFN0cmluZwogICAgfQpgKTsKCm1vZHVsZS5leHBvcnRzID0gc2NoZW1hOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBhYm92ZSBjb2RlLCB3ZSBoYXZlIGNyZWF0ZWQgZm91ciB0eXBlcywgY29uc2lzdGluZyBvZiB0d28gYnVpbHQtaW4gdHlwZXMgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7KSBhbmQgdHdvIGN1c3RvbSB0eXBlcyAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXNlciZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1Bvc3QmbHQ7L2NvZGUmZ3Q7KS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWdpbm5pbmcgd2l0aCB0aGUgY3VzdG9tIHR5cGVzLCB3ZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmc6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VyJmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHVzZXIgaW4gdGhlIGFwcGxpY2F0aW9uIHdpdGggaXRzIHJlc3BlY3RpdmUgZmllbGRzIGFuZCBhIHJlbGF0aW9uYWwgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cG9zdHMmbHQ7L2NvZGUmZ3Q7IGZpZWxkLCB3aGljaCByZXR1cm5zIGFuIGFycmF5IG9mIHBvc3RzIGNyZWF0ZWQgYnkgdGhlIHVzZXImbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQb3N0Jmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHB1YmxpY2F0aW9uIGNyZWF0ZWQgYnkgYSB1c2VyIGluIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGl0cyByZXNwZWN0aXZlIGZpZWxkcyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OzogaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyB0eXBlLCB3ZSBkZWZpbmVkIHR3byBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgcXVlcmllZCBmcm9tIG91ciBHcmFwaFFMIHNlcnZlciBhcyBmb2xsb3dzOgogICAgJmx0O3VsJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlcnMmbHQ7L2NvZGUmZ3Q7OiBhbiBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VycyZsdDsvY29kZSZndDsmbHQ7L2xpJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlciZsdDsvY29kZSZndDs6IGEgc2luZ2xlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1VzZXImbHQ7L2NvZGUmZ3Q7IHdpdGggdGhlIHNwZWNpZmllZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgaW4gdGhlIGFyZ3VtZW50cyBsaXN0Jmx0Oy9saSZndDsKICAgICZsdDsvdWwmZ3Q7CiAgJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7OiBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7IHR5cGUsIHdlIGRlZmluZWQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VkaXRVc2VyJmx0Oy9jb2RlJmd0OyBtdXRhdGlvbiwgd2hpY2gsIGdpdmVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgb2YgdGhlIHVzZXIsIGNhbiBiZSBjYWxsZWQgdG8gZWRpdCBhIHVzZXIgYW5kIHRoZW4gdXBkYXRlIHRoZSBpbmZvcm1hdGlvbiAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bmFtZSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VtYWlsJmx0Oy9jb2RlJmd0OykmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhlIHNjaGVtYSBpcyBjcmVhdGVkIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZFNjaGVtYSZsdDsvY29kZSZndDsgb2YgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dyYXBocWwmbHQ7L2NvZGUmZ3Q7IHBhY2thZ2UgYW5kIGV4cG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O01vY2tpbmcgZGF0YSZsdDsvaDImZ3Q7CiZsdDtwJmd0O0luIG9yZGVyIHRvIGhhdmUgcmVzdWx0cyBmb3Igb3VyIHF1ZXJpZXMsIHdlIG5lZWQgZGF0YS4gRm9yIHRoaXMgZXhlcmNpc2UsIHdlIHdpbGwgYmUgdXNpbmcgTW9uZ29EQi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIb3dldmVyLCBzaW5jZSB0aGUgZ29hbCBvZiB0aGlzIHBvc3QgaXMgdG8gZGVtb25zdHJhdGUgZGVwbG95aW5nIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyLCB3ZSB3b27igJl0IGJvdGhlciB3aXRoIHNldHRpbmcgdXAgYSBNb25nb0RCIHNlcnZlci4gSW5zdGVhZCwgd2Ugd2lsbCAgdXNlIGEgbW9ja2VkIHZlcnNpb24gdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O21vbmdvZGItbWVtb3J5LXNlcnZlciZsdDsvY29kZSZndDsuIFRoaXMgcGFja2FnZSBhbGxvd3MgdXMgdG8gY3JlYXRlIGFuZCB1c2UgYW4gaW4tbWVtb3J5IE1vbmdvREIgZGF0YWJhc2Ugc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHNldCB0aGlzIHVwLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhdCB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5zdGFsbCAtLXNhdmUgbW9uZ29kYiBtb25nb2RiLW1lbW9yeS1zZXJ2ZXIKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwombHQ7cCZndDtUaGlzIGluc3RhbGxhdGlvbiBtaWdodCB0YWtlIGEgd2hpbGUsIGRlcGVuZGluZyBvbiB5b3VyIGRvd25sb2FkIHNwZWVkLiBNb25nb0RCIHdhcyBhdCBsZWFzdCA2NiBtZWdhYnl0ZXMgaW4gc2l6ZSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhLmpzJmx0Oy9jb2RlJmd0OyBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3JjJmx0Oy9jb2RlJmd0OyBmb2xkZXIuIFRoaXMgZmlsZSB3aWxsIGV4cG9ydCBhbiBhcnJheSBvZiBoYXJkLWNvZGVkIHVzZXIgZGF0YS4gUGFzdGUgdGhlIGZvbGxvd2luZyBjb2RlIGJlbG93IGludG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBVc2VycyA9IFsKICB7CiAgICBpZDogMSwKICAgIG5hbWU6ICZxdW90O0Zpa2F5byBBZGVwb2p1JnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2ZpazRjaHJpc3RAeWFob28uY29tJnF1b3Q7LAogICAgcG9zdHM6IFsKICAgICAgewogICAgICAgIGlkOiAxLAogICAgICAgIHRpdGxlOiAmcXVvdDtDcmVhdGluZyBhbiBFbW9qaSBHYW1lIHdpdGggVnVlLCBBdXRoMCwgYW5kIEdvb2dsZSBWaXNpb24gQVBJJnF1b3Q7LAogICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSwKICAgICAgICBsaW5rOgogICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hdXRoMC5jb20vYmxvZy9jcmVhdGluZy1hbi1lbW9qaS1nYW1lLXdpdGgtdnVlLWF1dGgwLWFuZC1nb29nbGUtdmlzaW9uLWFwaS8mcXVvdDssCiAgICAgICAgYXV0aG9yOiAxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBpZDogMiwKICAgICAgICB0aXRsZTogJnF1b3Q7RWxlY3Ryb24gVHV0b3JpYWw6IEJ1aWxkaW5nIE1vZGVybiBEZXNrdG9wIEFwcHMgd2l0aCBWdWUuanMmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2F1dGgwLmNvbS9ibG9nL2VsZWN0cm9uLXR1dG9yaWFsLWJ1aWxkaW5nLW1vZGVybi1kZXNrdG9wLWFwcHMtd2l0aC12dWUtanMvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDMsCiAgICAgICAgdGl0bGU6ICZxdW90O1N0YXRlIE1hbmFnZW1lbnQgd2l0aCBWdWV4OiBhIFByYWN0aWNhbCBUdXRvcmlhbCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazoKICAgICAgICAgICZxdW90O2h0dHBzOi8vYXV0aDAuY29tL2Jsb2cvc3RhdGUtbWFuYWdlbWVudC13aXRoLXZ1ZXgtYS1wcmFjdGljYWwtdHV0b3JpYWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMiwKICAgIG5hbWU6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2pvaG5AY29tcGFueS5jb20mcXVvdDssCiAgICBwb3N0czogWwogICAgICB7CiAgICAgICAgaWQ6IDQsCiAgICAgICAgdGl0bGU6ICZxdW90O0J1aWxkIGEgQ0kgcG93ZXJlZCBSRVNUZnVsIEFQSSB3aXRoIExhcmF2ZWwmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2J1aWxkLWEtY2ktcG93ZXJlZC1yZXN0ZnVsLWFwaS13aXRoLWxhcmF2ZWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDUsCiAgICAgICAgdGl0bGU6ICZxdW90O0F1dG9tYXRlIHlvdXIgTnV4dC5qcyBhcHAgZGVwbG95bWVudCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazogJnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hdXRvbWF0ZS15b3VyLW51eHQtanMtYXBwLWRlcGxveW1lbnQvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMywKICAgIG5hbWU6ICZxdW90O0phbmUgUGF1bCZxdW90OywKICAgIGVtYWlsOiAmcXVvdDtqYW5lQGNvbXBhbnkuY29tJnF1b3Q7LAogICAgcG9zdHM6IFtdCiAgfQpdOwoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgVXNlcnMKfTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBjb2RlIGFib3ZlLCB3ZSBoYXZlIGFuIGFycmF5IG9mIHVzZXIgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgcG9zdHMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIHNlZWQgb3VyIGluLW1lbW9yeSBkYXRhYmFzZSBvbmNlIGl0IGlzIGluc3RhbnRpYXRlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCB0YXNrIGlzIHRvIHNldCB1cCBvdXIgbW9jayBNb25nb0RCIGRhdGFiYXNlIHNlcnZlci4gSW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhYmFzZS5qcyZsdDsvY29kZSZndDsgYW5kIGluc2VydCB0aGUgZm9sbG93aW5nIGNvZGUgaW50byB0aGUgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O01vbmdvTWVtb3J5U2VydmVyJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtyZXF1aXJlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtzMiZxdW90OyZndDsmcXVvdDttb25nb2RiLW1lbW9yeS1zZXJ2ZXImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O21vbmdvZGImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtjb25zdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bm8mcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90Oy4vZGF0YSZxdW90OyZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0Oyk7Jmx0Oy9zcGFuJmd0OwoKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7bGV0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDtudWxsJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXN5bmMmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7ZnVuY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25mJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoKSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDt7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7bmV3Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtNb25nb01lbW9yeVNlcnZlciZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygpOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtubyZxdW90OyZndDttb25nb0RCVVJMJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXdhaXQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7LiZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtnZXRDb25uZWN0aW9uU3RyaW5nJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3QmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvREJVUkwmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDssJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7CiAgICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDt1c2VOZXdVcmxQYXJzZXImbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs6Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDt0cnVlJmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSk7Jmx0Oy9zcGFuJmd0OwoKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtjMSZxdW90OyZndDsvL1NlZWQgRGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7CiAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtpZiZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7ISZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OykmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsKICAgICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RhdGFiYXNlJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RiJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbGxlY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O3VzZXJzJnF1b3Q7Jmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7aW5zZXJ0TWFueSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7VXNlcnMmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7CgogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7cmV0dXJuJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OzsmbHQ7L3NwYW4mZ3Q7CiZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vZHVsZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZXhwb3J0cyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtzdGFydERhdGFiYXNlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGNvZGUgYWJvdmUsIHdlIGV4cG9ydCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L2NvZGUmZ3Q7IGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBzdGFydHMgYSBuZXcgKG1vY2tlZCkgTW9uZ29EQiBzZXJ2ZXIgaW5zdGFuY2UgYW5kIGdldHMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuIEl0IHRoZW4gY3JlYXRlcyBhIG5ldyBNb25nb0RCIGNsaWVudCBjb25uZWN0aW9uIHVzaW5nIHRoZSBjb25uZWN0aW9uIHN0cmluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwgd2Ugc2VlZCBpdCB3aXRoIG91ciB1c2VyIGRhdGEgZXhwb3J0ZWQgZnJvbSBvdXIgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZGF0YS5qcyZsdDsvY29kZSZndDsgZmlsZS4gQSBjaGVjayBpcyBtYWRlIHRvIHNlZSBpZiB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIGlzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O251bGwmbHQ7L2NvZGUmZ3Q7IGJlZm9yZSBzZWVkaW5nIGl0IHdpdGggZGF0YSwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBmcm9tIGJlaW5nIGVudGVyZWQgaW50byB0aGUgZGF0YWJhc2UgZWFjaCB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdXAuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGRhdGFiYXNlIHJlZmVyZW5jZS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgb3VyIHJlc29sdmVycyZsdDsvaDImZ3Q7CiZsdDtwJmd0O05leHQgdXAsIHdlIG5lZWQgdG8gZGVmaW5lIHJlc29sdmVycyBmb3Igb3VyIEdyYXBoUUwgcXVlcmllcyBpbiBvcmRlciB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGRhdGEgZm9yIGVhY2ggcXVlcnkgb3BlcmF0aW9uLiBXZSB3aWxsIGRlZmluZSByZXNvbHZlcnMgZm9yIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt1c2VycyZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3VzZXImbHQ7L2NvZGUmZ3Q7IHF1ZXJpZXMgYW5kIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtlZGl0VXNlciZsdDsvY29kZSZndDsgbXV0YXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Jlc29sdmVycy5qcyZsdDsvY29kZSZndDsgYW5kIHBhc3RlIGluIHRoZSBmb2xsb3dpbmcgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IHJlc29sdmVycyA9IHsKICB1c2VyczogYXN5bmMgKF8sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIKICAgICAgLmNvbGxlY3Rpb24oJnF1b3Q7dXNlcnMmcXVvdDspCiAgICAgIC5maW5kKCkKICAgICAgLnRvQXJyYXkoKTsKICB9LAogIHVzZXI6IGFzeW5jICh7IGlkIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIuY29sbGVjdGlvbigmcXVvdDt1c2VycyZxdW90OykuZmluZE9uZSh7IGlkIH0pOwogIH0sCiAgLy9NdXRhdGlvbiByZXNvbHZlcnMKICBlZGl0VXNlcjogYXN5bmMgKHsgaWQsIG5hbWUsIGVtYWlsIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CgogICAgcmV0dXJuIGRiCiAgICAgIC5jb2xsZWN0aW9uKCZxdW90O3VzZXJzJnF1b3Q7KQogICAgICAuZmluZE9uZUFuZFVwZGF0ZSgKICAgICAgICB7IGlkIH0sCiAgICAgICAgeyAkc2V0OiB7IG5hbWUsIGVtYWlsIH0gfSwKICAgICAgICB7IHJldHVybk9yaWdpbmFsOiBmYWxzZSB9CiAgICAgICkKICAgICAgLnRoZW4ocmVzcCA9JmFtcDtndDsgcmVzcC52YWx1ZSk7CiAgfSAKfTsKCm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZXJzOwoKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgc2VlbiBhYm92ZSwgd2Ugbm93IGhhdmUgcmVzb2x2ZXJzIGZvciB0aGUgdGhyZWUgR3JhcGhRTCByZXF1ZXN0cyBhdmFpbGFibGUgb24gb3VyIHNlcnZlci4gVGhlc2UgcmVzb2x2ZXJzIGZldGNoIGFuZCB1cGRhdGUgZGF0YSB1c2luZyB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIHdlIGNyZWF0ZWQgZWFybGllciBieSByZWZlcmVuY2luZyBpdCBmcm9tIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb250ZXh0Jmx0Oy9jb2RlJmd0OyBvYmplY3Qgb2YgdGhlIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgcmVmZXJlbmNlIHdpbGwgYmUgYWRkZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbnRleHQmbHQ7L2NvZGUmZ3Q7IG9iamVjdCBvZiBvdXIgR3JhcGhRTCBzZXJ2ZXIgc2V0dXAgaW4gdGhlIG5leHQgc2VjdGlvbiB3aGVuIHdlIHB1dCBldmVyeXRoaW5nIHRvZ2V0aGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTZXR0aW5nIHVwIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O0l0IGlzIHRpbWUgdG8gcHV0IGV2ZXJ5IGNvbXBvbmVudCB3ZSBidWlsdCB0b2dldGhlciB0byBzZXQgdXAgb3VyIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlZm9yZSB3ZSBiZWdpbiwgd2UgbmVlZCB0byBpbnN0YWxsIG9uZSBtb3JlIHBhY2thZ2UuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIGNvbWVzIHdpdGggdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0dyYXBoaVFMJmx0Oy9jb2RlJmd0OyBhcHBsaWNhdGlvbiwgd2hpY2ggYWxsb3dzIHlvdSB0byBxdWVyeSB5b3VyIEdyYXBoUUwgZW5kcG9pbnQsIGJ1dCBsZXTigJlzIGFkZCBhIHRvb2wgdGhhdCBpcyBtb3JlIHJvYnVzdC4gV2Ugd2lsbCBpbnN0YWxsIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIHRvIGdpdmUgdXMgYSBmYW5jaWVyIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgb3VyIEdyYXBoUUwgZW5kcG9pbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSBmb2xsb3dpbmcgY29kZSB0byBpbnN0YWxsIHRoZSBwYWNrYWdlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGluc3RhbGwgLS1zYXZlIGdyYXBocWwtcGxheWdyb3VuZC1taWRkbGV3YXJlLWV4cHJlc3MKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7V2Ugd2lsbCB1c2UgdGhpcyBtaWRkbGV3YXJlIHRvIHNldCB1cCB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kIGZvciBxdWVyeWluZyBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0xldOKAmXMgc2V0IHVwIG91ciBzZXJ2ZXIgYnkgY3JlYXRpbmcgYSBmaWxlIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2luZGV4LmpzJmx0Oy9jb2RlJmd0OyBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBhbmQgcGxhY2luZyB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBleHByZXNzID0gcmVxdWlyZSgmcXVvdDtleHByZXNzJnF1b3Q7KTsKY29uc3QgZ3JhcGhxbEhUVFAgPSByZXF1aXJlKCZxdW90O2V4cHJlc3MtZ3JhcGhxbCZxdW90Oyk7CmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoJnF1b3Q7Li9zcmMvc2NoZW1hJnF1b3Q7KTsKY29uc3QgcmVzb2x2ZXJzID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9yZXNvbHZlcnMmcXVvdDspOwpjb25zdCBzdGFydERhdGFiYXNlID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9kYXRhYmFzZSZxdW90Oyk7CmNvbnN0IGV4cHJlc3NQbGF5Z3JvdW5kID0gcmVxdWlyZSgmcXVvdDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJnF1b3Q7KS5kZWZhdWx0OwoKLy8gQ3JlYXRlIGEgY29udGV4dCBmb3IgaG9sZGluZyBjb250ZXh0dWFsIGRhdGEgCmNvbnN0IGNvbnRleHQgPSBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IGRiID0gYXdhaXQgc3RhcnREYXRhYmFzZSgpOwoKICByZXR1cm4geyBkYiB9Owp9OwoKY29uc3QgYXBwID0gZXhwcmVzcygpOwoKYXBwLnVzZSgKICAmcXVvdDsvZ3JhcGhxbCZxdW90OywKICBncmFwaHFsSFRUUCh7CiAgICBzY2hlbWEsCiAgICByb290VmFsdWU6IHJlc29sdmVycywKICAgIGNvbnRleHQKICB9KQopOwoKLy9HcmFwaHFsIFBsYXlncm91bmQgcm91dGUKYXBwLmdldCgmcXVvdDsvcGxheWdyb3VuZCZxdW90OywgZXhwcmVzc1BsYXlncm91bmQoeyBlbmRwb2ludDogJnF1b3Q7L2dyYXBocWwmcXVvdDsgfSkpOwoKY29uc3QgcG9ydCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgJnF1b3Q7NDAwMCZxdW90OzsKCmFwcC5saXN0ZW4ocG9ydCk7Cgpjb25zb2xlLmxvZyhg8J+agCBTZXJ2ZXIgcmVhZHkgYXQgaHR0cDovL2xvY2FsaG9zdDo0MDAwL2dyYXBocWxgKTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBmaWxlIGFib3ZlLCB3ZSBzdGFydCBieSBpbXBvcnRpbmcgYWxsIG5lY2Vzc2FyeSBtb2R1bGVzLiBUaGVuLCB3ZSBjcmVhdGUgb3VyIEdyYXBoUUwgY29udGV4dCBhbmQgcmV0dXJuIGFuIG9iamVjdCBmcm9tIGl0IGNvbnRhaW5pbmcgdGhlIHJlZmVyZW5jZSB0byBvdXIgTW9uZ29EQiBpbnN0YW5jZS4gTmV4dCwgd2UgY3JlYXRlIG91ciBFeHByZXNzSlMgYXBwbGljYXRpb24gYW5kIHNldCB1cCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OyBtaWRkbGV3YXJlIHdpdGggR3JhcGhRTCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEmbHQ7L2NvZGUmZ3Q7LCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtyZXNvbHZlcnMmbHQ7L2NvZGUmZ3Q7LCBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29udGV4dCZsdDsvY29kZSZndDsuIFdlIHRoZW4gc2V0IHVwIHRoZSBHcmFwaFFMIFBsYXlncm91bmQgYXQgdGhlIHJvdXRlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBsb2FkIG91ciBHcmFwaFFMIGVuZHBvaW50LiBGaW5hbGx5LCB3ZSBzdGFydCBvdXIgRXhwcmVzc0pTIHNlcnZlciB0byBsaXN0ZW4gYXQgcG9ydCA0MDAwIGFuZCBwcmludCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1F1ZXJ5aW5nIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O05vdyB0aGF0IHdlIGhhdmUgb3VyIHNlcnZlciBzZXQgdXAsIGxldOKAmXMgdGFrZSBpdCBmb3IgYSBzcGluLiBGaXJzdCwgbGV04oCZcyBjcmVhdGUgYSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzdGFydCZsdDsvY29kZSZndDsgc2NyaXB0IGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3BhY2thZ2UuanNvbiZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHNjcmlwdCB0byB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2NyaXB0cyZsdDsvY29kZSZndDsgc2VjdGlvbiBvZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Li4uCgrigJxzY3JpcHRz4oCdIDogewoJLi4uLAoJ4oCcc3RhcnTigJ0gOiDigJxub2RlIGluZGV4Lmpz4oCdCn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25wbSBzdGFydCZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCB0aGUgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNlcnZlciBpcyB1cCBhbmQgcnVubmluZywgb3BlbiB1cCB5b3VyIGJyb3dzZXIgYW5kIHZpc2l0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMC9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBvcGVuIHVwIHRoZSBwbGF5Z3JvdW5kLiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDEucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgcGxheWdyb3VuZCBhdXRvbWF0aWNhbGx5IHBvaW50cyB0byBvdXIgR3JhcGhRTCBlbmRwb2ludC4gRnJvbSBoZXJlIHdlIGNhbiB3cml0ZSBxdWVyaWVzIGFnYWluc3Qgb3VyIGVuZHBvaW50IGFuZCBnZXQgdGhlIHJlc3VsdHMuIFBhc3RlIHRoZSBxdWVyeSBiZWxvdyBpbnRvIHRoZSBxdWVyeSBzZWN0aW9uIG9mIHRoZSBwbGF5Z3JvdW5kIGFuZCBoaXQgUGxheSB0byBydW4gaXQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt7CiAgdXNlcnMgewogICAgbmFtZQogICAgZW1haWwKICAgIHBvc3RzIHsKICAgICAgdGl0bGUKICAgICAgcHVibGlzaGVkCiAgICB9CiAgfQp9CgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtSdW5uaW5nIHRoZSBhYm92ZSBxdWVyeSB3aWxsIHByb2R1Y2UgdGhlIHJlc3VsdCBzaG93biBvbiB0aGUgc2NyZWVuIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsMi5wbmcmcXVvdDsgd2lkdGg9JnF1b3Q7ODc1JnF1b3Q7IC8mZ3Q7CiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIHNlZW4gYWJvdmUsIG91ciBHcmFwaFFMIHNlcnZlciBpcyB3b3JraW5nIGZpbmUgYW5kIHJldHVybmluZyB0aGUgZXhwZWN0ZWQgZGF0YS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRvIEhlcm9rdSB3aXRoIENpcmNsZUNJJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7T3VyIGZpbmFsIHRhc2sgaXMgdG8gZGVwbG95IG91ciBHcmFwaFFMIHNlcnZlciB0aHJvdWdoIGEgQ0kgcGlwZWxpbmUgd2l0aCBDaXJjbGVDSSBvbiB0aGUgSGVyb2t1IGhvc3RpbmcgcGxhdGZvcm0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2UgYXJlIGdvaW5nIHRvIHRha2UgdGhlIGZvbGxvd2luZyBzdGVwcyB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7UHVzaCB0aGUgcHJvamVjdCB0byBhIEdpdEh1YiByZXBvc2l0b3J5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgbmV3IEhlcm9rdSBhcHAgYW5kIGdldCB0aGUgSGVyb2t1IEFQSSBrZXkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgYSBuZXcgcHJvamVjdCB0byBvdXIgQ2lyY2xlQ0kgYWNjb3VudCBhbmQgY29ubmVjdCBpdCB0byB0aGUgR2l0SHViIHJlcG8mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgb3VyIEhlcm9rdSBhcHAgbmFtZSBhbmQgQVBJIGtleSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gb3VyIG5ldyBwcm9qZWN0Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7V3JpdGUgb3VyIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgZGVwbG95bWVudCB0byBIZXJva3UmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIHRoZSBjb25maWd1cmF0aW9uIHRvIG91ciBHaXRIdWIgcmVwbyB0byBkZXBsb3kgdG8gSGVyb2t1Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0xldOKAmXMgYmVnaW4uIEZpcnN0LCBwdXNoIHRoZSBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG8uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY3JlYXRlIGEgSGVyb2t1IGFwcGxpY2F0aW9uIGFzIHNob3duIGJlbG93LiBUaGUgbmFtZSB5b3UgZW50ZXIgaXMgdGhlIG5hbWUgeW91IHdpbGwgc2F2ZSBhcyB5b3VyIEhlcm9rdSBhcHAgbmFtZSBvbiBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWwzLnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7WW91IGNhbiBnZXQgeW91ciBIZXJva3UgQVBJIGtleSBieSBnb2luZyB0byAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgYW5kIHNjcm9sbGluZyBkb3duIHRvIHRoZSAmbHQ7c3Ryb25nJmd0O0FQSSBLZXkmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIHRvIGRlcGxveWluZyBvdXIgYXBwbGljYXRpb24gdG8gSGVyb2t1IGlzIHRvIGNvbm5lY3QgdGhlIGFwcGxpY2F0aW9uIG9uIG91ciBHaXRIdWIgcmVwb3NpdG9yeSB0byBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIZWFkIHRvIHlvdXIgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9kYXNoYm9hcmQmcXVvdDsmZ3Q7Q2lyY2xlQ0kgZGFzaGJvYXJkJmx0Oy9hJmd0OyBhbmQgYWRkIHRoZSBwcm9qZWN0IGluIHRoZSAmbHQ7c3Ryb25nJmd0O0FkZCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7IHNlY3Rpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsNC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCAoaW4gdGhpcyBjYXNlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NpbXBsZS1ncmFwaHFsLW5vZGUtc2VydmVyJmx0Oy9jb2RlJmd0OyksIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0IFVwIFByb2plY3QmbHQ7L3N0cm9uZyZndDsuIFRoaXMgd2lsbCBicmluZyB5b3UgdG8gYSBwYWdlIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDUucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IGJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIHByb2plY3QuIFRoaXMgd2lsbCBpbW1lZGlhdGVseSBnaXZlIHVzIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCBhIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIHByb2plY3QuIFRoaXMgaXMgdW5kZXJzdGFuZGFibGUsIGFzIHdlIGFyZSB5ZXQgdG8gaW5jbHVkZSBvdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlLiBXZSB3aWxsIGJlIGRvaW5nIHRoYXQgbGF0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIG5leHQgc3RlcCBpcyB0byBhZGQgb3VyIEhlcm9rdSBkZXRhaWxzIGFzICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wL2Vudi12YXJzLyZxdW90OyZndDtlbnZpcm9ubWVudCB2YXJpYWJsZXMmbHQ7L2EmZ3Q7IHRvIHRoZSBuZXdseSBzZXQgdXAgcHJvamVjdC4KSW4gb3JkZXIgdG8gcHVzaCBvdXIgcHJvamVjdCB0byBIZXJva3UgZnJvbSBDaXJjbGVDSSwgd2UgbmVlZCB0byBjb25maWd1cmUgYW4gYXV0aGVudGljYXRlZCBoYW5kc2hha2UgYmV0d2VlbiBDaXJjbGVDSSBhbmQgSGVyb2t1LiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcgdHdvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgc2V0dGluZ3MgZm9yIHlvdXIgQ2lyY2xlQ0kgcHJvamVjdC4gVGhlIHR3byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtIRVJPS1VfQVBQX05BTUUmbHQ7L2NvZGUmZ3Q7OiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIChpbiB0aGlzIGNhc2UgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2ltcGxlLWdyYXBocWwtbm9kZS1zZXJ2ZXImbHQ7L2NvZGUmZ3Q7KSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OzogWW91ciBIZXJva3UgYWNjb3VudCBBUEkga2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBvbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50Jmx0Oy9zdHJvbmcmZ3Q7IHRhYiBvZiB5b3VyIEhlcm9rdSBhY2NvdW50IHVuZGVyICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VG8gYWRkIHRoZXNlIGRldGFpbHMsIGhlYWQgb3ZlciB0byB5b3VyIENpcmNsZUNJIGRhc2hib2FyZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBmb3IgeW91ciBwcm9qZWN0LiBPbiB0aGUgc2lkZWJhciBtZW51IG9uIHRoZSBzZXR0aW5ncyBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O0Vudmlyb25tZW50IFZhcmlhYmxlcyZsdDsvc3Ryb25nJmd0OyB1bmRlciAmbHQ7c3Ryb25nJmd0O0J1aWxkIFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDYucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIHBhZ2UsIGNyZWF0ZSB0d28gdmFyaWFibGVzIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OyBhbmQgYWRkIHRoZSByZXNwZWN0aXZlIHZhbHVlcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZXNlIGluIHBsYWNlLCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBjYW4gdXNlIHRoZW0gdG8gbWFrZSBhdXRoZW50aWNhdGVkIGRlcGxveW1lbnRzIHRvIHRoZSBIZXJva3UgcGxhdGZvcm0uCk5vdywgbGV04oCZcyB3cml0ZSBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyIHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtDcmVhdGUgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsuY2lyY2xlY2kmbHQ7L2NvZGUmZ3Q7IGF0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCBhbmQgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgaXQuIEFkZCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uJmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpvcmJzOgogIGhlcm9rdTogY2lyY2xlY2kvaGVyb2t1QDAuMC4xMAp3b3JrZmxvd3M6CiAgaGVyb2t1X2RlcGxveToKICAgIGpvYnM6CiAgICAgIC0gaGVyb2t1L2RlcGxveS12aWEtZ2l0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7VGhlIGNvZGUgYWJvdmUgdXNlcyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7SGVyb2t1IG9yYiZsdDsvYSZndDsgdG8gcGVyZm9ybSBhIHNlYW1sZXNzIGRlcGxveW1lbnQgdG8gSGVyb2t1LiBBbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYiZsdDsvYSZndDsgaXMgYSByZXVzYWJsZSBwYWNrYWdlIG9mIGEgWUFNTCBjb25maWd1cmF0aW9uIHRoYXQgY29uZGVuc2VzIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoaXMgb25lIG1ha2VzIGl0IHZlcnkgZWFzeSB0byBkZXBsb3kgdG8gSGVyb2t1IHdpdGhvdXQgd3JpdGluZyBhIHNvcGhpc3RpY2F0ZWQgY29uZmlnIHlvdXJzZWxmLiZsdDsvcCZndDsKCiZsdDtwJmd0O1NhdmUgdGhpcyBmaWxlIGFuZCBwdXNoIHlvdXIgY2hhbmdlcyB0byB0aGUgR2l0SHViIHJlcG9zaXRvcnkuIFRoZW4gd2F0Y2ggeW91ciBDaXJjbGVDSSBkYXNoYm9hcmQgdHJpZ2dlciBhIGRlcGxveW1lbnQgYWZ0ZXIgdGhlIHN1Y2Nlc3NmdWwgcHVzaC4gWW91IHdpbGwgc2VlIGEgc3VjY2Vzc2Z1bCBkZXBsb3ltZW50IG9uIHlvdXIgZGFzaGJvYXJkIHNpbWlsYXIgdG8gdGhlIHNjcmVlbiBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWw3LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXdlc29tZSEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXTigJlzIG5vdyB2aXNpdCBvdXIgUGxheWdyb3VuZCBvbiB0aGUgbGl2ZSBhcHBsaWNhdGlvbiB0byBjb25maXJtIHRoYXQgb3VyIGRlcGxveW1lbnQgaXMgZmluZS4gVmlzaXQgdGhlIGxpbmsgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9ZT1VSX0hFUk9LVV9BUFBfTkFNRS5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7LiBGb3Igb3VyIGV4ZXJjaXNlLCB0aGlzIHdpbGwgYmUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9zaW1wbGUtZ3JhcGhxbC1ub2RlLXNlcnZlci5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7IGFzIHNlZW4gYmVsb3cuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsOC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SW4gdGhpcyBhcnRpY2xlLCB3ZSBoYXZlIGJlZW4gYWJsZSB0byBzdWNjZXNzZnVsbHkgcHV0IHRvZ2V0aGVyIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyIGFuZCBhdXRvbWF0ZSBpdHMgZGVwbG95bWVudCB1c2luZyBDaXJjbGVDSS4gR3JhcGhRTCBpcyBoZXJlIHRvIHN0YXkgYW5kIGlzIGV4cGVjdGVkIHRvIGdhaW4gbW9yZSBhZG9wdGlvbiwgc2luY2UgaXRzIG1hbnkgYmVuZWZpdHMgbWFrZSBpdCB3b3J0aHkgb2YgaW5jcmVhc2VkIHVzZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIYXBweSBjb2RpbmchJmx0Oy9wJmd0OwoKJmx0O2hyIC8mZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Eb2NrZXIgYW5kIENJL0NEIHR1dG9yaWFsOiBhIGRlZXAgZGl2ZSBpbnRvIGNvbnRhaW5lcnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZG9ja2VyLWFuZC1jaWNkLXR1dG9yaWFsLWEtZGVlcC1kaXZlLWludG8tY29udGFpbmVycy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+RnJpLCAyNCBBcHIgMjAyMCAxMjowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9kb2NrZXItYW5kLWNpY2QtdHV0b3JpYWwtYS1kZWVwLWRpdmUtaW50by1jb250YWluZXJzLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkFuZ2VsIFJpdmVyYTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtUaGlzIGlzIGEgZm9sbG93LXVwIHRvIGEgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7IHRoYXQgSSB3cm90ZSBhZnRlciBDaXJjbGVDSSAyLjAgd2FzIHJlbGVhc2VkLiBUaGlzIHJlbGVhc2UgaW1wbGVtZW50ZWQgYnVpbGQgc3VwcG9ydCB1c2luZyBEb2NrZXIgZXhlY3V0b3JzLiBBZnRlciB0aGUgcmVsZWFzZSwgd2UgcmVhbGl6ZWQgdGhhdCBvbmUgb2YgdGhlIGJpZ2dlc3QgYmFycmllcnMgdGhhdCBDaXJjbGVDSSB1c2VycyBlbmNvdW50ZXJlZCB3YXMgYSBsYWNrIG9mIGV4cGVyaWVuY2Ugd2l0aCBEb2NrZXIuIFRoaXMgd2FzIGNvbmZpcm1lZCB0aHJvdWdoIG15IGNvbnZlcnNhdGlvbnMgd2l0aCBudW1lcm91cyBkZXZlbG9wZXJzLCBpbiB0aGUgY29tbXVuaXR5IGFuZCBhdCBldmVudHMsIGFib3V0IHRoZWlyIHVzZSBvZiBjb250YWluZXIgdGVjaG5vbG9naWVzIGluIHRoZWlyICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmVzLiBUaGVzZSBjb252ZXJzYXRpb25zIGhhdmUgaGlnaGxpZ2h0ZWQgdGhhdCBtYW55IGRldmVsb3BlcnMgZG9u4oCZdCBoYXZlIGEgZnVsbCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byB1c2UgY29udGFpbmVyIHRlY2hub2xvZ2llcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgd2lsbCBleHBhbmQgb24gYW5kIGRlbW9uc3RyYXRlIHNvbWUgb2YgdGhlIG1vcmUgdXNlZnVsIERvY2tlciBjb21tYW5kcyBkaXNjdXNzZWQgaW4gbXkgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtXaGF0IGlzIERvY2tlcj8mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZSBpcyB0aGUgc2ltcGxpZmllZCBkZWZpbml0aW9uIG9mIERvY2tlciB0aGF0IEkgdXNlZCBpbiBteSBwcmV2aW91cyBwb3N0OiZsdDsvcCZndDsKCiZsdDtibG9ja3F1b3RlJmd0OwogICZsdDtwJmd0O0RvY2tlciBpcyBhIHBsYXRmb3JtIGZvciBkZXZlbG9wZXJzIGFuZCBzeXNhZG1pbnMgdG8gZGV2ZWxvcCwgZGVwbG95LCBhbmQgcnVuIGFwcGxpY2F0aW9ucyB1c2luZyBjb250YWluZXJzLiZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7RG9ja2VyIGlzIGFsc28gcmVmZXJyZWQgdG8gYXMgYW4gYXBwbGljYXRpb24gcGFja2FnaW5nIHRvb2wgdGhhdCBlbmFibGVzIGFwcGxpY2F0aW9ucyB0byBiZSBjb25maWd1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZC8jaW1hZ2VzLWFuZC1jb250YWluZXJzJnF1b3Q7Jmd0O0RvY2tlciBpbWFnZSZsdDsvYSZndDsgdGhhdCBjYW4gYmUgdXNlZCB0byBzcGF3biAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyNpbWFnZXMtYW5kLWNvbnRhaW5lcnMmcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IHRoYXQgcnVuIGluc3RhbmNlcyBvZiB0aGUgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIG1hbnkgYmVuZWZpdHMgaW5jbHVkaW5nIHJ1bnRpbWUgZW52aXJvbm1lbnQgaXNvbGF0aW9uLCBjb25zaXN0ZW5jeSB2aWEgY29kZSwgYW5kIHBvcnRhYmlsaXR5LiBEb2NrZXIgY29udGFpbmVycyBjYW4gcnVuIG9uIGFueSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgc3VwcG9ydHMgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZW5naW5lJnF1b3Q7Jmd0O0RvY2tlciBFbmdpbmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtCYXNpYyBEb2NrZXIgdGVybWlub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZeKAmXMgYSBsaXN0IG9mIGJhc2ljIERvY2tlciBjb21tYW5kcyBhbmQgdGVybXMgd2l0aCBsaW5rcyB0byBtb3JlIGluZm9ybWF0aW9uLiBUaGVzZSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgRG9ja2VyIGFuZCBjb250cm9sIHRoZSBleGVjdXRvci4gVGhlIGNvbW1hbmRzIGNhbiBiZSBydW4gbG9jYWxseSBvbiBhbnkgY29tcHV0ZXIgdGhhdCBoYXMgdGhlIERvY2tlciBlbmdpbmUgaW5zdGFsbGVkLiZsdDsvcCZndDsKCiZsdDtoMyZndDtCdWlsZGluZyBEb2NrZXIgaW1hZ2VzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBhIHRleHQgZG9jdW1lbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNvbW1hbmRzIGEgdXNlciBjb3VsZCBjYWxsIG9uIHRoZSBjb21tYW5kIGxpbmUgdG8gYXNzZW1ibGUgYW4gaW1hZ2UuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBEb2NrZXJmaWxlIGlzIGEgYmx1ZXByaW50IGZvciBidWlsZGluZyBEb2NrZXIgaW1hZ2VzLiBEb2NrZXJmaWxlIHRlbXBsYXRlcyBob2xkIGVsZW1lbnRzIHN1Y2ggYXMgdGhlIGJhc2Ugb3BlcmF0aW5nIHN5c3RlbSBpbWFnZSB1c2VkIGFzIGEgZm91bmRhdGlvbiwgZXhlY3V0aW9uIGNvbW1hbmRzIHRoYXQgaW5zdGFsbC9jb25maWd1cmUgZGVwZW5kZW5jaWVzLCBhbmQgY29weSBjb21tYW5kcyB0aGF0IHB1c2ggbG9jYWwgc291cmNlIGNvZGUgb3IgYXJ0aWZhY3RzIGludG8gdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBEb2NrZXJmaWxlIGZvciBhIHNpbXBsZSBOb2RlLmpzIGFwcGxpY2F0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7RlJPTSBub2RlOjEwCgojIENyZWF0ZSBhcHAgZGlyZWN0b3J5CldPUktESVIgL3Vzci9zcmMvYXBwCgojIEluc3RhbGwgYXBwIGRlcGVuZGVuY2llcwojIEEgd2lsZGNhcmQgaXMgdXNlZCB0byBlbnN1cmUgYm90aCBwYWNrYWdlLmpzb24gQU5EIHBhY2thZ2UtbG9jay5qc29uIGFyZSBjb3BpZWQKIyB3aGVyZSBhdmFpbGFibGUgKG5wbUA1KykKQ09QWSBwYWNrYWdlKi5qc29uIC4vCgpSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIyBJZiB5b3UgYXJlIGJ1aWxkaW5nIHlvdXIgY29kZSBmb3IgcHJvZHVjdGlvbgojIFJVTiBucG0gaW5zdGFsbCAtLW9ubHk9cHJvZHVjdGlvbgoKIyBCdW5kbGUgYXBwIHNvdXJjZQpDT1BZIC4gLgoKRVhQT1NFIDUwMDAKQ01EIFsgJnF1b3Q7bnBtJnF1b3Q7LCAmcXVvdDtzdGFydCZxdW90OyBdCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2ltYWdlcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7IGxpc3RzIERvY2tlciBpbWFnZXMgZm91bmQgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gbGlzdCBhbGwgb2YgdGhlIERvY2tlciBpbWFnZXMgYW5kIHJlbGF0ZWQgZGF0YSB0aGF0IGN1cnJlbnRseSBleGlzdCBvbiB0aGUgbG9jYWwgbWFjaGluZS4gSXTigJlzIGNvbXBhcmFibGUgdG8gYSBsaW51eCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtscyZsdDsvY29kZSZndDsgb3Igd2luZG93cyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkaXImbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdXNlZCB0byBzaG93IHRoZSBjb250ZW50cyBvZiBkaXJlY3RvcmllcyBpbiBhIHRlcm1pbmFsLiBUaGlzIGNvbW1hbmQgaXMgdmVyeSB1c2VmdWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRvIG1hbmFnZSwgbWFpbnRhaW4sIGFuZCBidWlsZCBEb2NrZXIgaW1hZ2VzIGxvY2FsbHkuIEJlbG93IGlzIGFuIGV4YW1wbGUgcmVzdWx0IG9mIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgZXhlY3V0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UkVQT1NJVE9SWSAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHICAgICAgICAgICAgICAgICBJTUFHRSBJRCAgICAgICAgICAgIENSRUFURUQgICAgICAgICAgICAgU0laRQphcml2M3JhL25vZGVqcy1jaXJjbGVjaSAgICAgICAgICAgICBsYXRlc3QgICAgICAgICAgICAgIGY0MTllNGE2YjFiOCAgICAgICAgMTEgZGF5cyBhZ28gICAgICAgICA5NDNNQgpub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAgICAgICAgICAgICAgICAgIDAxYjgxNjA1MWQzNCAgICAgICAgMiB3ZWVrcyBhZ28gICAgICAgICA5MTFNQgpjaXJjbGVjaS9weXRob24gICAgICAgICAgICAgICAgICAgICAzLjcuNiAgICAgICAgICAgICAgIDBkMjk3NTg5NmM3MyAgICAgICAgNSB3ZWVrcyBhZ28gICAgICAgICAxLjQzR0IKYXJpdjNyYS9pbmZyYXN0cnVjdHVyZS1hcy1jb2RlMTAxICAgbGF0ZXN0ICAgICAgICAgICAgICBjYjIxYTM2YTI5NzMgICAgICAgIDggd2Vla3MgYWdvICAgICAgICAgOTI5TUIKcHl0aG9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43LjYgICAgICAgICAgICAgICA4NzkxNjU1MzVhNTQgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgOTE5TUIKY2lyY2xlY2kvcnVzdCAgICAgICAgICAgICAgICAgICAgICAgMS1idXN0ZXIgICAgICAgICAgICAyMTgzMjliOTI5Y2YgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgMS42OEdCCnJ1c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtYnVzdGVyICAgICAgICAgICAgZjVmZGUwOTJhMWNkICAgICAgICAyIG1vbnRocyBhZ28gICAgICAgIDEuMTlHQgpweXRob24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcuNCAgICAgICAgICAgICAgIDlmYTU2ZDBhZGRhZSAgICAgICAgNiBtb250aHMgYWdvICAgICAgICA5MThNQgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGJ1aWxkIC10ICZhbXA7bHQ7aW1hZ2UgbmFtZSZhbXA7Z3Q7IC4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBjcmVhdGVzIGEgRG9ja2VyIGltYWdlIHdpdGggYSB0YWcgdXNpbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LXQmbHQ7L2NvZGUmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhYm92ZSBjb21tYW5kLCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgdmFsaWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDssIGJ1aWxkcyBhIERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgZXhlY3V0aW9uIGNvbW1hbmRzIGRlZmluZWQgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7LiBPbmUgY3JpdGljYWwgZWxlbWVudCB0byBidWlsZGluZyBpbWFnZXMgYW5kIHN0YXJ0aW5nIGNvbnRhaW5lcnMgaXMgdW5kZXJzdGFuZGluZyB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9hJmd0Oy4gQnVpbGRpbmcgRG9ja2VyIGltYWdlcyB1c2luZyB0aGlzIGNvbW1hbmQgc3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIERvY2tlciBpbWFnZXMgdXRpbGl6ZXMgYSBuYW1pbmcgY29udmVudGlvbiBtYWRlIHVwIG9mIHNsYXNoLXNlcGFyYXRlZCBuYW1lIGNvbXBvbmVudHMgdGhhdCBtYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgc2VwYXJhdG9ycy4gQSBzZXBhcmF0b3IgaXMgZGVmaW5lZCBhcyBhIHBlcmlvZCwgb25lIG9yIHR3byB1bmRlcnNjb3Jlcywgb3Igb25lIG9yIG1vcmUgZGFzaGVzLiBBIG5hbWUgY29tcG9uZW50IG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggYSBzZXBhcmF0b3IuIEEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7ZG9ja2VyIHRhZyZsdDsvYSZndDsgbmFtZSBtdXN0IGJlIHZhbGlkIEFTQ0lJIGFuZCBtYXkgY29udGFpbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHVuZGVyc2NvcmVzLCBwZXJpb2RzLCBhbmQgZGFzaGVzLiBBIHRhZyBuYW1lIG1heSBub3Qgc3RhcnQgd2l0aCBhIHBlcmlvZCBvciBhIGRhc2ggYW5kIG1heSBjb250YWluIGEgbWF4aW11bSBvZiAxMjggY2hhcmFjdGVycy4gWW91IGNhbiBncm91cCB5b3VyIGltYWdlcyB0b2dldGhlciB1c2luZyBuYW1lcyBhbmQgdGFncy4gSW4gdGhpcyBwb3N0LCB3ZSB3aWxsIHVzZSB0aGlzIG5hbWluZyBjb252ZW50aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB0aGF0IHdl4oCZdmUgZGlzY3Vzc2VkIG5hbWluZyBjb252ZW50aW9ucyBsZXTigJlzIGJ1aWxkIGEgRG9ja2VyIGltYWdlIGJhc2VkIG9uIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXJmaWxlJmx0Oy9jb2RlJmd0OyBpbiBvdXIgZXhhbXBsZSBhYm92ZS4gSW4gdGhpcyBwb3N0IHdlIGNhbiB1dGlsaXplIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9wdW5rZGF0YS9ub2RlanMtY2lyY2xlY2kmcXVvdDsmZ3Q7cHVua2RhdGEvbm9kZWpzLWNpcmNsZWNpJmx0Oy9hJmd0OyBnaXQgcmVwby4gQ2xvbmUgaXQgbG9jYWxseSBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7JCBjZCZsdDsvY29kZSZndDsgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlbiBydW4gdGhpcyBjb21tYW5kIHRvIGJ1aWxkIGEgbmV3IERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgcHJvamVjdCBzb3VyY2UgY29kZSBhbmQgdGhlIGV4YW1wbGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgYnVpbGQgLXQgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0FmdGVyIHJ1bm5pbmcgdGhpcyBidWlsZCBjb21tYW5kLCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtTZW5kaW5nIGJ1aWxkIGNvbnRleHQgdG8gRG9ja2VyIGRhZW1vbiAgOTguMDdNQgpTdGVwIDEvNyA6IEZST00gbm9kZToxMAogLS0tJmFtcDtndDsgMDFiODE2MDUxZDM0ClN0ZXAgMi83IDogV09SS0RJUiAvdXNyL3NyYy9hcHAKIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyAxMmIyZWRjMmI5N2MKU3RlcCAzLzcgOiBDT1BZIHBhY2thZ2UqLmpzb24gLi8KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyA1M2I1YjhlNGU2NTQKU3RlcCA0LzcgOiBSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyBlZWZkZjU2MGJjNGQKU3RlcCA1LzcgOiBDT1BZIC4gLgogLS0tJmFtcDtndDsgYWE3ZDU0ZTk1NWM2ClN0ZXAgNi83IDogRVhQT1NFIDUwMDAKIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gY2M0MjdkYmFmZGNjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgY2M0MjdkYmFmZGNjCiAtLS0mYW1wO2d0OyA0Y2U5MDg0ZTM5ZWIKU3RlcCA3LzcgOiBDTUQgWyAmcXVvdDtucG0mcXVvdDssICZxdW90O3N0YXJ0JnF1b3Q7IF0KIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gZjZlODU0NTk5ZGRjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgZjZlODU0NTk5ZGRjCiAtLS0mYW1wO2d0OyA3OWE4ZDk0Y2JmNDIKU3VjY2Vzc2Z1bGx5IGJ1aWx0IDc5YThkOTRjYmY0MgpTdWNjZXNzZnVsbHkgdGFnZ2VkIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2VzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgeW91ciBuZXdseSBjcmVhdGVkIERvY2tlciBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDskIGRvY2tlciBpbWFnZXMKClJFUE9TSVRPUlkgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRyAgICAgICAgICAgICAgICAgSU1BR0UgSUQgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNJWkUKdHV0b3JpYWwvY2lyY2xlY2ktbm9kZSAgICAgICAgICAgICAgMTAgICAgICAgICAgICAgICAgICA3OWE4ZDk0Y2JmNDIgICAgICAgIDQgbWludXRlcyBhZ28gICAgICAgMS4wM0dCCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyB5b3UgaGF2ZSBhbiBhd2Vzb21lIERvY2tlciBpbWFnZSBidWlsdCBhbmQgcmVhZHkgdG8gdXNlLiBJbiB0aGUgbmV4dCBzZWN0aW9uIEnigJlsbCBjcmVhdGUgbmV3IGluc3RhbmNlcyBvZiB0aGlzIERvY2tlciBpbWFnZSBpbiB0aGUgZm9ybSBvZiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvY29udGFpbmVyLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXIgY29udGFpbmVycyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBjb250YWluZXJzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IGFyZSBkZXNpZ25lZCB0byBydW4gYXBwbGljYXRpb25zIGluIGlzb2xhdGlvbiBhbmQgYXQgc2NhbGUuICBUaGV5IGFsbG93IGZvciBzdHJlYW1saW5pbmcgdGhlIG1hbmFnZW1lbnQgYW5kIGltcGxlbWVudGF0aW9uIG9mIGFwcGxpY2F0aW9ucy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7QmVmb3JlIHdlIHN0YXJ0IGNyZWF0aW5nIGFuZCBydW5uaW5nIERvY2tlciBjb250YWluZXJzLCBJ4oCZbGwgYWRkIHNvbWUgY29udGV4dC4gRG9ja2VyIGNvbnRhaW5lcnMgYXJlIG9iamVjdHMgdGhhdCBhcmUgYmFzZWQgb24gYW5kIHNwYXduZWQgZnJvbSBEb2NrZXIgaW1hZ2VzLiBEb2NrZXIgaW1hZ2VzIGFyZSB0ZW1wbGF0ZXMuIEkgbGlrZW4gdGhlbSB0byBjb29raWUgY3V0dGVyIG1vbGRzLiBDb29raWUgY3V0dGVyIG1vbGRzIGVuYWJsZSB5b3UgdG8gcXVpY2tseSBhbmQgY29uc2lzdGVudGx5IHByb2R1Y2UgaW5kaXZpZHVhbCBjb29raWVzIGZyb20gZG91Z2guIEkgbGlrZW4gdGhlc2UgY29va2llcyB0byBEb2NrZXIgY29udGFpbmVycyB3aGljaCBhcmUgZGlzdGluZ3Vpc2hlZCBpbiBzaGFwZSBieSB0aGUgdHlwZSBvZiBjb29raWUgbW9sZCwgb3IgRG9ja2VyIGNvbnRhaW5lciwgdXNlZCBpbiB0aGUgY3V0dGluZy9idWlsZGluZyBwcm9jZXNzLiBTbyB1c2luZyBteSBjb29raWUgY3V0dGVyIGFuYWxvZ3ksIERvY2tlciBpbWFnZXMgYXJlIHRoZSBjb29raWUgY3V0dGVyIGFuZCB0aGUgaW5kaXZpZHVhbCBjb29raWVzIGN1dCB1c2luZyB0aGF0IGN1dHRlciBhcmUgZXF1aXZhbGVudCB0byBEb2NrZXIgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCBJ4oCZdmUgcHJvYmFibHkgbWFkZSB5b3UgYSBiaXQgaHVuZ2FyeSBmb3IgY29va2llcywgbGV04oCZcyBzdGFydCBydW5uaW5nIHNvbWUgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBydW5zIGEgY29tbWFuZCBpbiBhIG5ldyBjb250YWluZXIuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY29tbWFuZCBvZiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgc3RhcnRpbmcgRG9ja2VyIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCBhIG5ldyBjb250YWluZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcnVuIC1kIC1wIDUwMDA6NTAwMCAtLW5hbWUgbm9kZXRlc3QwMSB0dXRvcmlhbC9jaXJjbGVjaS1ub2RlOjEwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NvbmdyYXRzISBZb3Ugc2hvdWxkIG5vdyBoYXZlIHRoZSBOb2RlLmpzIGltYWdlIHJ1bm5pbmcgaW4gdGhlIG5ldyBjb250YWluZXIgdGhhdCB5b3UganVzdCBjcmVhdGVkIGF2YWlsYWJsZSBvbiBwb3J0IDUwMDAuIE9wZW4gYSB3ZWIgYnJvd3NlciBhbmQgZ28gdG8gdGhpcyBhZGRyZXNzOiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtodHRwOi8vbG9jYWxob3N0OjUwMDAmbHQ7L2NvZGUmZ3Q7LiBJdCB3aWxsIHRha2UgeW91IHRoZSBzdGF0aWMg4oCcV2VsY29tZSB0byBDSS9DRCAxMDEgdXNpbmcgQ2lyY2xlQ0kh4oCdIHdlYiBwYWdlIHNlcnZlZCBieSB0aGlzIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsc28gdmVyaWZ5IHlvdXIgY29udGFpbmVyIGlzIHJ1bm5pbmcgYnkgZXhlY3V0aW5nIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbC4gV2XigJlsbCBkaXNjdXNzIHRoaXMgaW4gdGhlIG5leHQgc2VjdGlvbi4gQmVmb3JlIHRoYXQsIGxldOKAmXMgc3RhcnQgYW4gb3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGFwcGxpY2F0aW9uIGJ5IHJ1bm5pbmcgYW5vdGhlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnRlZCBvdXIgZmlyc3QgY29udGFpbmVyIHdpdGggdGhlIG5hbWUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDsgYW5kIHNpbmNlIGNvbnRhaW5lciBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgd2XigJlyZSBnb2luZyB0byBuYW1lIG91ciBuZXcgY29udGFpbmVyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7LiBBbm90aGVyIGNoYW5nZSB0aGF0IG11c3QgYmUgbWFkZSBpbiBvdXIgbmV3IGNvbnRhaW5lciBpcyB0aGUgcG9ydCBudW1iZXIuIFdl4oCZbGwgY2hhbmdlIGl0IGZyb20gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMCZsdDsvY29kZSZndDsgdG8gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMSZsdDsvY29kZSZndDsgc2luY2UgYXBwbGljYXRpb25zIGNhbm5vdCBvY2N1cHkgdGhlIHNhbWUgcG9ydCBudW1iZXIgb24gdGhlIHNhbWUgbmV0d29yayBpbnRlcmZhY2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RXhlY3V0ZSB0aGUgZm9sbG93aW5nICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtZCAtcCA1MDAxOjUwMDAgLS1uYW1lIG5vZGV0ZXN0MDIgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISBZb3Ugbm93IGhhdmUgdHdvIGNvbnRhaW5lcnMgcnVubmluZyBvbiB5b3VyIGxvY2FsIG1hY2hpbmUuIFlvdSBjYW4gZ28gdG8gdGhpcyBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMSZsdDsvY29kZSZndDsgaW4gYSBicm93c2VyIGFuZCBzZWUgdGhlIGFwcCBydW5uaW5nIGluIHlvdXIgc2Vjb25kIERvY2tlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaXMgdmVyeSByb2J1c3QgYW5kIGhhcyBtYW55IHByb3BlcnR5IGFuZCBjb25maWd1cmF0aW9uIGZsYWdzIHdoaWNoIEkgd29u4oCZdCBiZSBhYmxlIHRvIGFkZHJlc3Mgb3IgZGVtb25zdHJhdGUgaW4gdGhpcyBwb3N0LiBJIGhpZ2hseSByZWNvbW1lbmQgdGhhdCB5b3UgcmVhZCBhbmQgZmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgbWFueSB3YXlzIHRoYXQgeW91IGNhbiBleGVjdXRlIGFuZCBydW4gRG9ja2VyIGNvbnRhaW5lcnMuIFlvdSBjYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7cmVhZCB1cCBvbiBEb2NrZXIgY29udGFpbmVycyBjb21tYW5kcyBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9wcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbGlzdHMgYWxsIG9mIHRoZSBydW5uaW5nIERvY2tlciBjb250YWluZXJzLiBUaGlzIGNvbW1hbmQgc2VydmVzIGEgc2ltaWxhciBwdXJwb3NlIGFzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2UmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgYW5kIGxpc3RzIGFjdGl2ZWx5IHJ1bm5pbmcgY29udGFpbmVycy4gVXNlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDstYSZsdDsvY29kZSZndDsgZmxhZyB0byBzaG93IGFsbCBvZiB0aGUgcnVubmluZyBhbmQgbm90IHJ1bm5pbmcgY29udGFpbmVycy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoaXMgY29tbWFuZCBpbiBhIHRlcm1pbmFsIGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIGJvdGggb2YgdGhlIHByZXZpb3VzbHkgY3JlYXRlZCBjb250YWluZXJzIHJ1bm5pbmcgaW4gdGhlIHJlc3VsdHM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlIHJlc3VsdHMgd2lsbCBiZSBzaW1pbGFyIHRvIHRoaXMgc2hvd2luZyBib3RoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDEmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcnMgc3RpbGwgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0NPTlRBSU5FUiBJRCAgICAgICAgSU1BR0UgICAgICAgICAgICAgICAgICAgICAgIENPTU1BTkQgICAgICAgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNUQVRVUyAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICAgICAgIE5BTUVTCmRmZDMwMTgxZTE1YyAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAxMiBtaW51dGVzIGFnbyAgICAgIFVwIDEyIG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAxLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAyOCBtaW51dGVzIGFnbyAgICAgIFVwIDI4IG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAwLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7CiAgICAmbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvc3RhcnQvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdGFydHMgYW4gZXhpc3RpbmcgY29udGFpbmVyLiZsdDsvcCZndDsKICAmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsKICAgICZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9zdG9wLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdG9wcyBhbiBleGlzdGluZyBjb250YWluZXIuJmx0Oy9wJmd0OwogICZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgaXMgb25seSB1c2VkIHRvIHN0YXJ0ICZsdDtzdHJvbmcmZ3Q7ZXhpc3RpbmcmbHQ7L3N0cm9uZyZndDsgY29udGFpbmVycyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcnVuJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBVbmxlc3MgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy0tcm09dHJ1ZSZsdDsvY29kZSZndDsgZmxhZyBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgbmV3bHkgY3JlYXRlZCBjb250YWluZXJzIHdpbGwgcGVyc2lzdCBhbmQgY2FuIGJlIHJldXNlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RhcnQmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCZsdDsvY29kZSZndDsgY29tbWFuZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdG9wIHNvbWUgcnVubmluZyBjb250YWluZXJzIGJ5IGV4ZWN1dGluZyB0aGVzZSBjb21tYW5kczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBzdG9wIG5vZGV0ZXN0MDEgbm9kZXRlc3QwMgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBydW5uaW5nIGNvbnRhaW5lcnMgc2hvdWxkIG5vdyBiZSBpbmFjdGl2ZSBhbmQgc3RvcHBlZC4gU2luY2UgdGhleeKAmXJlIHN0b3BwZWQsIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgaW5kaWNhdGluZyBzdG9wcGVkIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtDT05UQUlORVIgSUQgICAgICAgIElNQUdFICAgICAgICAgICAgICAgICAgICAgICBDT01NQU5EICAgICAgICAgICAgICAgICAgQ1JFQVRFRCAgICAgICAgICAgICBTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICBOQU1FUwpkZmQzMDE4MWUxNWMgICAgICAgIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAgICAmcXVvdDtkb2NrZXItZW50cnlwb2ludC5z4oCmJnF1b3Q7ICAgMzEgbWludXRlcyBhZ28gICAgICBFeGl0ZWQgKDApIDM4IHNlY29uZHMgYWdvICAgICAgICAgICAgICAgICAgICAgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICBBYm91dCBhbiBob3VyIGFnbyAgIEV4aXRlZCAoMCkgMzggc2Vjb25kcyBhZ28gICAgICAgICAgICAgICAgICAgICAgIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhvdWdoIHRoZXNlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQgdGhleSB3aWxsIHBlcnNpc3QgYW5kIGNhbiBiZSByZXN0YXJ0ZWQgdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCZsdDsvY29kZSZndDsgY29tbWFuZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXRzIHN0YXJ0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAxJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgc28gd2UgY2FuIGxlYXJuIGhvdyB0byB1c2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBmZWF0dXJlcyBpbiB0aGUgbmV4dCBzZWN0aW9uLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHN0YXJ0IG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Tm93IHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBOb3RpY2UgdGhlIHN0YXR1cyBmb3IgdGhpcyBjb250YWluZXIgcmVhZHMgc2ltaWxhciB0byAgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXAgYWJvdXQgYSAzMCBzZWNvbmRzJmx0Oy9jb2RlJmd0OyBvciBzb21ldGhpbmcgdG8gdGhhdCBlZmZlY3QuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9ncy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ3MmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBmZXRjaGVzIGEgY29udGFpbmVy4oCZcyBsb2dzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIHNlZSBsb2dzIHRoYXQgYXJlIHByZXNlbnQgYXQgdGhlIHRpbWUgb2YgZXhlY3V0aW9uLiBTaW5jZSB5b3VyIGFwcHMgYXJlIHJ1bm5pbmcgaW5zaWRlIHRoZXNlIGNvbnRhaW5lcnMsIHRoZSBsb2dzIGNvbW1hbmQgaXMgdXNlZnVsIGZvciByZWFkaW5nIG91dCBjcml0aWNhbCBhcHAgb3V0cHV0cy4gVGhpcyBoZWxwcyBpbiB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgYXBwIGlzIHBlcmZvcm1pbmcgYW5kIGFueSBkZWJ1Z2dpbmcvdHJvdWJsZXNob290aW5nIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBydW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDEmbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBsb2dzIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIGNvbW1hbmQgeW91IHNob3VsZCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHdoYXTigJlzIHNob3duIGJlbG93LiBJdCBzaG93cyB0aGF0IHRoZSBhcHAgaW5zaWRlIGNvbnRhaW5lciBpcyB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O05vZGUgc2VydmVyIGlzIHJ1bm5pbmcuLgoKJmFtcDtndDsgbm9kZWpzLWNpcmNsZWNpQDAuMC4xIHN0YXJ0IC91c3Ivc3JjL2FwcAomYW1wO2d0OyBub2RlIGFwcC5qcwoKTm9kZSBzZXJ2ZXIgaXMgcnVubmluZy4uCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0gJmFtcDtsdDtjb250YWluZXIgbmFtZSZhbXA7Z3Q7Jmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgZGVsZXRlcyBhIGNvbnRhaW5lciBvciBtdWx0aXBsZSBjb250YWluZXJzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtQZXJzaXN0aW5nIERvY2tlciBjb250YWluZXJzIGNvbnN1bWVzIGRpc2sgc3BhY2UgYW5kIHJlc291cmNlcyBvbiBpdHMgaG9zdC4gT3BlcmF0aW9uYWxseSwgaXQgZG9lc27igJl0IG1ha2UgbXVjaCBzZW5zZSB0byBwZXJzaXN0IGV2ZXJ5IGNvbnRhaW5lciBvbiBkaXNrIHNpbmNlIGluIG1vc3QgY2FzZXMgY29udGFpbmVycyBhcmUgZGlzcG9zYWJsZSBhbmQgc2hvdWxkIGJlIHVzZWQgdGhhdCB3YXkuIFNvIHdoZW4gYSBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpdCBzaG91bGQgYmUgcGVybWFuZW50bHkgZGlzY2FyZGVkIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgcGVybWFuZW50bHkgZGVsZXRlcyBjb250YWluZXJzIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAyJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBzbyBsZXTigJlzIHNhdmUgc29tZSBkaXNrIHNwYWNlIGFuZCBkZWxldGUgaXQuIE5vdGUgdGhpcyBjb21tYW5kIHdpbGwgb25seSBkZWxldGUgaW5hY3RpdmUvc3RvcHBlZCBjb250YWluZXJzIGFuZCB3aWxsIGVycm9yIG91dCBpZiBpdOKAmXMgcnVuIGFnYWluc3QgYW4gYWN0aXZlL3J1bm5pbmcgY29udGFpbmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBybSBub2RldGVzdDAyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm8gbG9uZ2VyIHNlZSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMiZsdDsvY29kZSZndDsgY29udGFpbmVyIG9uIHRoZSBob3N0IGFmdGVyIHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGhhcyBvdGhlciBwcm9wZXJ0aWVzIGFuZCBmbGFncyBhbmQgeW91IHNob3VsZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcm0vJnF1b3Q7Jmd0O2ZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggdGhlbSBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ybWkvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBybWkmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBkZWxldGVzIERvY2tlciBpbWFnZXMgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGFwcGxpZXMgdG8gZGVsZXRpbmcgRG9ja2VyIGltYWdlcyBmcm9tIGEgaG9zdC4gSWYgdGhlcmUgYXJlIGV4aXN0aW5nIGNvbnRhaW5lcnMgb24gdGhlIGhvc3QgdGhhdCBhcmUgYmFzZWQgb24gYSBzcGVjaWZpYyBpbWFnZSwgdGhlbiB0aGlzIGNvbW1hbmQgd2lsbCBub3QgYWxsb3cgdGhlIGRlbGV0aW9uIG9mIHRoZSBjb250YWluZXIgYmFzZWQgb24gdGhlIGltYWdlLiBZb3UgbXVzdCBmaXJzdCBlbnN1cmUgdGhlIGNvbnRhaW5lciBpcyBzdG9wcGVkIGFuZCBkZWxldGVkIGJlZm9yZSB5b3UgY2FuIGRlbGV0ZSBEb2NrZXIgaW1hZ2VzIHVzaW5nIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtaSZsdDsvY29kZSZndDsgY29tbWFuZC4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtaS8mcXVvdDsmZ3Q7UmVhZCB1cCBvbiB0aGUgZG9ja2VyIHJtaSBjb21tYW5kIGhlcmUmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBpbWFnZSBkZXBsb3ltZW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtNYW55IERvY2tlciBpbWFnZXMgYXJlIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgaG9zdGVkIG9uIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2RvY2tlci1odWIvJnF1b3Q7Jmd0O0RvY2tlciBIdWIgUmVnaXN0cnkmbHQ7L2EmZ3Q7IHdoaWNoIGlzIGFuIG9ubGluZSBjZW50cmFsIGhvc3Rpbmcgc29sdXRpb24gZm9yIERvY2tlciBpbWFnZXMuIERvY2tlciBIdWIgZW5hYmxlcyBhbnlvbmUgd2l0aCBhbiBpbnRlcm5ldCBjb25uZWN0aW9uIHRvIHB1bGwgZG93biBwdWJsaWNseSBhdmFpbGFibGUgaW1hZ2VzIGZyb20gdGhlIHJlZ2lzdHJ5IHRvIHRoZWlyIGxvY2FsIG1hY2hpbmVzIG9yIHNlcnZlcnMuIEl0IGFsc28gZW5hYmxlcyByZWdpc3RlcmVkIHVzZXJzIHRvIHVwbG9hZCBhbmQgcHVibGljbHkgc2hhcmUgYW55IG9mIHRoZWlyIGNvbnRhaW5lcnMgc28gdGhhdCBhbnlvbmUgY2FuIHB1bGwgZG93biB0aGF0IGltYWdlIGZyb20gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2h1Yi5kb2NrZXIuY29tLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIEnigJlsbCBicmllZmx5IGRpc2N1c3Mgc29tZSBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItaHViLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0OyByZWxhdGVkIGNvbW1hbmRzLiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3B1bGwvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBwdWxsJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgcHVsbHMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IGZyb20gYSByZWdpc3RyeS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGVuYWJsZXMgeW91IHRvIGRvd25sb2FkIGEgdmFsaWQgRG9ja2VyIGltYWdlIGZyb20gRG9ja2VyIEh1Yi4gUHVibGljbHkgYXZhaWxhYmxlIERvY2tlciBpbWFnZXMgZG8gbm90IHJlcXVpcmUgYXV0aGVudGljYXRpb24uIElmIHRoZSByZWdpc3RyeSBpcyBwcml2YXRlIHlvdSB3aWxsIG5lZWQgdG8gYXV0aGVudGljYXRlIHVzaW5nIGFuIGFzc2lnbmVkIGNyZWRlbnRpYWwgdXN1YWxseSBpbiB0aGUgZm9ybSBvZiBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ2luJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbG9ncyBpbnRvIGEgRG9ja2VyIHJlZ2lzdHJ5LiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyB5b3UgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgYSBEb2NrZXIgUmVnaXN0cnkuIElmIHlvdeKAmXJlIHVzaW5nIHRoaXMgbG9naW4gY29tbWFuZCB5b3Ugc2hvdWxkICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8jcHJvdmlkZS1hLXBhc3N3b3JkLXVzaW5nLXN0ZGluJnF1b3Q7Jmd0O3BvcHVsYXRlIGEgLnR4dCBmaWxlJmx0Oy9hJmd0OyB3aXRoIHlvdXIgRG9ja2VyIEh1YiBhY2NvdW50IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBwcm90ZWN0IHRoZXNlIGNyZWRlbnRpYWxzIGZyb20gZXhwb3N1cmUuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcHVzaC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHB1c2gmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBwdXNoZXMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IHRvIGEgcmVnaXN0cnkuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBlbmFibGVzIHVzZXJzIHRvIHVwbG9hZCBpbWFnZXMgdG8gYSBEb2NrZXIgcmVnaXN0cnkgYW5kIHJlcXVpcmVzIHZhbGlkIGNyZWRlbnRpYWxzLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O1NvIHRoZXJlIHlvdSBoYXZlIGl0LiBJbiB0aGlzIHBvc3QgSSB3ZW50IGEgYml0IGRlZXBlciBpbiBleHBsYWluaW5nIERvY2tlciB0ZXJtaW5vbG9neSBhbmQgY29tbWFuZHMgYXMgd2VsbCBhcyBjb250YWluZXJzIGFuZCB0aGVpciB1c2FnZS4gVGhlIGNvbW1hbmRzIEkgZGlzY3Vzc2VkIGFuZCBkZW1vbnN0cmF0ZWQsIGFyZSB0aGUgbW9zdCB3aWRlbHkgdXNlZCBjb21tYW5kcyBpbiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGxlYXJuaW5nIGEgYml0IG1vcmUgYWJvdXQgdGhlbSBhbmQgdGhlaXIgcHJvcGVydGllcyBhbmQgZmxhZ3Mgd2lsbCBkZWZpbml0ZWx5IGhlbHAgeW91IGxldmVsIHVwIHlvdXIgRG9ja2VyIGFuZCBjb250YWluZXIgc2tpbGxzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZhbWlsaWFyaXppbmcgeW91cnNlbGYgd2l0aCB0aGVzZSBiYXNpYyBjb21tYW5kcyB3aWxsIHJlbW92ZSBvbmUgb2YgdGhlIGxhcmdlciBiYXJyaWVycyB0aGF0IG5ldyB1c2VycyBvZiBDaXJjbGVDSSBlbmNvdW50ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SWYgeW91IHdhbnQgdG8gbGVhcm4gbW9yZSBhYm91dCBDaXJjbGVDSSBjaGVjayBvdXQgdGhlICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wLyZxdW90OyZndDtkb2N1bWVudGF0aW9uIHNpdGUmbHQ7L2EmZ3Q7LCBhbmQgaWYgeW91IHJlYWxseSBnZXQgc3R1Y2sgeW91IGNhbiByZWFjaCBvdXQgdG8gdGhlIENpcmNsZUNJIGNvbW11bml0eSB2aWEgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mbHQ7L2EmZ3Q7IGNvbW11bml0eS9mb3J1bSBzaXRlLiZsdDsvcCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogIDwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:47 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:56:48 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"4cbec879348cb97c","ot-tracer-traceid":"3419c328231af51c","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889408661:53f4e4e32ca9
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:11:48 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da303bec8e8ff-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce6436510000e8ff482f4200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:48 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@vaidehijoshi
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:56:48 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"74134af4781a54f7","ot-tracer-traceid":"3e87dc1833097496","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889408846:dd2e2f57f91d
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:11:48 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da304c96ee8f3-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce6437010000e8f31d856200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBWYWlkZWhpIEpvc2hpIG9uIE1lZGl1bV1dPjwvdGl0bGU+CiAgICAgICAgPGRlc2NyaXB0aW9uPjwhW0NEQVRBW1N0b3JpZXMgYnkgVmFpZGVoaSBKb3NoaSBvbiBNZWRpdW1dXT48L2Rlc2NyaXB0aW9uPgogICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzEqUU9RdVdBcVFkNTY2b0lUajlydENLdy5qcGVnPC91cmw+CiAgICAgICAgICAgIDx0aXRsZT5TdG9yaWVzIGJ5IFZhaWRlaGkgSm9zaGkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0B2YWlkZWhpam9zaGk/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgIDwvaW1hZ2U+CiAgICAgICAgPGdlbmVyYXRvcj5NZWRpdW08L2dlbmVyYXRvcj4KICAgICAgICA8bGFzdEJ1aWxkRGF0ZT5UdWUsIDE5IE1heSAyMDIwIDExOjQ4OjUyIEdNVDwvbGFzdEJ1aWxkRGF0ZT4KICAgICAgICA8YXRvbTpsaW5rIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9mZWVkL0B2YWlkZWhpam9zaGkiIHJlbD0ic2VsZiIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIvPgogICAgICAgIDx3ZWJNYXN0ZXI+PCFbQ0RBVEFbeW91cmZyaWVuZHNAbWVkaXVtLmNvbV1dPjwvd2ViTWFzdGVyPgogICAgICAgIDxhdG9tOmxpbmsgaHJlZj0iaHR0cDovL21lZGl1bS5zdXBlcmZlZWRyLmNvbSIgcmVsPSJodWIiLz4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09uIFRoaXJ0eV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AdmFpZGVoaWpvc2hpL29uLXRoaXJ0eS1kYTJkMmUyMWE2YjI/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2RhMmQyZTIxYTZiMjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3RoaXJ0eV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtiaXJ0aGRheV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtsaWZlLWxlc3NvbnNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE5IERlYyAyMDE5IDIwOjU0OjExIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEyLTE5VDIxOjA2OjUwLjU3MVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD5JIGFtIGZ1bGx5IGF3YXJlIHRoYXQgYmlydGhkYXlzIGFyZSBqdXN0IHJpdHVhbHMuIEZ1bmN0aW9uYWxseSwgdGhleSBkb27igJl0IHJlYWxseSBtZWFuIG11Y2ggYXQgdGhlIGVuZCBvZiB0aGUgZGF5OyB0aGV5IGp1c3QgaGFwcGVuIHRvIGJlIGVhc3kgZW5vdWdoIHRvIHVzZSB3aGVuIHdlIHdhbnQgdG8gcmVwcmVzZW50IG1pbGVzdG9uZXMgYW5kIGltcGFjdGZ1bCBldmVudHMuIEFuZCB5ZXQsIEkgPGVtPmxvdmU8L2VtPiB0aGVzZSByaXR1YWxzLiBUaGV5IGFyZSBhbiBvcHBvcnR1bml0eSB0byByZWZsZWN0IGFuZCBtZWRpdGF0ZSBvbiB3aGF0IGhhcyBhbHJlYWR5IHBhc3NlZOKAiuKAlOKAimFuZCBpbiBhIHdheSwgdGhleSBhbGxvdyB1cyB0byBmaW5kIHNvbWUgc3RpbGxuZXNzIGluIHByZXBhcmF0aW9uIGZvciB3aGF0IGlzIHRvwqBjb21lLjwvcD48cD5J4oCZbSB0dXJuaW5nIHRoaXJ0eSB0b21vcnJvdywgYW5kIEkgY2VydGFpbmx5IGRvbuKAmXQgZXhwZWN0IHRoYXQgSeKAmWxsIGZlZWwgbXVjaCBkaWZmZXJlbnQgdG9tb3Jyb3cgdGhhbiBJIGRvIHRvZGF5LiBCdXQgY3VtdWxhdGl2ZWx5LCBJIGZlZWwgbGlrZSBhIG11Y2ggZGlmZmVyZW50IHBlcnNvbiB0aGFuIEkgd2FzIHdoZW4gSSBzdGFydGVkIG15IHR3ZW50aWVzLiBJIGZlZWwgbXVjaCBtb3JlIGNvbmZpZGVudCwgc3VyZS1mb290ZWQsIGZpcm0sIGFuZCBncm91bmRlZC4gSXTigJlzIGhhcmQgZm9yIG1lIHRvIHBpbnBvaW50IGhvdyB0aGlzIHRyYW5zZm9ybWF0aW9uIGNhbWUgYWJvdXQ7IHRoZXJlIHdhcyBubyBzaW5nbGUgZXZlbnQgdGhhdCBwZXJwZXR1YXRlZCB0aGlzIGNoYW5nZS4gSW5zdGVhZCwgSSBoYXZlIHRvIGJlbGlldmUgdGhhdCBpdCBpcyB0aGUgc3VtIG9mIHRoZSBleHBlcmllbmNlcyBvdmVyIHRoZSBsYXN0IGRlY2FkZSBhbmQgd2hhdCBJIGxlYXJuZWQgZnJvbSB0aGVtIHRoYXQgaW5jcmVtZW50YWxseSBjaGFuZ2VkIHdobyBJwqBhbS48L3A+PHA+U28sIG9uIHRoZSBldmUgb2YgYSBuZXcgZGVjYWRl4oCK4oCU4oCKYW5kIGluIGtlZXBpbmcgd2l0aCBteSBsb3ZlIGZvciBzZWxmLXJlZmxlY3Rpb27igIrigJTigIpoZXJlIGFyZSB0aGlydHkgdGhpbmdzIHRoYXQgSeKAmXZlIGxlYXJuZWQgYmVmb3JlIHR1cm5pbmfCoHRoaXJ0eS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iQSB3b21hbiBzdGFuZHMgb24gdGhlIHNpZGUgb2YgdGhlIHJvYWQgd2l0aCBzbm93IG5lYXJieSwgd2l0aCB0aGUgYnJhbmNoZXMgb2YgYW4gZXZlcmdyZWVuIHRyZWUgYWJvdmUgaGVyLiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZ3RqVGRvSHV1WldKazZxWHlRRHZCdy5qcGVnIiAvPjwvZmlndXJlPjxvbD48bGk+PHN0cm9uZz5JZiBhIHJlbGF0aW9uc2hpcCBpcyBpbXBvcnRhbnQgdG8geW91LCBjYXJ2ZSBvdXQgdGhlIHRpbWUgZm9yIGl0Ljwvc3Ryb25nPiBJIHNwZW50IG15IHR3ZW50aWVzIG1vdmluZyBhcm91bmQgdGhlIGNvdW50cnkgYW5kIGFyb3VuZCB0aGUgd29ybGQuIEFsb25nIHRoZSB3YXksIEkgbWFkZSBhIGxvdCBvZiB2ZXJ5IGdvb2QsIGNsb3NlIGZyaWVuZHMsIGJ1dCBhbHNvIHJlYWxpemVkIHRoYXQgbWFpbnRhaW5pbmcgdGhvc2UgcmVsYXRpb25zaGlwcyBhcyBhIG1vdmVkIHRvb2sgYSBsb3Qgb2Ygd29yay4gSSBoYWQgdG8gd29yayBoYXJkIHRvIGtlZXAgdGhlIHJlbGF0aW9uc2hpcHMgdGhhdCBtZWFudCB0aGUgbW9zdCB0byBtZS4gSSBub3cgaGF2ZSBtb250aGx5IGNhbGxzIHdpdGggc29tZSBvZiBjbG9zZSBmcmllbmRzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBjb3VudHJ5LCBhbmQgbWFrZSBhbiBlZmZvcnQgdG8gc2VlIGZyaWVuZHMgaW4gdGhlIHNhbWUgY2l0eSBhcyBtZSBvbiBhIHJlZ3VsYXIgYmFzaXMuIE15IGZhbWlseSBhbmQgSSBoYXZlIGEgZ3JvdXAgY2hhdCBhbmQgd2Ugc2NoZWR1bGUgZ3JvdXAgdmlkZW8gY2FsbHMgb2Z0ZW4uIExpZmUgaGFwcGVucyB0byBhbGwgb2YgdXMsIGJ1dCB3ZSBuZWVkIHRvIHByaW9yaXRpemUgdGhlIHBlb3BsZSB3ZSBjYXJlIGFib3V0IHRoZcKgbW9zdC48L2xpPjxsaT48c3Ryb25nPlNheSBuby48L3N0cm9uZz4gSXTigJlzIG9rYXkgdG8gcHV0IHlvdXIgZm9vdCBkb3duIHdoZW4geW91IGFyZW7igJl0IGNvbWZvcnRhYmxlIHdpdGggc29tZXRoaW5nLCBvciB3aGVuIHlvdeKAmXJlIG5vdCBjYXBhYmxlIG9mIG1lZXRpbmcgc29tZW9uZeKAmXMgZXhwZWN0YXRpb25zIG9yIGRlc2lyZXMuIEl0IHRvb2sgbWUgYSBsb25nIHRpbWUgdG8gPGVtPnJlYWxseTwvZW0+IGxlYXJuIHRoaXMgYW5kIHByYWN0aWNlIGl0LiBCdXQsIHdoZW5ldmVyIEkgc2F5IG5vIHRvIHNvbWV0aGluZywgSSBhbHdheXMgb2ZmZXIgYSBjb3VudGVyIG9wdGlvbiB3aGVuZXZlciBpbiBvcmRlciB0byBtYWtlIGl0IGVhc2llciBmb3Igc29tZW9uZSB0byBtZWV0IG1lIGhhbGZ3YXkuIEFzIGl0IHR1cm5zIG91dCwgZXZlcnl0aGluZyBpbiBsaWZlIGlzIGEgbmVnb3RpYXRpb24hPC9saT48bGk+PHN0cm9uZz5CdXkgdGhlIHJlYWxseSBnb29kIG9saXZlIG9pbC48L3N0cm9uZz4gQWx0aG91Z2ggSSB0aGluayB0aGF0IHRoaXMgYXBwbGllcyB0byBhbGwgZm9vZCwgcmVhbGx5LiBJIHdpbGwgYWx3YXlzIGJ1eSB0aGUgaGlnaC1xdWFsaXR5IGluZ3JlZGllbnRzLCBldmVuIGlmIGl0IG1lYW5zIHNwZW5kaW5nIGEgYml0IG1vcmUgbW9uZXkuIEkgY2FuIHRhc3RlIHRoZSBkaWZmZXJlbmNlLCBhbmQgSSBhbHdheXMgcmVhZCB0aGUgaW5ncmVkaWVudHMgbGlzdCBiZWZvcmUgYnV5aW5nIHNvbWV0aGluZy4gSeKAmXZlIG5vdGljZWQgdGhhdCB0aGUgY2hlYXBlciB0aGUgaXRlbSwgdXN1YWxseSB0aGUgbW9yZSBwcm9jZXNzZWQgYW5kIGZ1bGwgb2YgcHJlc2VydmF0aXZlcyBpdCBpcy4gQW5kIEnigJlkIHJhdGhlciBzcGVuZCBhIGxpdHRsZSBleHRyYSBtb25leSBhbmQga25vdyBleGFjdGx5IHdoYXTigJlzIGdvaW5nIGludG8gbXkgYm9keSBpbnN0ZWFkIG9mIHNhdmluZyBhIGZldyBkb2xsYXJzIGFuZCBjb25zdW1pbmcgYSBtdWx0aS1zeWxsYWJsZSBjaGVtaWNhbC48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgZmFjdCB0aGF0IHlvdSBjYW7igJl0IHBsZWFzZSBldmVyeW9uZS48L3N0cm9uZz4gSWYgeW91IHNwZW5kIHlvdXIgd2hvbGUgbGlmZSB0cnlpbmcgdG8gbWFrZSBvdGhlciBwZW9wbGUgaGFwcHksIG5vdCBvbmx5IHdpbGwgeW91IGZhaWwgYXQgdGhhdCAoYmVjYXVzZSBzb21lb25lIGlzIDxlbT5hbHdheXM8L2VtPiBnb2luZyB0byB0YWtlIGlzc3VlIHdpdGggeW91KSwgYnV0IHlvdeKAmWxsIGFsc28gYmUgbWlzZXJhYmxlLiBJdOKAmXMgbm90IHdvcnRoIGl0LiBEZWNpZGUgd2hhdCBpcyBpbXBvcnRhbnQgdG8geW91IGFuZCB3aGF0IGNob2ljZXMgbWFrZSB5b3UgaGFwcHksIGFuZCBpZ25vcmUgdGhlIHJlc3Qgb2YgdGhlIG5vaXNlIGFuZCBvcGluaW9ucy48L2xpPjxsaT48c3Ryb25nPkRvbuKAmXQgcmVhZCB0aGUgY29tbWVudHMuPC9zdHJvbmc+IEkgY29uc3RhbnRseSBzdHJ1Z2dsZSB3aXRoIHRoaXMgb25lIGJlY2F1c2UgcGFydCBvZiBtZSBzdGlsbCB0aGlua3Mgb2YgdGhlIGNvbW1lbnRzIGFzIGZlZWRiYWNrLiBCdXQgcGVvcGxlIHdpbGwgYWx3YXlzIGhhdmUgb3BpbmlvbnMgYW5kIGFuIChhbm9ueW1vdXMpIG9waW5pb24gaXMgd2F5IGVhc2llciB0byBwdXQgb3V0IGludG8gdGhlIHdvcmxkIHRoYW4gY3JlYXRpdmXCoGNvbnRlbnQuPC9saT48bGk+PHN0cm9uZz5BZHZvY2F0ZSBmb3IgeW91cnNlbGYuPC9zdHJvbmc+IE5vIG9uZSBlbHNlIGNhbiBhZHZvY2F0ZSBmb3IgeW91IGJldHRlciB0aGFuIHlvdSBjYW4uIEFuZCBob25lc3RseSwgbm8gb25lIGVsc2UgcHJvYmFibHkgd2lsbC4gQXNrIGZvciB3aGF0IHlvdSB3YW50LCBhbmQga25vdyB5b3VyIHdvcnRoLiBJdOKAmXMgbm90IGFycm9nYW5jZSB0byBrbm93IHlvdXIgdmFsdWUgYW5kIHBvaW50IGl0IG91dCB0byBvdGhlcnMuIFRoZSBzb29uZXIgeW91IGJlY29tZSBjb21mb3J0YWJsZSBkb2luZyBpdCwgdGhlIGJldHRlciBvZmYgeW914oCZbGzCoGJlLjwvbGk+PGxpPjxzdHJvbmc+RG9u4oCZdCBjYXJyeSBhcm91bmQgZ3VpbHQuPC9zdHJvbmc+IE5vbmUgb2YgdXMgYXJlIHBlcmZlY3QgYW5kIHdlIGRvIHRoZSBiZXN0IHRoYXQgd2UgY2FuLiBBcyBsb25nIGFzIHlvdSBjYW4gbG9vayB5b3Vyc2VsZiBpbiB0aGUgbWlycm9yIGFuZCBrbm93IHRoYXQgeW91IGRpZCBhbGwgdGhhdCB5b3UsIGNvdWxkIGdpdmVuIHdoYXQgeW91IGtuZXcgYXQgdGhlIHRpbWUsIHRoZW4gdGhhdOKAmXMgcmVhbGx5IHRoZSBiZXN0IHRoYXQgYW55b25lIGNvdWxkIGhvcGXCoGZvci48L2xpPjxsaT48c3Ryb25nPkFjY2VwdCB0aGUgc2NhcnMgeW91IGNhcnJ5Ljwvc3Ryb25nPiBJ4oCZdmUgbGVhcm5lZCB0aGF0IHRyYXVtYSBkb2VzbuKAmXQgcmVhbGx5IGdvIGF3YXksIGJ1dCBpdCBjaGFuZ2VzIHNoYXBlcyBhbmQgZm9ybXMuIEkgc3RpbGwgZ2V0IHRyaWdnZXJlZCBzb21ldGltZXMsIHdoaWNoIGNhbiBiZSBhIHNoYXJwIHJlbWluZGVyIHRoYXQgSSB3aWxsIGNhcnJ5IHBhaW5mdWwgZXhwZXJpZW5jZXMgd2l0aCBtZSB3aGVyZXZlciBJIGdvLiBJ4oCZdmUgcmVhbGl6ZWQgdGhhdCB0aGlzIGlzIG9rLCBiZWNhdXNlIHRoZSBleHBlcmllbmNlIGFuZCB5b3VyIG1lbW9yeSBvZiBpdCBjaGFuZ2Ugb3ZlciB0aW1lLCBhbmQgdGhleSBtYWtlIHlvdSBtdWNoIHN0cm9uZ2VyIGF0IHRoZSBlbmQgb2YgdGhlwqBkYXkuPC9saT48bGk+PHN0cm9uZz5QYXkgaXQgZm9yd2FyZC48L3N0cm9uZz4gWW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byByZXBheSBvdGhlcnMgZm9yIHRoZWlyIGtpbmRuZXNzLCBzdXBwb3J0LCBvciBmb3IgaGVscGluZyB5b3Ugd2hlbiB5b3UgcmVhbGx5IG5lZWRlZCBpdC4gQWxsIHlvdSBjYW4gZG8gaXMgcGF5IGl0IGZvcndhcmQgdG8gdGhlIG5leHTCoHBlcnNvbi48L2xpPjxsaT48c3Ryb25nPkdvIG9uIHNlbGYtZGF0ZXMuPC9zdHJvbmc+IFRoaXMgaXMgb25lIG9mIG15IGZhdm9yaXRlIHJpdHVhbHMsIGFuZCBJIGZpcm1seSBiZWxpZXZlIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGxlYXJuIHRvIHNwZW5kIHRpbWUgd2l0aCB0aGVtc2VsdmVzLiBJIGxvdmUgdG8gZ28gdG8gZWFybHkgU3VuZGF5IG1vcm5pbmcgbW92aWVzIHdoZW4gbm8gb25lIGVsc2UgaXMgYXJvdW5kLiBJIHRoaW5rIHRoYXQgdGhpcyBwcmFjdGljZSBtYWtlcyB5b3UgbW9yZSBjb25maWRlbnQgYW5kIHNlbGYtYXdhcmUuPC9saT48bGk+PHN0cm9uZz5Vc2UgYSBjYWxlbmRhci48L3N0cm9uZz4gTXkgY2xvc2UgZnJpZW5kcyBrbm93IHRoYXQgSSBzd2VhciBieSBhIGNhbGVuZGFyLiBJdOKAmXMgdGhlIG9ubHkgd2F5IHRoYXQgSSBjYW4gbWFuYWdlIG9yZGVyIGluIG15IGxpZmUgd2l0aG91dCBnZXR0aW5nIG92ZXJ3aGVsbWVkLjwvbGk+PGxpPjxzdHJvbmc+TmV2ZXIgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMuPC9zdHJvbmc+IFRoaXMgaXMgc29tZXRoaW5nIEnigJl2ZSByZWFsbHkgc3RhcnRlZCB0byBtYXN0ZXIgaW4gdGhlIHBhc3QgZmV3IHllYXJzLCBidXQgdW50aWwgdGhlbiwgSSByZWFsbHkgc3RydWdnbGVkIHdpdGggaXQuIEFsbCBvZiB1cyBhcmUgd2Fsa2luZyBkaWZmZXJlbnQgcGF0aHMsIHNvIGl04oCZcyBzaWxseSB0byBsb29rIGF0IHNvbWVvbmUgZWxzZSBhbmQgdGhlaXIgcGF0aCBhbmQgd29uZGVyIHdoeSB5b3XigJlyZSBub3QgZG9pbmcgdGhlIHNhbWUgdGhpbmdzIHRoYXQgdGhleSBhcmUhIEFub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGF0IGV2ZW4gaWYgPGVtPnlvdTwvZW0+IGRvbuKAmXQgY29tcGFyZSB5b3Vyc2VsZiB0byBvdGhlcnMsIG90aGVyIHBlb3BsZSB3aWxsIHByb2JhYmx5IHN0aWxsIGNvbXBhcmUgdGhlbXNlbHZlcyB0byB5b3UuIEFuZCB0aGF04oCZcyBzb21ldGhpbmcgeW91IGp1c3QgY2Fu4oCZdCBjb250cm9sLCBzbyBzdGF5IGZvY3VzZWQgb24gdGhlIHBhdGggdGhhdCB5b3XigJlyZSB3YWxraW5nIG9uLCBldmVuIGlmIHRoZXnigJlyZSBsb29raW5nIG92ZXIgYXTCoHlvdS48L2xpPjxsaT48c3Ryb25nPkJlIGtpbmQgdG8geW91cnNlbGYuIDwvc3Ryb25nPllvdSBhcmUgeW91ciBoYXJzaGVzdCBjcml0aWMuIEkgdXNlZCB0byBiZSBzbyB1bmtpbmQgdG8gbXlzZWxmIGFuZCBwdXQgbXlzZWxmIHRocm91Z2ggdGhlIHdyaW5nZXIgYWJvdXQgbXkgd2VpZ2h0LCBteSBib2R5LCBteSBhY2NvbXBsaXNobWVudHMsIGFuZCBteSBmYWlsdXJlcy4gQnV0IHRoZSB3YXkgdGhhdCB5b3UgdGFsayBhYm91dCB5b3Vyc2VsZiBpcyBob3cgeW91IHNob3cgYW5kIHRlYWNoIG90aGVyIHBlb3BsZSBob3cgdG8gdGFsayB0byB5b3UuIElmIHlvdSBhcmUgc2VsZi1kZXByZWNhdGluZyBvciB1bmtpbmQgdG8geW91cnNlbGYsIHRoZW4gb3RoZXIgcGVvcGxlIHdpbGwgbGVhcm4gdG8gcHV0IHlvdSBkb3duIGFuZCBiZSB1bmtpbmQgdG8geW91LMKgdG9vLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSByaXNrcy48L3N0cm9uZz4gSWYgeW914oCZcmUgc2NhcmVkIG9mIHRyeWluZyBzb21ldGhpbmcsIHJlbWVtYmVyIHRoYXQgdGhlIHdvcnN0IHRoaW5nIHRoYXQgeW91IDxlbT50aGluazwvZW0+IHdpbGwgaGFwcGVuIGlzIHVzdWFsbHkgbmV2ZXIgdGhhdMKgYmFkLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB0ZWEuPC9zdHJvbmc+IEhlcmJhbCB0ZWFzIGJlZm9yZSBiZWQgYXJlIHNvIGNhbG1pbmcgYW5kIGNsZWFuc2luZyEgSeKAmXZlIGFsc28gc3RhcnRlZCBzd2l0Y2hpbmcgb3V0IG15IGFmdGVybm9vbiBjb2ZmZWUgd2l0aCB0ZWEgaW5zdGVhZCwgYW5kIG15IHNsZWVwIGlzIHNvIG11Y2ggYmV0dGVyIGFuZCBJIGFtIG11Y2ggbGVzcyBkZWh5ZHJhdGVkLjwvbGk+PGxpPjxzdHJvbmc+U2F5IOKAnEkgbG92ZSB5b3XigJ0gbW9yZS48L3N0cm9uZz4gTGlmZSBpcyBzaG9ydC4gRXZlbiBpZiB5b3Uga25vdyBpdCBjZXJlYnJhbGx5LCB0aGlzIHJlYWxpdHkgYmVjb21lcyBtb3JlIGFuZCBtb3JlIHJlYWwgYXMgeW91IGdldMKgb2xkZXIuPC9saT48bGk+PHN0cm9uZz5Eb27igJl0IHRha2UgdGhpbmdzIHBlcnNvbmFsbHkuPC9zdHJvbmc+IFBlb3BsZSBhcm91bmQgeW91IGNhbiBoYXZlIGJhZCBkYXlzLiBJ4oCZdmUgaGFkIHRvIGRlYWwgd2l0aCBibHVudCwgaGFyc2gsIGFuZCBpbnNlY3VyZSBjb3dvcmtlcnMgYW5kIGJvc3NlcywgYW5kIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCBpZiBJIHRvb2sgZXZlcnl0aGluZyB0aGF0IHRoZXkgc2FpZCB0byBtZSBwZXJzb25hbGx5LCBJ4oCZZCBiZSBjcnlpbmcgaW4gdGhlIG9mZmljZSBiYXRocm9vbSBldmVyeSBvdGhlciB3ZWVrICh3aGljaCBJIGRpZCBkbyBlYXJseSBvbikuIEnigJl2ZSBzaW5jZSBsZWFybmVkIHRvIGxldCB3aGF0IG90aGVycyBzYXkgYm91bmNlIG9mZiBtZSBhbmQgYmFjayB0byB0aGVtLiBBc3N1bWUgdGhhdCBwZW9wbGUgYXJlIGhhdmluZyBhIGJhZCBkYXkgYW5kLCBpZiBuZWNlc3NhcnksIHN0aWNrIHVwIGZvciB5b3Vyc2VsZiBhbmQgc3BlYWsgYmFjay4gQnV0IGRvbuKAmXQgY2FycnkgdGhlaXIgd29yZHMgYXJvdW5kIHdpdGggeW91IGZvciBob3VycyBvciB3ZWVrcyBvbiBlbmQ7IGl0IHdpbGwgZWF0IHlvdSBhbGl2ZSBhbmQgeW914oCZbGwgYmUgdGhlIG9uZSB0byBzdWZmZXIsIG5vdMKgdGhlbS48L2xpPjxsaT48c3Ryb25nPlRha2UgeW91ciBwYXJlbnRzIG91dCB0byBkaW5uZXIuPC9zdHJvbmc+IEFuZCBpZiB5b3UgY2Fu4oCZdCBhZmZvcmQgdG8sIGNvb2sgdGhlbSBhIG5pY2UgbWVhbCEgV2UgY2Fu4oCZdCBldmVyIHJlcGF5IHRoZSBwZW9wbGUgd2hvIGd1aWRlZCB1cyBlYXJseSBvbiBpbiBsaWZlLCBidXQgd2UgY2FuIGF0IGxlYXN0IHNob3cgdGhlbSBvdXIgYXBwcmVjaWF0aW9uLjwvbGk+PGxpPjxzdHJvbmc+SGF2ZSBib3VuZGFyaWVzIChhbmQgc3RpY2sgdG8gdGhlbSkuIDwvc3Ryb25nPlRoaXMgaXMgaW1wb3J0YW50IHdoZW4geW914oCZcmUgd29ya2luZyB3aXRoIG90aGVyIHBlb3BsZSwgYnV0IGFsc28gd2hlbiBpdCBjb21lcyB0byBkb2luZyB0aGluZ3Mgb24geW91ciBvd24uIEkgaGF2ZSBydWxlcyBhYm91dCBob3cgSSB3YW50IHRvIGNvbmR1Y3QgbXlzZWxmIG9yIGhhbmRsZSBzaXR1YXRpb25zLCBhbmQgSeKAmW0gbGVhcm5pbmcgaG93IHRvIGRyYXcgbGluZXMgaW4gdGhlIHNhbmQgYW5kIG5vdCBjcm9zcyB0aG9zZSBib3VuZGFyaWVzIHdpdGggbXlzZWxmLCBvciB3aXRowqBvdGhlcnMuPC9saT48bGk+PHN0cm9uZz5Qcmlvcml0aXplIHlvdXIgZmluYW5jaWFsIGhlYWx0aC4gPC9zdHJvbmc+SeKAmW0gcmVhbGx5IHByb3VkIG9mIGhvdyBtdWNoIEnigJl2ZSBsZWFybmVkIGFib3V0IGZpbmFuY2lhbCBzdGFiaWxpdHkgYW5kIGhlYWx0aCBpbiB0aGUgbGFzdCBkZWNhZGUsIGFuZCBJIGhvbmVzdGx5IHRoaW5rIHRoYXQgdGFraW5nIGNvbnRyb2wgb2YgdGhhdCBhc3BlY3Qgb2YgeW91ciBsaWZlIGlzIGluY3JlZGlibHkgZW1wb3dlcmluZy4gWW91IHNob3VsZCBrbm93IHdoZXJlIHlvdXIgbW9uZXkgaXMsIHdoZXJlIGl04oCZcyBnb2luZywgYW5kIGhvdyB3ZWxsIGl0cyBncm93aW5nLCBhY3RpdmVseSBhbmQgcGFzc2l2ZWx5LiBXZSBkb27igJl0IHRhbGsgYWJvdXQgZmluYW5jaWFsIHRoaW5ncyB0aGF0IG9mdGVuLCBidXQgSSB0aGluayB3ZSBzaG91bGQgYmUhIFRoZXJl4oCZcyBzbyBtdWNoIG1vcmUgSSBzdGlsbCBoYXZlIHRvIGxlYXJuIGJ1dCBJIGZlZWwgbGlrZSBJ4oCZdmUgb25seSBnb3R0ZW4gYmV0dGVyIGF0IGl0IG92ZXLCoHRpbWUuPC9saT48bGk+PHN0cm9uZz5WaXRhbWlucyBhcmUgZ29vZC48L3N0cm9uZz4gSSB0YWtlIGEgZmV3IGRpZmZlcmVudCB2aXRhbWlucywgaW5jbHVkaW5nIHByb2Jpb3RpY3MsIHZpdGFtaW4gZCwgYW5kIG1hZ25lc2l1bSEgSSBhbHdheXMgZmVlbCBzbyBtdWNoIGJldHRlciB3aGVuIEkgdGFrZSB0aGVtIGNvbnNpc3RlbnRseSwgYW5kIGZlZWwgbXVjaCB3b3JzZSB3aGVuIEkgc2tpcCBhIGZldyBkYXlzIGluIGHCoHJvdy48L2xpPjxsaT48c3Ryb25nPkxldCBvdGhlciBwZW9wbGUga25vdyB0aGF0IHlvdSBhcmUgdGhlcmUgZm9yIHRoZW0uPC9zdHJvbmc+IEkgaGF2ZSBhIGZldyBjbG9zZSBwZW9wbGUgaW4gbXkgbGlmZSB0aGF0IEkga25vdyBJIGNvdWxkIGNhbGwsIGRheSBvciBuaWdodCwgcmFpbiBvciBzaGluZS4gQW5kIGZvciBhIGhhbmRmdWwgb2YgcGVvcGxlLCBJIGFtIHByZXR0eSBzdXJlIHRoYXQgSSBhbSB0aGF0IHBlcnNvbiBmb3IgdGhlbS4gVGhlIG9ubHkgcmVhc29uIEkga25vdyB0aGF0IGlzIGJlY2F1c2UgdGhleSBoYXZlIHRvbGQgbWXigIrigJTigIphbmQgc2hvd24gbWUgd2l0aCB0aGVpciBhY3Rpb25z4oCK4oCU4oCKdGhhdCBJIGNhbiBhbHdheXMgZGVwZW5kIG9uIHRoZW0uIFRlbGwgdGhlIHBlb3BsZSB5b3UgY2FyZSBhYm91dCB0aGF0IHlvdSBhcmUgdGhlcmUgYmVjYXVzZSB5b3UgbmV2ZXIga25vdyB3aGVuIHlvdSBib3RoIG1pZ2h0IG5lZWQgZWFjaMKgb3RoZXIuPC9saT48bGk+PHN0cm9uZz5TcGVuZCB0aW1lIGF3YXkgZnJvbSB5b3VyIHBob25lLjwvc3Ryb25nPiBJIGRvbuKAmXQgY2hlY2sgbXkgcGhvbmUgZHVyaW5nIG1lYWx0aW1lcyBhbnltb3JlLCBhbmQgSSB0cnkgdG8gc3BlbmQgbG9uZyBzdHJldGNoZXMgb2YgdGltZSAob3IgYSBkYXkpIHdpdGhvdXQgbG9va2luZyBhdCBvciBjaGVja2luZyBpdC4gSSBhbHNvIHRoaW5rIGl0cyB2YWx1YWJsZSB0byB0YWtlIHRyaXBzIHRoYXQgZm9yY2UgeW91IHRvIGhhdmUgbm8gY2VsbCBzZXJ2aWNlIHNvIHRoYXQgeW91IGNhbiA8ZW0+dHJ1bHk8L2VtPiB1bnBsdWc7IEkgdHJ5IHRvIGRvIHRoaXMgb25jZSBhwqB5ZWFyLjwvbGk+PGxpPjxzdHJvbmc+RHJpbmsgbW9yZSB3YXRlci48L3N0cm9uZz4gSeKAmXZlIGhlYXJkIHBlb3BsZSBnaXZlIHRoaXMgYWR2aWNlIGFsbCB0aGUgdGltZSwgYnV0IEkgYWN0dWFsbHkgZmVlbCA8ZW0+c28gbXVjaCBiZXR0ZXIgPC9lbT53aGVuIEnigJltIHdlbGwgaHlkcmF0ZWQgKGVzcGVjaWFsbHkgaWYgSeKAmXZlIGJlZW4gZHJpbmtpbmcgZGVoeWRyYXRpbmcgdGhpbmdzIGxpa2UgYWxjb2hvbCBvciBjb2ZmZWUpLiBJIGRvbuKAmXQgdXN1YWxseSBkcmluayBlbm91Z2ggd2F0ZXIgd2hlbiBJ4oCZbSB0cmF2ZWxpbmcgdGhvdWdoLCBhbmQgSeKAmW0gdHJ5aW5nIHRvIGJlIGJldHRlciBhYm91dMKgdGhhdC48L2xpPjxsaT48c3Ryb25nPlRyeSBub3QgdG8gd2FzdGUgYW55dGhpbmcsIGFuZCB0cnkgdG8gcmV1c2UgZXZlcnl0aGluZy48L3N0cm9uZz4gSeKAmXZlIGxlYXJuZWQgc28gbXVjaCBhYm91dCB0aGlzIGZyb20gbXkgcGFydG5lci4gV2l0aCBhIGZldyByYXJlIGV4Y2VwdGlvbnMsIHdlIGVhdCBldmVyeXRoaW5nIHRoYXQgd2UgYnV5LCBjb21wb3N0IHdoYXQgd2UgZG9u4oCZdCwgYW5kIG1vc3RseSBvbmx5IGJ1eSB0aGluZ3MgdGhhdCBjYW4gYmUgcmV1c2VkIG9yIHJlc3BvbnNpYmx5IHJlY3ljbGVkLiBJIGtub3cgSSBjb3VsZCBzdGlsbCBkbyBtb3JlLCBidXQgaXQgZmVlbHMgZ29vZCB0byBiZSBoZWFkaW5nIGluIHRoZSByaWdodCBkaXJlY3Rpb24gd2hlbiBpdCBjb21lcyB0byBzdXN0YWluYWJpbGl0eS48L2xpPjxsaT48c3Ryb25nPlN0YWJsZSByZWxhdGlvbnNoaXBzIGFyZSBtb3JlIGRlcGVuZGFibGUgdGhhbiBwYXNzaW9uYXRlIG9uZXMuPC9zdHJvbmc+IEkgbGVhcm5lZCB0aGlzIHRoZSBoYXJkIHdheSwgYnV0IEnigJltIHJlYWxseSBnbGFkIHRoYXQgSSBkaWQuIEluIHRoZSBsb25nIHJ1biwgYSBwZXJzb24gdGhhdCB5b3UgY2FuIGNvbWUgaG9tZSB0bywgbGVhbiBvbiwgYW5kIGJ1aWxkIGEgc3Ryb25nIGZvdW5kYXRpb24gd2l0aCBpcyBtdWNoIGhlYWx0aGllciBhbmQgd2lsbCBtYWtlIHlvdSBtdWNoIGhhcHBpZXIgdGhhbiBvbmUgdGhhdCBpcyB2b2xhdGlsZSBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci48L2xpPjxsaT48c3Ryb25nPkl04oCZcyBva2F5IHRvIGxldCBwZW9wbGUgZ28uIDwvc3Ryb25nPldoaWxlIEkgaGF2ZSBzb21lIHBlb3BsZSB3aG8gSSBrbm93IHdpbGwgYmUgaW4gbXkgbGlmZSBmb3IgYSBsb25nIHRpbWUsIG1vc3Qgb2YgbXkgZnJpZW5kc2hpcHMgaGF2ZSBxdWlldGx5IGZhZGVk4oCK4oCU4oCKYW5kIHRoYXTigJlzIG9rLiBQZW9wbGUgYXJlIGFsd2F5cyBjaGFuZ2luZywgYW5kIHdlIGNhbiBncm93IGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBUaG9zZSByZWxhdGlvbnNoaXBzIGFyZSBpbmV2aXRhYmx5IGdvaW5nIHRvIGNoYW5nZSBhcyBhIHJlc3VsdCwgYW5kIGl04oCZcyB0b3RhbGx5wqBub3JtYWwuPC9saT48bGk+PHN0cm9uZz5OZXZlciBzYWNyaWZpY2UgeW91ciBjcmVhdGl2ZSB0aW1lIG9yIHNwYWNlLjwvc3Ryb25nPiBJZiB5b3UgYXJlIHNvbWVvbmUgd2hvIGlzIGFydGlzdGljIG9yIGNyZWF0aXZlLCBmaWd1cmUgb3V0IHdoYXQgeW91IG5lZWQgdG8gYmUgY3JlYXRpdmUgYW5kIG1ha2Ugc3VyZSB5b3Ugc2FjcmlmaWNlIHRoYXQgZm9yIGFueXRoaW5nIG9yIGFueW9uZS4gRm9yIG1lLCBJIG5lZWQgcXVpZXQsIHVuaW50ZXJydXB0ZWQgaG91cnMgaW4gdGhlIG1vcm5pbmcgdG8gd3JpdGUsIGFuZCBJIGRvbuKAmXQgbGV0IGFueXRoaW5nIGdldCBpbiB0aGUgd2F5IG9mIG1lIGZpbmRpbmcgdGhvc2UgaG91cnMgb2YgY3JlYXRpdml0eS48L2xpPjxsaT48c3Ryb25nPkludmVzdCBpbiB5b3VyIGhlYWx0aC48L3N0cm9uZz4gVGFrZSBjYXJlIG9mIHlvdXJzZWxmIGVhcmx5IG9uLCBiZWZvcmUgeW91ciBkb2N0b3IgdGVsbHMgeW91IHRoYXQgeW91IHNob3VsZDsgZWF0IHdlbGwsIGV4ZXJjaXNlIG9mdGVuLCBhbmQgbWl0aWdhdGUgdGhlIHN0cmVzcyBhbmQgYW54aWV0eSBhcm91bmQgeW91LiBUaGUgb25lIHRoaW5nIHRoYXQgbm9uZSBvZiB1cyBjYW4gZWFybiBvciBidXkgb3Igd2luIG91ciB3YXkgaW50byBpcyBtb3JlwqB0aW1lLjwvbGk+PGxpPjxzdHJvbmc+VGFrZSB0aGluZ3MgYXMgdGhleSBjb21lLjwvc3Ryb25nPiBJdOKAmXMgcmVhbGx5IGVhc3kgdG8gZ2V0IGNhdWdodCB1cCBpbiBwbGFubmluZyBmb3Igb3IgZGF5ZHJlYW1pbmcgYWJvdXQgdGhlIGZ1dHVyZS4gRm9yIG1lLCBzb21ldGltZXMgdGhhdCB0cmFuc2xhdGVzIGludG8gcGFuaWNraW5nIG9yIGhhdmluZyBhbnhpZXR5IGFib3V0IGEgZnV0dXJlIHRoYXQgaGFzbuKAmXQgaGFwcGVuZWQgeWV04oCK4oCU4oCKYSBjb21wbGV0ZSBoeXBvdGhldGljYWwuIEkgaGF2ZSB0byByZW1pbmQgbXlzZWxmIHRoYXQgc28gbXVjaCBvZiB0aGUgd29ybGQgaXMgbm90IGluIG15IGNvbnRyb2w7IGluIGZhY3QgYWxsIG9mIGl0IGlzIG91dCBvZiBteSBjb250cm9sIGV4Y2VwdCBmb3IgbXlzZWxmLiBBbGwgYW55IG9mIHVzIGNhbiBkbyBpcyBjb250cm9sIG91ciBvd24gYWN0aW9ucyBpbiB0aGUgbW9tZW50IGFuZCBvdXIgb3duIHBlcnNwZWN0aXZlIG9uIHRoaW5ncy4gSeKAmW0gbGVhcm5pbmcgZm9jdXMgb24gd2hhdCBpcyBoYXBwZW5pbmcgPGVtPm5vdzwvZW0+IGFuZCB0ZWFjaGluZyBteXNlbGYgdG8gYnJpbmcgbXkgbWluZCBiYWNrIHRvIHRoZSBwcmVzZW50LiBBbmQgSeKAmW0gdHJ5aW5nIHRvIGhhdmUgZmFpdGggdGhhdCwgd2hlbiBhbnkgc2l0dWF0aW9uIGFyaXNlcywgSeKAmWxsIGhhdmUgdGhlIGNvbmZpZGVuY2UgYW5kIHRoZSBhYmlsaXR5IHRvIGNyb3NzIHRoYXQgYnJpZGdlIHdoZW4gSSBjb21lIHRvwqBpdC48L2xpPjwvb2w+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo1SElBd1lvUDljTS1MNmxHMmFmM2p3LmpwZWciIC8+PC9maWd1cmU+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWRhMmQyZTIxYTZiMiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbTG9naWNhbCBUaW1lIGFuZCBMYW1wb3J0IENsb2NrcyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbG9naWNhbC10aW1lLWFuZC1sYW1wb3J0LWNsb2Nrcy1wYXJ0LTItMjcyYzA5N2RjZGRhP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yNzJjMDk3ZGNkZGE8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPlRodSwgMDUgRGVjIDIwMTkgMDU6MTY6MzUgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMTItMDVUMDU6MTY6MzUuODU0WjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqR0tJaTRydE5KRnRUZmcwVnYzUm5nQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxvZ2ljYWwgdGltZSBhbmQgTGFtcG9ydCBjbG9ja3MgKHBhcnTCoDIpPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRocm91Z2hvdXQgdGhlIGNvdXJzZSBvZiB0aGlzIHNlcmllcywgd2XigJl2ZSBiZWVuIGxlYXJuaW5nIHRpbWUgYW5kIGFnYWluIHRoYXQgZGlzdHJpYnV0ZWQgc3lzdGVtcyBhcmUgPGVtPmhhcmQ8L2VtPi4gV2hlbiBmYWNlZCB3aXRoIGhhcmQgcHJvYmxlbXMsIHdoYXTigJlzIG9uZSBkbyB0bz8gV2VsbCwgYXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+IG9mIHRoaXMgcG9zdCwgc29tZXRpbWVzIHRoZSBhbnN3ZXIgaXMgdG8gc3RyaXAgYXdheSB0aGUgY29tcGxpY2F0ZWQgcGFydHMgb2YgYSBwcm9ibGVtIGFuZCB0cnkgdG8gbWFrZSBzZW5zZSBvZiB0aGluZ3Mgc2ltcGx5LMKgaW5zdGVhZC48L3A+PHA+VGhpcyBpcyBleGFjdGx5IHdoYXQgTGVzbGllIExhbXBvcnQgZGlkIHdoZW4gaGUgYXBwcm9hY2hlZCB0aGUgcHJvYmxlbSBvZiBzeW5jaHJvbml6aW5nIHRpbWUgYWNyb3NzIGRpZmZlcmVudCBwcm9jZXNzZXMgYW5kIGNsb2Nrcy4gQXMgd2UgbGVhcm5lZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMiI+cGFydCBvbmU8L2E+LCBoZSB3cm90ZSBhIGZhbW91cyBwYXBlciBjYWxsZWQgPGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj7igJxUaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVt4oCdPC9hPiwgd2hpY2ggZGV0YWlsZWQgc29tZXRoaW5nIGNhbGxlZCBhIDxlbT5sb2dpY2FsIGNsb2NrPC9lbT4sIG9yIGEga2luZCBvZiBjb3VudGVyIHRvIGhlbHAga2VlcCB0cmFjayBvZiBldmVudHMgaW4gYSBzeXN0ZW0uIFRoZXNlIGNsb2NrIGNvdW50ZXJzIHdlcmUgTGFtcG9ydOKAmXMgaW52ZW50aW9uIChhbmQgc29sdXRpb24hKSB0byB0aGUgcHJvYmxlbSBvZiBrZWVwaW5nIHRyYWNrIG9mIGNhdXNhbGx5LW9yZGVyZWQgZXZlbnRzIHdpdGhpbiBhIHN5c3RlbS4gQnkgdXNpbmcgYSBsb2dpY2FsIGNsb2NrLCB3ZSBjYW4gbW9yZSBlYXNpbHkgY3JlYXRlIGEgY2hhaW4gb2YgZXZlbnRzIGJldHdlZW4gcHJvY2Vzc2VzIGluIGHCoHN5c3RlbS48L3A+PHA+QnV0IGhvdyBkbyB0aGVzZSBjbG9ja3MgYWN0dWFsbHkgd29yaz8gQW5kIGhvdyBkb2VzIGEgY2xvY2sgYWN0dWFsbHkgZmlndXJlIG91dCB0aGUgdGltZSBvZiBldmVudHPigIrigJTigIplc3BlY2lhbGx5IHdoZW4gdGhlcmUgYXJlIGV2ZW50cyBoYXBwZW5pbmcgYWxsIG92ZXIgdGhlIHN5c3RlbT8gSXTigJlzIHRpbWUgdG8gZmluYWxseSBmaW5kwqBvdXQuPC9wPjxoMz5Gcm9tIGNsb2NrIHRvIHRpbWVzdGFtcDwvaDM+PHA+QXMgd2UgYWxyZWFkeSBrbm93LCBsb2dpY2FsIGNsb2NrcywgYWxzbyBzb21ldGltZXMgY2FsbGVkIDxzdHJvbmc+PGVtPkxhbXBvcnQgdGltZXN0YW1wczwvZW0+PC9zdHJvbmc+LCBhcmUgY291bnRlcnMuIEJ1dCBob3cgZG8gdGhvc2UgY291bnRlcnMgd29yayB1bmRlciB0aGUgaG9vZD8gVGhlIGFuc3dlciBtYXkgYmUgc3VycHJpc2luZ2x5IHNpbXBsZTogdGhlIGNsb2NrcyBhcmUgZnVuY3Rpb25zLCBhbmQgaXRzIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgb2Yg4oCcY291bnRpbmfigJ0gZm9ywqB1cyE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpEbWVaN0NVRmtzNExxNWg3QkJjMU9BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IHNob3VsZCB3ZSB0aGluayBvZiBsb2dpY2FswqBjbG9ja3M/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGNhbiB0aGluayBvZiBsb2dpY2FsIGNsb2NrcyBhcyA8c3Ryb25nPjxlbT5mdW5jdGlvbnM8L2VtPjwvc3Ryb25nPiwgd2hpY2ggdGFrZSBpbiBhbiBldmVudCBhcyB0aGVpciBpbnB1dCwgYW5kIHJldHVybnMgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYWN0cyBhcyB0aGUg4oCcY291bnRlcuKAnS4gRWFjaCBub2Rl4oCK4oCU4oCKd2hpY2ggaXMgb2Z0ZW4ganVzdCBhIHByb2Nlc3PigIrigJTigIppbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPml0cyBvd24gbG9jYWwgY2xvY2s8L2E+LCBhbmQgZWFjaCBwcm9jZXNzIG5lZWRzIHRvIGhhdmUgaXRzIG93biBsb2dpY2FswqBjbG9jay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2QU9QQ00wNHNYam0zMTIwWjVrSTNRLmpwZWciIC8+PGZpZ2NhcHRpb24+UHNldWRvLWNvZGluZyBhIGxvZ2ljYWwgY2xvY2sgZnVuY3Rpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPklmIHdlIGltYWdpbmUgdGhlIGxvZ2ljYWwgY2xvY2sgYXMgYSBmdW5jdGlvbiB0aGF0IHdlIG1pZ2h0IGltcGxlbWVudCwgd2UgY2FuIHRoaW5rIHRocm91Z2ggaG93IGl0IHdvcmtzLiBJZiB3ZSB3ZXJlIHRvIHBzZXVkby1jb2RlIHRoYXQgZnVuY3Rpb24sIHdlIGNvdWxkIGJlIHN1cmUgdGhhdCBpdCB3b3VsZCB0YWtlIGFuIGV2ZW50IGFzIGl0cyBhcmd1bWVudC4gV2UgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPndpbGwgcmVjYWxsPC9hPiB0aGF0IGFuIGV2ZW50IGNhbiBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgd2l0aGluIGEgcHJvY2VzcywgYSBzZW5kIGV2ZW50IHRoYXQgbWFya3MgdGhlIHByb2Nlc3Mgc2VuZGluZyBhIG1lc3NhZ2UgZWxzZXdoZXJlLCBvciBhIHJlY2VpdmUgZXZlbnQgdGhhdCBtYXJrcyB0aGUgcHJvY2VzcyByZWNlaXZpbmcgYW4gZXZlbnQgZnJvbSBlbHNld2hlcmUuIEEgbG9naWNhbENsb2NrIGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgaW4gYW55IG9mIHRoZXNlIHRocmVlIHR5cGVzIG9mwqBldmVudHMuPC9wPjxwPk9uY2UgdGhlIGxvZ2ljYWxDbG9jayBmdW5jdGlvbiBoYXMgYW4gZXZlbnQsIGl0IGxvb2tzIGF0IHRoZSB0aW1lIG9uIHRoYXQgZXZlbnQsIGFuZCBjb21wYXJlcyBpdCB0byB0aGUgdGltZSBvbiB0aGUgY2xvY2vigJlzIHByb2Nlc3MuIE9uY2UgaXQgY29tcGFyZXMgdGhlIHR3bywgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSBvcHRpb25zLCBhbmQgaW5jcmVtZW50cyBpdCBhcmJpdHJhcmlseS4gVGhlIGluY3JlbWVudCBzdGVwIGlzIGltcG9ydGFudCwgYmVjYXVzZSB3aXRoIGxvZ2ljYWwgY2xvY2tzLCB0aW1lIGNvbnRpbnVlcyB0byBtYXJjaCBmb3J3YXJkLCBhbmQgdGhlIGluY3JlbWVudCBzdGVwIGlzIHdoYXQgZW5zdXJlcyB0aGF0IHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGlzIGFsd2F5cyBsYXJnZXIgaW4gdmFsdWUgdGhhbiB0aGUgZXZlbnTigJlzwqB0aW1lLjwvcD48cD5JZiB0aGlzIHNlZW1zIGNvbmZ1c2luZywgZmVhciBub3QhIFdoaWxlIHBzZXVkby1jb2RlIGNhbiBiZSBoZWxwZnVsIHNvbWV0aW1lcywgYnV0IGFuIGV4YW1wbGUgaXMgZXZlbiBiZXR0ZXIuIE5vdyB0aGF0IHdlIHVuZGVyc3RhbmQgc29tZSBvZiB0aGVvcnkgYmVoaW5kIGhvdyBhIGxvZ2ljYWwgY2xvY2sgbWlnaHQgd29yaywgbGV04oCZcyB0YWtlIGEgZGVlcGVyIGxvb2sgYXQgaG93IHRoZSBjbG9jayBhbGdvcml0aG0gPGVtPmFjdHVhbGx5wqA8L2VtPndvcmtzLjwvcD48aDM+TGFtcG9ydOKAmXMgY2xvY2sgYWxnb3JpdGhtPC9oMz48cD5JbiBtYW55IGNhc2VzLCBMYW1wb3J04oCZcyBhbGdvcml0aG0gZm9yIGRldGVybWluaW5nIHRoZSB0aW1lIG9mIGFuIGV2ZW50IGNhbiBiZSB2ZXJ5IHN0cmFpZ2h0Zm9yd2FyZC4gSWYgYW4gZXZlbnQgb2NjdXJzIG9uIGEgc2luZ2xlIHByb2Nlc3MsIHRoZW4gd2UgaW50dWl0aXZlbHkgY2FuIGd1ZXNzIHRoYXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZXZlbnQgd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIGV2ZW50IGJlZm9yZSBpdCwgYW5kIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGltZXN0YW1wcyBvZiB0aGUgdHdvIGV2ZW50cyBvbiB0aGUgPGVtPnNhbWU8L2VtPiBwcm9jZXNzIHdpbGwgZGVwZW5kIG9ubHkgb24gaG93IG11Y2ggdGhlIGNsb2NrIGluY3JlbWVudHMgYnkgKHJlbWVtYmVyLCB0aGF0IGluY3JlbWVudGF0aW9uIGNhbiBiZSB0b3RhbGx5IGFyYml0cmFyeSEpLjwvcD48cD5Ib3dldmVyLCB0aGluZ3MgYXJlbuKAmXQgc28gc2ltcGxlIHdoZW4gZGVhbGluZyB3aXRoIHNlbmQgYW5kIHJlY2VpdmUgZXZlbnRzLCB3aGljaCBhcmUgc2lnbmFscyB0aGF0IHR3byBwcm9jZXNzZXMgYXJlIHBhc3NpbmcgbWVzc2FnZXMgYmFjayBhbmQgZm9ydGguIENvbnNpZGVyIHRoZSBpbGx1c3RyYXRpb24gc2hvd24gaGVyZSwgd2hlcmUgd2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBQcm9jZXNzIFAgaGFzIGFuIGV2ZW50IG9uIHRoZSBwcm9jZXNzIDxlbT5pdHNlbGY8L2VtPjogUDEuIFRoZSB0aW1lIGF0IFAxIGlzIDIuIFByb2Nlc3MgUSBhbHNvIGhhcyBhbiBldmVudCBvZiBpdHMgb3duLCBRMSwgd2hpY2ggaGFzIGEgdGltZSBvZiAyLiBUaGUgbmV4dCBldmVudCBvbiBwcm9jZXNzIFEgaXMgUTIsIHdoaWNoIGlzIGEgc2VuZCBldmVudCBhbmQgbWFya3MgYSBtZXNzYWdlIGJlaW5nIHNlbnQgZnJvbSBwcm9jZXNzIFEgdG8gcHJvY2Vzc8KgUC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpLRkx4aXRpUmFlUjVCRng4cF9PUVFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHdlIGRldGVybWluZSB0aGUgdGltZSBmb3IgYW4gaW5jb21pbmfCoGV2ZW50PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgc2VuZCBldmVudCBmcm9tIHByb2Nlc3MgUSwgb3IgUTIsIHNlbmRzIGl0cyBtZXNzYWdlIG92ZXIgdG8gcHJvY2VzcyBQPyBXZWxsLCBmb3Igb25lIHRoaW5nLCB3aGVuIHByb2Nlc3MgUSBzZW5kcyBpdHMgbWVzc2FnZSB0byBwcm9jZXNzIFAsIGl0IGFsc28gc2VuZHMgdGhlIHRpbWUgYXQgdGhhdCBwYXJ0aWN1bGFyIG1vbWVudCBhbG9uZyB3aXRoIGl0cyBtZXNzYWdlLiBJbiB0aGUgY2FzZSBvZiB0aGlzIGV4YW1wbGUsIHRoZSB0aW1lIGF0IFEyIHdhcyA0LCBzbyB0aGUgbWVzc2FnZSBzZW5kcyB0aW1lID0gNCwgYXMgcGFydCBvZiBpdHMgbWVzc2FnZcKgZGF0YS48L3A+PHA+T25jZSBwcm9jZXNzIFAgcmVjZWl2ZXMgdGhhdCBtZXNzYWdlLCBpdCBtYXJrcyBpdCB3aXRoIGEgcmVjZWl2ZSBldmVudCwgb3IgUDIuIFRoZW4sIGl0cyBsb2dpY2FsIGNsb2NrIGxvb2tzIGF0IHRoZSBpbmNvbWluZyB0aW1lIG9uIHRoZSBldmVudCwgYW5kIGNvbXBhcmVzIGl0IHRvIHRoZSBjdXJyZW50bHkta25vd24gdGltZSBvbiBpdHMgb3duIHByb2Nlc3MsIHByb2Nlc3MgUC4gV2hlbiBpdCBkb2VzIHRoaXMgY29tcGFyaXNvbiwgaXQgY2hvb3NlcyB0aGUgbGFyZ2VyIG9mIHRoZSB0d28gdGltZXN0YW1wcywgYW5kIGluY3JlbWVudHMgaXQgYXJiaXRyYXJpbHkuPC9wPjxwPlByb2Nlc3MgUCYjMzk7cyBjbG9jayBzZWVzIHRoYXQgaXRzIGN1cnJlbnRseS1rbm93biB0aW1lIGlzIDIsIHdoaWxlIHRoZSB0aW1lIG9uIHRoZSBpbmNvbWluZyBldmVudCBpcyA0LiBUaGUgY2xvY2sgY2hvb3NlcyB0aGUgbGFyZ2VyIHRpbWUgYmV0d2VlbiB0aGUgdHdvIHRpbWVzdGFtcHMgKDQpLCBpbmNyZW1lbnRzIGl0LCBhbmQgYXNzaWducyB0aGUgbmV3IHRpbWVzdGFtcCB0byB0aGUgcmVjZWl2ZSBldmVudCwgUDIuIEluIG1vcmUgY29uY3JldGUgdGVybXMsIHdlIGNhbiBzYXkgdGhhdCB0aGUgY2xvY2sgdXNlcyBhbiBhbGdvcml0aG0gdG8gZG8gdGhpcywgd2hpY2ggY2FuIGVmZmVjdGl2ZWx5IGJlIHN1bW1hcml6ZWQgYXM6IG1heChwcm9jZXNzVCwgaW5jb21pbmdUKSArwqBhbW91bnQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdFZKX2ptVnNiU0RXVFJLX2VBcnZ4Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGFsZ29yaXRobSBmb3IgZGV0ZXJtaW5pbmcgYSB0aW1lc3RhbXAuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoaXMgZm9ybXVsYSwgcHJvY2Vzc1QgaXMgdGhlIGN1cnJlbnRseS1rbm93biB0aW1lIG9uIHRoZSBjdXJyZW50IHByb2Nlc3MsIHdoaWxlIGluY29taW5nVCBpcyB0aGUgdGltZSBvbiB0aGUgZXZlbnQgdGhhdCB0aGUgcHJvY2VzcyBpcyB0cnlpbmcgdG8gcmVjb25jaWxlLiBUaGUgY2xvY2sgdGFrZXMgdGhlIG1heCgpIG9mIHRoYXQsIGFuZCBpbmNyZW1lbnRzIGl0IGJ5IHdoYXRldmVyIGFyYml0cmFyeSBhbW91bnQgdGhlIGNsb2NrIGlzIHVzaW5nIHRvIGFjdCBhcyBhIGNvdW50ZXIgYW5kIGVuc3VyZSB0aGF0IHRoZSBhbGwgdGltZXN0YW1wcyBjb250aW51ZSB0byBpbmNyZWFzZSBpbsKgdmFsdWUuPC9wPjxwPkluIG91ciBleGFtcGxlIHN5c3RlbSwgd2UgY2FuIGRldGVybWluZSB0aGF0IFAy4oCZcyB0aW1lc3RhbXAgd2lsbCBiZSB0aGUgcmVzdWx0IG9mIG1heCgyLCA0KSArIGFtb3VudDsgZm9yIHNpbXBsaWNpdHnigJlzIHNha2UsIHdlIGNhbiBkZWNpZGUgdG8gbWFrZSBhbW91bnQgZXF1YWwgdG8gMSwgc28gdGhlIHRpbWUgYXQgUDIgaXMgNCArIDEgPcKgNS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpQVEhqTDR3WjN2TkVJMWtXRDFlYk5RLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlc3VsdCBvZiBMYW1wb3J04oCZcyBhbGdvcml0aG0sIGluwqBhY3Rpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF3ZXNvbWUhIE91ciBsb2dpY2FsIGNsb2NrIGlzIGFjdHVhbGx5IGRvaW5nIHNvbWUgaW50ZXJlc3RpbmcgYW5kIHVzZWZ1bCB3b3JrIGZvciB1cywgYW5kIGl04oCZcyBkb2luZyBpdCBpbiBhIHByZXR0eSBlbGVnYW50IGFuZCBzaW1wbGXCoHdheS48L3A+PGgzPkNsb2NrcyBhbmQgY2F1c2FsaXR5PC9oMz48cD5Ob3cgdGhhdCB3ZeKAmXZlIHNlZW4gaG93IGNsb2NrcyBkZXJpdmUgYW5kIGRlbGl2ZXIgYSB0aW1lIHRvIHVzLCBsZXTigJlzIGludmVzdGlnYXRlIHdoZW4gdGhleeKAmXJlIHVzZWZ1bCwgYXMgd2VsbCBhcyBob3cgdGhleeKAmXJlIHNvbWV0aW1lcyBsaW1pdGluZy4gQXMgd2UgYWxyZWFkeSBrbm93IGZyb20gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPnBhcnQgb25lPC9hPiBvZiB0aGlzIHNlcmllcywgTGFtcG9ydCBpbnRyb2R1Y2VkIHRoZSBjb25jZXB0IG9mIGhhcHBlbnMgYmVmb3JlICh1c2luZyB0aGUgPHN0cm9uZz7ihpI8L3N0cm9uZz4gc2hvcnRoYW5kKSB0byBpbmRpY2F0ZSB0aGF0IG9uZSBldmVudCBoYXBwZW5zIGJlZm9yZSBhbm90aGVyIGluIGEgc3lzdGVtLiBVbmRlcnN0YW5kaW5nIHRoZSBjaGFpbiBvZiBldmVudHMgaW4gYSBzeXN0ZW0gaGVscHMgdXMgY2F1c2FsbHkgb3JkZXIgdGhlbSBhbmQgZmlndXJlIG91dCBob3cgb25lIGV2ZW50IGNhdXNlcyBhbm90aGVyIHRvwqBoYXBwZW4uPC9wPjxwPkNvbnZlbmllbnRseSwgbG9naWNhbCBjbG9ja3Mgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2UgZmluZCBhIGNhdXNhbCwgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGluIGEgc3lzdGVtLCB0aGVuIHRoZSB0aW1lc3RhbXBzIGNvcnJlc3BvbmRpbmcgdG8gdGhlc2UgdHdvIGV2ZW50cyBzaG91bGQgb2JleSB0aGUgcnVsZXMgb2YgY2F1c2FsaXR5LjwvcD48YmxvY2txdW90ZT5JZiBldmVudCBhIOKGkiBiLCB0aGVuIHRoZSB0aW1lc3RhbXAgcmV0dXJuZWQgYnkgY2xvY2soYSkgc2hvdWxkIGJlIGxlc3MgdGhhbiAoJmx0OykgdGhhdCBvZiB0aGUgdGltZXN0YW1wIHJldHVybmVkIGJ5IGNsb2NrKGIpLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjI0M2J1OHkzRVQ2NTdvcWMzZ3gzYmcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIGNsb2NrcyBzaG91bGQgb2JleSBjYXVzYWxpdHkgZm9yIGNhdXNhbGx5LXJlbGF0ZWQgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JZiB3ZSB0YWtlIGEgbG9vayBhdCB0aGUgZXhhbXBsZSBzaG93biBoZXJlLCB3ZeKAmWxsIHNlZSB0aGF0IHdlIGhhdmUgYSBzeXN0ZW0gd2l0aCB0aHJlZSBwcm9jZXNzZXMsIFAsIFEsIGFuZCBSLCB3aXRoIHNvbWUgY2xlYXIgY2F1c2FsIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgZXZlbnRzIGluIHRoZcKgc3lzdGVtLjwvcD48cD5XZSBjYW4gc2VlIHRoYXQgZXZlbnQgUDEg4oaSIFEyLCBiZWNhdXNlIGV2ZW50IFAxIGlzIHRoZSBzZW5kIGV2ZW50IG9mIFEyLCB3aGljaCBpcyB0aGUgcmVjZWl2ZSBldmVudCwgYW5kIG9uZSBjYXVzZXMgdGhlIG90aGVyLiBPbiB0aGUgb3RoZXIgaGFuZCwgZXZlbnQgUTIg4oaSIFIzLCBhcyBRMiBzZW5kcyBhIG1lc3NhZ2UgdG8gUjMsIHdoaWNoIGlzIGEgcmVjZWl2ZSBldmVudCBpbiBhbmQgb2YgaXRzZWxmLiBTaW1pbGFybHksIHdlIGNhbiBzZWUgdGhhdCBRMyDihpIgUTQsIGFzIHRoZXkgYm90aCBvY2N1ciBvbiB0aGUgc2FtZSBwcm9jZXNzLCBvbmUgYWZ0ZXLCoGFub3RoZXIuPC9wPjxwPklmIHdlIGxvb2sgYXQgdGhlc2Ugc2FtZSBjYXVzYWwgcmVsYXRpb25zaGlwcywgYW5kIGNvbXBhcmUgdGhlbSB3aXRoIHRoZWlyIHRpbWVzdGFtcHMsIHdlIGNhbiBzZWUgdGhhdCB0aGUgY2xvY2sgdGltZXMgZm9yIGVhY2ggY2F1c2FsIHJlbGF0aW9uc2hpcCBvYmV5cyBjYXVzYWxpdHkgYXMgd2VsbC4gRm9yIHRoZSByZWxhdGlvbnNoaXAgb2YgUDEg4oaSIFEyLCB0aGUgY2xvY2sgdGltZSBmb3IgUDEgJmx0OyBRMiwgYXMgMSAmbHQ7IDIuIFRoZSBzYW1lIGdvZXMgZm9yIFEyIOKGkiBSMyAoMiAmbHQ7IDMpIGFuZCBRMyDihpIgUTQgKDMgJmx0O8KgNCkuPC9wPjxwPkhvd2V2ZXIsIHRoZSBzYW1lIHJ1bGUgc2FkbHkgY2Fubm90IGJlIHNhaWQgb2YgZXZlbnRzIGluIHRoZSBzeXN0ZW0gdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGNhdXNhbGx5LXJlbGF0ZWQhIExldOKAmXMgdGFrZSBhIGNsb3NlciBsb29rIGF0IHNvbWUgb2YgdGhlIDxlbT5vdGhlcjwvZW0+IGV2ZW50cyBpbiB0aGUgc2FtZSBzeXN0ZW0gd2Ugc2F3IGJlZm9yZS4gSWYgd2UgZXhhbWluZSB0aGUgZXZlbnRzIFIxIGFuZCBQMiwgd2XigJlsbCBzZWUgdGhhdCB0aGUgdGltZSBhdCBSMSBpcyAxLCB3aGlsZSB0aGUgdGltZSBhdCBQMiBpcyAyLiBXZSBtaWdodCB0aGluayB0aGF0LCBiZWNhdXNlIHRoZSBjbG9jayB0aW1lIG9mIDEgaXMgbGVzcyB0aGFuICgmbHQ7KSAyLCB0aGF0IFIxIOKGkiBQMi4gQnV0LCB1bmZvcnR1bmF0ZWx5LCB0aGlzIGlzIG5vdCB0aGXCoGNhc2UhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaDdDUGV0ZXIxTUhJVXFZYVowV2U0dy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgaGFwcGVucyB3aGVuIHR3byBldmVudHMgYXJlIG5vdCBjYXVzYWxseS1yZWxhdGVkPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBmYWN0LCBpZiB3ZSBsb29rIGF0IHRoaXMgc3lzdGVtLCB3ZeKAmWxsIHNlIHRoYXQgdGhlcmUgaXMgYWN0dWFsbHkgPGVtPm5vIGNhdXNhbCBwYXRoPC9lbT4gYmV0d2VlbiBSMSBhbmQgUDIuIFRoZXNlIGFyZSBjb25jdXJyZW50IGV2ZW50cyEgPHN0cm9uZz48ZW0+Q29uY3VycmVudCBldmVudHM8L2VtPjwvc3Ryb25nPiBkbyBub3QgaGF2ZSBjYXVzYWwgcGF0aHMgZnJvbSBvbmUgdG8gYW5vdGhlci4gVGh1cywgYmVjYXVzZSB0aGVzZSB0d28gZXZlbnRzIGFyZSBjb25jdXJyZW50LCBoZXJlIGlzIG5vIHdheSB0byBiZSBjZXJ0YWluIHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSB0aGUgb3RoZXIuIFdlIGNhbm5vdCBsb29rIGF0IHRoZWlyIHRpbWVzdGFtcHMgYW5kIGd1YXJhbnRlZSB0aGF0IHRoZXkgYXJlIGNhdXNhbGx5LXJlbGF0ZWQhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqTEpSMTNGUnBJaXhIOGxPMzdLX1RIZy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSBsaW1pdGF0aW9ucyBvZiBjb25jdXJyZW50IGV2ZW50cyBhbmQgbG9naWNhbMKgY2xvY2tzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbiBtb3JlIGFic3RyYWN0IHRlcm1zLCB3ZSBjYW4gdGhpbmsgb2YgaXQgbGlrZSB0aGlzOiBpZiBldmVudCBhIGhhcHBlbnMgYmVmb3JlIGIsIHRoZW4gd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgdGltZXN0YW1wIG9mIGEgd2lsbCBiZSBsZXNzIHRoYW4gdGhlIHRpbWVzdGFtcCBvZiBiLiBCdXQganVzdCBiZWNhdXNlIGHigJlzIHRpbWVzdGFtcCBpcyBsZXNzIHRoYW4gYiwgd2UgZG9u4oCZdCBrbm93IDxlbT5mb3Igc3VyZTwvZW0+IHRoYXQgYSBoYXBwZW5lZCBiZWZvcmUgYiwgYmVjYXVzZSB0aGUgdHdvIGV2ZW50cyBjb3VsZCBhbHNvIGJlIGhhcHBlbmluZyBhdCB0aGUgc2FtZcKgdGltZSE8L3A+PHA+Rm9yIHR3byBjb25jdXJyZW50IGV2ZW50cywgd2UgY2Fubm90IG1ha2UgYSBqdWRnZW1lbnQgY2FsbCBhYm91dCB0aGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGp1c3QgYmFzZWQgb24gdGhlIGNsb2NrIHRpbWVzIG9mIHRoZSBldmVudHMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgd2UgY2FuIHJlYWxseSBndWFyYW50ZWUgaW4gc3VjaCBhIGNhc2Ugd291bGQgYmUgdGhhdCBiIGRvZXMgPGVtPm5vdDwvZW0+IGhhcHBlbiBiZWZvcmXCoGEuPC9wPjxwPlRoaXMgaXMgb25lIG9mIHRoZSBsaW1pdGF0aW9ucyBvZiBsb2dpY2FsIGNsb2Nrcy4gSW5kZWVkLCBMYW1wb3J0IGV2ZW4gYWNrbm93bGVkZ2VzIHRoaXMgaW4gaGlzIG93biBwYXBlciwgYW5kIHN1Z2dlc3RzIHVzaW5nIOKAnGFueSBhcmJpdHJhcnkgdG90YWwgb3JkZXJpbmcgb2YgdGhlIHByb2Nlc3Nlc+KAnSBpbiBhIHN5c3RlbSB0byBkZWNpZGUgaG93IHRvIGJyZWFrIHRpZXMgd2hlbiB0d28gdGltZXN0YW1wcyBjb3VsZCB2ZXJ5IHdlbGwgYmUgZXF1aXZhbGVudC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSplSDYzTVlvQ3ZWaS1VTlRKZ2Qtd21BLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHRsO2RyIG9mIExhbXBvcnQgdGltZXN0YW1wcy9sb2dpY2FsIGNsb2Nrcy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBjbG9ja3MgYXJlIHByZXR0eSBhbWF6aW5nIGluIHRoZWlyIHNpbXBsaWNpdHksIGJ1dCB0aGV5IGFyZSBhZG1pdHRlZGx5IG5vdCBmb29scHJvb2YuIFdoZW4gZ2l2ZW4gYSBzZXQgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsbHktb3JkZXJlZDwvYT4gZXZlbnRzLCB3ZSBjYW4gY3JlYXRlIGEgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj50b3RhbCBvcmRlcmluZzwvYT4gb3V0IG9mIHRoZW0gdXNpbmcgc2ltcGxlIGNsb2NrIGNvdW50ZXJzIGFuZCBjYW4gYmUgc3VyZSB0aGF0IHRob3NlIGNsb2NrcyBhbmQgdGhlIHRpbWVzdGFtcHMgdGhleSBwcm92aWRlIHVzIHdpdGggd2lsbCBhbHdheXMgb2JleSBjYXVzYWxpdHkuIEhvd2V2ZXIsIExhbXBvcnQgY2xvY2tzIGRvIG5vdCBoZWxwIHVzIG9yZGVyIHRoZSBjb25jdXJyZW50IGV2ZW50cyBpbiBhIHN5c3RlbSwgb3IgZmluZCBhIGNhdXNhbCByZWxhdGlvbnNoaXAgYmV0d2VlbsKgdGhlbS48L3A+PHA+VGhlcmUgYXJlIG90aGVyIGtpbmRzIG9mIGNsb2NrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGhlbHAgc29sdmUgdGhpcyBwcm9ibGVtLCBidXQgYWxsIG9mIHRoZSBvdGhlciBzb2x1dGlvbnMgY2FtZSBhbG9uZyBtYW55IHllYXJzIGFmdGVyIExhbXBvcnQgZmlyc3QgaW50cm9kdWNlZCBoaXMgbG9naWNhbCBjbG9ja3MgYmFjayBpbiAxOTc4LiBXZeKAmXJlIGx1Y2t5IHRoYXQgaGUgZGlkLCBiZWNhdXNlIGhlIHNldCB0aGUgc3RhZ2UgZm9yIGEgbmV3IHdheSBvZiB0aGlua2luZyBhYm91dCB0aW1lIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCB3b3VsZCBlbmQgdXAgY2hhbmdpbmcgdGhlIHdheSB3ZSB0YWxrIGFib3V0IGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JldmVyLjwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5UaGVyZSBhcmUgc29tZSBncmVhdCByZXNvdXJjZXMgb24gTGFtcG9ydOKAmXMgcGFwZXIgb24gbG9naWNhbCBjbG9ja3MsIGFzIHdlbGwgYXMgY2F1c2FsIG9yZGVyaW5nLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUgKG9yIHJlYWQgTGFtcG9ydOKAmXMgcGFwZXIgeW91cnNlbGYpLCBjaGVjayBvdXQgdGhlIHJlc291cmNlcyBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjcyYzA5N2RjZGRhIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMi0yNzJjMDk3ZGNkZGEiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0xvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSldXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL2xvZ2ljYWwtdGltZS1hbmQtbGFtcG9ydC1jbG9ja3MtcGFydC0xLWQwMzE3ZTQwNzExMj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZDAzMTdlNDA3MTEyPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE5vdiAyMDE5IDE2OjM0OjE5IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTExLTE0VDE2OjM0OjE5LjgzM1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKl9wN00yczliUXlLdUFlQzhUanA0WHcuanBlZyIgLz48ZmlnY2FwdGlvbj5Mb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzIChwYXJ0wqAxKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5PdmVyIHRoZSBjb3Vyc2Ugb2YgdGhpcyBzZXJpZXMsIHdl4oCZdmUgc2VlbiBtYW55IGluc3RhbmNlcyBvZiBob3cgdGhpbmdzIGNhbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gdGhleSBzZWVtLiBXZSBzYXcgdGhpcyB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5mYWlsdXJlPC9hPiwgYW5kIHdlIHNhdyBpdCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5yZXBsaWNhdGlvbjwvYT4uIE1vcmUgcmVjZW50bHksIHdlIGRpc2NvdmVyZWQgdGhhdCBldmVuIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiBpcyBtb3JlIGNvbXBsZXggdGhhdCB3ZSBtaWdodCBoYXZlIG9yaWdpbmFsbHkgdGhvdWdodC48L3A+PHA+SG93ZXZlciwgd2hlbiB0aGUgdGhpbmdzIHRoYXQgeW91IHRob3VnaHQgeW91IGtuZXcgc2VlbSBtb3JlIGNvbnZvbHV0ZWQgdGhhbiBldmVyLCBzb21ldGltZXMgdGhlIGFuc3dlciBpcyB0byBrZWVwIGl0IHNpbXBsZS4gSW4gb3RoZXIgd29yZHMsIHdlIGNhbiBrZWVwIGEgcHJvYmxlbSBzaW1wbGUgYnkgc3RyaXBwaW5nIG91dCB0aGUgY29uZnVzaW5nIHBhcnRzIGFuZCB0cmltbWluZyBpdCBkb3duIHRvIGl0cyBtb3N0IGVzc2VudGlhbCBwYXJ0cy4gSW4gZmFjdCwgdGhpcyBhcHByb2FjaCBpcyBleGFjdGx5IHdoYXQgb25lIGNvbXB1dGVyIHNjaWVudGlzdCBkaWQgaW4gdGhlIGxhdGUgNzDigJlzIHdoZW4gaGUgd2FzLCBqdXN0IGxpa2UgdXMsIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyB0byBtYWtlIHNlbnNlIG9mIHRpbWUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPlRoZSBwcmV2aW91cyB0d28gcG9zdHMgb24gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90aWNraW5nLWNsb2Nrcy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS1lZjJhYTRkZjA3YTMiPmNsb2NrczwvYT4gYW5kIHRoZSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPm9yZGVyaW5nIG9mIGV2ZW50PC9hPnMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaGF2ZSBib3RoIGJlZW4gYnVpbGRpbmcgdXAgdG8gdGhlIHRvcGljIHdl4oCZcmUgZmluYWxseSByZWFkeSB0byB1bmNvdmVyOiBsb2dpY2FsIHRpbWUgYW5kIExhbXBvcnQgY2xvY2tzISBUaGVyZeKAmXMgYSBsb3QgdG8gY292ZXIsIHNvIHdl4oCZbGwgc3ByZWFkIGl0IG91dCBiZXR3ZWVuIHR3byBwb3N0cy4gTGV04oCZcyBkaXZlIHJpZ2h0IGludG8gcGFydMKgb25lITwvcD48aDM+Q2F1c2FsaXR5IGFuZCDigJxoYXBwZW5zwqBiZWZvcmXigJ08L2gzPjxwPlRoZSBzdG9yeSBvZiBsb2dpY2FsIGNsb2NrcyBzdGFydHMgaW4gMTk3OCwgd2hlbiBhIHBhcGVyIHdhcyBwdWJsaXNoZWQgaW4gdGhlIDxlbT5Db21tdW5pY2F0aW9ucyBvZiBBQ00gPC9lbT5qb3VybmFsIHRoYXQgd291bGQgZ28gZG93biBpbiBoaXN0b3J5LiA8YSBocmVmPSJodHRwOi8vd3d3LmxhbXBvcnQub3JnLyI+TGVzbGllIExhbXBvcnQ8L2E+LCBhIGNvbXB1dGVyIHNjaWVudGlzdCBhdCBNYXNzYWNodXNldHRzIENvbXB1dGVyIEFzc29jaWF0ZXMsIHdyb3RlIGFib3V0IGhpcyByZXNlYXJjaCBhcm91bmQgb3JkZXJpbmcgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBUaGlzIHBhcGVyLCBlbnRpdGxlZCA8YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPuKAnFRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW3igJ08L2E+LCB3b3VsZCBnbyBvbiB0byBiZSBvbmUgb2YgdGhlIG1vc3QtY2l0ZWQgcGFwZXJzIGluIGNvbXB1dGVyIHNjaWVuY2UsIGFuZCB3b3VsZCBhbHNvIHdpbiB0aGUgUHJpbmNpcGxlcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgSW5mbHVlbnRpYWwgUGFwZXIgQXdhcmQgbW9yZSB0aGFuIDxhIGhyZWY9Imh0dHA6Ly93d3cucG9kYy5vcmcvaW5mbHVlbnRpYWwvMjAwMC1pbmZsdWVudGlhbC1wYXBlciI+MjAgeWVhcnPCoGxhdGVyPC9hPi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpCNS1SZmxjQjNteC1wXzM0NzJ5TUlBLmpwZWciIC8+PGZpZ2NhcHRpb24+TGFtcG9ydOKAmXMgcGFwZXIgb24gY2F1c2FsIG9yZGVyaW5nIHdhcyBwdWJsaXNoZWQgaW7CoDE5NzghPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHRoZSBwYXBlciwgTGFtcG9ydCBvdXRsaW5lcyBob3cgd2UgdGhpbmsgYWJvdXQgdGltZSBhcyBodW1hbnMsIGFuZCB3aHkgd2UgbmVlZCB0byBzaGlmdCBvdXIgcGFyYWRpZ20gd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBzeXN0ZW1zLCBhbmQgdGhlIGlkZWEgb2YgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9vcmRlcmluZy1kaXN0cmlidXRlZC1ldmVudHMtMjljMWRkOWQxZWZmIj5wYXJ0aWFsIG9yZGVyaW5nPC9hPi4gSGUgZXhwbGFpbnMgdGhhdCwg4oCcSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGl0IGlzIHNvbWV0aW1lcyBpbXBvc3NpYmxlIHRvIHNheSB0aGF0IG9uZSBvZiB0d28gZXZlbnRzIG9jY3VycmVkwqBmaXJzdOKAnS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpfNU9DT19VOXdXWjFIMEY0YWNQWXlRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2h5IGRvIHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzPyBTbyB0aGF0IHdlIGNhbiB0cmFjayBjYXVzYWxpdHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIExhbXBvcnQgY2l0ZXMgaW4gaGlzIHBhcGVyLCB0aGUgcmVhc29uIHRoYXQgd2UgY2FyZSBhYm91dCB0aW1lIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5ncyBoYXBwZW4uIFdoaWxlIHRoaXMgaXMgY2VydGFpbmx5IGhhcmRlciAob3Igc29tZXRpbWVzIGltcG9zc2libGUhKSB0byBkbyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgb3VyIHJlYXNvbiBmb3Igd2FudGluZyB0byA8ZW0+a25vdzwvZW0+IHRoZSBvcmRlciBvZiBzb21lIGV2ZW50cyBpbiBhIHN5c3RlbSBhbGwgc3RlbXMgYmFjayB0byB0aGUgc2FtZSBkZXNpcmU6IHdlIGNhcmUgYWJvdXQgb3JkZXJpbmcgZXZlbnRzIHNvIHdlIGNhbiBkZXRlcm1pbmUgaG93IHRob3NlIGV2ZW50cyBhcmUgY29ubmVjdGVkLiBXaGVuIGRlYWxpbmcgd2l0aCBldmVudHMgaW4gPGVtPmFueTwvZW0+IHN5c3RlbSwgdGhlIHJlYXNvbiB3ZSBhY3R1YWxseSB3YW50IHRvIG9yZGVyIHRoZW0gaXMgc28gdGhhdCB3ZSBjYW4gc2VlIHRoZSBjaGFpbiBvZiBldmVudHMgd2l0aGluIHRoZSBzeXN0ZW0uIFdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpbiBwYXJ0aWN1bGFyLCB3ZSB0aGlzIG1lYW5zIHRoYXQgd2UgYXJlIG9mdGVuIHRyeWluZyB0byBkZXRlcm1pbmUgaWYgYW4gZXZlbnQgYXQgb25lIG5vZGUgYWZmZWN0cyBvciBjYXVzZXMgYW4gZXZlbnQgYXQgYW5vdGhlcsKgbm9kZS48L3A+PHA+QnV0LCBhcyB3ZeKAmXZlIHNlZW4gaW4gb3VyIG93biBzdHVkeSBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB0aGlzIHRhc2sgaXMgbm8gZWFzeSBmZWF0LiBXaGVuIGEgc3lzdGVtIGlzIGRpc3RyaWJ1dGVkLCB0aGVyZSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+bm8gZ2xvYmFsIGNsb2NrPC9hPiwgd2hpY2ggbWVhbnMgdGhhdCB3ZSBjYW5ub3QgZGVwZW5kIG9uIGFueSBjZW50cmFsIHRpbWUgc291cmNlLiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZXZlbnRzIGluIG91ciBzeXN0ZW0gYXJlIG5vdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPnRvdGFsbHkgb3JkZXJlZDwvYT4sIHdoaWNoIG1lYW5zIHdlIGNhbuKAmXQgYmUgc3VyZSBvZiBleGFjdGx5IDxlbT53aGVuPC9lbT4gZXZlcnkgZXZlbnQgaW4gdGhlIHN5c3RlbSB0b29rIHBsYWNlLiBMYW1wb3J04oCZcyBwYXBlciBhY2tub3dsZWRnZXMgYWxsIG9mIHRoZXNlIGNvbnN0cmFpbnMgYW5kIGVtcGF0aGl6ZXMgd2l0aCBob3cgdHJpY2t5IHRoaXMgcHJvYmxlbSByZWFsbHnCoGlzITwvcD48cD5MYW1wb3J04oCZcyBzb2x1dGlvbiBpcyB0byBzaGlmdCBvdXIgdGhpbmtpbmcuIEhlIHByZXNlbnRzIGEgbm92ZWwgaWRlYTogd2UgZG9u4oCZdCBhY3R1YWxseSBuZWVkIHRvIHRoaW5rIGFib3V0IGNhdXNhbGl0eSBpbiB0aGUgY29udGV4dCBvZiB0b3RhbCBvcmRlcmluZyB0byBzdGFydC4gSW5zdGVhZCwgaGUgc2F5cyB0aGF0IHdlIGNhbiBzdGFydCB3aXRoIGEgcGFydGlhbCBvcmRlcmluZyBvZiBldmVudHMsIGFuZCB0aGVuIGp1c3QgZGVhbCB3aXRoIGZpZ3VyaW5nIG91dCB3aGljaCBldmVudHMgaGFwcGVuZWQgYmVmb3JlIG90aGVyIGV2ZW50cy4gT25jZSB3ZSBmaWd1cmUgb3V0IGEgcGFydGlhbCBvcmRlcmluZywgd2UgY2FuIHR1cm4gaXQgaW50byBhIGNvbnNpc3RlbnQgdG90YWwgb3JkZXJpbmcuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqX1BkVTFzdjdnUkpuRXhtRkVvM0toQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhbXBvcnTigJlzIGxvZ2ljYWwgY2xvY2tzIGFsbG93IHVzIHRvIHNoaWZ0IGZyb20gaGFwcGVuZWQg4oCcd2hlbuKAnSB0byBoYXBwZW5lZCDigJxiZWZvcmXigJ0uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIGhvdyBkbyB3ZSBkbyB0aGlzPyBXZWxsLCB0byBzdGFydCwgd2UgbmVlZCB0byBzaGlmdCBmcm9tIHRoaW5raW5nIGFib3V0IDxlbT53aGVuPC9lbT4gYW4gZXZlbnQgaGFwcGVuZWQgdG8gd2hhdCB0aGUgZXZlbnQgaGFwcGVuZWTCoDxlbT5iZWZvcmU8L2VtPi48L3A+PGgzPlNoaWZ0aW5nIGZyb20g4oCcd2hlbuKAnSB0b8Kg4oCcYmVmb3Jl4oCdPC9oMz48cD5UaGUgaWRlYSBvZiBvbmUgZXZlbnQgaGFwcGVuaW5nIGJlZm9yZSBhbm90aGVyIGlzIGNlbnRyYWwgdG8gTGFtcG9ydOKAmXMgcGFwZXIuIEhlIHVzZXMgdGhlIDxzdHJvbmc+4oaSPC9zdHJvbmc+IHNob3J0aGFuZCBub3RhdGlvbiB0byBpbmRpY2F0ZSB0aGUgPHN0cm9uZz48ZW0+aGFwcGVucyBiZWZvcmU8L2VtPjwvc3Ryb25nPiByZWxhdGlvbnNoaXAsIG9yIHRoZSBmYWN0IHRoYXQgb25lIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBGb3IgZXhhbXBsZSwgaWYgd2Uga25vdyB0aGF0IG9uZSBldmVudCwgPGVtPmE8L2VtPiwgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIgZXZlbnQsIDxlbT5iPC9lbT4sIHRoZW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iPC9lbT4sIG9yIDxlbT5hIDwvZW0+aGFwcGVuZWQgYmVmb3JlwqA8ZW0+YjwvZW0+LjwvcD48cD5UaGUgaGFwcGVucyBiZWZvcmUgcmVsYXRpb25zaGlwIGNhbiBhbHNvIGJlIGFwcGxpZWQgdHJhbnNpdGl2ZWx5LiBJbiBvdGhlciB3b3Jkcywgd2UgY2FuIGNyZWF0ZSBhIGNoYWluIG9mIGV2ZW50cyB3aGVyZSBvbmUgZXZlbnQgaGFwcGVuZWQgYmVmb3JlIGFub3RoZXIuIElmIHdlIHNheSB0aGF0IDxlbT5hPC9lbT4g4oaSIDxlbT5iIDwvZW0+YW5kIDxlbT5iIOKGkiBjPC9lbT4sIHRoZW4gYnkgdXNpbmcgdGhlIHRyYW5zaXRpdmUgcHJvcGVydHksIHdlIGNhbiBzYXkgdGhhdCA8ZW0+YSDihpIgYzwvZW0+LCBvciA8ZW0+YSA8L2VtPmhhcHBlbmVkIGJlZm9yZSA8ZW0+Yy4gPC9lbT5BcyB3ZSBtaWdodCBiZSBhYmxlIHRvIGltYWdpbmUsIHdlIGNvdWxkIHZlcnkgZWFzaWx5IHN0cmluZyB0b2dldGhlciBhIGNoYWluIG9mIGV2ZW50cywgd2hlcmUgb25lIGV2ZW50IGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIHdoaWNoIGhhcHBlbnMgYmVmb3JlIGFub3RoZXIsIGFuZCBzbyBvbiBhbmQgc2/CoGZvcnRoLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmpCbDU2a2RHNXptVGV3Y3l0MUo2VmcuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHRoZSDigJxoYXBwZW5lZCBiZWZvcmXigJ0gbm90YXRpb24uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ1dCB3YWl0IGEgc2Vjb25k4oCK4oCU4oCKd2Uga2VlcCB0YWxraW5nIGFib3V0IGRpZmZlcmVudCBldmVudHMgaW4gdGhlIHN5c3RlbSwgYnV0IHdlIGhhdmVu4oCZdCByZWFsbHkgY2xhcmlmaWVkIHdoYXQgYW4gZXZlbnQgY291bGQgcG9zc2libHkgYmUhIEFzIGl0IHR1cm5zIG91dCwgYW4gZXZlbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIHRha2UgZGlmZmVyZW50IGZvcm1zLiBBcyB3ZSBrbm93LCB0aGVyZSBjYW4gYmUgbWFueSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPmRpZmZlcmVudCBub2RlczwvYT4gaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEVhY2ggbm9kZSBoYXMgaXRzIG93biBsb2NhbCBzeXN0ZW0gY2xvY2ssIGFuZCBpdCBpcyBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgaXRzIG93biB0YXNrcy4gSG93ZXZlciwgdGhlIG5vZGVzIGNhbiBhbHNvIGNvbW11bmljYXRlIGJldHdlZW4gb25lIGFub3RoZXIsIHNlbmRpbmcgbWVzc2FnZXMgYmFjayBhbmTCoGZvcnRoLjwvcD48cD5BbiA8c3Ryb25nPjxlbT5ldmVudDwvZW0+PC9zdHJvbmc+IGVuY29tcGFzc2VzIGFsbCBvZiB0aGUgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNhbiBoYXBwZW4gd2l0aGluIGFuZCBiZXR3ZWVuIG5vZGVzIGluIGEgc3lzdGVtLiBBbiBldmVudCBjb3VsZCBiZSBzb21ldGhpbmcgdGhhdCBvY2N1cnMgb24gYSBzaW5nbGUgcHJvY2VzcyBvciBub2RlLiBBbiBldmVudCBhbHNvIGluY2x1ZGVzIGFueSA8c3Ryb25nPjxlbT5zZW5kIGV2ZW50czwvZW0+PC9zdHJvbmc+LCB3aGVyZSBhIG5vZGUgc2VuZHMgYSBtZXNzYWdlIHRvIGFub3RoZXIgbm9kZSBvciBwcm9jZXNzLiBDb252ZXJzZWx5LCB3ZSBtdXN0IGFsc28gY29uc2lkZXIgPHN0cm9uZz48ZW0+cmVjZWl2ZSBldmVudHM8L2VtPjwvc3Ryb25nPiwgd2hlbiBhIG5vZGUgcmVjZWl2ZXMgYW4gaW5jb21pbmcgbWVzc2FnZSBmcm9tIGVsc2V3aGVyZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+SW4gdGhlIGV4YW1wbGUgYWJvdmUsIHdlIGNhbiBzZWUgZXhhbXBsZXMgb2YgYWxsIHRocmVlIG9mIHRoZXNlIGV2ZW50cy4gV2UgaGF2ZSB0d28gcHJvY2Vzc2VzLCBQIGFuZCBRLiBUaGVyZSBpcyBvbmUgZXZlbnQsIFEzLCB3aGljaCBvY2N1cnMgb24gcHJvY2VzcyBRIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHNlbmRpbmcgb3IgcmVjZWl2aW5nIGFueSBtZXNzYWdlcy4gVGhpcyBpcyBvdXIgYmFzaWMgZXZlbnQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBzb21ldGhpbmcgb2NjdXJyZWQgb24gdGhlIG5vZGUgZm9yIHByb2Nlc3MgUS4gSG93ZXZlciwgd2UgYWxzbyBoYXZlIGEgZmV3IHNlbmQgZXZlbnRzOiBQMSwgUTEsIFE0LiBUaGVzZSBhcmUgYWxsIGV2ZW50cyB0aGF0IGluZGljYXRlIHRoYXQgd2UgYXJlIHNlbmRpbmcgbWVzc2FnZXMgb3V0IGZyb20gYSBub2RlIHRvIHNvbWV3aGVyZSBlbHNlIGluIHRoZSBzeXN0ZW0uIE9uIHRoZSBvdGhlciBoYW5kLCBQMiwgUDMsIGFuZCBRMiBhcmUgZWFjaCByZWNlaXZlIGV2ZW50cywgd2hpY2ggaW5kaWNhdGUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIHNvbWUgbWVzc2FnZSBmcm9tIGFub3RoZXIgbm9kZSBpbiB0aGXCoHN5c3RlbS48L3A+PHA+Tm93IHRoYXQgd2UgdW5kZXJzdGFuZCB3aGF0IGFuIGV2ZW50IGluIGEgc3lzdGVtIGNvdWxkIGJlLCB3ZSBjYW4gdHVybiBiYWNrIHRvIHRoZSBoYXBwZW5zIGJlZm9yZSByZWxhdGlvbnNoaXAuIFdoZW4gd2Ugc2F5IHRoYXQgYW4gZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmI8L2VtPiwgd2UgYXJlIGFzc2VydGluZyB0aGF0IGV2ZW50IDxlbT5hPC9lbT4gb2NjdXJyZWQgYmVmb3JlIDxlbT5iPC9lbT4sIGJlY2F1c2UgPGVtPmE8L2VtPiBoYXBwZW5lZCBiZWZvcmUgPGVtPmI8L2VtPi4gV2UgY2FuIHNheSB0aGF0IHRoZXNlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNhdXNhbGx5IG9yZGVyZWQ8L2VtPjwvc3Ryb25nPiwgd2hlcmUgdGhlIG9yZGVyaW5nIG9mIHRoZSBldmVudHMgaXMgY29udGluZ2VudCB1cG9uIG9uZSBldmVudCBjYXVzaW5nIGFub3RoZXIgdG/CoGhhcHBlbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpScG1QLWFQQ2lxTWZ2ckdCODFwdUpnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsbHktb3JkZXJlZCBhbmQgY29uY3VycmVudCBldmVudHMgYWNyb3NzIHR3byBwcm9jZXNzZXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZXJlIGFyZSBhIGZldyBydWxlcyB0byBjYXVzYWwgb3JkZXJpbmcgdGhhdCBhcmUgaW1wb3J0YW50IGZvciB1cyB0byB1bmRlcnN0YW5kLiBJbiBvcmRlciBmb3IgPGVtPmE8L2VtPiA8ZW0+4oaSPC9lbT4gPGVtPmIgPC9lbT50byBiZSBjYXVzYWxseSBvcmRlcmVkLCBvbmUgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBzaXR1YXRpb25zIG11c3QgYmXCoHRydWU6PC9wPjxvbD48bGk+RXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gbXVzdCBvY2N1ciBvbiB0aGUgPHN0cm9uZz48ZW0+c2FtZTwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3M8L2VtPjwvc3Ryb25nPiwgYW5kIDxlbT5hPC9lbT4gbXVzdCBvY2N1ciBiZWZvcmUgPGVtPmI8L2VtPiBvY2N1cnMgb24gdGhlwqBwcm9jZXNzLjwvbGk+PGxpPlRoZSBldmVudHMgY2FuIG9jY3VyIG9uIDxzdHJvbmc+PGVtPmRpZmZlcmVudDwvZW0+PC9zdHJvbmc+IDxzdHJvbmc+PGVtPnByb2Nlc3NlczwvZW0+PC9zdHJvbmc+IHNvIGxvbmcgYXMgPGVtPmE8L2VtPiBpcyB0aGUgc2VuZCBldmVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIDxlbT5iLCA8L2VtPndoaWNoIG11c3QgYmUgaXRzIHJlY2VpdmXCoGV2ZW50LjwvbGk+PGxpPlRoZSBldmVudHMgYXJlIDxzdHJvbmc+PGVtPnRyYW5zaXRpdmVseSBsaW5rZWQ8L2VtPjwvc3Ryb25nPiB3aXRoIGFub3RoZXIgZXZlbnQgaW4gdGhlIHN5c3RlbSwgYnV0IDxlbT5hPC9lbT4gc3RpbGwgaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPi4gRm9yIGV4YW1wbGUsIGlmIDxlbT5hPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmM8L2VtPiwgYW5kIDxlbT5jPC9lbT4gaGFwcGVucyBiZWZvcmUgPGVtPmI8L2VtPiwgdGhlbiB3ZSBrbm93IHRoYXQgPGVtPmE8L2VtPiA8ZW0+4oaSwqBiPC9lbT4uPC9saT48L29sPjxwPkFzIG1lc3NhZ2VzIHRyYXZlbCB0aHJvdWdoIHRpbWUgYW5kIGFjcm9zcyBzcGFjZSBmcm9tIG9uZSBwcm9jZXNzIHRvIGFub3RoZXIgYW5kLCB3ZSBjYW4gc3RhcnQgdG8gY29uc3RydWN0IGNoYWlucyBvZiBjYXVzYWxseSBldmVudHMgKGFsc28gY2FsbGVkIDxzdHJvbmc+PGVtPmNhdXNhbCBwYXRoczwvZW0+PC9zdHJvbmc+KSBhbmQgc2VlIGhvdyBkaWZmZXJlbnQgZXZlbnRzIGFjcm9zcyBwcm9jZXNzZXMgYXJlIGNvbm5lY3RlZCB0byBvbmUgYW5vdGhlci4gRm9yIGV4YW1wbGUsIGluIHByb2Nlc3NlcyBQIGFuZCBRLCBRMTxlbT7ihpI8L2VtPiBQMyAodGhyb3VnaCBldmVudCBQMiksIGFuZCBQMSA8ZW0+4oaSIDwvZW0+UTQgKHRocm91Z2ggZXZlbnRzIFEyIGFuZMKgUTMpLjwvcD48cD5GaW5hbGx5LCBpdOKAmXMgd29ydGggbWVudGlvbmluZyB0aGF0LCBpZiB0d28gZXZlbnRzIDxlbT5hPC9lbT4gYW5kIDxlbT5iPC9lbT4gZG8gbm90IGhhcHBlbiBiZWZvcmUgb25lIGFub3RoZXIsIHRoYW4gd2UgY2FuIHNheSB0aGF0IDxlbT5hIOKJoCZndDsgYjwvZW0+IGFuZCA8ZW0+YiDiiaAmZ3Q7IGE8L2VtPiwgYW5kIHRoYXQgdGhlIHR3byBldmVudHMgYXJlIDxzdHJvbmc+PGVtPmNvbmN1cnJlbnQ8L2VtPjwvc3Ryb25nPi4gV2Ugd2lsbCBjb3ZlciB0aGlzIGluIG11Y2ggbW9yZSBkZXB0aCBpbiBwYXJ0IHR3byBvZiB0aGlzIHBvc3QsIGJ1dCBmb3Igbm93LCB3ZSBzaG91bGQganVzdCBub3RlIHRoYXQgY29uY3VycmVudCBldmVudHMgZG8gbm90IGhhdmUgY2F1c2FsIHBhdGhzIGZyb20gb25lIHRvwqBhbm90aGVyLjwvcD48aDM+TG9naWNhbCBjbG9ja3MgdG8gdGhlwqBzdGFnZTwvaDM+PHA+SW4gYWRkaXRpb24gdG8gdGhlIGlkZWEgb2Yg4oCcaGFwcGVucyBiZWZvcmXigJ0sIGFub3RoZXIgY29yZSBjb25jZXB0IHRoYXQgTGFtcG9ydCBpbnRyb2R1Y2VzIGluIGhpcyBwYXBlciBpcyB0aGUgbG9naWNhbCBjbG9jay4gQXMgd2UgYWxyZWFkeSBrbm93LCBlYWNoIG5vZGUgb3IgcHJvY2VzcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXMgaXRzIG93biA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMyI+Y29uY2VwdCBvZiB0aW1lPC9hPiwgb3IgaXRzIG93biBsb2NhbCBjbG9jay4gSG93ZXZlciwgTGFtcG9ydOKAmXMgdGFrZSBvbiBsb2NhbCBjbG9ja3MgaXMgZGlmZmVyZW50IHRoYXQgd2hhdCB3ZeKAmXZlIHNlZW7CoGJlZm9yZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpPQW1EM1dnb3VnTnd5ai14ZXhVMGR3LmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGRvIHRoZSBjbG9ja3MgZmFjdG9ywqBpbj88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+TGFtcG9ydCBzdWdnZXN0cyB1c2luZyBzb21ldGhpbmcgZGlmZmVyZW50IGZyb20gdGhlIHR5cGljYWwgcGh5c2ljYWwgY2xvY2sgdGhhdCB3ZSBhbGwgdGhpbmsgb2YuIEluc3RlYWQgb2YgdXNpbmcgZWFjaCBwcm9jZXNz4oCZcyBwaHlzaWNhbCBjbG9jayB0byB0cmFjayB0aGUgb3JkZXIgb2YgZXZlbnRzLCB3ZSBjYW4gaW5zdGVhZCB1c2UgYSA8c3Ryb25nPjxlbT5jb3VudGVyPC9lbT48L3N0cm9uZz4uIFRoZSBjb3VudGVyIGNhbiBzdGFydCB3aXRoIGFuIGluaXRpYWwgdGltZSAobGlrZSAwKSwgYW5kIHdlIGNhbiB0cmVhdCB0aGF0IGNvdW50ZXIgYXMgdGhlIHByb2Nlc3NlcyBvd24gbG9jYWzCoGNsb2NrLjwvcD48cD5MYW1wb3J0IGNvbnRpbnVlcyB3aXRoIHRoaXMgaWRlYSBieSBwcm9wb3NpbmcgdGhhdCwgbm90IG9ubHkgd2lsbCBldmVyeSBwcm9jZXNzIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBoYXZlIGl0cyBvd24gY291bnRlciBjbG9jaywgYnV0IGVhY2ggPGVtPmV2ZW50PC9lbT4gdGhhdCBpcyByZWNvcmRlZCBvbiBhIHByb2Nlc3Mgc2hvdWxkIGFsc28gaGF2ZSBhIDxzdHJvbmc+PGVtPnZhbHVlPC9lbT48L3N0cm9uZz4gb24gdGhhdCBwcm9jZXNz4oCZcyBsb2NhbCBjbG9jay4gRnVydGhlcm1vcmUsIHRoZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZXNlIGV2ZW50cyBvbiB0aGUgY2xvY2sgbXVzdCBtaXJyb3IgYW55IGhhcHBlbmVkIGJlZm9yZSByZWxhdGlvbnNoaXBzLiBGb3IgZXhhbXBsZSwgaWYgZXZlbnQgPGVtPmE8L2VtPiA8ZW0+4oaSIGI8L2VtPiwgdGhlbiB0aGUgY2xvY2sgdGltZSBmb3Igd2hlbiBldmVudCA8ZW0+YTwvZW0+IG9jY3VycmVkIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBjbG9jayB0aW1lIGZvciB3aGVuZXZlciBldmVudCA8ZW0+YjwvZW0+IG9jY3VycmVkOyBpbiBvdGhlciB3b3JkcywgY2xvY2soPGVtPmE8L2VtPikgJmx0OyBjbG9jayg8ZW0+YjwvZW0+KS48L3A+PHA+QnkgdXNpbmcgYmFzaWMgY291bnRlcnMgaW5zdGVhZCBvZiBwaHlzaWNhbCBjbG9ja3MsIExhbXBvcnQgc2ltcGxpZmllcyBjbG9ja3MgaW50byBzb21ldGhpbmcgYSBsaXR0bGUgZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhlc2UgY291bnRlciBjbG9ja3MgYXJlIGNhbGxlZCBsb2dpY2FsIGNsb2Nrcy4gQSA8c3Ryb25nPjxlbT5sb2dpY2FsIGNsb2NrIDwvZW0+PC9zdHJvbmc+aXMgcXVpdGUgZGlmZmVyZW50IGZyb20gYSBwaHlzaWNhbCBjbG9jayBpbiB0aGF0IHRoZXJlIGlzIG5vIGNlbnRyYWwgbm90aW9uIG9mIHRpbWUsIGFuZCB0aGUgY2xvY2sgaXMganVzdCBhIGNvdW50ZXIgdGhhdCBpbmNyZW1lbnRzIGJhc2VkIG9uIGV2ZW50cyBpbiB0aGXCoHN5c3RlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSp4bjlPcEVFT0VOQmNnMktvdVlEQ1hRLmpwZWciIC8+PGZpZ2NhcHRpb24+TG9naWNhbCBjbG9ja3M6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+RWFjaCBwcm9jZXNzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiB1c2UgYSBsb2dpY2FsIGNsb2NrIHRvIGNhdXNhbGx5IG9yZGVyIGFsbCB0aGUgZXZlbnRzIHRoYXQgYXJlIHJlbGV2YW50IHRvIGl0LiBBcyBldmVudHMgb2NjdXIgaW4gYSBwcm9jZXNz4oCK4oCU4oCKd2hldGhlciB0aGV5IGFyZSBzZW5kIG9yIHJlY2VpdmUgZXZlbnRz4oCK4oCU4oCKdGhlIHByb2Nlc3PigJlzIGNsb2NrIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgYnkgYW4gYXJiaXRyYXJ5IGFtb3VudC4gV2XigJlsbCBsZWFybiBtb3JlIGFib3V0IGhvdyB0aGlzIHdvcmtzIGluIHByYWN0aWNlIGluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdC4gV2XigJlsbCBhbHNvIGJlIGludHJvZHVjZWQgdG8gTGFtcG9ydOKAmXMgYWxnb3JpdGhtIGZvciBpbmNyZW1lbnRpbmcgY291bnRlcnMsIGFuZCBob3cgdG8gb2JleSBjYXVzYWxpdHkgYWNyb3NzIHByb2Nlc3Nlcy4gVGhlcmXigJlzIHNvIG11Y2ggaW50ZXJlc3Rpbmcgc3R1ZmYgdG8gbGVhcm47IHRoYW5rZnVsbHkgd2UgaGF2ZSBtb3JlIHRpbWUgYW5kIGFub3RoZXIgcG9zdCB0byBjb3ZlciBpdMKgYWxsITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5Db252ZW5pZW50bHksIExhbXBvcnTigJlzIHdvcmsgb24gbG9naWNhbCBjbG9ja3MgYW5kIGNhdXNhbCBvcmRlcmluZyBpcyB3ZWxsLXRhdWdodCBhbmQgd3JpdHRlbiBhYm91dC4gVGhlcmUgYXJlIGEgbG90IG9mIGdyZWF0IHJlc291cmNlcyB0aGF0IGludHJvZHVjZSB0aGVzZSB0b3BpY3MsIHdpdGggdmFyeWluZyBjb21wbGV4aXRpZXMuIElmIHlvdeKAmWQgbGlrZSB0byBkbyBzb21lIGZ1cnRoZXIgcmVhZGluZywgY2hlY2sgb3V0IHNvbWUgb2YgbXkgZmF2b3JpdGUgcmVzb3VyY2VzLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2xhbXBvcnQuYXp1cmV3ZWJzaXRlcy5uZXQvcHVicy90aW1lLWNsb2Nrcy5wZGYiPlRpbWUsIENsb2NrcywgYW5kIHRoZSBPcmRlcmluZyBvZiBFdmVudHMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+LCBMZXNsaWXCoExhbXBvcnQ8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWhLNm02V0JrLWQ4JmFtcDt0PTNzIj5UaW1lLCBDbG9ja3MgYW5kIE9yZGVyaW5nIG9mIEV2ZW50cyBpbiBhIERpc3QuIFN5c3RlbTwvYT4sIERhbiBSdWJlbnN0ZWluPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1DTUJqdkN6RFZrWSI+VGltZSBhbmQgT3JkZXJpbmc6IExhbXBvcnQgVGltZXN0YW1wczwvYT4sIEluZHJhbmlswqBHdXB0YTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXdoaXR0YWtlci5naXRodWIuaW8vYmxvZy9sYW1wb3J0c19sb2dpY2FsX2Nsb2Nrcy8iPkxhbXBvcnTigJlzIExvZ2ljYWwgQ2xvY2tzPC9hPiwgTWljaGFlbCBXaGl0dGFrZXI8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cHhrL3J1dGdlcnMvbm90ZXMvY29udGVudC8wOC1sb2dpY2FsLWNsb2Nrcy1zbGlkZXMucGRmIj5Mb2dpY2FsIENsb2NrczwvYT4sIFByb2Zlc3NvciBQYXVsIEtyenl6YW5vd3NraTwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9ZDAzMTdlNDA3MTEyIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9sb2dpY2FsLXRpbWUtYW5kLWxhbXBvcnQtY2xvY2tzLXBhcnQtMS1kMDMxN2U0MDcxMTIiPkxvZ2ljYWwgVGltZSBhbmQgTGFtcG9ydCBDbG9ja3MgKFBhcnQgMSk8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW09yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50c11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvb3JkZXJpbmctZGlzdHJpYnV0ZWQtZXZlbnRzLTI5YzFkZDlkMWVmZj9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvMjljMWRkOWQxZWZmPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb21wdXRlci1zY2llbmNlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDI0IE9jdCAyMDE5IDAyOjI1OjMxIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTI0VDAyOjI1OjMxLjUzOFo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlNPemZSMkNtcjBkTVIzd252dXR2QncuanBlZyIgLz48ZmlnY2FwdGlvbj5PcmRlcmluZyBkaXN0cmlidXRlZCBldmVudHM8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T25lIG9mIHRoZSBoYXJkZXN0IHRoaW5ncyBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zIGlzIHRoYXQgd2Ugb2Z0ZW4gZmluZCBvdXJzZWx2ZXMgbmVlZGluZyB0byBhcHByb2FjaCB0aGVtIHZlcnkgZGlmZmVyZW50bHkgdGhhbiBvdGhlciBwcm9ibGVtcyBpbiBjb21wdXRpbmcuIERpc3RyaWJ1dGVkIGNvbXB1dGluZyBmb3JjZXMgdXMgdG8gcmVldmFsdWF0ZSBob3cgd2XigJlkIGFwcHJvYWNoIGV2ZW4gdGhlIHNpbXBsZXN0IG9ic3RhY2xlcyBpbiBhIHNpbmdsZSBzeXN0ZW3CoG1vZGVsLjwvcD48cD5XZSByZWNlbnRseSBiZWdhbiBleHBsb3Jpbmcgb25lIHN1Y2ggZXhhbXBsZSBvZiB0aGlzIHdoZW4gd2UgdG9vayBhIGNsb3NlciBsb29rIGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aWNraW5nIGNsb2NrczwvYT4gYW5kIGhvdyB1bnJlbGlhYmxlIHRoZXkgYXJlIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBBcyB3ZSBsZWFybmVkLCB0aGVyZSBpcyBubyBzaW5nbGUgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3aGljaCBtYWtlcyBpdCBoYXJkIHRvIGV2ZXIgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBVbmRlcnN0YW5kaW5nIHRoZSBjYXZlYXRzIG9mIGNsb2NrcyBhbmQgdGltZSBpcyBjcnVjaWFsIHRvIHdyYXBwaW5nIG9uZeKAmXMgaGVhZCBhcm91bmQgdGhlIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBtb2RlbC48L3A+PHA+QnV0IHdoeSBpcyB0aW1lIDxlbT5zcGVjaWZpY2FsbHk8L2VtPiBzbyBpbXBvcnRhbnQ/IFdoeSBkbyB3ZSByZWFsbHkgY2FyZSB3aGF0IHRpbWUgaXQgaXMsIGFuZCB3aHkgZG9lcyBpdCBtYXR0ZXIgdGhhdCB3ZSBrbm93IHdoZW4gdGhpbmdzIGhhcHBlbmVkPyBBbmQgaWYgaXQgbWF0dGVycywgaG93IGRvIHdlIGdvIGFib3V0IGZpZ3VyaW5nIG91dCB3aGF0IHRpbWUgaXQgaXMgd2l0aG91dCBhIGdsb2JhbCBjbG9jayB0byByZWx5IHVwb24/IEFzIHdl4oCZbGwgbGVhcm4sIGl04oCZcyBub3Qgc28gbXVjaCB0aGUgY2xvY2tzIGFuZCB0aW1lIHRoYXQgd2UgY2FyZSBhYm91dCwgYnV0IHJhdGhlciwgdGhlIGV2ZW50cyB0aGF0IHRoZXnigJlyZSBhbHdheXMgdGllZMKgdG8uPC9wPjxoMz5UaW1lIGluIHRoZSBodW1hbsKgbWluZDwvaDM+PHA+QWx0aG91Z2ggd2XigJl2ZSBhbHJlYWR5IGRpcHBlZCBvdXIgdG9lcyBpbnRvIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj50aGUgdG9waWMgb2YgdGltZTwvYT4sIHRoZXJl4oCZcyBzdGlsbCBhIGxvdCBtb3JlIGxlZnQgZm9yIHVzIHRvIHVuY292ZXIuIEluIGZhY3QsIHdlIHdvbuKAmXQgZXZlbiBiZSBkb25lIHRhbGtpbmcgYWJvdXQgdGltZSBieSB0aGUgZW5kIG9mIHRoaXMgcG9zdCEgTm93LCBpdCBtaWdodCBzZWVtIG9kZCB0byBzcGVuZCBzbyBtdWNoIHRpbWUgbGVhcm5pbmcgYWJvdXQsIHdlbGwsIDxlbT50aW1lPC9lbT4uIFdoeSBkb2VzIHRpbWUgbWF0dGVyIHNvIG11Y2ggaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFueXdheT8gSWYgd2UgdGhpbmsgYWJvdXQgaXQgbW9yZSBkZWVwbHksIHdlIG1pZ2h0IHJlYWxpemUgdGhhdCB3ZSBkb27igJl0IHNwZWNpZmljYWxseSBjYXJlIGFib3V0IGtub3dpbmcgd2hhdCB0aW1lIGl0IGlzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLiBXaGF0IHdlIGNhcmUgYWJvdXQgaXMgYmUgYWJsZSB0byByZWx5IG9uIHRpbWUgdG8gaGVscCB1cyBvcmRlcsKgdGhpbmdzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdCalRtU01XSmVLYjFVaDVZdTBoQWcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaHkgZG9lcyBrbm93aW5nIHRoZSB0aW1lIGV2ZW4gbWF0dGVyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48YmxvY2txdW90ZT5UaGUgbm90aW9uIG9mIHRpbWUgaGVscHMgdXMgb3JkZXIgZXZlbnRzIGluIGEgc2luZ2xlIHN5c3RlbSBhcyB3ZWxsIGFzIGEgZGlzdHJpYnV0ZWQgb25lLjwvYmxvY2txdW90ZT48cD5UaW1lIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBpdCBjb21lcyB0byBvcmRlcmluZyBldmVudHMgaW4gc3lzdGVtLiBNb3N0IHByb2dyYW1tZXJzIHdpbGwgcmVseSBvbiBhbmQgZXhwZWN0IHNvbWUga2luZCBvZiB0aW1lIGZvcm1hdCB3aGVuIHRoZXkgZGVhbCB3aXRoIGRhdGEgb3IgcHJvY2Vzc2VzOyB0aGlzIHRpbWUgZm9ybWF0IGlzIHVzdWFsbHkgc29tZXRoaW5nIGxpa2UgYSA8c3Ryb25nPjxlbT50aW1lc3RhbXA8L2VtPjwvc3Ryb25nPiwgd2hpY2ggYXJlIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyB0aGF0IGhhdmUgYmVlbiBlbmNvZGVkIHRvIHJlcHJlc2VudCBhIGNlcnRhaW4gbW9tZW50IGluIHRpbWUuIFdlIHVzZSB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHRlbGwgd2hlbiBzb21lIGRhdGEgd2FzIGNyZWF0ZWQgb3IgdXBkYXRlZCwgd2hlbiBhIG1lc3NhZ2Ugd2FzIHNlbnQgb3IgcmVjZWl2ZWQsIGFuZCB3aGVuIGEgcHJvY2VzcyB3YXMgc3RhcnRlZCBvciBjb21wbGV0ZWQuIEluIGFjdHVhbGl0eSwgd2UgZG9u4oCZdCBjYXJlIGFib3V0IHRoZSB0aW1lc3RhbXAgb24gaXRzIG93buKAiuKAlOKAiml04oCZcyByZWFsbHkgdGhlIHRpbWVzdGFtcCA8ZW0+YmVpbmc8L2VtPiA8ZW0+dGllZCB0bzwvZW0+IHNvbWUgZGF0YSBvciBldmVudCB0aGF0IG1ha2VzIGl0IHVzZWZ1bCB0b8KgdXMuPC9wPjxwPlRoZSB0cm91YmxlIGlzLCBob3dldmVyLCB0aGF0IHdlIGh1bWFucyBoYXZlIG91ciBvd24gbm90aW9uIG9mIHRpbWUgYW5kIGhvdyBpdCBvdWdodCB0b8Kgd29yay48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpvTFltWEN2SldhNjc3aDI0X2dUYkV3LmpwZWciIC8+PGZpZ2NhcHRpb24+T3VyIGNvbmNlcHQgb2YgdGltZSBpc8KgbGluZWFyITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSB0ZW5kIHRvIHRoaW5rIG9mIHRpbWUgYXMgYmVpbmcgbGluZWFyOyBhbiBldmVudCBoYXBwZW5zIGF0IOKAnHNvbWXigJ0gdGltZSwgYW5vdGhlciBldmVudCBoYXBwZW5zIGFmdGVyIGl0IGF0IOKAnGFub3RoZXLigJ0gdGltZSwgYW5kIGEgZmluYWwgZXZlbnQgaGFwcGVucyBsYXN0LCBhdCBzb21lIOKAnGZpbmFs4oCdwqB0aW1lLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlZlbzk5amZQTTJuQUNNdUx6c1RCVmcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgaHVtYW4gbWVudGFsIG1vZGVsIG9mIHRpbWUgYXNzdW1lcyBhIGZld8KgdGhpbmdzLjwvcD48b2w+PGxpPkZpcnN0LCB3ZSBhbGwgYWdyZWUgb24gd2hhdCB0aW1lIGl0IGlzLiBXZSBoYXZlIHRpbWV6b25lcyBhbmQgc2hhcmVkIGNsb2NrcyAoaW5jbHVkaW5nIGEgZ2xvYmFsIGF0b21pYyBjbG9jayksIGFuZCB0aGVyZSBpcyByYXJlbHkgYW55IGRpc2NyZXBhbmN5IGJldHdlZW4gdXMgd2hlbiBpdCBjb21lcyB0byB3aGF0IHRpbWUgaXQgaXMgaW4gYSBnaXZlbiBsb2NhdGlvbi48L2xpPjxsaT5TZWNvbmQsIHdlIHRlbmQgdG8gdGhpbmsgb2YgZXZlbnRzIGhhcHBlbmluZyBhcyBvbmUgYWZ0ZXIgYW5vdGhlci4gRXZlbnQgQSBoYXBwZW5zIGZpcnN0LCB0aGVuIGV2ZW50IEIsIGFuZCBmaW5hbGx5LCBldmVudMKgQy48L2xpPjxsaT5UaGlyZCwgd2UgY2FuIGRldGVybWluZSB0aGUgZXhhY3Qgb3JkZXIgb2YgZXZlbnRzIGJhc2VkIG9uIHdoaWNoIGV2ZW50IGhhcHBlbmVkIGJlZm9yZSBhbm90aGVyLiBJbiBvdGhlciB3b3JkcywgaWYgZXZlbnQgQSBoYXBwZW5lZCBiZWZvcmUgZXZlbnQgQiwgYW5kIHdlIGtub3cgdGhlIHRpbWUgb2YgQSBhbmQgQiwgd2Uga25vdyB0aGUgZXhhY3Qgb3JkZXJpbmcgb2YgdGhlIHR3b8KgZXZlbnRzLjwvbGk+PC9vbD48cD5XaGlsZSB0aGlzIG1pZ2h0IHNlZW0gb2J2aW91cyB0byB1cywgdGhpcyBtZW50YWwgbW9kZWwgb2YgdGltZSBkb2VzbuKAmXQgd29yayBpbiB0aGUgY29udGV4dCBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zISBUaGVyZSBhcmUgc29tZSBtYWpvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIG91ciBodW1hbiBtZW50YWwgbW9kZWwgb2YgaG93IHRpbWUgd29ya3MgYW5kIHRoZSByZWFsaXR5IG9mIHRpbWUgaW4gZGlzdHJpYnV0ZWQgc3lzdGVtcy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpOcHdkcUYzWE1nUC1wSjd3bUNfREJBLmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIHJlYWxpdHkgb2YgaG93IHRpbWUgd29ya3MgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSB0aGUgaHVtYW4gbWVudGFswqBtb2RlbC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGZpcnN0IGRpZmZlcmVuY2UgaXMgb25lIHRoYXQgd2UgYWxyZWFkeSBrbm93OiBkaXN0cmlidXRlZCBzeXN0ZW1zIGhhdmUgPHN0cm9uZz48ZW0+bm8gZ2xvYmFsIGNsb2NrPC9lbT48L3N0cm9uZz4sIHNvIHRoZXJlIGlzIGp1c3Qgbm8gd2F5IHRvIGJlIHN1cmUgb2Ygd2hhdCB0aW1lIGl0IGlzIG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uIFRoZSBzZWNvbmQgZGlmZmVyZW5jZSB0byBub3RlIGlzIHRoYXQgZXZlbnRzIGRvbuKAmXQganVzdCBoYXBwZW4gb25lIGFmdGVyIGFub3RoZXIhIEV2ZW50cyBjYW4gaGFwcGVuIGF0IHRoZSBzYW1lIHRpbWUsIGluIHBhcmFsbGVsLCBvciA8c3Ryb25nPjxlbT5jb25jdXJyZW50bHk8L2VtPjwvc3Ryb25nPi4gQm90aCBvZiB0aGVzZSBwb2ludHMgbGVhZCB1cyB0byBvbmUgbW9yZSBtYWpvciBkaWZmZXJlbmNlOiBldmVudHMgaGFwcGVuIGluIGRpZmZlcmVudCBwbGFjZXMsIGluIGRpZmZlcmVudCBub2Rlcy9sb2NhdGlvbnMgaW4gYSBzeXN0ZW0uIEJ1dCwgYmVjYXVzZSB0aGV5IGNhbiBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSwgYW5kIGJlY2F1c2UgaXTigJlzIG5vdCBwb3NzaWJsZSB0byBrbm93IHdoYXQgdGltZSBpdCBpcyB3aXRob3V0IGEgZ2xvYmFsIGNsb2NrLCB0aGUgZXZlbnRzIHRoYXQgb2NjdXIgYWxsIG92ZXIgYSBkaXN0cmlidXRlZCBuZXR3b3JrIGFyZSA8c3Ryb25nPjxlbT5oYXJkIHRvwqBvcmRlcjwvZW0+PC9zdHJvbmc+ITwvcD48cD5UaGUgaHVtYW4gbW9kZWxpbmcgb2YgdGltZSBhbmQgdGhlIHJlYWxpdHkgb2YgdGltZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBhcmUgZWFjaCB0d28gdmVyeSBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byBob3cgd2UgbWlnaHQgZ28gYWJvdXQgb3JkZXJpbmcgZXZlbnRzIGluIGEgc3lzdGVtLiBJbiB0aGUgaHVtYW4gbW9kZWwgYXBwcm9hY2gsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRpbWUgaXQgaXMsIHNvIGl04oCZcyBlYXN5IHRvIGZpZ3VyZSBvdXQgaG93IHRvIG9yZGVyIHNvbWUgZXZlbnRz4oCK4oCU4oCKd2UgY2FuIGp1c3QgdXNlIGVhY2ggZXZlbnTigJlzIHRpbWVzdGFtcCwgc2luY2Ugd2Uga25vdyB3aGF0IHRpbWUgaXQgaXMhIEJ1dCBpbiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIGFwcHJvYWNoLCB3ZSBkb27igJl0IGhhdmUgdGhlIGx1eHVyeSBvZiBoYXZpbmcgYWxsIHRoZSBpbmZvcm1hdGlvbiAocmVhZDoga25vd2luZyB0aGUgdGltZSkgYWJvdXQgYWxsIHRoZSBldmVudHMgaW4gdGhlwqBzeXN0ZW0uPC9wPjxoMz5Ub3RhbCBhbmQgcGFydGlhbMKgb3JkZXJpbmc8L2gzPjxwPlRoZSBodW1hbiBtb2RlbGluZyBvZiB0aW1lIGFuZCB0aGUgbW9yZSByZWFsaXN0aWMgdmlldyBvZiB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGNhbiBiZSBncm91cGVkIGludG8gdHdvIHZlcnkgZGlmZmVyZW50IGFwcHJvYWNoZXMgb2Ygb3JkZXJpbmcgZXZlbnRzLiBMZXTigJlzIGxlYXJuIGEgYml0IG1vcmUgYWJvdXTCoHRoZW0uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVkRtN25VM0xSdVoyaFk4TG1McGhGUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlRvdGFsIG9yZGVyIG9mIGV2ZW50czogYSBkZWZpbml0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPk91ciB2aWV3IG9mIHRpbWUgYWxpZ25zIHdlbGwgd2l0aCBhIHNpbmdsZSBzeXN0ZW3igJlzIG1vZGVsIG9mIHRpbWUuIEluIGEgc2luZ2xlIHN5c3RlbeKAiuKAlOKAimFzIG9wcG9zZWQgdG8gYSBkaXN0cmlidXRlZCBvbmXigIrigJTigIplYWNoIGV2ZW50IGNhbiBiZSBwbGFjZWQgaW4gYSBzcGVjaWZpYyBvcmRlciwgd2hpY2ggaXMgYmFzZWQgb24gd2hhdCB0aW1lIHRoZXkgb2NjdXJyZWQuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBhIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyaW5nPC9lbT48L3N0cm9uZz4gb2bCoGV2ZW50cy48L3A+PHA+V2hlbiBldmVudHMgaW4gYSBzeXN0ZW0gZm9sbG93IGEgdG90YWwgb3JkZXIsIHRoZW4gZXZlcnkgZXZlbnQgaW4gdGhhdCBzeXN0ZW0gaGFzIGEgc3BlY2lmaWMgb3JkZXIgaW4gd2hpY2ggaXQgb2NjdXJyZWQuIEluIG90aGVyIHdvcmRzLCB3aGVuIHdlIGtub3cgZXhhY3RseSB3aGVuIDxlbT5lYWNoPC9lbT4gb2YgdGhlIGV2ZW50cyBvY2N1cnJlZCwgd2Uga25vdyB0aGUgdG90YWwgb3JkZXIgb2YgYWxsIHRoZSBldmVudHMgaW4gYcKgc3lzdGVtLjwvcD48cD5Gb3IgZXhhbXBsZSwgaW4gdGhlIGlsbHVzdHJhdGlvbiBzaG93biBhYm92ZSwgaWYgd2Uga25ldyB0aGF0IGV2ZW50IEEgb2NjdXJyZWQgZmlyc3QsIGZvbGxvd2VkIGJ5IGV2ZW50IEIsIGFuZCBlbmRpbmcgd2l0aCBldmVudCBDLCB0aGVuIHdlIHdvdWxkIGtub3cgdGhlIDxzdHJvbmc+PGVtPnRvdGFsIG9yZGVyPC9lbT48L3N0cm9uZz48ZW0+IDwvZW0+b2YgYWxsIHRoZSBldmVudHMuIEV2ZW50cyBpbiBhIHNpbmdsZSBzeXN0ZW0gY2FuIGJlIHRvdGFsbHkgb3JkZXJlZCBzaW5jZSB3ZSBoYXZlIGEgbG9jYWwgY2xvY2sgdG8gaGVscCB1cyBmaWd1cmUgb3V0IGV4YWN0bHkgd2hlbiBhbiBldmVudCBoYXBwZW5lZCwgd2hpY2ggYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgdGhlIHRvdGFsIG9yZGVyaW5nIG9mIGFsbCB0aGXCoGV2ZW50cy48L3A+PHA+WWV0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gYSBzaW5nbGUgc3lzdGVtISBTdXJlLCBhbiBpbmRpdmlkdWFsIG5vZGUgaW4gYSBzeXN0ZW0gd2lsbCBrbm93IHdoYXQgdGltZSBpdCBpcyBiYXNlZCBvbiBpdHMgbG9jYWwgY2xvY2ssIGJ1dCBpdCB3b27igJl0IGtub3cgd2hhdCB0aW1lIGl0IGlzIG9uIGFub3RoZXIgbm9kZS4gSXTigJlzIGFsbW9zdCBhcyBpZiBlYWNoIG5vZGUgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGdldCBoYWxmd2F5IHRvIGEgdG90YWwgb3JkZXJpbmfigKZpdCBjYW4gb3JkZXIgaXRzIG93biBldmVudHMsIGJ1dCBpZiBpdCByZWNlaXZlcyBhbnkgbWVzc2FnZXMvaW5jb21pbmcgZXZlbnRzIGZyb20gb3RoZXIgbm9kZXMgaW4gdGhlIHN5c3RlbSwgaXQgd29u4oCZdCBrbm93IHdoYXQgdG8gZG8gd2l0aMKgdGhlbS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSoxTGh3bmRob2VuRmlZaHBPNE1mazN3LmpwZWciIC8+PGZpZ2NhcHRpb24+UGFydGlhbCBvcmRlciBvZiBldmVudHM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGJyaW5ncyB1cyB0byBwYXJ0aWFsIG9yZGVyaW5nLCB3aGljaCBpcyBhIOKAnGxlc3Mgc3VyZeKAnSB2ZXJzaW9uIG9mIHRvdGFsIG9yZGVyaW5nLiBJbiBhIDxzdHJvbmc+PGVtPnBhcnRpYWwgb3JkZXI8L2VtPjwvc3Ryb25nPiwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIHRoZSBleGFjdCBvcmRlciBvZiA8ZW0+YWxsPC9lbT4gdGhlIGV2ZW50cyBpbiB0aGUgc3lzdGVtLiBJbnN0ZWFkLCBhbGwgd2UgY2FuIGJlIHN1cmUgYWJvdXQgaXMgdGhlIG9yZGVyIG9mIGV2ZW50cyB0aGF0IGFyZSByZWxpYW50IHVwb24gb25lwqBhbm90aGVyLjwvcD48cD5MZXTigJlzIHRoaW5rIGJhY2sgdG8gb3VyIGV4YW1wbGUgdGhyZWUgZXZlbnRzOiBBLCBCLCBhbmQgQy4gSW4gYSBzaW5nbGUgc3lzdGVtIG9yIGluIGEgc3lzdGVtIHdpdGggYSB0b3RhbCBvcmRlciwgd2Ugd2VyZSBhYmxlIHRvIGtub3cgdGhlIGV4YWN0IG9yZGVyIG9mIGVhY2ggb2YgdGhlc2UgZXZlbnRzLiBCdXQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHRoYXQgd291bGQgaGF2ZSBsaWtlbHkgbm90IGJlZW4gdGhlIGNhc2UhIEluc3RlYWQsIHdlIHByb2JhYmx5IHdvdWxkIGhhdmUgYmVlbiBzdXJlIGFib3V0IHNvbWUgb2YgdGhlIGV2ZW50cywgYnV0IG5vdMKgb3RoZXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjJuZGpmM19XYkhYR1NBazBzLUdpR0EuanBlZyIgLz48ZmlnY2FwdGlvbj5VbmRlcnN0YW5kaW5nIHBhcnRpYWwgb3JkZXJpbmcgd2l0aCBtdWx0aXBsZcKgZXZlbnRzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Gb3IgZXhhbXBsZSwgbGV04oCZcyBzYXkgdGhhdCB3ZSBhcmUgc3VyZSBhYm91dCB3aGVuIGV2ZW50IEIgYW5kIGV2ZW50IEMgb2NjdXJyZWQuIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgYXJlIGV2ZW4gc3VyZSB0aGF0IGV2ZW50IEIgb2NjdXJyZWQgYmVmb3JlIGV2ZW50IEMuIEJ1dCB3aGF0IGFib3V0IGV2ZW50IEE/IFdl4oCZcmUgbm90IDxlbT5hdCBhbGw8L2VtPiBzdXJlIGFib3V0IHdoZW4gdGhhdCBldmVudCBvY2N1cnJlZCE8L3A+PHA+SW4gcmVhbGl0eSwgYmVjYXVzZSB3ZSBkb27igJl0IGtub3cgd2hlbiBldmVudCBBIG9jY3VycmVkLCBpdCBjb3VsZCBoYXZlIHRoZW9yZXRpY2FsbHkgaGFwcGVuZWQgYXQgYW55IHRpbWU6IGJlZm9yZSBldmVudCBCLCBhZnRlciBldmVudCBDLCBvciBldmVuIHJpZ2h0IGJldHdlZW4gdGhlIHR3byBldmVudHMhIEFsbCB3ZSBjYW4gc2F5IHdpdGggY2VydGFpbnR5IGlzIHRoYXQgZXZlbnQgQiBvY2N1cnJlZCBiZWZvcmXCoEMuPC9wPjxibG9ja3F1b3RlPkluZGVlZCwgb3VyIHBhcnRpYWwgc3VyZW5lc3MgYWJvdXQgaG93IHRvIG9yZGVyIHRoZXNlIGV2ZW50cyBpcyB3aGF0IG1ha2VzIHRoaXMgc2V0IG9mIGV2ZW50cyBhIHBhcnRpYWwgb3JkZXJpbmfigJQgd2XigJlyZSBvbmx5IOKAnHBhcnRpYWxseeKAnSBzdXJlIGFib3V0IHRoZSBvcmRlciBvZiB0aGVzZcKgZXZlbnRzLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFfNlhNaU1KanMzOVpTUEFndG5oLUEuanBlZyIgLz48ZmlnY2FwdGlvbj5XaXRob3V0IGEgZ2xvYmFsIGNsb2NrLCBkaXN0cmlidXRlZCBzeXN0ZW0gZXZlbnRzIGFyZSBwYXJ0aWFsbHkgb3JkZXJlZC48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIG1vc3RseSBkZWFsIHdpdGggcGFydGlhbGx5IG9yZGVyZWQgZXZlbnRzLCBzaW1wbHkgYmVjYXVzZSBpbmRpdmlkdWFsIG5vZGVzIGNhbiBiZSBzdXJlIGFib3V0IGhvdyB0byBvcmRlciBsb2NhbCBldmVudHMsIGJ1dCB0aGV5IGNhbuKAmXQgYWx3YXlzIGJlIHN1cmUgYWJvdXQgaG93IHRvIG9yZGVyIGV2ZW50cyB0aGF0IGFyZSBoYXBwZW5pbmcgb24gYSBkaWZmZXJlbnQgbm9kZS4gQSBub2RlIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCBzZW5kIG1lc3NhZ2VzIG91dCB0byBvdGhlciBub2Rlcywgd2hvIGNhbuKAmXQgbmVjZXNzYXJpbHkgYmUgc3VyZSBvZiB3aGVuIHRoZXkgb2NjdXJyZWQuIFNpbWlsYXJseSBhIG5vZGUgaW4gb3VyIHN5c3RlbSB3aWxsIHJlY2VpdmUgaXRzIG93biBzZXQgb2YgaW5jb21pbmcgbWVzc2FnZXMsIGFuZCBpdCBjYW7igJl0IGJlIHN1cmUgb2Ygd2hhdCB0aW1lIHRob3NlIG1lc3NhZ2VzIHdlcmUgc2VudCzCoGVpdGhlciE8L3A+PHA+U28gaG93IGRvIHdlIHJlY29uY2lsZSB0aGlzIGxhY2sgb2Yga25vd2xlZGdlIHRocm91Z2hvdXQgb3VyIHN5c3RlbT8gV2VsbCwgaXQgaW52b2x2ZXMgc29tZSByZWZyYW1pbmcgb2YgaG93IHdlIHRoaW5rIGFib3V0IHRpbWXigKZhbmQgd2hldGhlciB3ZSBldmVuIG5lZWQgaXQgYXQgYWxswqAoPyEpLjwvcD48aDM+TWF5YmUgdGltZSBkb2VzbuKAmXTCoG1hdHRlcjwvaDM+PHA+SW4gdGhlIGJlZ2lubmluZyBvZiB0aGlzIHBvc3QsIHdlIGFza2VkIG91cnNlbHZlcyB3aHkgd2UgZXZlbiA8ZW0+Y2FyZWQ8L2VtPiBhYm91dCB0aW1lLiBXZSByZWFsaXplZCB0aGF0IHRoZSByZWFzb24gaXQga2VwdCBjb21pbmcgdXAgd2FzIGJlY2F1c2Ugd2UgcmVsaWVkIG9uIHRpbWUgdG8gb3JkZXIgZXZlbnRzIGluIG91ciBzeXN0ZW0uIEFsb25nIHRoZSB3YXksIHdlIGxlYXJuZWQgdGhhdCBzb21ldGltZXMgd2UgY2FuIGJlIHN1cmUgYWJvdXQgdGhlIG9yZGVyIG9mIGV2ZW50cyAodG90YWwgb3JkZXJpbmcpIGFuZCBvdGhlciB0aW1lcywgd2VsbCwgd2UgY2Fu4oCZdCBiZSBzdXJlIG9mIGV2ZXJ5dGhpbmcgKHBhcnRpYWwgb3JkZXJpbmcpLiBCdXQgaWYgd2UgY2lyY2xlIGJhY2sgdG8gb3VyIG9yaWdpbmFsIHF1ZXN0aW9uLCB3ZSBtaWdodCByZWFsaXplIHRoYXQgd2UgZG9u4oCZdCBhY3R1YWxseSBjYXJlIGFib3V0IDxlbT50aW1lPC9lbT4sIGJ1dCByYXRoZXIgdGhlIG9yZGVyIGluIHdoaWNoIHRoaW5nc8KgaGFwcGVuLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlc5eEUtNjIzby13bmV0aDNmOHhGb3cuanBlZyIgLz48ZmlnY2FwdGlvbj5NYXliZSB0aW1lIGl0c2VsZiBpc27igJl0IGltcG9ydGFudCEgTWF5YmUgd2UganVzdCBjYXJlIGFib3V0IHRoZSBvcmRlciBvZsKgdGhpbmdzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5QZXJoYXBzIHdlIGRvbuKAmXQgYWN0dWFsbHkgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgZXhhY3QgdGltZSB0aGF0IGVhY2ggZXZlbnQgaW4gb3VyIHN5c3RlbSBvY2N1cnJlZC4gSW5zdGVhZCwgbWF5YmUgd2Ugc2hvdWxkIHRyeSB0byBqdXN0IGZpZ3VyZSBvdXQgd2hlbiB0aG9zZSBldmVudHMgaGFwcGVuZWQgaW4gYSB3YXkgdGhhdCBkb2VzbuKAmXQgPGVtPnJlcXVpcmUgdXM8L2VtPiB0byBldmVuIHRoaW5rIGFib3V0IGNsb2NrcyBvcsKgdGltZSE8L3A+PHA+QWxsIHdlIHJlYWxseSB3YW50IHRvIGtub3cgaXMgdGhlIG9yZGVyIGluIHdoaWNoIHNvbWUgZXZlbnRzIG9jY3VycmVkLiBBbmQgd2h5IGRvIHdlIGNhcmUgYWJvdXQgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cz8gV2VsbCwgdGhlIG1ham9yIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIGlzIHNvIHRoYXQgd2UgY2FuIGZpZ3VyZSBvdXQgaG93IG9uZSBldmVudCBjYXVzZWQgYW5vdGhlciB0byBvY2N1ci4gU28sIHRoZSBxdWVzdGlvbiBpczogaG93IGNhbiB3ZSBnZXQgdGhlIGJlbmVmaXQgb2Ygb3JkZXJpbmcgZXZlbnRzIHdpdGhvdXQgYWxsIHRoZSBoZWFkYWNoZSBvZiBmaWd1cmluZyBvdXQgdGhlIHRpbWUgYXQgd2hpY2ggZWFjaCBldmVudCBoYXBwZW5lZD88L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoY0t5SV9RR3d5dVhhYUVYSGFUeFZRLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2F1c2FsIG9yZGVyaW5nOiBhIHNuZWFrwqBwZWFrITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgYW5zd2VyIHRvIHRoaXMgbXlzdGVyeSBpcyA8c3Ryb25nPjxlbT5jYXVzYWwgb3JkZXJpbmc8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaGVscHMgdXMgb3JkZXIgZXZlbnRzIG5vdCBiYXNlZCBvbiB0aGUgPGVtPnRpbWU8L2VtPiB0aGF0IHRoZXkgb2NjdXJyZWQsIGJ1dCByYXRoZXIsIGJhc2VkIG9uIGNhdXNlIGFuZCBlZmZlY3QuIENhdXNhbCBvcmRlcmluZyByZWZyYW1lcyBob3cgd2UgdGhpbmsgYWJvdXQgZXZlbnRzLiBJZiB3ZSBjYW4ganVzdCBmaWd1cmUgb3V0IHdoaWNoIGV2ZW50cyBjYXVzZSA8ZW0+b3RoZXI8L2VtPiBldmVudHMsIHdlIGNhbiBjb21lIHVwIHdpdGggYSBsb29zZSBvcmRlcmluZyBvZiBob3cgdGhvc2UgZXZlbnRzIG9jY3VycmVkLjwvcD48cD5JbiBvdGhlciB3b3Jkczogd2UgZG9u4oCZdCBuZWVkIHRvIGNhcmUgYWJvdXQgdGltZSBhbnltb3JlISBXZSBjYW4gc29ydCBvZiBza2lydCBhcm91bmQgaXQsIGFuZCBqdW1wIHJpZ2h0IHRvIHRoZSBtYXR0ZXIgYXQgaGVhcnQ6IGZpZ3VyaW5nIG91dCBpZiBvbmUgZXZlbnQgY2FtZSBiZWZvcmUgYW5vdGhlci4gSW4gdGhlIG5leHQgcG9zdCwgd2XigJlsbCBkaXZlIGludG8gdGhlIGxvZ2ljIGJlaGluZCBjYXVzYWwgb3JkZXJpbmcgYW5kIGZpZ3VyaW5nIG91dCB0aGUgY2hyb25vbG9naWNhbCByZWxhdGlvbnNoaXBzIGJldHdlZW4gZXZlbnRzLiBJbiB0aGUgbWVhbnRpbWUsIHJlc3QgZWFzeSBrbm93aW5nIHRoYXQgd2XigJl2ZSBnb3QgYSAobG9naWNhbCkgdGltZSBzb2x1dGlvbiBhaGVhZCBvZsKgdXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPlVuZGVyc3RhbmRpbmcgdGhlIG9yZGVyaW5nIG9mIGV2ZW50cyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSBpcyBzdXBlciBoZWxwZnVsIHRvIGtub3cgYmVmb3JlIGxlYXJuaW5nIGFib3V0IG1vcmUgY29tcGxleCB0aW1lLXJlbGF0ZWQgdG9waWNzLiBJdCBjYW4gYmUgaGFyZCB0byBmaW5kIHJlc291cmNlcyB0aGF0IHNwZWNpZmljYWxseSBleHBsYWluIHRvdGFsIGFuZCBwYXJ0aWFsIG9yZGVyaW5nIGluIHRoZSBjb250ZXh0IG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGJ1dCB0aGVyZSBhIGZldyB0aGF0IGRvIGEgcHJldHR5IGdvb2Qgam9iLCB3aGljaCBJ4oCZdmUgbGlzdGVkwqBiZWxvdyE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vYm9vay5taXh1Lm5ldC9kaXN0c3lzL3RpbWUuaHRtbCI+RGlzdHJpYnV0ZWQgU3lzdGVtcyBmb3IgRnVuIGFuZCBQcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzQ2MjA3NzkvcGFydGlhbC1vcmRlcmluZy1vZi1ldmVudHMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0iPlBhcnRpYWwgb3JkZXJpbmcgb2YgZXZlbnRzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9hPiwgSmVzc2XCoEJhbmdzPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jb3JuZWxsLmVkdS9jb3Vyc2VzL2NzNjQxMC8yMDE4ZmEvc2xpZGVzLzE0LWxhbXBvcnQtY2xvY2tzLnBkZiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogT3JkZXJpbmcgYW5kIENvbnNpc3RlbmN5PC9hPiwgUHJvZmVzc29yIEEuRi7CoENvb3BlcjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vc2NhdHRlcmVkLXRob3VnaHRzLm5ldC93cml0aW5nL2NhdXNhbC1vcmRlcmluZy8iPkNhdXNhbCBPcmRlcmluZzwvYT4sIEphbWllwqBCcmFuZG9uPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9sYW1wb3J0LmF6dXJld2Vic2l0ZXMubmV0L3B1YnMvdGltZS1jbG9ja3MucGRmIj5UaW1lLCBDbG9ja3MsIGFuZCB0aGUgT3JkZXJpbmcgb2YgRXZlbnRzIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtPC9hPiwgTGVzbGllwqBMYW1wb3J0PC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD0yOWMxZGQ5ZDFlZmYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL29yZGVyaW5nLWRpc3RyaWJ1dGVkLWV2ZW50cy0yOWMxZGQ5ZDFlZmYiPk9yZGVyaW5nIERpc3RyaWJ1dGVkIEV2ZW50czwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGlja2luZyBDbG9ja3MgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RpY2tpbmctY2xvY2tzLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLWVmMmFhNGRmMDdhMz9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvZWYyYWE0ZGYwN2EzPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbZGlzdHJpYnV0ZWQtc3lzdGVtc11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbcHJvZ3JhbW1pbmddXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UaHUsIDAzIE9jdCAyMDE5IDAzOjUwOjUyIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTEwLTAzVDAzOjUwOjUyLjk4M1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk5DOEJWN2VtVnFnQnR4ckhHaEtGRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5UaWNraW5nIGNsb2NrcyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZSBvZnRlbiBzcGVuZCBhIGxvdCBvZiBvdXIgbGl2ZXMgYmxpc3NmdWxseSB1bmF3YXJlIG9mIGhvdyBzb21ldGhpbmcgd29ya3MuIE1vc3Qgb2YgdGhlIHRpbWUsIHRoaXMgZW5kcyB1cCBiZWluZyBhbiBva2F5IHRoaW5nLCBzaW5jZSB3ZSBkb27igJl0IHJlYWxseSBuZWVkIHRvIGtub3cgaG93IGV2ZXJ5dGhpbmcgYXJvdW5kIHVzIHdvcmtzLiBCdXQgdGhlcmUgYXJlIHNvbWUgdGltZXMgd2hlbiB3ZSByZWFsaXplIGp1c3QgaG93IG11Y2ggY29tcGxleGl0eSBiZWVuIGhpZGRlbiBmcm9tIHVzLCBhYnN0cmFjdGVkIG91dCwgdHVja2VkIGF3YXkgbmVhdGx5IHNvIHRoYXQgd2UgbmV2ZXIgaGF2ZSB0byB0aGluayBhYm91dMKgaXQuPC9wPjxwPkkgaGFkIG9uZSBvZiB0aGVzZSByZWFsaXphdGlvbnMgcmVjZW50bHkgd2hlbiBJIGRpc2NvdmVyZWQgdGhhdCBJIGhhZCBuZXZlciB0aG91Z2h0IHR3aWNlIGFib3V0IGEgc2ltcGxlIHRoaW5nIHRoYXQgSSB3b3JrIHdpdGggb24gYW4gaG91cmx5IGJhc2lzOiB0aW1lISBJ4oCZdmUgYmVlbiB1c2luZyBjb21wdXRlcnMgZm9yIHRoZSBiZXR0ZXIgcGFydCBvZiBteSBsaWZlLCBmaXJzdCBhcyBhIGNvbnN1bWVyIG9mIHRlY2hub2xvZ3kgYW5kLCBsYXRlciwgYXMgYSBjcmVhdG9yIG9mIGl0LiBJdCB3YXMgb25seSB1bnRpbCBJIGJlZ2FuIGxlYXJuaW5nIGFib3V0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgKGZvciB0aGlzIHNlcmllcyEpIHRoYXQgSSB1bmRlcnN0b29kIHRoYXQgSSBkaWRu4oCZdCBrbm93IGFzIG11Y2ggYXMgSSB0aG91Z2h0IGFib3V0IHRlbGxpbmcgdGltZSwgbXVjaCBsZXNzIGhvdyB0aGUgY29tcHV0ZXJzIHRoYXQgd2UgdXNlIGV2ZXJ5ZGF5IGVuZCB1cCBkZWNpZGluZyB3aGF0IHRpbWUgaXTCoGlzLjwvcD48cD5XaGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGltZSBpcyBhIGNvbXBsZXRlbHkgZGlmZmVyZW50IGJlYXN0LiBCdXQgYmVmb3JlIHdlIGNhbiByZWFsbHkgZ2V0IGludG8gdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmWxsIGZpcnN0IG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgaW5kaXZpZHVhbCBtYWNoaW5lcyB0cmFjayB0aW1lLiBTbyBsZXTigJlzIHN0YXJ0IGxlYXJuaW5nIGFib3V0IHdoYXQgZXhhY3RseSBtYWtlcyB0aW1lIHNvIGRhcm7CoHRyaWNreS48L3A+PGgzPlRyYWNraW5nIHRpbWU8L2gzPjxwPk1vc3QgZGV2aWNlcyB0aGVzZSBkYXlzIGhhdmUgc29tZSBjb25jZXB0IG9mIHdoYXQgZGF5IGl0IGlzIGFuZCB3aGF0IHRpbWUgaXQgaXMuIFdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzb21lIOKAnGludGVybmV0IG9mIHRoaW5nc+KAnSBkZXZpY2VzIChsaWtlIGEgPGEgaHJlZj0iaHR0cHM6Ly93d3cucmFzcGJlcnJ5cGkub3JnLyI+UmFzcGJlcnJ5IFBpPC9hPiksIGFsbCBtYWNoaW5lcyBoYXZlIHNvbWUgbm90aW9uIG9mIHRpbWUuIEJ1dCBob3cgZG8gdGhleSBmaWd1cmUgb3V0IHRoZSBkYXkgYW5kwqB0aW1lPzwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkVqajdUcGk4ZFV5SnJ3ZGppUDRUT0EuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWFsLXRpbWUgY2xvY2tzOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGFuc3dlciBpczogd2l0aCBhIGNsb2NrISBOb3csIHRoaXMgbWlnaHQgc2VlbSBvYnZpb3VzIGF0IGZpcnN0LCBidXQgaXQgZ2V0cyBhIGxpdHRsZSB0cmlja2VyIGFzIHdlIGdvIG9uLiBBIGNvbXB1dGVyIHRoYXQgbmVlZHMgdG8gYmUgYWJsZSB0byB0ZWxsIHRoZSB0aW1lIHdpbGwgb2Z0ZW4gaGF2ZSBhbiBpbnRlcm5hbCBjbG9jayB0aGF0IGlzIGJ1aWx0IHJpZ2h0IGludG8gaXRzIGhhcmR3YXJlIGluIHRoZSBmb3JtIG9mIGFuIGludGVncmF0ZWQgY2lyY3VpdC4gVGhpcyBjaXJjdWl0IGlzIG9mdGVuIGJ1aWx0IHJpZ2h0IG9udG8gdGhlIG1vdGhlcmJvYXJkLiBUaGlzIHNtYWxsIHBpZWNlIG9mIGhhcmR3YXJlIGlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+cmVhbC10aW1lIGNsb2NrPC9lbT48L3N0cm9uZz4sIG9yIDxzdHJvbmc+PGVtPlJUQzwvZW0+PC9zdHJvbmc+IGZvcsKgc2hvcnQuPC9wPjxwPlJUQ3MgYXJlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBiZWNhdXNlIHRoZXkgY29tZSB3aXRoIGFuIGFsdGVybmF0ZSBwb3dlciBzb3VyY2UgKGxpa2UgYSBiYXR0ZXJ5KSwgd2hpY2ggYWxsb3dzIHRoZW0gdG8gY29udGludWUgd29ya2luZyBldmVuIGlmIGEgbWFjaGluZSBpcyBwb3dlcmVkIG9mZiEgVGhpcyBtaWdodCBzZWVtIG9idmlvdXMgdG8gdXMgdG9kYXksIGJ1dCB0aGUgdXNlIG9mIFJUQ3Mgd2FzIGEgcHJldHR5IHNpZ25pZmljYW50IG1pbGVzdG9uZSBpbiB0aGUgaGlzdG9yeSBvZiBjb21wdXRpbmc7IGVhcmx5IHBlcnNvbmFsIGNvbXB1dGVycyBkaWRu4oCZdCBhY3R1YWxseSBjb21lIHdpdGggUlRDcyBidWlsdC1pbiwgYW5kIHRoZXkgd2VyZSBhZGRlZCBpbiBsYXRlciBvbi4gTm93LCB3ZeKAmWxsIGZpbmQgcmVmcmlnZXJhdG9ycyBhbmQgbWljcm93YXZlcyB0aGF0IGhhdmUgdGhlc2UgbGl0dGxlIGNsb2NrcyBidWlsdCByaWdodCBpbiEgVGhhdOKAmXMgcHJldHR5IHdpbGQgaWYgeW91IHRoaW5rIGFib3V0wqBpdC48L3A+PHA+VGhlIFJUQyBpcyByZXNwb25zaWJsZSBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUgY3VycmVudCB0aW1lLCBhbmQgd2UgY2FuIHRoaW5rIG9mIGl0IGFzIG9uZSBpbmRpdmlkdWFsIG1hY2hpbmXigJlzIDxzdHJvbmc+PGVtPnN5c3RlbSBjbG9jazwvZW0+PC9zdHJvbmc+LiBJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGlzIGNsb2NrIGlzIHNwZWNpZmljIHRvIHRoZSDigJxzeXN0ZW3igJ0gb2YgdGhlIG1hY2hpbmU7IGluIG90aGVyIHdvcmRzLCBhbnkgcHJvY2VzcyBvciB0YXNrcyBvciB3b3JrIHRoYXQgdGhlIG1hY2hpbmUgZG9lcyB0aGF0IHJlbGllcyBvbiB0aGUgdGltZSB3aWxsIGluaGVyZW50bHkgcmVseSB1cG9uIHdoYXRldmVyIHRpbWUgdGhlIDxlbT5zeXN0ZW0gY2xvY2s8L2VtPiBzYXlzIGl0wqBpcy48L3A+PHA+U28sIGhvdyBkb2VzIHRoaXMgcGh5c2ljYWwgY2xvY2sgd29yaywgZXhhY3RseT8gQXMgaXQgdHVybnMgb3V0LCBkZWVwIGluc2lkZSB0aGUgaW50ZWdyYXRlZCBjaXJjdWl0IGlzIGEgY3J5c3RhbCwgd2hpY2ggdmlicmF0ZXMgb3Igb3NjaWxsYXRlczsgaXTigJlzIGtub3duIGFzIGEgPHN0cm9uZz48ZW0+Y3J5c3RhbCBvc2NpbGxhdG9yPC9lbT48L3N0cm9uZz4uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqLUp3QlB4MWFPR2ZMY3BsRVI2d1pjZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IGNvbXB1dGVyIGhhcyBpdHMgb3duIHBoeXNpY2FswqBjbG9jazwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XaXRob3V0IGdldHRpbmcgaW50byB0aGUgbml0dHktZ3JpdHR5IChyZWFkOiBwaHlzaWNzKSBvZiB0aGlzIHdvcmtzIHVuZGVyIHRoZSBob29kLCBhbGwgd2UgcmVhbGx5IG5lZWQgdG8ga25vdyBmb3Igb3VyIHB1cnBvc2VzIGlzIHRoYXQgdGhlIHZpYnJhdGlvbnMgb2YgdGhlIGNyeXN0YWwgYXJlIGNhcHR1cmVkIGFuZCBjb3VudGVkIGJ5IHRoZSBjbG9jay4gQXMgdGhlIGNyeXN0YWwgdmlicmF0ZXMsIHRoZSBjbG9jayBrZWVwcyBjb3VudCBvZiBlYWNoIHZpYnJhdGlvbiBpbiB0aGUgZm9ybSBvZiA8c3Ryb25nPjxlbT50aWNrczwvZW0+PC9zdHJvbmc+LCBhbmQgYXMgaXQgY291bnRzIG9uZSB0aWNrIGFmdGVyIGFub3RoZXIsIGl0IGtlZXBzIHRyYWNrIG9mIHRoZSB0aW1lLiBPZiBjb3Vyc2UsIHRoaXMgYmVncyB0aGUgcXVlc3Rpb24gb2Ygd2hlcmUgaXQga2VlcHMgY291bnQgb2YgZWFjaCB0aWNrIHRoYXQgaXQgcmVjb3Jkcy4gVGhlIHBoeXNpY2FsIGNsb2NrIHVzZXMgYSA8c3Ryb25nPjxlbT5iaW5hcnkgY291bnRlciBjaXJjdWl0PC9lbT48L3N0cm9uZz4sIGEgc2ltcGxlIGNpcmN1aXQgdGhhdCBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGNvdW50IGluIGJpbmFyeSwgaW4gb3JkZXIgdG8gc3RvcmUgdGhlc2UgdGlja3MuIENvbnZlbmllbnRseSwgdGhlIGJpbmFyeSBjb3VudGVyIGNpcmN1aXQgKHRoZSBzeXN0ZW0gY2xvY2spIGlzIHdoZXJlIGEgbWFjaGluZSBkZXJpdmVzIGl0cyA8c3Ryb25nPjxlbT5zeXN0ZW0gdGltZTwvZW0+IDwvc3Ryb25nPmZyb20uIEluZGVlZCwganVzdCBhcyBhIG1hY2hpbmUgaGFzIGEgc3lzdGVtIGNsb2NrLCBpdCBhbHNvIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lIHRoYXQgaXMgPGVtPmJhc2VkPC9lbT4gb24gdGhhdMKgY2xvY2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMC1waXY2bVNCV0pPYVVEcm4yY1J5dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlN5c3RlbSB0aW1lOiBhIGRlZmluaXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW4gaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQgc3lzdGVtIHRpbWUgaXMgdGhhdCBpdCBhbHdheXMgaXMgY2FsY3VsYXRpbmcgdGltZSBiYXNlZCBvbiA8ZW0+d2hlbjwvZW0+IHRoZSBzeXN0ZW0gY2xvY2sgYmVnYW4gY291bnRpbmcuIFRoaXMgbWVhbnMgdGhhdCBpZiB3ZSBzZXQgdGhlIHN5c3RlbSBjbG9jayBvbiBhIG5ldyBjb21wdXRlciB0byBiZSBmaXZlIG1pbnV0ZXMgc2xvdyBvciB0d28gZGF5cyBmYXN0LCB0aGVuIG91ciBzdGFydGluZyBwb2ludCBmb3Igb3VyIHN5c3RlbSB0aW1lIG9yIHRoZSDigJx6ZXJv4oCdIG9mIHdoZXJlIHdlIHN0YXJ0IG91ciBjb3VudGluZyBvZiB0aW1lIHdpbGwgZW5kIHVwIGJlaW5nIGVpdGhlciBmaXZlIG1pbnV0ZXMgYmVoaW5kIG9yIHR3byBkYXlzIGFoZWFkLiBJbiBvdGhlciB3b3Jkcywgd2XigJlsbCBiZSBtZWFzdXJpbmcg4oCcdGlja3PigJ0gYmFzZWQgb24gd2hhdGV2ZXIgZGF0ZSBvciB0aW1lIHdlIHNldOKAiuKAlOKAim5vdCBvbiB3aGF0IHRoZSBhY3R1YWwgdGltZcKgaXMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqbHVMREk0WnNKYWlUd0ZOdm1HTDdTUS5qcGVnIiAvPjxmaWdjYXB0aW9uPlVuZGVyc3RhbmRpbmcgaG93IFVuaXggdGltZcKgd29ya3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VG8gaGVscCBhdm9pZCBzb21lIG9mIHRoZSBjb25mdXNpb24gb2YgdGhpcyBwcm9ibGVtLCBtb3N0IG1hY2hpbmVzIGZvbGxvdyBzb21lIGtpbmQgb2YgY29udmVudGlvbiB3aGVuIGl0IGNvbWVzIHRvIGRlY2lkaW5nIHdoYXQgdGhhdCBzdGFydGluZyBwb2ludCBzaG91bGQgYmUuIEZvciBleGFtcGxlLCBtYWNoaW5lcyB0aGF0IGhhdmUgVW5peCBvcGVyYXRpbmcgc3lzdGVtcyBoYXZlIHN0YW5kYXJkaXplZCBhcm91bmQgPHN0cm9uZz48ZW0+VW5peCB0aW1lPC9lbT48L3N0cm9uZz4sIHdoaWNoIGlzIGEgd2F5IG9mIGRlY2lkaW5nIHdoYXQgdGhlIOKAnHplcm/igJ0gb2Ygd2hlcmUgd2Ugc3RhcnQgY291bnRpbmcgdGltZSBzaG91bGQgYmUuIEluIHRoZSBjYXNlIG9mIFVuaXggdGltZSwgdGhlIHN0YXJ0aW5nIHBvaW50IG9yIOKAnHplcm/igJ0gaXMgdGhlIHN0YXJ0IG9mIHRoZSA8c3Ryb25nPjxlbT5Vbml4IGVwb2NoPC9lbT48L3N0cm9uZz4sIG9yIEphbnVhcnkgMXN0LCAxOTcwLCBhdCAwMDowMDowMCBVVCAoVW5pdmVyc2FsIFRpbWUpLiBBbiA8c3Ryb25nPjxlbT5lcG9jaDwvZW0+PC9zdHJvbmc+IGlzIG1lYW50IHRvIGJlIGFyYml0cmFyeTsgaXTigJlzIG5vdGhpbmcgbW9yZSB0aGFuIGFuIGFncmVlZC11cG9uIHN0YXJ0aW5nIGRhdGUgYW5kIHRpbWUgZm9yIHdoZW4gd2Ugc2hvdWxkIHN0YXJ0IG1lYXN1cmluZyB0aW1lLiBNeSBwZXJzb25hbCBmYXZvcml0ZSBlcG9jaCBpcyB0aGUgb25lIGZvciBNaWNyb3NvZnQgRXhjZWwgcHJvZ3JhbXMsIHdoaWNoIGlzIDAgSmFudWFyeSwgMTk5MCEgKEZvciB0aGUgZXBvY2hseS1jdXJpb3VzLCBjaGVjayBvdXQgPGEgaHJlZj0iaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRXBvY2hfKGNvbXB1dGluZykiPnRoaXMgZXh0ZW5zaXZlIGxpc3Q8L2E+Lik8L3A+PGgzPk91dCBvZiBzeW5jLCBvdXQgb2bCoGNvbnRyb2w8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhhdCBhIGNsb2NrIGNhbiBzdGFydCDigJxjb3VudGluZ+KAnSBhdCBhcmJpdHJhcnkgdGltZXMsIGl04oCZcyB0aW1lIHRvIGFkZCBhbm90aGVyIGZhY3RvciB0byB0aGUgbWl4LiBOYW1lbHksIHdoYXQgaGFwcGVucyBpZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgY2xvY2s/IFRoaXMgaXMgd2hlbiB0aGluZ3Mgc3RhcnQgdG8gZ2V0LCB3ZWxsLCBhIGxpdHRsZSBvdXQgb2bCoHN5bmMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcFVYOC1xVnFzMDcxanhUbWNkSWx3Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPkNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQ8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U2luY2UgZXZlcnkgbWFjaGluZSBjYW4gaGF2ZSBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCB3ZSBjYW4gYXNzdW1lIHRoYXQgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyB3aWxsIGVhY2ggaGF2ZSB0aGVpciBvd24gY29uY2VwdHMgb2Ygd2hhdCB0aW1lIGl0IGlzLiBCdXQgdGhpcyBpcyB3aGVyZSB0aGluZ3Mgc3RhcnQgdG8gZ2V0IGEgYml0IGNvbXBsaWNhdGVkOiBpZiB0d28gZGlmZmVyZW50IG1hY2hpbmVzIGhhdmUgdHdvIGRpZmZlcmVudCBpZGVhcyBvZiB3aGF0IHRpbWUgaXQgaXMsIGhvdyBjYW4gd2UgYmUgc3VyZSB0aGF0IHRoZXkgYXJlIHRoZcKgc2FtZT88L3A+PGJsb2NrcXVvdGU+VW5mb3J0dW5hdGVseSBmb3IgdXMsIGNvbXB1dGVyIGNsb2NrcyBhcmUgbm90IGNvbnNpc3RlbnQuPC9ibG9ja3F1b3RlPjxwPldlIGFscmVhZHkga25vdyB0aGF0IGV2ZXJ5IGNsb2NrIGhhcyBhIGRpZmZlcmVudCBpZGVhIG9mIDxlbT53aGVuPC9lbT4gaXQgc3RhcnRlZCBjb3VudGluZyBhbmQgaXRzIOKAnHplcm/igJ0sIGFuZCB0aGF0IG9uZSBjbG9jayBjb3VsZCBiZSBpbmNvbnNpc3RlbnQgd2l0aCBhbm90aGVyLiBIb3dldmVyLCBpdOKAmXMgYWxzbyB3b3J0aCBtZW50aW9uaW5nIHRoYXQgbm90IGFsbCBjbG9ja3MgYXJlIHByZWNpc2UsIGFuZCBzb21lIGFyZSBtb3JlIHByZWNpc2UgdGhhbiBvdGhlcnMuIE92ZXIgdGltZSwgdGhlIHByZWNpc2VuZXNzIG9mIGVhY2gg4oCcdGlja+KAnSBvZiBhIGNsb2NrIHJlYWxseSBzdGFydHMgdG8gaGF2ZSBhbiBpbXBhY3Qgb24gaG93IHRoYXQgY2xvY2sgZGV0ZXJtaW5lcyBpdHPCoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqQXI5R3dfZlRlTGlIZ3hIM2xQa19VUS5qcGVnIiAvPjxmaWdjYXB0aW9uPkV2ZXJ5IHN5c3RlbSBjbG9jayBjb3VudHMgZGlmZmVyZW50bHkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBhIHR5cGljYWwgcXVhcnR6IGNsb2NrIHdpbGwgZHJpZnQgcXVhcnR6IGNsb2NrcyB3aWxsIGxvc2Ugb3IgZ2FpbiBhcHByb3hpbWF0ZWx5IG9uZSBzZWNvbmQgb3ZlciB0aGUgY291cnNlIG9mIDExIG9yIDEyIGRheXMuIFRoaXMgaXMgZHVlIHRvIGEgdGlueSBpbXByZWNpc2lvbiB0aGF0IG9jY3VycyBhcyB0aGUgY2xvY2sgbWVhc3VyZXMgYSBzaW5nbGUgc2Vjb25kIGFzIGl0IHRpY2tzLiBBIHNpbmdsZSBzZWNvbmQgbWF5IG5vdCBzZWVtIGxpa2UgbXVjaCwgYnV0IG92ZXIgdGltZSwgc2xpZ2h0IGltcHJlY2lzaW9ucyByZWFsbHkgc3RhcnQgdG8gYWRkIHVwISBUaGUgcHJlY2lzZW5lc3Mgb2YgYSBjbG9jayBjb3VsZCBiZSBhZmZlY3RlZCBieSB0ZW1wZXJhdHVyZSwgbG9jYXRpb24sIHRoZSBjbG9ja+KAmXMgc291cmNlIG9mIHBvd2VyLCBhbmQgZXZlbiBqdXN0IGhvdyB3ZWxsIGl0IHdhcyBjb25zdHJ1Y3RlZC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2NGFydWhZYmtjWDlwZ1p6cHJleTVnLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2sgZHJpZnQgYW5kIGNsb2NrwqBza2V3PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgcGhlbm9tZW5vbiBvZiBsaW1pdGVkIGNsb2NrIHByZWNpc2lvbiBjYXVzaW5nIHR3byBjbG9ja3MgdG8gdG8gY291bnQgdGltZSBkaWZmZXJlbnRseSBpcyBrbm93biBhcyA8c3Ryb25nPjxlbT5jbG9jayBkcmlmdDwvZW0+PC9zdHJvbmc+LiBVbmZvcnR1bmF0ZWx5LCBpdCBpcyBqdXN0IGEgcmVhbGl0eSBvZiBhbnkgbWFjaGluZSB0aGF0IG5lZWRzIHRvIGtlZXAgdHJhY2sgb2YgdGhlIHRpbWUgb24gaXRzIG93bi4gQmVjYXVzZSBjbG9jayBkcmlmdCBpcyBzbyBjb21tb24sIHdlIG9mdGVuIGFsc28gZmluZCBvdXJzZWx2ZXMgY29tcGFyaW5nIHR3byBjbG9ja3MgdGhhdCBkaXNwbGF5IHR3byBkaWZmZXJlbnQgdGltZXMuIFRoaXMgaXMga25vd24gYXMgPHN0cm9uZz48ZW0+Y2xvY2sgc2tldzwvZW0+PC9zdHJvbmc+LCBhbmQgaXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gdGltZSBiZXR3ZWVuIHR3b8KgY2xvY2tzLjwvcD48YmxvY2txdW90ZT5JbiBhIHBlcmZlY3Qgd29ybGQgd2hlcmUgdHdvIGNsb2NrcyBhZ3JlZWQgb24gdGhlIHRpbWUsIHdlIHdvdWxkbuKAmXQgZXZlciBydW4gaW50byBlaXRoZXIgb2YgdGhlc2UgY29uY2VwdHMhIEluIHN1Y2ggYSB1dG9waWEsIGJvdGggY2xvY2sgZHJpZnQgYW5kIHNrZXcgd291bGQgYmXCoHplcm8uPC9ibG9ja3F1b3RlPjxwPkFsYXMsIHdlIGRvIG5vdCBsaXZlIGluIHN1Y2ggYSB3b3JsZCwgYW5kIHNvIHdlIG11c3QgdGhpbmsgb2YgYm90aCBvZiB0aGVzZSB0aGluZ3Mgd2hlbiBjb21wYXJpbmcgdHdvIGRpZmZlcmVudCBtYWNoaW5lcyBhbmQgdGhlaXIgdGltZXMuIEluc3RlYWQsIHdlIGxpdmUgaW4gYSB3b3JsZCB3aGVyZSB0aGluZ3MgYXJlIG1lc3N5IGFuZOKApmRpc3RyaWJ1dGVkLjwvcD48aDM+Tm8gb25lIGNsb2NrIHRvIHJ1bGUgdGhlbcKgYWxsPC9oMz48cD5XZeKAmXZlIHRhbGtlZCBhIGxvdCBhYm91dCBjbG9ja3MgYW5kIGhvdyB0aGV5IHdvcmsgYW5kIGhvdyB0aGV5IGRpc2FncmVlLCBidXQgd2hhdCBkb2VzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGV4YWN0bHk/IEFzIGl0IHR1cm5zIG91dCwgYWxsIG9mIHRoaXMgY2xvY2sgdGFsayBpcyBsZWFkaW5nIGlzIHRvIG9uZSBvZiB0aGUgY29yZSwgZm91bmRhdGlvbmFsIHByaW5jaXBsZXMgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcyB0aGF0LCBzb21laG93ICghKSwgd2UgaGF2ZW7igJl0IGNvdmVyZWQgaXQuIE5vdywgaXTigJlzIGZpbmFsbHkgdGltZSB0byB0YWxrIGFib3V0wqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo2MGtEcXZWRXFTZHY3Y3I0dm9WT21BLmpwZWciIC8+PGZpZ2NhcHRpb24+Q2xvY2tzIGFuZCBkaXN0cmlidXRlZCBzeXN0ZW1zPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIHdlIGFscmVhZHkga25vdywgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFsbCB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIGFyZSBjYWxsZWQgbm9kZXMsIGFuZCB0aGV5IGFyZSBlYWNoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+YXV0b25vbW91czwvYT4sIGNhcGFibGUgb2YgcGVyZm9ybWluZyB0aGVpciBvd24gd29yay4gV2UgYWxzbyBsZWFybmVkIHRoYXQgZWFjaCBub2RlIGhhcyBpdHMgb3duIG5vdGlvbiBvZiB0aW1lLCBhbmQga2VlcHMgdHJhY2sgb2YgaXRzIG93biB0aW1lIGludGVybmFsbHkuIFdoZW4gd2UgY29tYmluZSB0aGVzZSB0d28gZmFjdHMgdG9nZXRoZXIsIHdlIGFycml2ZSBhdCBvbmUgc2luZ3VsYXIgY29uY2x1c2lvbjo8L3A+PGJsb2NrcXVvdGU+VGhlcmUgaXMgbm8gb25lLCB0cnVlIGdsb2JhbCBjbG9jayBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2Jsb2NrcXVvdGU+PHA+RXZlcnkgbm9kZSBpbiB0aGUgc3lzdGVtIGhhcyBpdHMgb3duIGNvbmNlcHQgb2YgdGltZSwgYW5kIHRoZXJlIGlzIG5vIGNlbnRyYWxpemVkIHBsYWNlIGZvciB0aGUgbm9kZXMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gdG8gZmlndXJlIG91dCB3aGF0IHRpbWUgaXQgYWN0dWFsbHkgaXMuIEFuZCBwZXJoYXBzIHRoaXMgd291bGRu4oCZdCBtYXR0ZXIgaWYgd2UgZGlkbuKAmXQgY2FyZSBhYm91dCB0aW1lIHNvIG11Y2ghIFdlIHVzZSB0aW1lIHNvIGZyZXF1ZW50bHkgaW4gY29tcHV0aW5nLCBwYXJ0aWN1bGFybHkgaW4gb3JkZXIgdG8gZmlndXJlIG91dCB3aGVuIGFuIGV2ZW50IG9jY3VycmVkLCBhbmQgd2hpY2ggZXZlbnQgaGFwcGVuZWQgYmVmb3JlwqBhbm90aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjlwcjdhRldxT3owV0EwMlJmbFlrb0EuanBlZyIgLz48ZmlnY2FwdGlvbj5Ib3cgZG9lcyBoYXZpbmcgbm8gZ2xvYmFsIGNsb2NrIGltcGFjdCB0aGUgd2F5IGEgc3lzdGVtwqB3b3Jrcz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28gd2hhdCBoYXBwZW5zIHdoZW4gd2UgZG9u4oCZdCBoYXZlIGEgZ2xvYmFsIGNsb2NrIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCBmb3Igc3RhcnRlcnMsIHdlIGNhbuKAmXQgYWN0dWFsbHkga25vdyB0aGUgPGVtPnJlYWw8L2VtPiB0aW1lIHRoYXQgYW55IHR3byBldmVucyBvY2N1cnJlZCwgb3IgdGhlIG9yZGVyIHRoYXQgdGhleSBvY2N1cnJlZCBpbi4gVGhpcyBtYWtlcyBpcyB2ZXJ5IGhhcmQgdG8gZmlndXJlIG91dCBob3cgdHdvIGV2ZW50cyBtaWdodCBiZSBzY2hlZHVsZWQgaW4gdGhlIGZ1dHVyZS4gSXQgYWxzbyBtYWtlcyBhIGRpc3RyaWJ1dGVkIHN5c3RlbSA8ZW0+cmVhbGx5PC9lbT4gZGlmZmljdWx0IHRvIGRlYnVnLCBzaW5jZSB3ZSBkb27igJl0IGtub3cgZm9yIHN1cmUgd2hldGhlciBvbmUgZXZlbnQgb2NjdXJyZWQgYmVmb3JlIHRoZcKgb3RoZXIhPC9wPjxwPldl4oCZbGwgYmUgdGFsa2luZyBtb3JlIGFib3V0IHRpbWUgYW5kIHRoZSBvcmRlcmluZyBvZiBldmVudHMgaW4gdXBjb21pbmcgcG9zdHMsIGFuZCBob3BlZnVsbHkgd2XigJlsbCBmaW5kIHNvbWUgdHJpZWQgYW5kIHRydWUgc29sdXRpb25zIGZvciB0aGlzIHByb2JsZW0uIFVudGlsIHRoZW4sIHRyeSBub3QgdG8gbG9vayBhdCB5b3VyIHdhdGNoIG9yIHRoaW5rIHRvbyBtdWNoIGFib3V0IHdoYXQgdGltZSBpdMKgaXMuPC9wPjxoMz5SZXNvdXJjZXM8L2gzPjxwPkNsb2NrcyBhbmQgdGltZSBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGNhbiBiZSBvbmUgb2YgdGhlIG1vc3QgdW5pbnR1aXRpdmUgY29uY2VwdHMgdG8gd3JhcCB5b3VyIGhlYWQgYXJvdW5k4oCK4oCU4oCKZXNwZWNpYWxseSBpZiB5b3XigJlyZSBuZXcgdG8gZGlzdHJpYnV0ZWQgc3lzdGVtcyEgVGhhbmtmdWxseSwgdGhlcmUgaXMgYSB0b24gb2YgY291cnNlIG1hdGVyaWFsIG91dCB0aGVyZSB0aGF0IGNvdmVycyB0aGVzZSB0b3BpY3MgaW4gZ3JlYXQgZGV0YWlsLiBCZWxvdyBhcmUgc29tZSBvZiBteSBmYXZvcml0ZXMsIHdoaWNoIEkgcmVsaWVkIHVwb24gbXlzZWxmIHdoZW4gSSB3YXMgbGVhcm5pbmcgYWJvdXQgY2xvY2tzIGFuZMKgdGltZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm50cC5vcmcvbnRwZmFxL05UUC1zLXN3LWNsb2Nrcy5odG0iPkhvdyBkbyBDb21wdXRlciBDbG9ja3Mgd29yaz88L2E+LCBOZXR3b3JrIFRpbWUgRm91bmRhdGlvbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9wZW9wbGUuY3MuYWF1LmRrL35ibmllbHNlbi9EUy1FMDgvbWF0ZXJpYWwvY2xvY2sucGRmIj5UaW1lIGluIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBCcmlhbsKgTmllbHNlbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuY3MuYmhhbS5hYy51ay9+YnhiL2NvdXJzZXMvMDJfMDNfRFMvTGVjdHVyZTEwX0hhbmRvdXRzLnBkZiI+Q2xvY2tzIGFuZCBUaW08L2E+ZSwgQmVoemFkwqBCb3JkYmFyPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5jcy5jbXUuZWR1L35zcmluaS8xNS00NDYvUzA5L2xlY3R1cmVzLzA4LXBoeV90aW1lLnBkZiI+U3luY2hyb25pemluZyBQaHlzaWNhbCBDbG9ja3M8L2E+LCBTcmluaXZhc2FuIFNlc2hhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9pbmZvbGFiLnN0YW5mb3JkLmVkdS9+YnVyYmFjay9kYWRsL25vZGU4Ny5odG1sIj5EaXN0cmlidXRlZCBTeXN0ZW0gRm91bmRhdGlvbnM8L2E+LCBSb25hbGQgTGVSb2nCoEJ1cmJhY2s8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPWVmMmFhNGRmMDdhMyIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdGlja2luZy1jbG9ja3MtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tZWYyYWE0ZGYwN2EzIj5UaWNraW5nIENsb2NrcyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUGFyc2luZyBUaHJvdWdoIFBhcnRpdGlvbnMgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW1dXT48L3RpdGxlPgogICAgICAgICAgICA8bGluaz5odHRwczovL21lZGl1bS5jb20vYmFzZWRzL3BhcnNpbmctdGhyb3VnaC1wYXJ0aXRpb25zLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTNjMTcyM2ZlY2M0ZT9zb3VyY2U9cnNzLThmNTU5OTNjOTczZS0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvM2MxNzIzZmVjYzRlPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8ZGM6Y3JlYXRvcj48IVtDREFUQVtWYWlkZWhpIEpvc2hpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5GcmksIDMwIEF1ZyAyMDE5IDIzOjM4OjQ3IEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA4LTMwVDIzOjM4OjQ3LjQ0N1o8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKjA4ekRsdzM3WXBGaEh1SC1uRWhPQkEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJzaW5nIHRocm91Z2ggcGFydGl0aW9ucyBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSE8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hlbiBpdCBjb21lcyB0byB0ZWNoIGphcmdvbiwgb25lIHRoaW5nIHNlZW1zIHRvIGFsd2F5cyBob2xkIHRydWU6IGV2ZXJ5b25lIGhhcyBhIGRpZmZlcmVudCBvcGluaW9uIGFib3V0IHdoYXQgY2VydGFpbiB3b3JkcyBtZWFuLiBJIHJlYWxpemUgdGhpcyBmYWN0IGV2ZXJ5IG9uY2UgaW4gYXdoaWxlOyBtb3N0IHJlY2VudGx5LCBJIGNhbWUgYWNyb3NzIGl0IHdoaWxlIHRyeWluZyB0byBsZWFybiBhIG5ldyBkaXN0cmlidXRlZCBzeXN0ZW1zwqBjb25jZXB0LjwvcD48cD5UaGUgdGVybSDigJxwYXJ0aXRpb27igJ0gaXMgdXNlZCBhIGxvdCBpbiBkaXN0cmlidXRlZCBzeXN0ZW0gY291cnNlcyBhbmQgYm9va3MsIGJ1dCB0aGVyZSBhcmUgYWxzbyBhIHNsZXcgb2Ygb3RoZXIgdGVybXMgdGhhdCBnZXQgbHVtcGVkIGludG8gdGhpcyBjYXRlZ29yeSBhcyB3ZWxsLiBVbnRpbCByZWNlbnRseSwgSSB0aG91Z2h0IEkga25ldyB3aGF0IHRoZSB0ZXJtIG1lYW50IGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgYXMgaXQgdHVybnMgb3V0LCB0aGVyZSB3YXMgbW9yZSB0byB0aGUgc3RvcnnigIrigJTigIphbmQgdGhlIHdvcmTigIrigJTigIp0aGFuIEkgZXZlciByZWFsaXplZCEgQXMgSSBkaWQgbW9yZSByZXNlYXJjaCwgSSByZWFsaXplZCB0aGF0IHRoZSB0ZXJtIGlzIHVzZWQgdG8gdGFsayBhYm91dCB0d28gdmVyeSBkaWZmZXJlbnQgY29uY2VwdHMsIGJvdGggb2Ygd2hpY2ggZW5kIHVwIGJlaW5nIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyBob3cgdG8gZGVhbCB3aXRoIGFuZCBhcmNoaXRlY3QgYSBkaXN0cmlidXRlZCBzeXN0ZW0uPC9wPjxwPkFzIFJpY2hhcmQgRmV5bm1hbiA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWdhXzdqNzJDVmxjIj5vbmNlIHdpc2VseSBzYWlkPC9hPiwg4oCcbmFtZXMgZG9u4oCZdCBjb25zdGl0dXRlIGtub3dsZWRnZeKAnS4gSnVzdCBiZWNhdXNlIHBlb3BsZSBpbiB0aGUgaW5kdXN0cnkgdGhyb3cgYXJvdW5kIGEgdGVybSBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXkgYWxsIG5lY2Vzc2FyaWx5IGtub3cgd2hhdCBpdCBtZWFucywgb3IgaG93IGl0IGNhbiBjaGFuY2UgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0ISBTbyBsZXTigJlzIHRyeSBhbmQgY2xlYXIgdXAgc29tZSBvZiB0aGlzIGNvbmZ1c2lvbiBhbmQgZ2FpbiBzb21lIHJlYWwga25vd2xlZGdlIG9uIHRoaXPCoHRvcGljLjwvcD48aDM+UGFyc2luZyB0aGUgbWVhbmluZyBvZiBwYXJ0aXRpb25pbmc8L2gzPjxwPkJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAgaW50byBwYXJ0aXRpb25pbmcgd2l0aGluIGE8ZW0+IHN5c3RlbTwvZW0+LCBsZXTigJlzIGZpcnN0IG1ha2Ugc3VyZSB3ZeKAmXJlIG9uIHRoZSBzYW1lIHBhZ2UgYWJvdXQgd2hhdCB0aGUgd29yZCBldmVuIG1lYW5zISBXaGVuIHdlIHRhbGsgYWJvdXQgPHN0cm9uZz48ZW0+cGFydGl0aW9uaW5nPC9lbT48L3N0cm9uZz4gc29tZXRoaW5nLCB3ZSBhcmUgZGl2aWRpbmcgaXQgdXAsIGJyZWFraW5nIGl0IHVwIGludG8gcGFydHMgYW5kIHNlcGFyYXRpbmcgaXQuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqM3R6YUdnQkY1QjRPdVllVXNRWEwzQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZG9lcyBpdCBtZWFuIHRvIHBhcnRpdGlvbiBzb21ldGhpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkF0IGl0cyBjb3JlLCB0aGF04oCZcyBhbGwgdGhhdCBwYXJ0aXRpb25pbmcgcmVhbGx5IGlzOiB0YWtpbmcgdGhlIHdob2xlIG9mIHNvbWV0aGluZyBhbmQgdHVybmluZyBpdCBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIGl0c2VsZi4gU28gZmFyLCBub3QgdG9vIGNvbXBsaWNhdGVkLCByaWdodD8gQnV0IHdoYXQgZG9lcyB0aGlzIHNhbWUgdGVybSBtZWFuIGluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPyBXZWxsLCB3ZSBjYW4gaW5mZXIgdGhhdCB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QsIGluIHNvbWUgd2F5LCBiZSB0aGUg4oCcd2hvbGXigJ0gdGhpbmcgdGhhdCB3ZSBhcmUgc2VwYXJhdGluZywgZGl2aWRpbmcgdXAsIGFuZCBicmVha2luZyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mwqBpdHNlbGYuPC9wPjxwPkJ1dCB0aGlzIHNpbXBsZSBhY3QgY2FuIGFjdHVhbGx5IHRha2UgdHdvIGRpZmZlcmVudCBmb3JtcywgZGVwZW5kaW5nIG9uIHRoZSBraW5kIG9mIHBhcnRpdGlvbiB3ZSBhcmUgY3JlYXRpbmcuIEFzIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbWFueS1ub2Rlcy1vbmUtZGlzdHJpYnV0ZWQtc3lzdGVtLTk5MjFmODUyMDVjNCI+d2UgYWxyZWFkeSBrbm93PC9hPiwgYSBkaXN0cmlidXRlZCBzeXN0ZW0gaXMgbWFkZSB1cCBvZiBub2Rlczsgc28sIGlmIHdlIGFyZSBkaXZpZGluZyB1cCB0aGUgc3lzdGVtIGludG8gcGFydHMsIHBlcmhhcHMgd2UgYXJlIGRpdmlkaW5nIHVwIHRoZSBub2Rlcz8gQnV0IHRoZXJl4oCZcyBhbm90aGVyIGludGVycHJldGF0aW9uIG9mIOKAnHBhcnRpdGlvbuKAnSBoZXJlLCB0b28uIFJhdGhlciB0aGFuIGRpdmlkaW5nIHVwIHRoZSBub2RlcywgcGVyaGFwcyB3ZSBhcmUgZGl2aWRpbmcgdGhlIHN5c3RlbSBpbnRvIHNtYWxsZXIgZ3JvdXBzIG9mIG5vZGVzIHN1Y2ggdGhhdCB3ZSBhcmUgYnJlYWtpbmcgdXAgb25lIGxhcmdlIHN5c3RlbSBpbnRvIHNtYWxsZXIgc3Vic3lzdGVtcy4gSWYgd2UgdGhpbmsgYWJvdXQgaXQsIGJvdGggb2YgdGhlc2UgYXBwcm9hY2hlcyBhcmUgdHdvIHZhbGlkIGZvcm1zIG9mIHBhcnRpdGlvbmluZy48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo4SDdLX2RmTVM5MEtTa2lzQXNmYmFBLmpwZWciIC8+PGZpZ2NhcHRpb24+SW4gdGhlIGNvbnRleHQgb2YgZGlzdHJpYnV0ZWQgc3lzdGVtcywg4oCccGFydGl0aW9uaW5n4oCdIGNhbiBtZWFuIGRpZmZlcmVudCB0aGluZ3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFzIGl0IHR1cm5zIG91dCwgdGhpcyBpcyB3aGVyZSB0aGluZ3MgY2FuIGdldCBjb25mdXNpbmcuIFdoZW4gZGVhbGluZyB3aXRoIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCDigJxwYXJ0aXRpb25pbmfigJ0gY2FuIG1lYW4gZGlmZmVyZW50IHRoaW5ncy4gRmlyc3QsIGl0IGNvdWxkIGltcGx5IHRoZSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgb2YgZGF0YTwvZW0+PC9zdHJvbmc+IGluIHRoZSBzeXN0ZW0sIG9yIGRpdmlkaW5nIHVwIHRoZSBub2RlcyBpbnRvIHNtYWxsZXIgcGllY2VzIG9mIHRoZW1zZWx2ZXMuIEJ1dCwgaXQgY291bGQgYWxzbyBtZWFuIHBhcnRpdGlvbmluZyB0aGUgc3lzdGVtIGl0c2VsZiBieSA8c3Ryb25nPjxlbT5wYXJ0aXRpb25pbmcgdGhlIG5ldHdvcmsgPC9lbT48L3N0cm9uZz50aGF0IHRoZSBzeXN0ZW0gY29tbXVuaWNhdGVzIHRocm91Z2guIFRoaXMgd291bGQgbWVhbiBicmVha2luZyB1cCB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIHRoZSBzeXN0ZW0gdGFsayB0byBlYWNoIG90aGVyIGFuZCBzZXBhcmF0aW5nIHRoZW0gaW50byBzbWFsbGVyIHN1YnN5c3RlbXMgb3Igc3VibmV0d29ya3MuPC9wPjxwPlRoZSBpbnRlcmVzdGluZyB0aGluZyBhYm91dCB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGluIGEgc3lzdGVtIGlzIHRoYXQgb25lIGlzIGludGVudGlvbmFsLCB3aGlsZSB0aGUgb3RoZXIgaXMgbW9yZSBvZiBhIHNpZGUgZWZmZWN0IHRoYXQgd2UgbmVlZCB0byBkZWFsIHdpdGguIEJ1dCBtb3JlIG9uIHRoYXQgc29vbi4gSXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBiZWNhdXNlIHRoZSBzYW1lIHRlcm0gY2FuIHNvbWV0aW1lcyBiZSB1c2VkIHRvIHJlZmVyIHRvIGVpdGhlciEgU28gbGV04oCZcyBkaWcgaW50byB0aGVzZSB0d28gZm9ybXMgb2YgcGFydGl0aW9uaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSByZWFzb25zIGJlaGluZCB3aHkgZWFjaMKgaGFwcGVuLjwvcD48aDM+U2VwYXJhdGluZyBkYXRhPC9oMz48cD5UaGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgdGhlIG5vZGVzIGluIGEgc3lzdGVtIG1pZ2h0IHNlZW0gb2RkIGF0IGZpcnN0LCBidXQgd2XigJl2ZSB3ZeKAmXZlIGFjdHVhbGx5IHNlZW4gc29tZXRoaW5nIHNvcnQgb2YgYWRqYWNlbnQgdG8gdGhpcyBiZWZvcmUuIFJlbWVtYmVyIHdoZW4gd2UgbGVhcm5lZCBhYm91dCByZWR1bmRhbmN5IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlZHVuZGFuY3ktYW5kLXJlcGxpY2F0aW9uLWR1cGxpY2F0aW5nLWluLWEtZGlzdHJpYnV0ZWQtc3lzdGVtLTdhYjQzMjJkNzM3OCI+dGhlIHJlcGxpY2F0aW9uIG9mIG5vZGVzPC9hPj8gVGhhdCBjb25jZXB0IGFsc28gbWlnaHQgaGF2ZSBzZWVtZWQgd2VpcmQgaW5pdGlhbGx54oCK4oCU4oCKd2h5IHdvdWxkIGFueW9uZSA8ZW0+d2FudDwvZW0+IHRvIHJlcGVhdCB0aGVtc2VsdmVzPyHigIrigJTigIpidXQgYXMgd2Ugc3RhcnRlZCB0byB1bnBhY2sgaXQgZnVydGhlciwgd2Ugc2F3IHRoYXQgdGhlcmUgd2VyZSBzb21lIGNsZWFyIGJlbmVmaXRzIHRvwqBpdC48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjb01DWVlhNzZvYUxzMW9wVktIeG9BLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVjYXBwaW5nIHRoZSBwcm9zIGFuZCBjb25zIG9mIHJlcGxpY2F0aW9uLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZSBoYXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5hbHJlYWR5IGxlYXJuZWQ8L2E+LCB3aGVuIHdlIG5lZWQgdG8gbWFrZSBzb21lIG9mIG91ciBub2RlcyBtb3JlIHJlbGlhYmxlIG9yIHdoZW4gd2UgbmVlZCB0byBzY2FsZSBzb21lIHBhcnQgb2Ygb3VyIHN5c3RlbSAobGlrZSBhIGRhdGFiYXNlKSwgd2UgY2FuIHJlcGxpY2F0ZSBvdXIgbm9kZXMgdG8gY3JlYXRlIG1vcmUgY29waWVzIG9mIHRoZSBzYW1lIGRhdGEgdGhhdCBhcmUgaW4gc3luYyB3aXRoIHRoZSBvcmlnaW5hbCBub2RlLiBUaGF0IHdheSwgaWYgb25lIHJlcGxpY2EgZmFpbHMsIGFub3RoZXIgd29ya2luZyByZXBsaWNhIGNhbiBoYW5kbGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIHNvbWUgZGF0YS4gT3ZlcmFsbCwgcmVwbGljYXRpb24gYWxsb3dzIGZvciBhIHN5c3RlbSB0aGF0IGlzIG1vcmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTItMmIyMWM1MDQ3Nzc0Ij50cmFuc3BhcmVudDwvYT4sIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+cmVsaWFibGU8L2E+LCBhbmQgbXVjaCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5lYXNpZXIgdG/CoHNjYWxlPC9hPi48L3A+PHA+VGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyB3aXRoIHJlcGxpY2F0aW9uLCBob3dldmVyLiBXZSBhbHJlYWR5IGtub3cgdGhhdCBrZWVwaW5nIHJlcGxpY2FzIGNvbnNpc3RlbnQgaXMgYSBtYWpvciBjaGFsbGVuZ2UuIEJ1dCB3aGF0IGhhcHBlbnMgaWYgb3VyIHJlcGxpY2FzIHN1ZGRlbmx5IG5lZWQgdG8gZGVhbCB3aXRoIGEgaGlnaCBsb2FkIG9mIGluY29taW5nIHJlcXVlc3RzPyBJdCBpcyBwb3NzaWJsZSB0aGF0IGEgZmV3IHJlcGxpY2FzIGNvdWxkIGZhaWwsIGFuZCBhbnkgdXNlciB0aGF0IGlzIGRlcGVuZGluZyBvbiB0aGUgcmVwbGljYSB3b3VsZCBwb3RlbnRpYWxseSBub3QgYmUgYWJsZSB0byBhY2Nlc3MgPGVtPmFueTwvZW0+IG9mIHRoZSBkYXRhIGF0IHRoYXQgcmVwbGljYSAoYXQgbGVhc3QgdW50aWwgYW5vdGhlciByZXBsaWNhIHdhcyBhYmxlIHRvIGNvbWUgYW5kIHRha2UgaXRzwqBwbGFjZSkuPC9wPjxwPlRoaXMgcHJlc2VudHMgYSBuZXcgY2hhbGxlbmdlIHdpdGggcmVwbGljYXRpb246IHdoaWxlIG1vc3Qgb2YgdXNlcnMgY2FuIGFjY2VzcyBhbGwgb2Ygb3VyIGRhdGEgdGhyb3VnaCB3b3JraW5nIHJlcGxpY2FzLCBmb3IgYSA8ZW0+cG9ydGlvbjwvZW0+IG9mIHVzZXJzLCBhbGwgb2Ygb3VyIGRhdGEgY291bGQgYmUgPGVtPmNvbXBsZXRlbHkgdW5hdmFpbGFibGU8L2VtPiBpZiB0aGUgcmVwbGljYSB0aGF0IHRob3NlIHVzZXJzIGFyZSBhY2Nlc3NpbmcgPGVtPmhhcHBlbnM8L2VtPiB0b8KgZmFpbC48L3A+PHA+QnV0IHdoYXQgaWYgd2UgaGFkIGEgPGVtPnZlcnk8L2VtPiBsYXJnZSBkYXRhIHNldD8gT25lIHRoYXQgd291bGQgbWFrZSB1cyB0aGluayB0d2ljZSBiZWZvcmUgcmVwbGljYXRpbmcgaXQ/IFRoaXMgaXMgd2hlcmUgd2UgbWlnaHQgd2FudCB0byBlbXBsb3kgYSBkaWZmZXJlbnQgc3RyYXRlZ3nigKZsaWtlIHBhcnRpdGlvbmluZyBvdXLCoGRhdGEhPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqWEdyOXJQeW1EVjN0VG9rSmhaaEhmdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoZXJlIHJlcGxpY2F0aW9uIGRvZXNu4oCZdCBmaXQgdGhlIGJpbGwsIHBhcnRpdGlvbnMgY2FuIHNhdmUgdGhlwqBkYXkhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkluIHNvbWUgc2l0dWF0aW9ucyB3aGVyZSBhIGRhdGFzZXQgaXMgc28gbGFyZ2UgdGhhdCBpdCBjYW5ub3QgYWxsIGZpdCBvbiBhIHNpbmdsZSBub2RlLCB3ZSBjYW4gb3B0IHRvIHBhcnRpdGlvbiBvdXLCoGRhdGEuPC9wPjxibG9ja3F1b3RlPlBhcnRpdGlvbmluZyBkYXRhIGFjcm9zcyBub2RlcyBtZWFucyB0aGF0IG91ciBkYXRhIGlzIGRpc3RyaWJ1dGVkIGFjcm9zcyBvdXIgbm9kZXM7IG5vIHNpbmdsZSBub2RlIGNhbiBjb250YWluIGFsbCBvZiBvdXIgZGF0YS4gQ29udmVyc2VseSwgaWYgd2Ugd2FudGVkIHRvIHJldHJpZXZlIGFsbCBvZiB0aGUgZGF0YSwgd2XigJlkIG5lZWQgdG8gZ28gdG8gZXZlcnkgc2luZ2xlIG5vZGUgdG8gZ2V0wqBpdC48L2Jsb2NrcXVvdGU+PHA+RGVwZW5kaW5nIG9uIHdoYXQgYSBkYXRhc2V0IGxvb2tzIGxpa2UgYW5kIHdoYXQgcGllY2VzIG9mIGRhdGEgYXJlIHJlbGF0ZWQgdG8gb25lIGFub3RoZXIsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGx1bXAgY2VydGFpbiB0eXBlcyBvZiBkYXRhIHRvZ2V0aGVyIG9udG8gYSBzaW5nbGUgbm9kZS4gRm9yIGV4YW1wbGUsIGluIGEgc3lzdGVtIHRoYXQgc2hvd3MgcG9zdHMgYW5kIHRoZSByZWxhdGVkIGNvbW1lbnRzIG9uIGEgcGFnZSwgaXQgbWlnaHQgbWFrZSBsb2dpY2FsIHNlbnNlIHRvIGFsd2F5cyBwdXQgdGhlIGRhdGEgZm9yIGEgcG9zdCBhbmQgYWxsIG9mIGl0cyBjb21tZW50cyB0b2dldGhlciBvbiB0aGUgc2FtZSBub2RlLCBzbyB0aGF0IG91ciB1c2VycyB3b3VsZG7igJl0IG5lZWQgdG8gbWFrZSA8ZW0+dHdvPC9lbT4gcmVxdWVzdHMgdG8gZmV0Y2ggPGVtPnR3bzwvZW0+IGtpbmRzIG9mIGRhdGEgaW4gPGVtPnR3bzwvZW0+IGRpZmZlcmVudCBub2Rlcy48L3A+PHA+VGhlcmUgYXJlIGxvdHMgb2Ygc3RyYXRlZ2llcyBmb3IgZGV0ZXJtaW5pbmcgd2hhdCBkYXRhIHNob3VsZCBsaXZlIG9uIHdoaWNoIG5vZGUuIFR3byB0ZXJtcyB0aGF0IHdlIG1pZ2h0IGNvbWUgYWNyb3NzIHRvIGRlc2NyaWJlIHRoaXMgaWRlYSBhcmUgPHN0cm9uZz48ZW0+c2hhcmRpbmcgPC9lbT48L3N0cm9uZz5hbmQ8c3Ryb25nPjxlbT4gZnJhZ21lbnRhdGlvbjwvZW0+PC9zdHJvbmc+LiBCb3RoIHRlcm1zIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBkZXNjcmliZSB0aGUgaWRlYSBvZiBwYXJ0aXRpb25pbmcgYSBkYXRhc2V0IGFjcm9zcyBtYW55IGRpZmZlcmVudCBub2RlcyAod2Ugd29u4oCZdCBnbyBpbnRvIGRldGFpbCBhYm91dCB0aGUgYWN0dWFsIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSB0ZWNobmlxdWVzIGluIHRoaXPCoHBvc3QpLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKlpmOFQ0d1ZfNDA0cm1aRUVMMUdtNGcuanBlZyIgLz48ZmlnY2FwdGlvbj5TaGFyZGluZy9mcmFnbWVudGluZyBkYXRhIGlzIGEga2luZCBvZiBwYXJ0aXRpb25pbmchPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgd2hlbmV2ZXIgd2Ugc2VlIHRoZSB0ZXJtcyDigJxzaGFyZGluZ+KAnSBvciDigJxmcmFnbWVudGF0aW9u4oCdLCB0aGUgY29udGV4dCBpcyB1c3VhbGx5IGEgcGFydGl0aW9uZWQgZGF0YWJhc2UgKHNpbmNlIGRhdGFiYXNlcyBhcmUgZ2VuZXJhbGx5IHdoZXJlIG91ciBkYXRhc2V0cyB3aWxsIGxpdmUhKS4gT2Z0ZW50aW1lcywgZGF0YWJhc2VzIGxpdmUgb24gbXVsdGlwbGUgc2VydmVycyBhbmQgYXJlIGRpc3RyaWJ1dGVkLCB0aGVtc2VsdmVzIChwcmV0dHkgbmVhdCwgcmlnaHQ/KS4gU28sIHdoZW4gd2UgZW5jb3VudGVyIGEgc2l0dWF0aW9uIHdoZXJlIGEgZGF0YWJhc2UgaXMgZnJhZ21lbnRlZCBhbmQgc3BsaXQgaXQgaW50byBzaGFyZHMsIHdoYXQgd2UgYXJlIHJlYWxseSBkZWFsaW5nIHdpdGggaXMgb25lIGJpZyBkYXRhc2V0IHRoYXQgaGFzIGJlZW4gc3BsaXQgaW50byA8c3Ryb25nPjxlbT5zaGFyZHM8L2VtPjwvc3Ryb25nPiwgb3Igc21hbGxlciBzZXRzL2ZyYWdtZW50cywgYW5kIGhhdmUgYmVlbiBkaXN0cmlidXRlZCBhY3Jvc3PCoG5vZGVzLjwvcD48YmxvY2txdW90ZT5BIHNpbmdsZSBkYXRhYmFzZSBub2RlIGNvbnRhaW5zIGp1c3Qgb25lIHBvcnRpb24gb2YgYSBsYXJnZXIgZGF0YXNldC4gV2hlbiBtb3JlIGRhdGEgZ2V0cyBhZGRlZCBvciBpZiB0aGUgZGF0YXNldCBjaGFuZ2VzIHNpZ25pZmljYW50bHksIGl0IG1pZ2h0IG5lZWQgdG8gYmUgcmUtcGFydGl0aW9uZWQgaW50byBuZXcgc2hhcmRzIGFjcm9zcyBhbGwgdGhlwqBub2Rlcy48L2Jsb2NrcXVvdGU+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo5VkI4a18zUlI2XzhDSEZZRFpjZEZBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVwbGljYXRpb24gdmVyc3VzIHBhcnRpdGlvbmluZyBkYXRhLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBob3cgZG9lcyB0aGlzIGZpdCBpbiB3aXRoIG91ciBtZW50YWwgbW9kZWwgb2YgPGVtPnJlcGxpY2F0aW9uPC9lbT4/PC9wPjxwPldlbGwsIHRvIHN0YXJ0LCB0aGVyZSBpcyBvbmUgbWFqb3Igc2ltaWxhcml0eSB0byBub3RlIGhlcmU6IGJvdGggcGFydGl0aW9uaW5nIGFuZCByZXBsaWNhdGlvbiBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBhbmQgcmVsaWFiaWxpdHkgb2Ygb3VyIHN5c3RlbS4gVGhpcyBpcyBzaW1wbHkgZHVlIHRvIHRoZSBmYWN0IHRoYXQgaGF2aW5nIG1vcmUgbm9kZXPigIrigJTigIp3aGV0aGVyIHRoZXkgYXJlIHJlcGxpY2FzIHRoYXQgY29udGFpbiBhbGwgdGhlIHNhbWUgZGF0YSwgb3Igd2hldGhlciB0aGV5IGFyZSBwYXJ0aXRpb25zIHRoYXQgY29udGFpbnMgc29tZSBvZiB0aGUgZGF0YeKAiuKAlOKAim1lYW4gdGhhdCB0aGUgbG9hZCBvbiBhIHNpbmdsZSBub2RlIHJlZHVjZXMhIFdoZW4gd2UgYWRkIG1vcmUgcmVwbGljYXMgT1IgcGFydGl0aW9ucywgd2UgZWZmZWN0aXZlbHkgc3ByZWFkIG91dCB0aGUgaW5jb21pbmcgcmVxdWVzdHMgZm9yIGRhdGEsIHdoaWNoIGhlbHBzIG91ciBzeXN0ZW0gc2NhbGUgYW5kIG1ha2VzIGl0IG11Y2ggbW9yZSBwZXJmb3JtYW50IGFuZCBhdmFpbGFibGUgdG8gb3VyIGVuZMKgdXNlcnMuPC9wPjxwPkJ1dCB3aGF0IGFib3V0IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHR3byBzdHJhdGVnaWVzPyBSZXBsaWNhdGlvbiBndWFyYW50ZWVzIHRoYXQgb3VyIGVuZCB1c2VyIGNhbiA8ZW0+YWx3YXlzIHJlYWQ8L2VtPiBvdXIgd2hvbGUgZGF0YXNldCwgYmVjYXVzZSBhbGwgb2YgdGhlIGRhdGEgbGl2ZXMgb24gZWFjaCByZXBsaWNhLiBPbiB0aGUgb3RoZXIgaGFuZCwgcGFydGl0aW9uaW5nIGd1YXJhbnRlZXMgdGhhdCA8ZW0+c29tZTwvZW0+IG9mIHRoZSBkYXRhIHdpbGwgYmUgcmV0cmlldmFibGUsIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCBvdXIgZW5kIHVzZXIgY2FuIGFsd2F5cyByZXRyaWV2ZSB0aGUgZGF0YSB0aGV5IG5lZWQgaWYgb25lIG9mIHRoZSBwYXJ0aXRpb25zIGZhaWxzITwvcD48cD5Bbm90aGVyIGRpZmZlcmVuY2UgYmV0d2VlbiByZXBsaWNhdGlvbiBhbmQgcGFydGl0aW9uaW5nIGFyZSB0aGUgdGhpbmdzIHRoYXQgbWFrZSB0aGVtIGRpZmZpY3VsdCEgUmVwbGljYXRpb24gaXMgaGFyZCBiZWNhdXNlIGl04oCZcyB0cmlja3kgdG8gbWFpbnRhaW4gY29uc2lzdGVuY3kgYmV0d2VlbiBvdXIgcmVwbGljYXMuIFBhcnRpdGlvbmluZyBpcyBoYXJkIGZvciB0d28gcmVhc29uczogZmlyc3QsIGlmIG91ciBkYXRhc2V0IGNoYW5nZXMgYW5kIHdlIG5lZWQgdG8gc3VkZGVubHkgcmUtcGFydGl0aW9uIGl04oCmd2VsbCwgdGhpcyBpcyBubyBlYXN5IHRhc2suIERlY2lkaW5nIGhvdyB0byBkaXZpZGUgdXAgZGF0YSB0YWtlcyB0aW1lIGFuZCBlZmZvcnQsIGFuZCB3ZSBkZWZpbml0ZWx5IGRvbuKAmXQgd2FudCB0byBiZSByZS1wYXJ0aXRpb25pbmcgaXQgYWxsIHRoZSB0aW1lISBTZWNvbmQsIGRlcGVuZGluZyBvbiBob3cgaXQgaXMgaW1wbGVtZW50ZWQsIGl0IGNhbiBzb21ldGltZXMgYmUgaW5lZmZlY3RpdmUuIEZvciBleGFtcGxlLCBpZiB3ZSBzb21lIGhpZ2hseS11c2VkIGRhdGEgdGhhdCBpcyBwYXJ0aXRpb25lZCBpbnRvIDxlbT5vbmU8L2VtPiBub2RlLCB3ZSBhY3R1YWxseSBlbmQgdXAgaW4gYSA8ZW0+d29yc2U8L2VtPiBzaXR1YXRpb24gdGhhbiBiZWZvcmUgd2UgcGFydGl0aW9uZWQgdGhlIGRhdGEuIFdoeSBpc8KgdGhhdD88L3A+PHA+V2VsbCwgaW1hZ2luZSB0aGF0IGFsbCBvZiBvdXIgZW5kIHVzZXJzIHN1ZGRlbmx5IHJlcXVlc3QgdGhhdCBoaWdobHktdXNlZCBkYXRhIGF0IG9uY2UsIGFuZCB0aGUgbm9kZSBjYW7igJl0IGhhbmRsZSB0aGUgaGlnaCBsb2FkPyBPciB3aGF0IGlmIHRoYXQgb25lIGRhdGFiYXNlIG5vZGUgd2l0aCB0aGUgaGlnaGx5LXVzZWQgZGF0YSBmYWlscz8gTm93IG91ciBlbmQgdXNlcnMgY2Fu4oCZdCBhY2Nlc3MgdGhpcyBpbXBvcnRhbnQgcGFydGl0aW9uISBTbyBpdOKAmXMgdXAgdG8gdXMgdG8gY29uc2lkZXIgYWxsIG9mIHRoZXNlIHBvdGVudGlhbCBkb3duc2lkZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdHJhZGVvZmZzIG9mIHRoZXNlIHR3byBzdHJhdGVnaWVzLiBUbyBhdm9pZCBzb21lIG9mIHRoZSBoZWFydGFjaGUgdGhhdOKAmXMgYXNzb2NpYXRlZCB3aXRoIG1ha2luZyB0aGVzZSBkZWNpc2lvbnMsIG1hbnkgcHJvZHVjdGlvbi1sZXZlbCBkaXN0cmlidXRlZCBzeXN0ZW1zIHdpbGwgdXNlIHJlcGxpY2F0aW9uIHdoZW4gcG9zc2libGUsIGFuZCBvcHQgZm9yIHBhcnRpdGlvbnMgb25seSB3aGVuIG5lY2Vzc2FyeS48L3A+PGgzPkRpdmlkaW5nIGHCoG5ldHdvcms8L2gzPjxwPk5vdyB0aGF0IHdlIGtub3cgdGhlIGlucyBhbmQgb3V0cyBvZiB3aGF0IGl0IG1lYW5zIHRvIHBhcnRpdGlvbiBkYXRhLCB3ZSBoYXZlIG9uZSBsYXN0IHRoaW5nIHRvIHVucGFjazogdGhlIGlkZWEgYmVoaW5kIHBhcnRpdGlvbmluZyB0aGUgbmV0d29yay4gRG9u4oCZdCBmZWVsIHRvbyBpbnRpbWlkYXRlZCwgdGhvdWdoLCB0aGlzIGlzbuKAmXQgYSBjb21wbGV0ZWx5IG5ldyB0b3BpYyBmb3IgdXMuIEluIGZhY3QsIEnigJlsbCBsZXQgeW91IGluIG9uIGEgbGl0dGxlIHNlY3JldCwgdGhvdWdo4oCK4oCU4oCKd2XigJl2ZSBhbHJlYWR5IHNlZW4gdGhlIGVmZmVjdHMgb2YgYSBwYXJ0aXRpb25lZCBuZXR3b3JrITwvcD48cD5XZeKAmXZlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij5tYW55PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZGlmZmVyZW50PC9hPiBmYWlsdXJlIG1vZGVzIGluIHRoaXMgc2VyaWVzLCBhbmQgYXMgaXQgdHVybnMgb3V0LCA8c3Ryb25nPjxlbT5uZXR3b3JrIHBhcnRpdGlvbmluZzwvZW0+PC9zdHJvbmc+IGlzIGFjdHVhbGx5IGp1c3Qgb25lIGZvcm0gb2YgZmFpbHVyZSBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gSXQgb2NjdXJzIHdoZW4gYSBuZXR3b3JrIGlzIHNwbGl0IHVwIGludG8gZnJhZ21lbnRzLCBhbmQgc3Vic2VxdWVudGx5IGNyZWF0ZXMgc3ViLW5ldHdvcmtzIHdpdGhpbiBpdHNlbGYuIFRoZSBpbXBvcnRhbnQgYml0IHRvIGNhbGwgb3V0IGhlcmUgaXMgdGhhdCBpdCBpcyBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmF1bHQ8L2VtPjwvc3Ryb25nPiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5uZXR3b3JrIHNwbGl0PC9lbT48L3N0cm9uZz4pIHRoYXQgYnJlYWtzIHRoZSB1c3VhbCBjb21tdW5pY2F0aW9uIGJldHdlZW4gbm9kZXMgaW4gdGhlwqBuZXR3b3JrLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmZ5RmNFUVFiTzNFMklONl95S2ozY3cuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGRvZXMgaXQgbWVhbiB0byBwYXJ0aXRpb24gYcKgbmV0d29yaz88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+SG93ZXZlciwgdGhpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IDxlbT5hbGw8L2VtPiB0aGUgbm9kZXMgaW4gdGhlIG5ldHdvcmsgY2Fubm90IGNvbW11bmljYXRlOyB0aGUgb25seSBvbmVzIHRoYXQgY2Fu4oCZdCBjb21tdW5pY2F0ZSB0byBvbmUgYW5vdGhlciBhcmUgdGhlIG9uZXMgc3Vycm91bmRpbmcgdGhlIHNwbGl0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYSBuZXR3b3JrIHNwbGl0IG9jY3VycyBiZXR3ZWVuIHR3byBub2RlcywgdGhvc2UgdHdvIG5vZGVzIGNhbuKAmXQgdGFsayB0byBvbmUgYW5vdGhlciwgYnV0IHRoZXkgY2FuIGNvbnRpbnVlIHRvIHRhbGsgdG8gb3RoZXIgbm9kZXMgdGhhdCBhcmUgbm90IGltcGFjdGVkIGJ5IHRoZcKgc3BsaXQuPC9wPjxibG9ja3F1b3RlPldoZW4gdGhlIG5vZGUgY29ubmVjdGlvbiBpcyBpbnRlcnJ1cHRlZCBieSBhIG5ldHdvcmsgZmF1bHQsIGl0IGNyZWF0ZXMgc3VibmV0d29ya3MgdGhhdCBhcmUg4oCccGFydGl0aW9uc+KAnSBvZiB0aGUgbGFyZ2VyIG5ldHdvcmvigIrigJTigIphbiB1bmludGVudGlvbmFsIGRpdmlzaW9uIG9mIHRoZSBuZXR3b3JrLCBpZiB5b3XCoHdpbGwuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNFhkeGk3aDZqcmhCS1lKWFJCWkF2Zy5qcGVnIiAvPjxmaWdjYXB0aW9uPk5ldHdvcmsgZmFpbHVyZXMgY2FuIHBhcnRpdGlvbiB0aGUgbmV0d29yayBpbnRvIHNtYWxsZXIgc3VibmV0d29ya3MuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkZvciBleGFtcGxlLCBpbiB0aGUgZHJhd2luZyBzaG93biBoZXJlLCBhIDxzdHJvbmc+PGVtPm5ldHdvcmsgZmFpbHVyZTwvZW0+PC9zdHJvbmc+IGhhcyBjYXVzZWQgYSBuZXR3b3JrIHBhcnRpdGlvbiAoYWxzbyBjYWxsZWQgYSA8c3Ryb25nPjxlbT5mcmFnbWVudGF0aW9uPC9lbT48L3N0cm9uZz4pLiBUaGUgcG9pbnQgb2YgdGhlIGZyYWdtZW50YXRpb24gZm9yY2VzIG91ciBuZXR3b3JrIHRvIGJlIGRpdmlkZWQgaW50byB0d28gPHN0cm9uZz48ZW0+c3VibmV0d29ya3M8L2VtPjwvc3Ryb25nPiwgd2hpY2ggd2XigJl2ZSBuYW1lZCBBIGFuZCBCLiBUaGUgbm9kZXMgb2Ygc3VibmV0d29yayBBIGNhbiBrZWVwIHRhbGtpbmcgdG8gb25lIGFub3RoZXIsIGFuZCB0aGUgbm9kZXMgb2Ygc3VibmV0d29yayBCIGNhbiBrZWVwIHByb2Nlc3NpbmcgZGF0YSBhbmQgc2VuZGluZyBpbmZvcm1hdGlvbiBiZXR3ZWVuIHRoZW1zZWx2ZXMuIEhvd2V2ZXIsIGFueSBvZiB0aGUgbm9kZXMgYmV0d2VlbiBzdWJuZXR3b3JrcyBBIGFuZCBCIGhhdmUgYmVlbiBmcmFnbWVudGVkLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2Fu4oCZdCB0YWxrIHRvIG9uZSBhbm90aGVyISBUaGlzIG1lYW5zIHRoYXQgc3VibmV0d29yayBBIGNhbm5vdCB0YWxrIHRvIG9yIGV2ZW4ga25vdyB0aGUgPGVtPnN0YXRlPC9lbT4gb2Ygc3VibmV0d29yayBCIChhbmQgdmljZcKgdmVyc2EpLjwvcD48cD5Ob3csIGlmIHRoaXMgc2l0dWF0aW9uIHNvdW5kcyBiYWQsIHlvdeKAmXJlIHJpZ2h04oCK4oCU4oCKaXQgaXMhIFdlIGRvbuKAmXQgd2FudCBvdXIgbmV0d29yayB0byByYW5kb21seSBicmVhayBhbmQgY2F1c2UgcGFydHMgb2Ygb3VyIHN5c3RlbSB0byBiZSBpc29sYXRlZCBmcm9tIG9uZSBhbm90aGVyLiBDbGVhcmx5LCBhIHBhcnRpdGlvbmVkIG5ldHdvcmsgaXMgc29tZXRoaW5nIHRvIGF2b2lkLiBIb3dldmVyLCBkbyB5b3UgcmVtZW1iZXIgYmFjayB3aGVuIHdlIGxlYXJuZWQgYWJvdXQgdGhlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPjggRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZzwvYT4/IElmIHdlIHRoaW5rIGJhY2sgdG8gZmFsbGFjeSAjMSAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLuKAnTwvZW0+KSBhbmQgRmFsbGFjeSAjNCAoPGVtPuKAnFRoZSBuZXR3b3JrIGlzIHNlY3VyZS7igJ0pIDwvZW0+dGhlbiB3ZeKAmWxsIGNvbWUgZmFjZSB0byBmYWNlIHdpdGggdGhlIGhhcmQgdHJ1dGg6IDxzdHJvbmc+PGVtPm5ldHdvcmsgcGFydGl0aW9ucyBhcmUgdW5hdm9pZGFibGU8L2VtPjwvc3Ryb25nPi48L3A+PHA+U28gd2hhdCBjYW4gd2UgZG8/IFdlbGwsIHdlIGNhbiBkZXNpZ24gb3VyIHN5c3RlbXMgdG8gdHJ5IHRvIGhhbmRsZSB0aGVtIGdyYWNlZnVsbHkgd2hlbiB0aGV5IChpbmV2aXRhYmx5KSBoYXBwZW4hIFRoaXMgaXMgc2ltaWxhciB0byB0aGUgY29uY2x1c2lvbiB0aGF0IHdlIGNhbWUgdG8gd2hlbiB3ZSB3ZXJlIGxlYXJuaW5nIGFib3V0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdCB0b2xlcmFuY2U8L2E+LCBhbmQgaG93IHdlIGFyZSBmb3JjZWQgdG8gY29uc2lkZXIgZmF1bHRzIGFuZCB0cnkgdG8gZGVzaWduIG91ciBzeXN0ZW1zIHRvIGhhbmRsZSB0aGVtLiBTaW1pbGFybHksIHdoZW4gaXQgY29tZXMgdG8gbmV0d29yayBwYXJ0aXRpb25zLCB3ZSBuZWVkIHRvIHBsYW4gZm9yIDxzdHJvbmc+PGVtPnBhcnRpdGlvbiB0b2xlcmFuY2U8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgdGhleSB3YXkgdGhhdCB3ZSBjb25zaWRlciB0aGUgcG90ZW50aWFsIG5ldHdvcmsgZmF1bHRzIHRoYXQgbWlnaHQgcG9wIHVwLCBhcyB3ZWxsIGFzIHRoZSBmYWlsdXJlcyB0aGF0IHRoZXkgbWlnaHQgY2F1c2UhIEEgcGFydGl0aW9uIHRvbGVyYW50IHN5c3RlbSBpcyBvbmUgdGhhdCBoYXMgYXR0ZW1wdGVkIHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucywgc2luY2Ugd2XigJlsbCBhbGwgcnVuIGludG8gdGhlbSBldmVudHVhbGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldrR3hWdlRjQnQtaFp2X1ZwWjBPNVEuanBlZyIgLz48ZmlnY2FwdGlvbj5QYXJ0aXRpb24gdG9sZXJhbmNlIGlzIHRoZSBhYmlsaXR5IHRvIGFjY291bnQgZm9yIG5ldHdvcmsgcGFydGl0aW9ucy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QWx0aG91Z2ggZGF0YSBwYXJ0aXRpb25zIG1pZ2h0IGJlIGFuIGF2b2lkYWJsZSBwcm9ibGVtIHRvIHNvbHZlIHNpbmNlIHdlIG1heSBub3QgZGVjaWRlZCB0aGF0IHdlIGV2ZW4gbmVlZCB0byBwYXJ0aXRpb24gb3VyIGRhdGEsIG5ldHdvcmsgcGFydGl0aW9ucyBhcmUgc29tZXRoaW5nIHRoYXQgd2UganVzdCBjYW5ub3QgYXZvaWQuIEluIGZhY3QsIHRoZXnigJlsbCBjb21lIHVwIGFnYWluIGxhdGVyIHdoZW4gc3RhcnQgbGVhcm5pbmcgYWJvdXQgc29tZSBpbnRlcmVzdGluZ+KApnRoZW9yZW1zLiBCdXQgdGhhdOKAmXMgYSBzdG9yeSBmb3IgYW5vdGhlciBwb3N0IcKg8J+YiTwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5QYXJ0aXRpb25pbmcgYW5kIHBhcnRpdGlvbiB0b2xlcmFuY2UgY29tZXMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBsZWFybmluZyBtb3JlIGFkdmFuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbSB0b3BpY3MsIHNvIGl04oCZcyBpbXBvcnRhbnQgdG8gaGF2ZSBhIHN0cm9uZyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmdW5kYW1lbnRhbHMuIENvbnZlbmllbnRseSwgdGhlcmUgYXJlIHNvbWUgcmVhbGx5IGdyZWF0IHJlc291cmNlcyB0byBoZWxwIHdpdGggdGhpcyB0YXNrLiBJ4oCZdmUgbGlzdGVkIHNvbWUgb2YgbXkgZmF2b3JpdGVzIGJlbG93LCBzb21lIG9mIHdoaWNoIGdldCBpbnRvIGV2ZW4gbW9yZSBhZHZhbmNlZCBhc3BlY3RzIG9mIHBhcnRpdGlvbmluZzsgY2hlY2sgdGhlbSBvdXQgaWYgeW914oCZcmUgZWFnZXIgdG8gbGVhcm7CoG1vcmUhPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cDovL2RpbWFmZW5nLmNvbS8yMDE2LzEyLzA0L2Rpc3RyaWJ1dGVkLXN5c3RlbXMvIj5EaXN0cmlidXRlZCBzeXN0ZW1zIGNoZWF0IHNoZWV0PC9hPiwgRG1pdHJ5wqBGZWRvc292PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL0BQcmFuYXlrYy91bmRlcnN0YW5kaW5nLXBhcnRpdGlvbmluZy1pbi1kaXN0cmlidXRlZC1zeXN0ZW1zLTRhYzNjODAxMGZhZSI+UGFydGl0aW9uaW5nOiBUaGUgTWFnaWMgUmVjaXBlIEZvciBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUHJhbmF5IEt1bWFyIENoYXVkaGFyeTwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9ib29rLm1peHUubmV0L2Rpc3RzeXMvaW50cm8uaHRtbCI+RGlzdHJpYnV0ZWQgc3lzdGVtcyBmb3IgZnVuIGFuZCBwcm9maXQ8L2E+LCBNaWtpdG/CoFRha2FkYTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dVRKdk1SUjQwQWciPldoeSBhcmUgRGlzdHJpYnV0ZWQgU3lzdGVtcyBzbyBoYXJkPyBBIG5ldHdvcmsgcGFydGl0aW9uIHN1cnZpdmFsIGd1aWRlPC9hPiwgRGVuaXNlwqBZdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9VzFObWJjdW9tVk0iPlJlcGxpY2F0aW9uIHZzIFBhcnRpdGlvbmluZzwvYT4sIEdlb3JnaWHCoFRlY2g8L2xpPjxsaT48YSBocmVmPSJodHRwczovL2FwaHlyLmNvbS9wb3N0cy8yODEtamVwc2VuLW9uLXRoZS1wZXJpbHMtb2YtbmV0d29yay1wYXJ0aXRpb25zIj5KZXBzZW46IE9uIHRoZSBwZXJpbHMgb2YgbmV0d29yayBwYXJ0aXRpb25zPC9hPiwgS3lsZSBLaW5nc2J1cnk8L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTNjMTcyM2ZlY2M0ZSIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcGFyc2luZy10aHJvdWdoLXBhcnRpdGlvbnMtaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tM2MxNzIzZmVjYzRlIj5QYXJzaW5nIFRocm91Z2ggUGFydGl0aW9ucyBpbiBhIERpc3RyaWJ1dGVkIFN5c3RlbTwvYT4gd2FzIG9yaWdpbmFsbHkgcHVibGlzaGVkIGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMiPmJhc2VkczwvYT4gb24gTWVkaXVtLCB3aGVyZSBwZW9wbGUgYXJlIGNvbnRpbnVpbmcgdGhlIGNvbnZlcnNhdGlvbiBieSBoaWdobGlnaHRpbmcgYW5kIHJlc3BvbmRpbmcgdG8gdGhpcyBzdG9yeS48L3A+XV0+PC9jb250ZW50OmVuY29kZWQ+CiAgICAgICAgPC9pdGVtPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbUmVkdW5kYW5jeSBhbmQgUmVwbGljYXRpb246IER1cGxpY2F0aW5nIGluIGEgRGlzdHJpYnV0ZWQgU3lzdGVtXV0+PC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9yZWR1bmRhbmN5LWFuZC1yZXBsaWNhdGlvbi1kdXBsaWNhdGluZy1pbi1hLWRpc3RyaWJ1dGVkLXN5c3RlbS03YWI0MzIyZDczNzg/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzdhYjQzMjJkNzM3ODwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtzb2Z0d2FyZS1kZXZlbG9wbWVudF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAxNCBBdWcgMjAxOSAxMjowMTowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0xNFQxMjowMTowMS40NzNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpMR3FLUUhXM1VmNHNhWXVDcnZUU2hBLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSBhbmQgcmVwbGljYXRpb246IGR1cGxpY2F0aW5nIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldoZW4gaXQgY29tZXMgdG8gcHJvZ3JhbW1pbmcsIHRoZXJlIGFyZSBjZXJ0YWluIGNvbnZlbnRpb25zLCBpZGlvbXMsIGFuZCBwcmluY2lwbGVzIHRoYXQgd2UgcnVuIGludG8gYW5kIHJlZmVyZW5jZSBhcyBhIGNvbW11bml0eSBxdWl0ZSBvZnRlbi4gT25lIG9mIHRob3NlIHByaW5jaXBsZXMgaXMgdGhlIGlkZWEgb2Yg4oCcRG9u4oCZdCBSZXBlYXQgWW91cnNlbGbigJ0sIG9yIERSWSBmb3Igc2hvcnQuIEkgZW5jb3VudGVyZWQgdGhpcyBpZGVhIGVhcmx5IG9uIGluIG15IHByb2dyYW1taW5nIGNhcmVlciwgYW5kIGl0IHNlZW1lZCBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIHRvIG1lIGF0IHRoZSB0aW1lOiBpbiBvcmRlciB0byBtYWludGFpbiBjbGVhbiwgY29uY2lzZSBjb2RlLCBpdCB3YXMgaW1wb3J0YW50IHRvIGVuc3VyZSB0aGF0IG9uZSBkaWRu4oCZdCByZXBlYXQgdGhlIHNhbWUgbGluZXMgb3IgbG9naWMgaW4gb3VyIGNvZGViYXNlLjwvcD48cD5CdXQgb3ZlciB0aGUgeWVhcnMgb2YgbXkgY2FyZWVyLCBJ4oCZdmUgbGVhcm5lZCBhbmQgc2VlbiBtb3JlLCBhbmQgcmVhbGl6ZWQgdGhhdCB0aGF0IHJlcGV0aXRpb24gaXMgbm90IHNvIGN1dCBhbmQgZHJ5IOKAlG5vIHB1biBpbnRlbmRlZCEgU29tZXRpbWVzLCBpdCBhY3R1YWxseSBkb2VzIG1ha2Ugc2Vuc2UgdG8gcmVwZWF0IHlvdXJzZWxmIGF0IHRoZSByaXNrIG9mIG92ZXItZW5naW5lZXJpbmcgb3Igb3Zlci1hYnN0cmFjdGluZyBzb21ldGhpbmcgdW5uZWNlc3NhcmlseS4gU29tZXRpbWVzLCBpdCBtYWtlcyBzZW5zZSB0byBqdXN0IGR1cGxpY2F0ZSBhIGZ1bmN0aW9uIG9yIHBpZWNlIG9mIGxvZ2ljIGFuZCBqdXN0IOKAnGNvcHlwYXN0YeKAnSBpdCBpbnRvIGFub3RoZXLCoGZpbGUuPC9wPjxwPkFuZCB3aGVuIGl0IGNvbWVzIHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGl0IG9mdGVuIG1ha2VzIGEgbG90IG9mIHNlbnNlIHRvIGhhdmUgbWFueSBvZiBvbmUgdGhpbmchIEluIGZhY3QsIGFzIHdlIHN0YXJ0IHRvIGxvb2sgYXQgZHVwbGljYXRpb24gYXMgYSBjb25jZXB0IGluIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgdGhlIG1vcmUgb2J2aW91cyBpdCBiZWNvbWVzIHRoYXQgcmVwZWF0aW5nIG91cnNlbHZlcyBjYW4gYWN0dWFsbHkgYmUgYSBodWdlIGJlbmVmaXQgdG8gb3VyIHN5c3RlbSBhcyBhIHdob2xlLiBTbyBsZXTigJlzIGRpZyBpbnRvIGR1cGxpY2F0aW9uIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2h5IHdl4oCZZCBldmVyIHdhbnQgdG8gZG/CoGl0LjwvcD48aDM+UmVwZXRpdGlvbjogc29tZXRpbWVzIGEgZ29vZMKgdGhpbmc/PC9oMz48cD5XaGVuIHdlIHRhbGsgYWJvdXQg4oCccmVwZWF0aW5nIG91cnNlbHZlc+KAnSBpbiB0aGUgdGhlIHJlYWxtIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZywgd2UgY2FuIG1lYW4gbWFueSBkaWZmZXJlbnQgdGhpbmdzLiBSZXBldGl0aW9uIG9mIGEgbGluZSBvZiBjb2RlIG9yIGEgcGllY2Ugb2YgbG9naWMgdXN1YWxseSBpbmRpY2F0ZXMgdGhhdCB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdGhpbmcgdGhhdCBpc27igJl0IHF1aXRlIG5lY2Vzc2FyeS4gSW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIHdlIGhhdmUgYSBzcGVjaWFsIHRlcm0gZm9yIHRoaXMgY2FsbGVkIDxzdHJvbmc+PGVtPnJlZHVuZGFuY3k8L2VtPjwvc3Ryb25nPiwgd2hpY2ggaXMgYWxsIG9mIHRoZSByZXNvdXJjZXMgaW4gYSBzeXN0ZW0gdGhhdCBhcmUgbm90IG5lY2Vzc2FyeSBmb3IgdGhlIHN5c3RlbSB0byBhY3R1YWxseSBmdW5jdGlvbi48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSowRkpDMk5tS1cxQ29jYUpDTVFZNEVRLmpwZWciIC8+PGZpZ2NhcHRpb24+V2hhdCBjYW4gcmVkdW5kYW5jeSBpbmNsdWRlPzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBpbiBkaXN0cmlidXRlZCBjb21wdXRpbmcsIHdlIGNvdWxkIHBvdGVudGlhbGx5IGhhdmUgYSB3aG9sZSBsb3Qgb2YgZGlmZmVyZW50IHJlc291cmNlcywgd2hpY2ggbWVhbnMgdGhhdCB3ZSBoYXZlIG1hbnkgZGlmZmVyZW50IHRoaW5ncyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGJlIHJlcGVhdGVkISBUaHVzLCByZWR1bmRhbmN5IGNhbiBlbmNvbXBhc3MgbWFueSBkaWZmZXJlbnQga2luZHMgb2YgZXh0cmFuZW91cyByZXNvdXJjZXMuPC9wPjxwPkZvciBleGFtcGxlLCByZXBlYXRlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIHRoZSBkaWZmZXJlbnQgcGxhY2VzIGluIHRoZSBzeXN0ZW0sIG9yIGR1cGxpY2F0ZWQgcmVmZXJlbmNlcy92YXJpYWJsZXMgdG8gdGhlIHNhbWUgZGF0YSBhcmUgZm9ybXMgb2YgcmVkdW5kYW5jeS4gU2ltaWxhcmx5LCBkdXBsaWNhdGVkIGV4ZWN1dGlvbiB0aW1lIGluIGEgZnVuY3Rpb24gYXMgd2VsbCBhcyBleHRyYSBtZW1vcnksIGZpbGVzLCBvciBwcm9jZXNzZXMgYXJlIGFsc28gcmVkdW5kYW50LCBzaW5jZSB0aGUgc3lzdGVtIGRvZXNu4oCZdCBhY3R1YWxseSBuZWVkIHRob3NlIGR1cGxpY2F0ZWQgcmVzb3VyY2VzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS48L3A+PHA+Rm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIHNlcmllcywgd2XigJlsbCBmb2N1cyBvbiByZWR1bmRhbmN5IGluIHRoZSBjb250ZXh0IG9mIGV4dHJhIG1lbW9yeSwgZmlsZXMgb3IgcHJvY2Vzc2VzLCB3aGljaCBpcyBvZnRlbiBjYWxsZWQgPHN0cm9uZz48ZW0+c3RydWN0dXJhbCByZWR1bmRhbmN5PC9lbT48L3N0cm9uZz4uIEluIHRoZSBjb250ZXh0IG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBzb21lIGV4dHJhIG1lbW9yeSBvciBmaWxlIChyZWFkOiBhIGRhdGFiYXNlKSBvciBhbiBleHRyYSBwcm9jZXNzIGFsbCBjYW4gYmUgYWJzdHJhY3RlZCB0byBhIHRlcm0gdGhhdCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21hbnktbm9kZXMtb25lLWRpc3RyaWJ1dGVkLXN5c3RlbS05OTIxZjg1MjA1YzQiPndl4oCZcmUgYWxyZWFkeSBmYW1pbGlhcjwvYT4gd2l0aDrCoG5vZGVzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKnFIUE96aUttUkZtckEzNHFhYVJxVEEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWR1bmRhbnQgbm9kZXM6IGEgZGVmaW5pdGlvbi48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QSByZWR1bmRhbnQgbm9kZSBpcyBhbnkgbm9kZSB0aGF0IGlzbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gSW4gb3RoZXIgd29yZHMsIGFueSBub2RlIHRoYXQgYWRkcyB0byB0aGUgYmFyZSBtaW5pbXVtIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN5c3RlbSBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIHRoZXJlZm9yZSBzYXkgdGhhdCBpdCBpcyByZWR1bmRhbnQuPC9wPjxwPldlbGwsIHdhaXQgYSBtaW51dGXigIrigJTigIppZiB3ZSB0aGluayBhYm91dCB0aGlzIGEgYml0IG1vcmUgZGVlcGx5IGZvciBhIG1pbnV0ZSwgd2XigJlsbCBwcm9iYWJseSByZWFsaXplIHRoYXQgd2UgZHVwbGljYXRlIGEgbG90IG9mIHN0dWZmIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtISBXZeKAmXZlIHRhbGtlZCBhYm91dCBhZGRpbmcgbm9kZXMgdG8gYSBzeXN0ZW0gcHJldHR5IGxvb3NlbHkgaW4gdGhpcyBzZXJpZXMsIGJ1dCBhbGwgb2YgdGhlIG5vZGVzIHRoYXQgd2UgYWRkIGNhbuKAmXQgYWxsIGJlIDxlbT5uZWNlc3Nhcnk8L2VtPiB0byB0aGUgc3lzdGVtLCByaWdodD8gU28sIHdoeSBkaWQgd2UgZXZlbiBib3RoZXIgYWRkaW5nIHJlZHVuZGFudCBub2Rlcz8gV2h5IHdvdWxkIGFueW9uZTxlbT4gPC9lbT53YW50IHRvIGJlIGV4cGxpY2l0bHkgYW5kIGludGVudGlvbmFsbHkgcmVkdW5kYW50IGluIHRoZWlyIHN5c3RlbT8gV2VsbCwgaW4gb3JkZXIgdG8gcmVhbGx5IGFuc3dlciB0aGF0IHF1ZXN0aW9uLCB3ZSBuZWVkIHRvIG1vdmUgZnJvbSB0aGUgbGFyZ2VyIGNvbmNlcHQgb2YgcmVkdW5kYW5jeSB0byB0aGUgbW9yZSBzcGVjaWZpYyB0b3BpYyBvZiByZXBsaWNhdGlvbjxlbT4uPC9lbT48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpjcm01a3BrU082N3NoNXZVVldhbklRLmpwZWciIC8+PGZpZ2NhcHRpb24+UmVkdW5kYW5jeSB2ZXJzdXMgcmVwbGljYXRpb248L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+V2hpbGUgcmVkdW5kYW5jeSBpcyB3aGF0IGFsbG93cyB1cyB0byBkdXBsaWNhdGUgdGhlIGNvbXBvbmVudHMgb2Ygb3VyIHN5c3RlbSwgdGhlIGR1cGxpY2F0aW9uIGl0c2VsZiBpc27igJl0IHJlYWxseSB3aGF0IGlzwqB1c2VmdWwuPC9wPjxibG9ja3F1b3RlPlJlZHVuZGFuY3kgZG9lc27igJl0IGFjdHVhbGx5IGhlbHAgdXMgaWYgYSByZWR1bmRhbnQgbm9kZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBub2RlIHRoYXQgaXQgd2FzIGNvcGllZMKgPGVtPmZyb208L2VtPi48L2Jsb2NrcXVvdGU+PHA+QSByZWR1bmRhbnQgbm9kZSBvbiBpdHMgb3duIGlzbuKAmXQgYWxsIHRoYXQgaGVscGZ1bDsgc3VyZSwgd2UgaGF2ZSBhY2hpZXZlZCByZWR1bmRhbmN5LCBidXQgd2hvIGtub3dzIGhvdyBsb25nIHRoYXQgcmVkdW5kYW50IG5vZGUgd2lsbCBhY3R1YWxseSBiZSBmdW5jdGlvbmFsIGZvciB1cyBpbiBvdXIgc3lzdGVtPyBXaGF0IGhhcHBlbnMgaWYgb25lIG9mIHRoZSBub2RlcyBjaGFuZ2VzIGluIHZhbHVlIG9yIHN0YXRlPyBBcyBpdCB0dXJucyBvdXQsIHRoZSBhbnN3ZXIgdG8gYm90aCBvZiB0aGVzZSBxdWVzdGlvbnMgaXMgcmVwbGljYXRpb24hIFdoZW4gd2UgcmVwbGljYXRlIGEgbm9kZSBpbiBvdXIgc3lzdGVtLCB0aGVzZSBkdXBsaWNhdGUgY29waWVzIGFjdHVhbGx5IGJlY29tZSBtdWNoIG1vcmUgZnVuY3Rpb25hbCBmb3LCoHVzLjwvcD48aDM+RHVwbGljYXRpb24gYW5kIG1haW50YWluaW5nIHN0YXRlPC9oMz48cD5SZXBsaWNhdGlvbiBhcyBhIGNvbmNlcHQgaXMgbXVjaCBvZiBsaWtlIGEgc3Vic2V0IG9mIHJlZHVuZGFuY3kuIEJvdGggb2YgdGhlbSBpbnZvbHZlIGNyZWF0aW5nIHJlZHVuZGFudCBub2RlcyBpbiBhIHN5c3RlbeKAiuKAlOKAim5vZGVzIHRoYXQgYXJlbuKAmXQgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciB0aGUgc3lzdGVtIHRvIHdvcmsgY29ycmVjdGx5LjwvcD48cD5Ib3dldmVyLCA8c3Ryb25nPjxlbT5yZXBsaWNhdGlvbjwvZW0+PC9zdHJvbmc+IHRha2VzIGEgcmVkdW5kYW50IG5vZGUgb25lIHN0ZXAgZnVydGhlcjsgaXQgZW5zdXJlcyB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSAoYSA8c3Ryb25nPjxlbT5yZXBsaWNhPC9lbT48L3N0cm9uZz4pIGlzIGlkZW50aWNhbCB0byBhbGwgb2YgaXRzIG90aGVyIGNvcGllcy4gQXQgZmlyc3QgZ2xhbmNlLCB0aGlzIG1pZ2h0IHNlZW0gc2ltcGxlIGFuZCBwZXJoYXBzIGV2ZW4gb2J2aW91czsgd2UgbWlnaHQgZXZlbiBhc3N1bWUgdGhhdCBhIG5vZGUgdGhhdCBoYXMgYmVlbiBjb3BpZWQgZnJvbSBzb21ld2hlcmUgZWxzZSB3aWxsIGJlIGlkZW50aWNhbCB0byB0aGUgdGhpbmcgaXQgd2FzIGNvcGllZCBmcm9tLMKgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcnZvQXhXWEFOOXZYWFBacTNUaXNoQS5qcGVnIiAvPjxmaWdjYXB0aW9uPlJlcGxpY2F0ZWQgbm9kZXM6IGEgZGVmaW5pdGlvbjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5XZWxsLCBub3QgbmVjZXNzYXJpbHkhIEluIGZhY3QsIGxldOKAmXMgc2F5IHRoYXQgd2UgY29waWVkIGEgbm9kZSBhbmQgY3JlYXRlZCBhIHJlZHVuZGFudCBvbmUuIEJ1dCBsYXRlciBvbiwgd2UgY2hhbmdlIHNvbWV0aGluZyBhYm91dCB0aGUgb3JpZ2luYWwgbm9kZeKAiuKAlOKAinBlcmhhcHMgd2UgY2hhbmdlIGl0cyBzdGF0ZSwgc29tZSB2YWx1ZSB0aGF0IGl0IGNvbnRhaW5zLCBvciBzb21lIGludGVybmFsIGJlaGF2aW9yLiBXaGF0IHdvdWxkIGhhcHBlbiB0byB0aGUgcmVkdW5kYW50IG5vZGU/IFdlbGzigKZub3RoaW5nITwvcD48cD5JZiB3ZSBjcmVhdGVkIGp1c3QgYSBzaW1wbGUgcmVkdW5kYW50IG5vZGUsIHRoZXJlIGlzIG5vdGhpbmcgaW4gcGxhY2Ugd2l0aGluIG91ciBzeXN0ZW0gdGhhdCB3aWxsIGVuc3VyZSB0aGF0IHRoZSByZWR1bmRhbnQgbm9kZSB3aWxsIDEpIGtub3cgdGhhdCBzb21ldGhpbmcgY2hhbmdlZCBhbmQgMikgd2lsbCB1cGRhdGUgaXRzZWxmIG9yIGJlIHVwZGF0ZWQgYnkgc29tZW9uZSBlbHNlIHRvIGhhdmUgdGhlIGNvcnJlY3TCoHN0YXRlLjwvcD48cD5TbyBwZXJoYXBzIHRoaXMgcHJvYmxlbSBpcyBub3QgYXMgb2J2aW91cyBhcyB3ZSBmaXJzdCB0aG91Z2h0ISBSZXBsaWNhdGlvbiBhdHRlbXB0cyB0byBzb2x2ZSB0aGlzIHByb2JsZW0sIGJlY2F1c2UgaXQgZW5zdXJlcyB0aGF0IGFsbCByZXBsaWNhcyBvZiBhIG5vZGUgd2lsbCBiZSBpZGVudGljYWwgdG8gb25lIGFub3RoZXIsIGFuZCB3aWxsIG1hdGNoIHRoZSBvcmlnaW5hbCBub2RlIHRoYXQgdGhleSB3ZXJlIHJlcGxpY2F0ZWQgZnJvbS4gKFNpZGUgbm90ZTogdGhlIHF1ZXN0aW9uIG9mIDxlbT5ob3c8L2VtPiB0byBlbnN1cmUgdGhpcyBpcyBubyBlYXN5IHRhc2ssIGJ1dCB3ZeKAmWxsIGxlYXJuIG1vcmUgYWJvdXQgdGhhdCBsYXRlciBvbiBpbiB0aGXCoHNlcmllc+KApik8L3A+PHA+QW5vdGhlciBpbXBvcnRhbnQgdGhpbmcgdG8gbm90ZSBoZXJlIGlzIHRoYXQgcmVwbGljYXRpb24gY29tZXMgaGFuZCBpbiBoYW5kIHdpdGggPHN0cm9uZz48ZW0+dHJhbnNwYXJlbmN5PC9lbT48L3N0cm9uZz4sIGEgY29uY2VwdCB0aGF0IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0xLWIwMWMyNWY3ZGRkZCI+d2XigJlyZSBhbHJlYWR5PC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3RyYW5zcGFyZW5jeS1pbGx1c2lvbnMtb2YtYS1zaW5nbGUtc3lzdGVtLXBhcnQtMi0yYjIxYzUwNDc3NzQiPmZhbWlsaWFyIHdpdGg8L2E+LiBXaXRoIGVhY2ggcmVwbGljYSB0aGF0IGlzIGFkZGVkIHRvIGEgc3lzdGVtLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHksIGFuZCBzaG91bGQgaWRlYWxseSBiZSB1bmF3YXJlIG9mIGFueSByZXBsaWNhcyB0aGF0IGhhdmUgYmVlbsKgY3JlYXRlZC48L3A+PGJsb2NrcXVvdGU+SWYgYSByZXBsaWNhIGlzIHVwZGF0ZWQsIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0gc2hvdWxkbuKAmXQga25vdyBhYm91dCBpdCwgYW5kIGlmIGEgbm9kZSBpcyByZXBsaWNhdGVkLCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtIHNob3VsZG7igJl0IHJlYWxsecKgY2FyZS48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIGlmIGEgd2ViIHNlcnZlciBvciBhIGRhdGFiYXNlIG5vZGUgaXMgcmVwbGljYXRlZCwgdGhlIGVuZCB1c2VycyBvZiB0aGUgZGlzdHJpYnV0ZWQgc3lzdGVtIG91Z2h0IG5vdCB0byBoYXZlIGFueSBpZGVhIHRoYXQgYXJlIGludGVyYWN0aW5nIHdpdGggYSByZXBsaWNhIG9yIHRoZSBvcmlnaW5hbCBub2RlLiAoSW4gZmFjdCB0aGV5IHByb2JhYmx5IHNob3VsZG7igJl0IGhhdmUgYW55IGlkZWEgdGhhdCB0aGVyZSBldmVuIDxlbT5pczwvZW0+IGEgcmVwbGljYXRlZCBub2RlISk8L3A+PHA+V2hlbiB0aGlzIHRyYW5zcGFyZW5jeSBpcyBtb3N0bHkgbWFpbnRhaW5lZCBpbiBhIHN5c3RlbSwgcmVwbGljYXRpb24gcHJvdmlkZXMgdXMgd2l0aCBhIHdob2xlIGxvdCBvZiBiZW5lZml0czo8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpoS1owMFRLblpMSi1feEZwX19vQnJRLmpwZWciIC8+PGZpZ2NhcHRpb24+U29tZSBiZW5lZml0cyBvZiB1c2luZyByZXBsaWNhdGlvbiBpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBtYWtlcyBvdXIgc3lzdGVtIGlzIG11Y2ggbW9yZSA8c3Ryb25nPjxlbT5yZWxpYWJsZS4gPC9lbT48L3N0cm9uZz5JZiBvbmUgbm9kZSBnb2VzIGRvd24gYW5kIHdlIGhhdmUgYWxyZWFkeSBhZGRlZCByZXBsaWNhcywgaXTigJlzIG11Y2ggbW9yZSBsaWtlbHkgZm9yIGEgcmVwbGljYSB0byBzdGVwIGluIGFuZCBkbyB0aGUgam9iIG9mIHRoZSBmYWlsaW5nIG5vZGUuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBtb3JlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdC10b2xlcmFudDwvYT4uIEhhdmluZyByZXBsaWNhcyBpbiBwbGFjZSBtYWtlcyBvdXIgc3lzdGVtIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVhZHktYW5kLWF2YWlsYWJsZS1kaXN0cmlidXRlZC1zeXN0ZW1zLTE2MTAyM2FjYTM3OCI+bW9yZSBhdmFpbGFibGU8L2E+IGFzIHdlbGwsIHNpbmNlIG92ZXJhbGwgdGhlcmUgYXJlIG1vcmUgYmFja3VwIHJlcGxpY2FzIHRvIHN0ZXAgaW4gdG8gdGFrZSBhbm90aGVyIG5vZGXigJlzIHBsYWNlLCB3aGljaCBtZWFucyB0aGF0IG91ciBzeXN0ZW0gc2hvdWxkbuKAmXQgZXhwZXJpZW5jZSB0b28gbXVjaCBkb3dudGltZS48L2xpPjxsaT5SZXBsaWNhdGlvbiBvZiBub2RlcyBhbHNvIG1ha2VzIG91ciBzeXN0ZW0gbW9yZSA8c3Ryb25nPjxlbT5wZXJmb3JtYW50PC9lbT48L3N0cm9uZz4uIFdpdGggbW9yZSByZXBsaWNhcyBpbiBwbGFjZSwgd2Ugbm93IGhhdmUgdGhlIGFiaWxpdHkgdG8gZG8gbW9yZSB3b3JrLCBzZXJ2ZSBtb3JlIHJlcXVlc3RzLCBhbmQgcHJvY2VzcyBtb3JlIGRhdGEuIFRoaXMgbWFrZXMgb3VyIHN5c3RlbSBqdXN0IGdlbmVyYWxseSBmYXN0ZXIsIHJlZHVjZXMgbGF0ZW5jeSwgYW5kIGFsbG93cyB0aGUgc3lzdGVtIHRvIGhhbmRsZSBhIGhpZ2ggdGhyb3VnaHB1dCBvZiBkYXRhIHRoYXQgaGFzIHRvIGJlIHByb2Nlc3NlZC9kZWxpdmVyZWQuPC9saT48bGk+UmVwbGljYXRpb24gb2Ygbm9kZXMgbWFrZXMgb3VyIHN5c3RlbSBtdWNoIDxzdHJvbmc+PGVtPmVhc2llciB0byBzY2FsZTwvZW0+PC9zdHJvbmc+LiBTY2FsYWJpbGl0eSBpcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3NjYWxhYmlsaXR5LWdyb3dpbmctYS1zeXN0ZW0taW4tZGlmZmVyZW50LWRpcmVjdGlvbnMtYWUxNjQ2OWM0Y2IzIj5hIGJpZyBwbHVzIHBvaW50PC9hPiB3aGVuIGl0IGNvbWVzIHRvIGJ1aWxkaW5nIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCBidXQgaXTigJlzIG5vdCBhbHdheXMgZWFzeSB0byBhY2hpZXZlLiBXaXRoIG1vcmUgcmVwbGljYXRlZCBub2RlcywgaXTigJlzIGlzIGVhc2llciB0byBzY2FsZSBhIHN5c3RlbSBieSBhZGRpbmcgbW9yZSBkYXRhYmFzZXMsIHNlcnZlcnMsIG9yIHNlcnZpY2VzIGFzIHJlcXVpcmVkIGJ5IHRoZSBkZW1hbmRzIG9uIHRoZSBzeXN0ZW0uIEl04oCZcyBhbHNvIGVhc2llciB0byBnZW9ncmFwaGljYWxseSBzY2FsZSBhIHN5c3RlbSB3aGVuIHdlIGNhbiByZXBsaWNhdGUgYSBub2RlIGFuZCBwbGFjZSBpdCBpbiBhIGRpZmZlcmVudCBjb250aW5lbnQgb3IgY291bnRyeSB0byBoZWxwIHNjYWxlIGEgaGlnaCB3b3JrbG9hZCBpbiBhIHNwZWNpZmljIGxvY2F0aW9uLjwvbGk+PC9vbD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKk1pSVFia3QzcUU2Y2pWcHZjMlA3TUEuanBlZyIgLz48ZmlnY2FwdGlvbj5SZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBzY2FsYWJpbGl0eSB0aHJvdWdoIHJlcGxpY2F0aW9uPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkJ5IHRoaXMgcG9pbnQsIGhvcGVmdWxseSB3ZeKAmXJlIGFsbCBvbiBib2FyZCB3aXRoIHRoZSBpZGVhIG9mIHJlcGxpY2F0aW9uIChyaWdodD8pLiBJdOKAmXMgcHJldHR5IGNvb2wgYW5kIG5lYXJseSBldmVyeSBkaXN0cmlidXRlZCBzeXN0ZW0gd2lsbCB0YWtlIGFkdmFudGFnZSBhbmQgbGV2ZXJhZ2UgdGhpcyBjb25jZXB0IHRvIGhlbHAgZGVhbCB3aXRoIGlzc3VlcyBvZiByZWxpYWJpbGl0eSwgcGVyZm9ybWFuY2UsIGFuZCBmYXVsdC10b2xlcmFuY2UuIFdoZXRoZXIgaW4gdGhlIGZvcm0gb2Ygd29ya2Vycywgc2VydmVycywgZGF0YWJhc2VzLCBvciBzZXJ2aWNlcywgd2XigJl2ZSBwcm9iYWJseSBlYWNoIHdvcmtlZCB3aXRoIHJlcGxpY2FzIGluIG91ciBkYWlseSBsaXZlcyBhcyBkZXZlbG9wZXJzISBTb3VuZHMgZ3JlYXQswqByaWdodD88L3A+PHA+V2VsbCwgYWxtb3N0LiBUaGUgc3RvcnkgZG9lc27igJl0IHF1aXRlIGVuZCBoZXJlLiBSZXBsaWNhdGlvbiBpcyBhd2Vzb21lLCBidXQgaXQgcHJlc2VudHMgc29tZSB1bmlxdWUgY2hhbGxlbmdlcyB1bnRvIGl0c2VsZi4gSSBjYW7igJl0IHByb21pc2UgYW55IHNvbHV0aW9ucyBpbiB0aGlzIHBvc3QgKGRvbuKAmXQgd29ycnksIHdl4oCZbGwgdGFsayBhIGxvdCBtb3JlIGFib3V0IHRoaXMgYXMgdGhlIHNlcmllcyBnb2VzIG9uKSwgYnV0IGF0IHRoZSB2ZXJ5IGxlYXN0LCBJ4oCZbGwgcHJlc2VudCB5b3Ugd2l0aCBzb21lIG9mIHRoZSBwcm9ibGVtcy4g8J+YiTwvcD48aDM+Q29uc2lzdGVudCBoZWFkYWNoZXM8L2gzPjxwPkluIGFkZGl0aW9uIHRvIHRyYW5zcGFyZW5jeSwgdGhlIGNvbmNlcHQgb2YgcmVwbGljYXRpb24gbmVlZHMgb25lIG90aGVyIHRoaW5nIHRvIHJlYWxseSB3b3JrIHdlbGw6IDxzdHJvbmc+PGVtPmNvbnNpc3RlbmN5PC9lbT48L3N0cm9uZz4uIEluIG9yZGVyIGZvciBhIHJlcGxpY2EgdG8gYWN0dWFsbHkgYmUgdXAtdG8tZGF0ZSB3aXRoIGFsbCB0aGUgb3RoZXIgcmVwbGljYXMgaW4gdGhlIHN5c3RlbSwgaXQgbmVlZHMgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlciBjb3BpZXMuIEFuZCB0aGlzIGlzIG5vdCBhIHRyaXZpYWzCoHRhc2shPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqeXZiV05aUHBWV2hZOEZ1VllzVVBfdy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgcmVwbGljYXRpb24gaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Tm93IHBlcmhhcHMsIGF0IGZpcnN0IGdsYW5jZSwgdGhpcyBkb2VzbuKAmXQgc2VlbSB0b28gZGlmZmljdWx0LiBNYXliZSB3ZSBjb3VsZCBhbHdheXMgaGF2ZSB0aGUgcmVwbGljYXMgZ2V0IHVwZGF0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgY29weT8gT3IgbWF5YmUgdGhlIG9yaWdpbmFsIGNvcHkgY2FuIHRlbGwgdGhlIHJlcGxpY2FzIHdoZW5ldmVyIHNvbWV0aGluZyBlbHNlIGNoYW5nZXM/IEhvd2V2ZXIsIHRoaXMgaXMgdHJpY2tlciB0aGFuIGl0wqBzb3VuZHMuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqdnFFWEV3LXdkdTljVWNOT3dPSmp5QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkl04oCZcyBhIHN0cnVnZ2xlIHRvIG1haW50YWluIGNvbnNpc3RlbmN5IGFzIHJlcGxpY2FzIGNoYW5nZcKgc3RhdGUhPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlIGxlYXJuZWQgZWFybGllciB0aGF0IGEgc3lzdGVtIG11c3QgYWxzbyBiZSB0cmFuc3BhcmVudCBmb3IgcmVwbGljYXRpb24gdG8gd29yay4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy90cmFuc3BhcmVuY3ktaWxsdXNpb25zLW9mLWEtc2luZ2xlLXN5c3RlbS1wYXJ0LTEtYjAxYzI1ZjdkZGRkIj5UcmFuc3BhcmVuY3k8L2E+IGluIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvdHJhbnNwYXJlbmN5LWlsbHVzaW9ucy1vZi1hLXNpbmdsZS1zeXN0ZW0tcGFydC0yLTJiMjFjNTA0Nzc3NCI+YSBzeXN0ZW08L2E+IG1lYW5zIHRoYXQgYWxsIHRoZSByZXBsaWNhcyBhbmQgdGhlIG9yaWdpbmFsIG5vZGUgbXVzdCBiZWhhdmUgc2ltaWxhcmx5LCB3aGljaCBtZWFucyB0aGF0IGEgY29uc3VtZXIgb2YgdGhlIHN5c3RlbSAobGlrZSBhbiBlbmQgdXNlciBvciBhbm90aGVyIG5vZGUpIGNvdWxkIHBvdGVudGlhbGx5IHdyaXRlIHRvIG9uZSByZXBsaWNhLCB3aGlsZSBhbm90aGVyIGNvbnN1bWVyIG9mIHRoZSBzeXN0ZW0gY291bGQgcmVhZCBmcm9tIDxlbT5hbm90aGVywqA8L2VtPnJlcGxpY2EhPC9wPjxwPlNvLCB3ZSBjYW7igJl0IHJlbHkgb24ganVzdCB0aGUgb3JpZ2luYWwgbm9kZSBhbnltb3JlIGFzIG91ciBzaW5nbGUgc291cmNlIG9mIHRydXRoIHdoZW4gaXQgY29tZXMgdG8gdGhlIHN0YXRlIG9mIG91ciBub2RlKHMpLiBUaGUgcXVlc3Rpb24gaGVyZSBpcywgb2YgY291cnNlLCBob3cgZG8gd2UgdGVsbCB0aGVzZSB0d28gcmVwbGljYXMgd2hhdCBqdXN0IGhhcHBlbmVkPyBUaGUgcmVwbGljYSB0aGF0IGlzIGJlaW5nIHJlYWQtZnJvbSBuZWVkcyB0byBrbm93IGFib3V0IHRoZSBsYXRlc3Qgd3JpdGU7IHNpbWlsYXJseSwgdGhlIHJlcGxpY2EgdGhhdCBpcyBiZWluZyB3cml0dGVuLXRvIG5lZWRzIHRvIGRpc3BlcnNlIGluZm9ybWF0aW9uIGFib3V0IHRoYXTCoHdyaXRlLjwvcD48cD5UaGlzIGlzIGV4YWN0bHkgd2hhdCBtYWtlcyByZXBsaWNhdGlvbiBzbyBoYXJkOyB3ZSBoYXZlIHRvIGNvbnRlbmQgd2l0aCBjb25zaXN0ZW5jeSBhbmQgZmlndXJlIG91dCBhIG1vZGVsIGZvciBob3cgdG8gZW5zdXJlIHRoYXQgYWxsIG9mIG91ciByZXBsaWNhcy4gVGhhbmtmdWxseSwgd2XigJlsbCBjb3ZlciB0aGF0IGluIG11Y2ggbW9yZSBkZXRhaWwgbGF0ZXIuIEZvciBub3csIHdlIGp1c3QgbmVlZCB0byBrbm93IHRoYXQgaXTigJlzIGEgcHJvYmxlbSB0aGF0IHdl4oCZbGwgaGF2ZSB0byBkZWFsIHdpdGggc29vbi4gc1VudGlsIHRoZW4sIGZlZWwgZnJlZSB0byByZXBsaWNhdGUgeW91ciBsaXR0bGUgaGVhcnRzwqBhd2F5ITwvcD48aDM+UmVzb3VyY2VzPC9oMz48cD5VbmRlcnN0YW5kaW5nIHJlcGxpY2F0aW9uIGFuZCByZWR1bmRhbmN5IGlzIGEga2V5IHN0ZXAgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCBob3cgYSBkaXN0cmlidXRlZCBzeXN0ZW0gZ3Jvd3MuIFRoZSB0b3BpY3MgaW4gdGhpcyBzZXJpZXMgd2lsbCBjb250aW51ZSB0byBidWlsZCBvbiB0aGUgaWRlYSBvZiByZXBsaWNhdGlvbiwgc28gaXTigJlzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGl0IGZ1bGx5LiBJZiB5b3XigJlyZSBsb29raW5nIGZvciBmdXJ0aGVyIHJlc291cmNlcywgdGhlIG9uZXMgbGlzdGVkIGJlbG93IGFyZSBzb21lIGdyZWF0IHBsYWNlcyB0byBzdGFydCAob3IgY29udGludWUgbGVhcm5pbmchKS48L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy84N2RjLzhlODM5YWYwNjMzYjlmMjk2OGE2NjljNWFmNzA0NTNjZmUwYi5wZGYiPlJlZHVuZGFuY3kgYW5kIFJlcGxpY2F0aW9uOiBGYXVsdCBUb2xlcmFuY2Ugb24gdGhlIFN5c3RlbSBMZXZlbDwvYT4sIEt1cnQgS2FuemVuYmFjaDwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3c4LmNzLnVtdS5zZS9rdXJzZXIvNURWMTQ3L0hUMTUvbGVjdHVyZXMvbDgtaGFuZG91dHMucGRmIj5EaXN0cmlidXRlZCBTeXN0ZW1zOiBSZXBsaWNhdGlvbjwvYT4sIFVtZcOlIFVuaXZlcnNpdHk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy51aW8ubm8vc3R1ZGllci9lbW5lci9tYXRuYXQvaWZpL0lORjUwNDAvaDE2L3BlbnN1bWxpc3RlL3JlcGxpY2F0aW9uLnBkZiI+UmVwbGljYXRpb24gaW4gRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJvbWFuIFZpdGVuYmVyZzwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmNzLmhlbHNpbmtpLmZpL3dlYmZtX3NlbmQvMTI1NiI+RGlzdHJpYnV0ZWQgU3lzdGVtczogUmVwbGljYXRpb24gYW5kIENvbnNpc3RlbmN5PC9hPiwgSnVzc2kgS2FuZ2FzaGFyanU8L2xpPjxsaT48YSBocmVmPSJodHRwOi8vY3Npcy5wYWNlLmVkdS9+bWFyY2hlc2UvQ1M4NjUvUGFwZXJzL3dpZXNtYW5uV1BTKzAwLnBkZiI+VW5kZXJzdGFuZGluZyBSZXBsaWNhdGlvbiBpbiBEYXRhYmFzZXMgYW5kIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBTY2hpcGVyICZhbXA7wqBBbG9uc288L2xpPjwvb2w+PGltZyBzcmM9Imh0dHBzOi8vbWVkaXVtLmNvbS9fL3N0YXQ/ZXZlbnQ9cG9zdC5jbGllbnRWaWV3ZWQmcmVmZXJyZXJTb3VyY2U9ZnVsbF9yc3MmcG9zdElkPTdhYjQzMjJkNzM3OCIgd2lkdGg9IjEiIGhlaWdodD0iMSI+PGhyPjxwPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvcmVkdW5kYW5jeS1hbmQtcmVwbGljYXRpb24tZHVwbGljYXRpbmctaW4tYS1kaXN0cmlidXRlZC1zeXN0ZW0tN2FiNDMyMmQ3Mzc4Ij5SZWR1bmRhbmN5IGFuZCBSZXBsaWNhdGlvbjogRHVwbGljYXRpbmcgaW4gYSBEaXN0cmlidXRlZCBTeXN0ZW08L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAyKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMi1iOGZmMjliZWVkNTY/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wL2I4ZmYyOWJlZWQ1NjwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvZGVdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtwcm9ncmFtbWluZ11dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+V2VkLCAwNyBBdWcgMjAxOSAxMjoxNjowMSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wOC0wN1QxMjoxNjowMS45MDBaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpkMndicExDWGdYUVJmc05McnVxNV9BLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIEVWRU4gTU9SRSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIHdoYXQgbWFrZXMgZGlzdHJpYnV0ZWQgc3lzdGVtcyBoYXJkIHRvIGNvbnRlbnQgd2l0aCBpcyB0aGUgZmFjdCB0aGF0LCBhcyBhIHN5c3RlbSBncm93cywgaXQgY2hhbmdlcy4gRnVydGhlcm1vcmUsIHRoZSB0aGluZ3MgYXJvdW5kIHRoZSBzeXN0ZW3igIrigJTigIpwYXJ0cyBvZiB0aGUgc3lzdGVtIGl0c2VsZiwgaXRzIGRlcGVuZGVuY2llcywgYW5kIHRoZSBwZW9wbGUgd2hvIG1haW50YWluIGl04oCK4oCU4oCKYXJlIGFsc28gZWFjaCBjYXBhYmxlIG9mIGNoYW5naW5nIGFzwqB3ZWxsLjwvcD48cD5JbiBwYXJ0IG9uZSBvZiB0aGlzIHNlcmllcywgd2UgbG9va2VkIGludG8gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+dGhlIGZpcnN0IGZvdXI8L2E+IG9mIHRoZSBmYW1vdXMgZWlnaHQgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gQ29udmVuaWVudGx5LCB0aG9zZSBmb3VyIGZhbGxhY2llcyBhbGwgY2VudGVyZWQgYXJvdW5kIHRoZSBuZXR3b3JrLCBhbmQgdGhlIG1pc2NvbmNlcHRpb25zIGFuZCBmYWxzZWhvb2RzIHRoYXQgbWFueSBkZXZlbG9wZXJzIGNhbiBmYWxsIHByZXkgdG8gd2hlbiB0aGV5IGFyZSBkZWFsaW5nIHdpdGggYSBkaXN0cmlidXRlZCBzeXN0ZW0uIEJ1dCBpbiBwYXJ0IHR3byBvZiB0aGlzIHNlcmllcywgd2XigJlyZSBnb2luZyB0byB6b29tIG91dCBhIGJpdCBhbmQgbG9vayBhdCB0aGUgcmVtYWluaW5nIGZvdXIgZmFsbGFjaWVzLCB3aGljaCBmZWVsIGZhciBtb3JlIGFic3RyYWN0IGluIG5hdHVyZSwgaW4gbXnCoG9waW5pb24uPC9wPjxwPldoYXTigJlzIGludGVyZXN0aW5nIHRvIG1lIGFib3V0IHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgZmFsbGFjaWVzIGlzIHRoZSBmYWN0IHRoYXQgdGhleSBhbG1vc3Qgc2VlbSBvYnZpb3VzIHRvIHVzIGF0IGZpcnN0IGdsYW5jZS4gWW91IG1heSBldmVuIHJlYWQgdGhlbSBhbmQgdGhpbmsgdG8geW91cnNlbGYsIDxlbT7igJxob3cgY291bGQgYW55b25lIGV2ZXIgYXNzdW1lIHRoaXMgZmFsbGFjeSB0byBiZSB0cnVlP+KAnS48L2VtPiBCdXQgYXMgd2XigJlsbCBzb29uIHNlZSBhcyB3ZSBkaWcgaW50byBlYWNoIG9mIHRoZW0sIHRoZXJl4oCZcyBtb3JlIHRvIGVhY2ggZmFsbGFjeSB0aGFuIG1lZXRzIHRoZSBleWUuIEFuZCBrZWVwaW5nIHRoZXNlIGJpZy1waWN0dXJlIHRydXRocyBpbiBjaGVjayBhcyB3ZSBkZXNpZ24gYSBzaW1wbGUgc3lzdGVtIG9yIGEgY29tcGxleCBvbmUgaXMgaGFyZGVyIHRvIGRvIHRoYW4gd2UgbWlnaHQgdGhpbmsuIFNvIGxldOKAmXMgZGl2ZSByaWdodCBpbiBhbmQgZmluaXNoIHVwIG91ciBmb3JhZ2luZyBmb3IgZmFsbGFjaWVzITwvcD48aDQ+UmVhcnJhbmdpbmcgdGhlwqBuZXR3b3JrPC9oND48cD5BcyB3ZSBhbHJlYWR5IGtub3csIG5vZGVzIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIG11c3QgY29tbXVuaWNhdGUgdmlhIG1lc3NhZ2VzLCB3aGljaCBhcmUgc2VudCB0aHJvdWdoIGEgbmV0d29yay4gSG93ZXZlciwgdGhhdCBuZXR3b3JrIGlzIGEgY2hhbmdpbmcsIGZsdWN0dWF0aW5nIGVudGl0eS4gSWYgYSBub2RlIGlzIGFkZGVkIHRvIG5ldHdvcmssIGl0IGluaGVyZW50bHkgd2lsbCBsb29rIGEgbGl0dGxlIGRpZmZlcmVudCwgcmlnaHQ/IFdlIGhhdmUgYSBuZXcgY2hhcmFjdGVyIG9uIHRoZSBzdGFnZSwgYW5kIHRoZSB3YXkgdGhhdCB0aGUgbmV0d29yayBsb29rcyBvciBob3cgaXQgaXMgYXJyYW5nZWQgZGlmZmVycyBkZXBlbmRpbmcgb24gd2hpY2ggbm9kZXMgYXJlIGludm9sdmVkLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmdkT0FFd3JiWGE5SDFZajZhLUlCcncuanBlZyIgLz48ZmlnY2FwdGlvbj5Ub3BvbG9neTogYSBkZWZpbml0aW9uIG9mIHdoYXQgaXQgbWVhbnMgaW4gYcKgbmV0d29yay48L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QXMgaXQgdHVybnMgb3V0LCB0aGVyZeKAmXMgYSB0ZXJtIGZvciB0aGlzIGNvbmNlcHQsIGFuZCBpdOKAmXMgaGlnaCB0aW1lIHRoYXQgd2UgZmFtaWxpYXJpemVkIG91cnNlbHZlcyB3aXRoIGl0OiA8c3Ryb25nPjxlbT50b3BvbG9neTwvZW0+PC9zdHJvbmc+LiBBIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIHRoZSB3YXkgdGhhdCB0aGUgZWxlbWVudHMgaW4gdGhlIG5ldHdvcmsgYXJlIGxhaWQgb3V0IG9yIGFycmFuZ2VkLjwvcD48YmxvY2txdW90ZT5Ub3BvbG9neSBpbGx1c3RyYXRlcyB0aGUgd2F5IHRoYXQgdGhlIG5vZGVzIGluIG91ciBkaXN0cmlidXRlZCBzeXN0ZW0gcmVsYXRlIG9yIGNvbm5lY3QgdG8gb25lIGFub3RoZXIsIGFuZCBtb3JlIGltcG9ydGFudGx5LCBob3cgdGhleSBjb21tdW5pY2F0ZSB3aXRoIG9uZcKgYW5vdGhlci48L2Jsb2NrcXVvdGU+PHA+Rm9yIGV4YW1wbGUsIHdlIGNvdWxkIGhhdmUgYSBzZXQgb2Ygbm9kZXMgaW4gYSBuZXR3b3JrIHRoYXQgYXJlIGNvbm5lY3RlZCBhbmQgY29tbXVuaWNhdGUgd2l0aCBvbmUgYW5vdGhlciBpbiBhIHJpbmcgc2hhcGUsIG9yIHdlIGNvdWxkIGhhdmUgYWxsIHRoZSBub2RlcyBjb25uZWN0ZWQgaW4gYSBsaW5lLiBPciwgbGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIG5vZGVzIGNvdWxkIGJlIGNvbm5lY3RlZCBpbiBzdGFyIHNoYXBlLCBvciBwZXJoYXBzIHRoZXkgY291bGQgYmUgYXJyYW5nZWQgaW4gYSB0cmVlIHNoYXBlLiBBbGwgb2YgdGhlc2UgZGlmZmVyZW50IGV4YW1wbGVzIGFyZSB2YWxpZCB3YXlzIHRvIGxheSBvdXQgdGhlIG5vZGVzIGluIGEgbmV0d29yaywgYW5kIGVhY2ggb2YgdGhlbSBhcmUgZGlmZmVyZW50IHRvcG9sb2dpZXMuPC9wPjxwPlVuZGVyc3RhbmRpbmcgdGhlIGNvbmNlcHQgb2YgYSB0b3BvbG9neSBpcyBlc3NlbnRpYWwgdG8gdXMgZ3JhcHBsaW5nIHdpdGggZmFsbGFjeSBmaXZlOiA8c3Ryb25nPlRvcG9sb2d5IGRvZXNu4oCZdCBjaGFuZ2UuPC9zdHJvbmc+IFJlbWVtYmVyIHRoYXQgdGhpcyBpcyBhIDxlbT5mYWxsYWN5PC9lbT4sIHdoaWNoIG1lYW5zIHRoYXQgaXQgaXMgYSBtaXNjb25jZXB0aW9uOyBpbiBvdGhlciB3b3JkcywgdGhpcyBzdGF0ZW1lbnQgaXMgdW50cnVlLCBhbmQgdGhlIHRvcG9sb2d5IG9mIGEgbmV0d29yayA8ZW0+ZG9lczwvZW0+LCBpbiBmYWN0LMKgY2hhbmdlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKldKdVR5MXo2WTJ2Xzh4QTZvRkdReFEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM1OiBUb3BvbG9neSBkb2VzbuKAmXQgY2hhbmdlcyAoaXTCoGRvZXMhKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BdCB0aGUgc3VyZmFjZSwgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgc2VlbSBvYnZpb3VzOyBhbnkgdGltZSB0aGF0IHdlIGFkZCwgcmVwbGFjZSwgb3IgcmVtb3ZlIGEgbm9kZSBmcm9tIG91ciBuZXR3b3JrLCB0aGUgd2F5IHRoYXQgdGhlIGVsZW1lbnRzIChub2Rlcykgb2YgdGhhdCBuZXR3b3JrIGFyZSBhcnJhbmdlZCBhbmQgaG93IHRoZXkgcmVsYXRlIHRvIG9uZSBhbm90aGVyIGlzIGludmFyaWFibHkgZ29pbmcgdG8gaGF2ZSB0byBiZSBmbGV4aWJsZSBhbmQgbW92ZSBhcm91bmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlc2UgY2hhbmdlcy4gR2l2ZW4gd2hhdCB3ZSBrbm93IGFib3V0IGhvdyBub2RlcyBjYW4gYmUgPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mYW50YXN0aWMtZmF1bHRzLWFuZC13aGF0LXRvLWNhbGwtdGhlbS01NmQ5MWExYjE5OGMiPmZsYXdlZDwvYT4gYW5kIGhvdyB0aGV5IDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvbW9kZXMtb2YtZmFpbHVyZS1wYXJ0LTEtNjY4NzUwNGJmZWQ2Ij53aWxsPC9hPiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0yLTRkMDUwNzk0YmUyZiI+ZmFpbDwvYT4sIHdlIGFsc28gY2FuIGJlIHN1cmUgdGhhdCB0aGUgZnJlcXVlbmN5IHdpdGggd2hpY2ggYSBuZXcgbm9kZSBtaWdodCBiZSBhZGRlZCBvciBhbiBvbGQgbm9kZSBtaWdodCBiZSByZW1vdmVkIG9yIHJlcGxhY2VkIGlzIGdvaW5nIHRvIGJlIGZhaXJseSBjb25zaXN0ZW50IGFuZCBoaWdoLiBJbiBvdGhlciB3b3JkcywgdGhlIG5ldHdvcmvigJlzIHRvcG9sb2d5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBpbiBmbHV4IGFuZMKgZmx1aWQhPC9wPjxwPlNvIHdoeSBpcyB0aGlzIG90aGVyd2lzZSBvYnZpb3VzIGZhbGxhY3kgc29tZXRoaW5nIHdvcnRoIG5vdGluZyBoZXJlPyBXZWxsLCB3aGF0IG1ha2VzIHRoaXMgZmFsbGFjeSB0cmlja2VyIHRoYW4gaXQgc2VlbXMgaXMgdGhlIGZhY3QgdGhhdCBtb3N0IG9mIHVzIGp1c3QgZG9u4oCZdCB0aGluayBhYm91dCB0aGUgb2J2aW91c25lc3Mgb2YgaXQgb24gYSBkYXktdG8tZGF5IGJhc2lzLiBXZSBvZnRlbiBkZXBlbmQgb24gdGhlIG5ldHdvcmsgYmVoYXZpbmcgYSBjZXJ0YWluIHdheSBhbmQgZG9pbmcgY2VydGFpbiB0aGluZ3MuIFNvbWV0aW1lcywgd2UgZXhwbGljaXRseSBkZXBlbmQgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGJlaW5nIGFycmFuZ2VkIGluIGEgY2VydGFpbiB3YXkuIEZvciBleGFtcGxlLCBpZiBvdXIgc3lzdGVtIHNlbnQgbWVzc2FnZXMgZXZlcnkgMzAgc2Vjb25kcyB0byBhIG5vZGUgaW4gdGhlIHN5c3RlbSwgYW5kIGV4cGVjdHMgdGhhdCBub2RlIHRvIGV4aXN0IGF0IGEgY2VydGFpbiBsb2NhdGlvbiBpbiB0aGUgbmV0d29yaywgd2hhdCBoYXBwZW5zIGlmIHRoYXQgbm9kZSBkaXNhcHBlYXJzPyBPciB3aGF0IGlmIGl0wqBtb3Zlcz88L3A+PHA+SWYgd2UgZGVwZW5kIG9uIG91ciBuZXR3b3JrIGFsd2F5cyDigJxsb29raW5n4oCdIGEgY2VydGFpbiB3YXksIGFuZCBpZiB3ZSBleHBlY3QgZm9yIGl0cyBub2RlcyB0byBhbHdheXMgYmUgPGVtPmFycmFuZ2VkPC9lbT4gYSBjZXJ0YWluIHdheSwgd2UgZmFsbCBpbnRvIHRoZSB0cmFwIG9mIHRoaXMgZmFsbGFjeS4gQW5kIHRoaXMgY2FuIGJlIGFuIGVhc3kgYXNzdW1wdGlvbiB0byBtYWtlLCBlc3BlY2lhbGx5IGlmIHdlIGRvbuKAmXQgdGFrZSB0aGlzIGZhbGxhY3kgaW50byB0byBhY2NvdW50IGluIG91ciBkYWlseSBpbnRlcmFjdGlvbnMgYXMgZGVzaWduZXJzIGFuZCBtYWludGFpbmVycyBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSEgU28sIGl04oCZcyB1cCB0byB1cyB0byBjb25zaWRlciB0aGUgd2F5cyB0aGF0IHdlIG1pZ2h0IGJlIHJlbHlpbmfigIrigJTigIpldmVuIGlmIGluYWR2ZXJ0ZW50bHnigIrigJTigIpvbiB0aGUgdG9wb2xvZ3kgb2Ygb3VyIHN5c3RlbeKAmXPCoG5ldHdvcmsuPC9wPjxoND5TeXN0ZW0gbWFuYWdlbWVudCByZWFsaXRpZXM8L2g0PjxwPkFzc3VtcHRpb25zIGFyZSB2ZXJ5IGVhc3kgdGhpbmdzIHRvIG1ha2XigIrigJTigIp3ZSBtYWtlIHRoZW0gYWxsIHRoZSB0aW1lISBOb3Qgb25seSBjYW4gd2UgbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgb3VyIHN5c3RlbSBhbmQgd2hhdCBpdCBsb29rcyBsaWtlIGFuZCBob3cgaXQgd2lsbCBiZWhhdmUgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzLCBidXQgd2UgY2FuIGFsc28gbWFrZSBiYWQgYXNzdW1wdGlvbnMgYWJvdXQgd2hvIHdpbGwgYmUgbWFpbnRhaW5pbmcgYW5kIGRlYWxpbmcgd2l0aCB0aGF0IHN5c3RlbSBhdCBhbnkgZ2l2ZW7CoHRpbWUuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqNDZzZ3R3N2hGS0tJRjlFVUF6MHFQQS5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzY6IFRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yICh0aGVyZSBhbG1vc3QgY2VydGFpbmx5IGFyZcKgbW9yZSEpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGlzIGlzIGJyaW5ncyB1cyB0byBmYWxsYWN5IHNpeDogPHN0cm9uZz5UaGVyZSBpcyBvbmUgYWRtaW5pc3RyYXRvci4gPC9zdHJvbmc+SW4gbmVhcmx5IGFsbCByZWFsLWxpZmUgc2NlbmFyaW9zLCB0aGVyZSBpcyB1c3VhbGx5IDxlbT5tb3JlPC9lbT4gdGhhbiBvbmUgYWRtaW5pc3RyYXRvciBvZiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mIHZlcnkgc21hbGwgYXBwbGljYXRpb25z4oCK4oCU4oCKb3IgcGVyaGFwcyBhIHN5c3RlbSB0aGF0IGlzIGEgdG95L2hvYmJ5IHByb2plY3QgdGhhdCBvbmx5IGhhcyBvbmUgcGVyc29uIGJ1aWxkaW5nIGFuZCBtYWludGFpbmluZyBpdOKAiuKAlOKAim1vc3Qgc3lzdGVtcyBlbmQgdXAgd2l0aCBtYW55IHBlb3BsZSBpbnZvbHZlZCBpbiB0aGUgbWFpbnRlbmFuY2Ugb2YgdGhlwqBzeXN0ZW0uPC9wPjxwPkFzc3VtaW5nIHRoYXQgb25seSBvbmUgYWRtaW5pc3RyYXRvciBleGlzdHMgdG8gbWFpbnRhaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0gY2FuIGhhdmUgbG9uZyB0ZXJtIHNpZGUtZWZmZWN0cy4gRm9yIGV4YW1wbGUsIGltYWdpbmUgYSBzeXN0ZW0gd2hlcmUgdGhyZWUgYWRtaW5pc3RyYXRvcnMgYXJlIGhlbHBpbmcgdG8ga2VlcCB0aGUgc3lzdGVtIHVwIGFuZCBhZmxvYXQuIFdoYXQgaGFwcGVucyBpZiBvbmUgb2YgdGhvc2UgYWRtaW5pc3RyYXRvcnPigIrigJTigIp3aG8ganVzdCBzbyBoYXBwZW5zIHRvIGJlIGFuIGV4cGVydCBpbiBvbmUgb2YgdGhlIGFzcGVjdCBvZiB0aGUgc3lzdGVt4oCK4oCU4oCKbGVhdmVzIHRoZSB0ZWFtPyBPciwgd2hhdCBpZiBvbmUgb2YgdGhlIHBhcnRzIG9mIHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgYSBkZXBlbmRlbmN5IGFuZCBwYXJ0IG9mIGFuIGV4dGVybmFswqBzZXJ2aWNlPzwvcD48cD5JbiBib3RoIG9mIHRoZXNlIHNpdHVhdGlvbnMsIG9uZSBwYXJ0IG9mIHRoZSBzeXN0ZW0gaXMgbGlrZWx5IHVuZGVyIHRoZSBjb250cm9sIG9mIHNvbWVvbmUgZWxzZSwgYW5kIHdlIGhhdmUgdG8gY29uc2lkZXIgd2hhdCB3ZeKAmWxsIGRvIGlmIHRoYXQgc2VjdGlvbiBvZiB0aGUgc3lzdGVtIG5lZWRzIG1haW50ZW5hbmNlLCBvciB3aGF0IHdpbGwgaGFwcGVuIChhbmQgd2hvIHdpbGwgZml4IHRoZSBwcm9ibGVtLCBub3QgdG8gbWVudGlvbiBob3cgcXVpY2tseSkgaWYgdGhhdCBzZWN0aW9uIG9mIHRoZSBzeXN0ZW0gZ29lc8KgZG93biE8L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpWNGI4VlVEMnlfZ3EycHVoVUdCUkJ3LmpwZWciIC8+PGZpZ2NhcHRpb24+VGhlIG1hbnkgYXNwZWN0cyBvZiBtYWludGFpbiBhIHN5c3RlbSBhcyBhbiBhZG1pbmlzdHJhdG9yLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgc2l4dGggZmFsbGFjeSBpcyByZWFsbHkgaW1wb3J0YW50IHRvIGtlZXAgaW4gbWluZCAoYW5kIGl04oCZcyBzbyBlYXN5IHRvIGZvcmdldCBhYm91dCBlbnRpcmVseSEpLiBXZSBhbHJlYWR5IGtub3cgdGhhdCByZWd1bGFyIHRhc2tzIGxpa2UgbWFpbnRhaW5pbmcgYW5kIHVwZ3JhZGluZyBhIHN5c3RlbSA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3dlZWRpbmctb3V0LWRpc3RyaWJ1dGVkLXN5c3RlbS1idWdzLTI4YTAxZTM3ZjcwYyI+YXJlIHJlc3BvbnNpYmxlPC9hPiBmb3IgY2F1c2luZyBhIGdyZWF0IGRlYWwgb2Ygc29mdHdhcmUgYnVncy4gU28gd2hlbiBhIHN5c3RlbSBoYXMgbWFueSBhZG1pbmlzdHJhdG9ycywgaXTigJlzIG91ciByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3lzdGVtIGNhbiBzdGlsbCBiZSBlYXNpbHkgdXBncmFkZWQgYW5kIG1haW50YWluZWQgYXMgbW9yZSBhbmQgbW9yZSBhZG1pbnMgYXJlIGFkZGVkIHRvIHRoZSBtaXguIFNpbWlsYXJseSwgaWYgb3VyIHN5c3RlbSBkZXBlbmRzIG9uIGEgdGhpcmQtcGFydHkgc2VydmljZSwgd2UgbmVlZCB0byBjb25zaWRlciB3aG8gdGhvc2UgZXh0ZXJuYWwgYWRtaW5pc3RyYXRvcnMgYXJlLCBhbmQgaG93IHdl4oCZbGwgaGFuZGxlIGFuIGV4dGVybmFsIGRlcGVuZGVuY3kgdGhhdCBuZWVkcyBhdHRlbnRpb24uPC9wPjxwPldlIGFsc28gbmVlZCB0byBiZSBzdXJlIHRvIGhhdmUgYSB3YXkgdG8gZW1wb3dlciBhbGwgYWRtaW5pc3RyYXRvcnMgb2YgYSBzeXN0ZW0gdG8gZGVidWcgYW5kIGRpYWdub3NlIGRpZmZlcmVudCBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBUaGlzIGxhc3QgcGllY2Ugb2YgdGhlIHB1enpsZSBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCwgYmVjYXVzZSBhZG1pbmlzdHJhdG9ycyBjYW4gbWFrZSBpbXBvcnRhbnQgZGVjaXNpb25z4oCK4oCU4oCKbGlrZSByZXN0YXJ0aW5nIGEgbm9kZSwgbGltaXRpbmcgYSBxdWFudGl0eSBvZiBkYXRhLCBvciBkZWNpZGluZyB3aGF0IHByb3RvY29scyB0byB1c2XigIrigJTigIphbmQgdGhvc2UgZGVjaXNpb25zIGFyZSBjcnVjaWFsIHRvIG1hbmFnaW5nIGEgc3lzdGVtIGFuZCBrZWVwaW5nIGl0IHJ1bm5pbmcgY29ycmVjdGx5LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmRRODFFSkR5ZlZ6aFY5eGNiWmVWYkEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM3OiBUcmFuc3BvcnQgY29zdCBpcyB6ZXJvIChpdCBpc8Kgbm90ISk8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+QW5vdGhlciDigJxlYXN5IHRvIGRpc21pc3PigJ0gYXNzdW1wdGlvbiBpcyB0aGUgcmVhbGl0eSBvZiB0aGUgY29zdCBvZiBydW5uaW5nIGEgc3lzdGVtLiBUaGlzIGxlYWRzIHVzIHJpZ2h0IHRvIGZhbGxhY3kgc2V2ZW46IDxzdHJvbmc+VHJhbnNwb3J0IGNvc3QgaXMgemVyby48L3N0cm9uZz4gQXMgd2UgbGVhcm5lZCB3aXRoIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTMiPmZhbGxhY3kgdHdvPC9hPiwgaXQgdGFrZXMgdGltZSBmb3IgZGF0YSB0byB0cmF2ZWwgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlcjsgYW5vdGhlciBuYW1lIGZvciB0aGlzIGFtb3VudCBvZiB0aW1lIGlzIDxlbT5sYXRlbmN5PC9lbT4uIFNpbWlsYXJseSwgdGhlIGNvc3Qgb2Ygc2VuZGluZyBkYXRhIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIgYWxzbyBoYXMgb3RoZXIgY29zdHMswqB0b28hPC9wPjxwPkZvciBleGFtcGxlLCBpdCB0YWtlcyA8c3Ryb25nPjxlbT5yZXNvdXJjZXM8L2VtPjwvc3Ryb25nPiB0byBiZSBhYmxlIHRvIHRyYW5zcG9ydCBhbnkgZGF0YSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyIHdpdGhpbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gVGhlc2UgcmVzb3VyY2VzIGhhdmUgYSBwcmljZSB0YWcgYXR0YWNoZWQgdG8gdGhlbSwgYW5kIHRoZXNlIHJlc291cmNlcyBjb3N0wqBtb25leS48L3A+PHA+QWRkaXRpb25hbGx5LCBzZW5kaW5nIGRhdGEgZnJvbSBvbmUgcGxhY2UgdG8gYW5vdGhlciBhbHNvIHRha2VzIHNvbWUgZWZmb3J0IGFuZCB0aW1lIHRvIHR1cm4gdGhlIGRhdGEgaW50byBhIG1hY2hpbmUtcmVhZGFibGUgY29kZSAoYW5kIHN1YnNlcXVlbnRseSwgYmFjayBvdXQgb2YgbWFjaGluZS1yZWFkYWJsZSBjb2RlIGludG8gZGF0YSBhZ2FpbikuIFRoZXNlIHByb2Nlc3NlcyBhcmUga25vd24gYXMgPHN0cm9uZz48ZW0+c2VyaWFsaXphdGlvbjwvZW0+PC9zdHJvbmc+IGFuZCA8c3Ryb25nPjxlbT5kZXNlcmlhbGl6YXRpb248L2VtPjwvc3Ryb25nPiwgYW5kIGFsbCBkYXRhIHRoYXQgaXMgcGFzc2VkIGFyb3VuZCBpbiB0aGUgc3lzdGVtIG5lZWRzIHRvIGJlIHNlcmlhbGl6ZWQgYW5kIGRlc2VyaWFsaXplZCBmcm9tIGEgYnl0ZSBzdHJlYW0gaW50byBzb21lIG9iamVjdCBpbiBtZW1vcnkgdGhhdCBpcyB1c2VkIHRvIHJlcHJlc2VudCB0aGF0IGRhdGEuIE1hbnkgZGV2ZWxvcGVycyBhcmUgZmFtaWxpYXIgd2l0aCBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24gYW5kIHVzZSBpdCBldmVyeSBkYXk7IGhvd2V2ZXIsIG5vdCBhbGwgb2YgdXMgYXJlIG5lY2Vzc2FyaWx5IGNvbnNpZGVyaW5nIHRoZSB0aW1lIGFuZCBlZmZvcnQgdGhhdCB0aGVzZSB0d28gcHJvY2Vzc2VzIHRha2Ugd2hlbmV2ZXIgdGhlecKgaGFwcGVuITwvcD48cD5UaGUgZmFjdCB0aGF0IGl0IGNvc3RzIHRpbWUsIGVmZm9ydCwgYW5kIHJlc291cmNlcyByZW1pbmQgdXMgdGhhdCBpdCBpcyBub3QgZnJlZSB0byBzZW5kIGRhdGEgdGhyb3VnaCBvdXIgc3lzdGVtIGFuZCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gYmFjayBhbmQgZm9ydGguIEhvd2V2ZXIsIGl0IGNhbiBiZSBlYXN5IHRvIGZvcmdldCB0aGlzIHVudGlsIHdlIGdldCBhbiB1bmV4cGVjdGVkIGJpbGwgZnJvbSBBV1Mgb3IgSGVyb2t1LCBhdCB3aGljaCBwb2ludCB3ZSBzdWRkZW5seSByZW1lbWJlciB0aGlzIHJlYWxpdHkuIEtlZXBpbmcgdGhpcyBmYWxsYWN5IGluIG1pbmQgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgYXMgb3VyIHN5c3RlbSBzY2FsZXMgYW5kIG91ciB0cmFuc3BvcnQgY29zdHMgc3RhcnQgdG8gY3JlZXAgdXAgb27CoHVzLjwvcD48aDQ+U3RhbmRhcmRpemF0aW9uIG9mIGHCoHN5c3RlbTwvaDQ+PHA+VGhlIGZpbmFsIGZhbGxhY3kgaXMgb25lIHRoYXQgbWFueSBvZiB1cyBtYXkgbm90IGhhdmUgZXZlciB0aG91Z2h0IGFib3V0LCBwYXJ0aWN1bGFybHkgaWYgd2UgaGF2ZSBiZWVuIHdvcmtpbmcgd2l0aCBmcmFtZXdvcmtzIGFuZCBzeXN0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gYXJvdW5kIGZvciBzb21lIHRpbWUuIFRoZSBlaWdodGggZmFsbGFjeSBicmluZ3MgdXMgYmFjayB0byBvdXIgZ29vZCBvbGQgZnJpZW5kLCB0aGUgbmV0d29yazogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBub3QgaG9tb2dlbmVvdXMuPC9zdHJvbmc+IE1hbnkgb2YgdXMgcHJvYmFibHkga25vdyB0aGlzIGZhbGxhY3kgdG8gaW5oZXJlbnRseSBiZSBmYWxzZTogdGhlIG5vZGVzIGluIGEgbmV0d29yayBjYW4gYmUgYW55dGhpbmcsIHNvIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBhbGwgYmUgdGhlwqBzYW1lITwvcD48cD5JbiBmYWN0LCBtb3N0IGRpc3RyaWJ1dGVkIHN5c3RlbXMgbWF5IGludGVncmF0ZSB3aXRoIGRpZmZlcmVudCBraW5kcyBvZiBkZXZpY2VzLCBwZXJoYXBzIGRpZmZlcmVudCBwcm90b2NvbHMsIGFuZCBhbG1vc3QgY2VydGFpbmx5IHdpbGwgYWRhcHQgdG8gd29yayB3aXRoIHZhcmlvdXMgb3BlcmF0aW5nIHN5c3RlbXMgYW5kIGJyb3dzZXJzLiBBbmQgYmVjYXVzZSB0aGUgbm9kZXMgb2Ygb3VyIG5ldHdvcmsocykgYXJlbuKAmXQgZ29pbmcgdG8gYWxsIGxvb2sgdGhlIHNhbWUsIGl04oCZcyBub3QgYWx3YXlzIHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhleSB3aWxsIGFsbCBiZSBjb25maWd1cmVkIHRoZSBzYW1lLMKgZWl0aGVyLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ0Y1hNUXZXbjNlLXBjdndJVFZsM0EuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICM4OiBUaGUgbmV0d29yayBpcyBob21vZ2VuZW91cyAoaXQgaXNu4oCZdCBpZiB3ZSBkb27igJl0IHVzZSBzdGFuZGFyZHMpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5JbmRlZWQsIG1vc3QgbmV0d29ya3MgYXJlIGhldGVyb2dlbm91cywgYnV0IHRoZSBub2RlcyBpbiBhIHN5c3RlbeKAmXMgbmV0d29yayBzdGlsbCBuZWVkIHRvIHdvcmsgdG9nZXRoZXIgYW5kIGJlIGludGVyb3BlcmFibGUuIENvbnZlbmllbnRseSwgaG93ZXZlciwgbW9zdCBvZiB1cyBkb27igJl0IG5lZWQgdG8gZmVhciB0aGlzIGZhbGxhY3k7IHRoaXMgaXMgd2hlcmUgPHN0cm9uZz48ZW0+c3RhbmRhcmRpemF0aW9uPC9lbT48L3N0cm9uZz4gY29tZXMgaW4gdG8gc2F2ZSB0aGUgZGF5ISBNb3N0IHN5c3RlbXMgdGhlc2UgZGF5cyBhcmUgYXJjaGl0ZWN0ZWQgdG8gcmVseSB1cG9uIGFuZCB1dGlsaXplIHN0YW5kYXJkaXplZCBmb3JtYXRzIHRoYXQgYXJlIGNyZWF0ZWQgdG8gY3JlYXRlIGEgc2hhcmVkIGxhbmd1YWdlIGFtb25nc3QgZGlmZmVyZW50IGVsZW1lbnRzIGluIGEgc3lzdGVtLCBldmVuIGlmIHRoZXkgcGVyaGFwcyBhcmVu4oCZdCBhbGwgY29uZmlndXJlZCB0aGXCoHNhbWUuPC9wPjxwPk1hbnkgb2YgdXMgdXNlIHRoZXNlIHN0YW5kYXJkc+KAiuKAlOKAimxpa2UgSFRUUCBwcm90b2NvbHMsIFJFU1QgQVBJcywgYW5kIEpTT04tZm9ybWF0dGVkIGRhdGHigIrigJTigIpvbiBhIGRhaWx5IGJhc2lzLCBhbmQgdGhlc2Ugc3RhbmRhcmRzIG1ha2UgaXQgbXVjaCBlYXNpZXIgdG8gZGVhbCB3aXRoIGEgaGV0ZXJvZ2VuZW91cyBuZXR3b3JrLiBCdXQgaXTigJlzIHN0aWxsIGltcG9ydGFudCB0byByZW1lbWJlciB0aGlzIGZhbGxhY3kgaW4gdGhlIG9mZiBjaGFuY2UgdGhhdCBvbmUgZGF5LCB3ZSBmaW5kIG91cnNlbHZlcyBidWlsZGluZyBhIHBhcnQgb2YgYSBzeXN0ZW0gdGhhdCBpc27igJl0IHVzaW5nIGEgc3RhbmRhcmRpemVkIGZvcm1hdCEgUm9sbGluZyBhIHByb3ByaWV0YXJ5IHByb3RvY29sIG9mIG9uZeKAmXMgb3duIG1lYW5zIHRoYXQsIGRvd24gdGhlIHJvYWQsIHRoZXJlIHdpbGwgbW9zdCBsaWtlbHkgYmUgYW5vdGhlciBub2RlIHRoYXQgd2lsbCBiZSBpbmNvbXBhdGlibGUgd2l0aCBvdXIgbm9uLXN0YW5kYXJkIGZvcm1hdC48L3A+PHA+SW4gZmFjdCwgSSB0aGluayBpdOKAmXMgd29ydGggdGhpbmtpbmcgYWJvdXQgYWxsIGVpZ2h0IGZhbGxhY2llcywgZXZlbiBpZiB3ZSBhcmUgd29ya2luZyB3aXRoIHN5c3RlbXMgdGhhdCBoYXZlIGJlZW4gYnVpbHQgc28gdGhhdCB3ZSBkb27igJl0IG5lZWQgdG8gY29uc2lkZXIgdGhlc2UgaXNzdWVzLiBKdXN0IGJlY2F1c2Ugd2UgZG9u4oCZdCBydW4gaW50byB0aGVzZSBmYWxsYWNpZXMgb24gYSBkYWlseSBiYXNpcyBkb2VzbuKAmXQgbWVhbiB0aGF0IHRoZXnigJlyZSBub3QgcG93ZXJmdWwhIEluIGZhY3QsIHRoZXkgY2FuIHNuZWFrIHVwIG9uIHVzIGp1c3Qgd2hlbiB3ZeKAmXJlIG5vdCBsb29raW5nLCBhbmQgcHJvdmUgdGhhdCBldmVuIHRoZSBtb3N0IGV4cGVyaWVuY2VkIGRpc3RyaWJ1dGVkIHN5c3RlbXMgZW5naW5lZXJzIGNhbiBtYWtlIGJhZCBhc3N1bXB0aW9ucy48L3A+PGg0PlJlc291cmNlczwvaDQ+PHA+VGhlIGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcgaGF2ZSBiZWVuIGZhaXJseSB3ZWxsLXdyaXR0ZW4gYWJvdXQsIGFuZCB5b3UgY2FuIGZpbmQgc29tZSBnb29kIHJlc291cmNlcyBvbiBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb25zIG9mIHRoZW0sIGZvciBkaWZmZXJlbnQgdGVjaG5vbG9naWVzLiBJZiB5b3XigJlyZSBjdXJpb3VzIHRvIGxlYXJuIG1vcmUsIGNoZWNrIG91dCB0aGUgcmVzb3VyY2VzIGJlbG93ITwvcD48b2w+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnJnb2FyY2hpdGVjdHMuY29tL0ZpbGVzL2ZhbGxhY2llcy5wZGY/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8/c291cmNlPXBvc3RfcGFnZS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI+VW5kZXJzdGFuZGluZyB0aGUgOCBmYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFZpY3RvcsKgQ2hpcmN1PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9tdWx0aW1lZGlhLnRlbG9zLmNvbS9ibG9nL2RlYnVua2luZy10aGUtOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy1wYXJ0LTIvP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPkRlYnVua2luZyB0aGUgOCBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFJhbWlswqBBbGZvbnNvPC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vcGxheWxpc3Q/bGlzdD1QTDFEWnFlVndSTG5EM0VqeWNpWUFPODJkVDlPd2lxOEk1JmFtcDtzb3VyY2U9cG9zdF9wYWdlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIj5GYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgU3lzdGVtczwvYT4sIFVkacKgRGFoYW48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2Jsb2cubmV3cmVsaWMuY29tL2VuZ2luZWVyaW5nL3RoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXJlYm9ybi10aGUtY2xvdWQtZXJhP3NvdXJjZT1wb3N0X3BhZ2UtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48L29sPjxpbWcgc3JjPSJodHRwczovL21lZGl1bS5jb20vXy9zdGF0P2V2ZW50PXBvc3QuY2xpZW50Vmlld2VkJnJlZmVycmVyU291cmNlPWZ1bGxfcnNzJnBvc3RJZD1iOGZmMjliZWVkNTYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxocj48cD48YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZvcmFnaW5nLWZvci10aGUtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLWNvbXB1dGluZy1wYXJ0LTItYjhmZjI5YmVlZDU2Ij5Gb3JhZ2luZyBmb3IgdGhlIEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBDb21wdXRpbmcgKFBhcnQgMik8L2E+IHdhcyBvcmlnaW5hbGx5IHB1Ymxpc2hlZCBpbiA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzIj5iYXNlZHM8L2E+IG9uIE1lZGl1bSwgd2hlcmUgcGVvcGxlIGFyZSBjb250aW51aW5nIHRoZSBjb252ZXJzYXRpb24gYnkgaGlnaGxpZ2h0aW5nIGFuZCByZXNwb25kaW5nIHRvIHRoaXMgc3RvcnkuPC9wPl1dPjwvY29udGVudDplbmNvZGVkPgogICAgICAgIDwvaXRlbT4KICAgICAgICA8aXRlbT4KICAgICAgICAgICAgPHRpdGxlPjwhW0NEQVRBW0ZvcmFnaW5nIGZvciB0aGUgRmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyAoUGFydCAxKV1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZm9yYWdpbmctZm9yLXRoZS1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtY29tcHV0aW5nLXBhcnQtMS0xYjM1YzNiODViNTM/c291cmNlPXJzcy04ZjU1OTkzYzk3M2UtLS0tLS0yPC9saW5rPgogICAgICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHBzOi8vbWVkaXVtLmNvbS9wLzFiMzVjM2I4NWI1MzwvZ3VpZD4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2Rpc3RyaWJ1dGVkLXN5c3RlbXNdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29tcHV0ZXItc2NpZW5jZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtjb2RlXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGRjOmNyZWF0b3I+PCFbQ0RBVEFbVmFpZGVoaSBKb3NoaV1dPjwvZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHB1YkRhdGU+RnJpLCAyMSBKdW4gMjAxOSAwNDoxNToyNSBHTVQ8L3B1YkRhdGU+CiAgICAgICAgICAgIDxhdG9tOnVwZGF0ZWQ+MjAxOS0wNi0yMVQwNDoxNToyNS43MjNaPC9hdG9tOnVwZGF0ZWQ+CiAgICAgICAgICAgIDxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSo0VGM2MWc4Zjd0S3dXMktrYTZFT3FnLmpwZWciIC8+PGZpZ2NhcHRpb24+Rm9yYWdpbmcgZm9yIHRoZSBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5TbyBtdWNoIG9mIGNvbXB1dGluZyBpcyBiYXNlZCBvbiBhc3N1bXB0aW9ucy4gV2UgZGVzaWduIHN5c3RlbXMgb3BlcmF0aW5nIG9uIGEgc2V0IG9mIGFzc3VtcHRpb25zLiBXZSB3cml0ZSBwcm9ncmFtcyBhbmQgYXBwbGljYXRpb25zIGFzc3VtaW5nIGNlcnRhaW4gcGFydHMgb2YgdGhlaXIgc3lzdGVtcyB3aWxsIHdvcmsgYSBjZXJ0YWluIHdheS4gQW5kIHdlIGFsc28gYXNzdW1lIHRoYXQgc29tZSB0aGluZ3MgY2FuIHBvdGVudGlhbGx5IGdvIHdyb25nLCBhbmQgd2UgKGhvcGVmdWxseSkgYXR0ZW1wdCB0byBhY2NvdW50IGZvcsKgdGhlbS48L3A+PHA+T25lIGJpZyBpc3N1ZSB3aXRoIGJ1aWxkaW5nIGNvbXB1dGVyLXkgdGhpbmdzIGlzIHRoYXQsIGV2ZW4gdGhvdWdoIHdl4oCZcmUgb2Z0ZW4gZGVhbGluZyB3aXRoIGNvbXBsZXggc3lzdGVtcywgd2UgYXJlbuKAmXQgYWx3YXlzIGNhcGFibGUgb2YgcmVhc29uaW5nIGFib3V0IG9uIGEgYmlnLXBpY3R1cmUgbGV2ZWwuIERpc3RyaWJ1dGVkIHN5c3RlbXMgYXJlIGNlcnRhaW5seSBhIGdyZWF0IGV4YW1wbGUgb2YgdGhpcyAoeW91IGtuZXcgd2hlcmUgSSB3YXMgZ29pbmcgd2l0aCB0aGlzLCBkaWRu4oCZdCB5b3U/KS4gRXZlbiBhIOKAnHNpbXBsZeKAnSBkaXN0cmlidXRlZCBzeXN0ZW0gaXNu4oCZdCBzbyBzaW1wbGUsIGJlY2F1c2UgYnkgZGVmaW5pdGlvbiBpdCBpbnZvbHZlcyBtb3JlIHRoYW4gb25lIG5vZGUsIGFuZCB0aGUgbm9kZXMgaW4gdGhlIHN5c3RlbSBoYXZlIHRvIGNvbW11bmljYXRlIGFuZCB0YWxrIHRvIG9uZSBhbm90aGVyIHRocm91Z2ggYSBuZXR3b3JrLiBFdmVuIGluIGEgc21hbGwgZGlzdHJpYnV0ZWQgc3lzdGVtcyB3aXRoIGp1c3QgdHdvIG5vZGVzLCB3ZSBtYWtlIGNlcnRhaW4gYXNzdW1wdGlvbnMgYWJvdXQgaG93IHRoYXQgc3lzdGVtIGlzIGdvaW5nIHRvwqB3b3JrLjwvcD48cD5IZXJl4oCZcyB0aGUgdGhpbmcgYWJvdXQgbWFraW5nIGFzc3VtcHRpb25zLCB0aG91Z2g6IHRoZXkgY2FuIGJlIHdyb25nISBBcyBpdCB0dXJucyBvdXQsIHRoZXJlIGFyZSBzb21lIGNvbW1vbiwgaW5jb3JyZWN0IGFzc3VtcHRpb25zIHRoYXQgd2Ugb2Z0ZW4gbWFrZSBhYm91dCBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEluIGZhY3QgdGhleSBhcmUgc28gdWJpcXVpdG91cyB0aGF0IHRoZXkgaGF2ZSBhIG5hbWUhIEnigJltIHRhbGtpbmcsIG9mIGNvdXJzZSwgYWJvdXQgdGhlIGVpZ2h0IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmcuIEFuZCB3aGF0IGFyZSB0aGV5PyBXZWxsLCBpdOKAmXMgdGltZSB0byBmaW5kwqBvdXQuPC9wPjxoND5Bc3N1bXB0aW9ucyBnb25lwqB3cm9uZzwvaDQ+PHA+VGhlIGVpZ2h0IGZhbGxhY2llcyBhcyB3ZSBrbm93IHRoZW0gdG9kYXkgYWN0dWFsbHkgc3RhcnRlZCBvZmYgYXMganVzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggYXJlIHRoZSBvbmVzIHRoYXQgd2XigJlsbCBjb3ZlciBpbiB0aGlzIHBvc3QuIFRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcyB3ZXJlIGNyZWF0ZWQgaW4gdGhlIGVhcmx5IDkw4oCZcyAoc29tZXRpbWUgYWZ0ZXIgMTk5MSkgYnkgdHdvIFN1biBNaWNyb3N5c3RlbXMgZW5naW5lZXJzLCBCaWxsIEpveSBhbmQgRGF2ZcKgTHlvbi48L3A+PHA+SmFtZXMgR29zbGluZywgd2hvIHdhcyBhIGZlbGxvdyBhdCBTdW4gTWljcm9zeXN0ZW1zIGF0IHRoZSB0aW1l4oCK4oCU4oCKYW5kIHdvdWxkIGxhdGVyIGdvIG9uIHRvIGNyZWF0ZSB0aGUgSmF2YSBwcm9ncmFtbWluZyBsYW5ndWFnZeKAiuKAlOKAimNsYXNzaWZpZWQgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXMg4oCcVGhlIEZhbGxhY2llcyBvZiBOZXR3b3JrZWQgQ29tcHV0aW5n4oCdLiBBIGJpdCBsYXRlciB0aGF0IGRlY2FkZSwgUGV0ZXIgRGV1dHNjaCwgYW5vdGhlciBGZWxsb3cgYXQgU3VuLCBhZGRlZCBmYWxsYWNpZXMgZml2ZSwgc2l4LCBhbmQgc2V2ZW4uIEluIDE5OTcsIEdvc2xpbmcgYWRkZWQgdGhlIGVpZ2h0aCBhbmQgZmluYWwgZmFsbGFjeS4gU28gbXVjaCBvZiB0aGUgd29yayBkb25lIHRvIGNvZGlmeSB0aGlzIGxpc3Qgd2FzIGluc3BpcmVkIGJ5IHdvcmsgdGhhdCB3YXMgYWN0dWFsbHkgaGFwcGVuaW5nIGF0IFN1biBNaWNyb3N5c3RlbXMgYXQgdGhlIHRpbWUuIEFuZCB3aGlsZSBEZXV0c2NoIGlzIHRoZSBvbmUgd2hvIGlzIG9mdGVuIGNyZWRpdGVkIHdpdGggaGF2aW5nIOKAnGNyZWF0ZWTigJ0gdGhlIGVpZ2h0IGZhbGxhY2llcywgY2xlYXJseSBpdCB3YXMgYSBjb21iaW5lZCwgZ3JvdXAgZWZmb3J0IChhcyBpcyBzbyBvZnRlbiB0aGUgY2FzZSBpbiBjb21wdXRpbmchKS48L3A+PHA+QWxyaWdodCwgc28gbm93IHRoYXQgd2XigJl2ZSBnb3Qgc29tZSBoaXN0b3J5IHVuZGVyIG91ciBiZWx0LCBsZXTigJlzIGdldCBpbnRvIHNvbWUgb2YgdGhlIHByYWN0aWNhbCBhc3BlY3RzIG9mIHRoaXMgcHJvYmxlbS4gTGV04oCZcyBmaXJzdCBzdGFydCB3aXRoIHVuZGVyc3RhbmRpbmcgd2hhdCB3ZeKAmXJlIHRhbGtpbmcgYWJvdXQgd2hlbiB3ZSBzYXkgYSDigJxmYWxsYWN54oCdIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZy4gV2hhdCBkb2VzIHRoYXQgbWVhbizCoGV4YWN0bHk/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqVEdXWDZVdUxGcVdtc2Q4cVFweWswZy5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgZXhhY3RseSBJUyBhIGZhbGxhY3kgd2hlbiBpdCBjb21lcyB0byBkaXN0cmlidXRlZCBjb21wdXRpbmc/PC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPldlbGwsIGEgPHN0cm9uZz48ZW0+ZmFsbGFjeTwvZW0+PC9zdHJvbmc+IGlzIGEga2luZCBvZiBhc3N1bWVkIGZhY3Qgb3IgYmVsaWVmOyBob3dldmVyLCBldmVuIHRob3VnaCBpdCBpcyBhc3N1bWVkIHRvIGJlIHRydWUsIHRoYXQgaXMgdXN1YWxseSBub3QgdGhlIGNhc2UgaW4gcHJhY3RpY2UuIEEgZmFsbGFjeSBpcyBqdXN0IGEgYmVsaWVmIHRoYXQgaXMgYSBtaXNjb25jZXB0aW9uLiBCdXQgd2hhdCBkb2VzIHRoYXQgbWVhbiBpbiB0aGUgY29udGV4dCBvZiBjb21wdXRpbmc/IFdlbGwsIGEgZmFsbGFjeSBtYWRlIGFib3V0IGEgZGlzdHJpYnV0ZWQgc3lzdGVtIGlzIGFuIGFzc3VtcHRpb24gYWJvdXQgdGhlIHN5c3RlbSBtYWRlIGJ5IHRoZSBkZXZlbG9wZXJzLCB3aGljaCBvZnRlbiBlbmRzIHVwIGJlaW5nIGluYWNjdXJhdGUgYW5kIHdyb25nIGluIHRoZSBsb25nIHJ1bi4gSW4gb3RoZXIgd29yZHMsIHRoZXkgYXJlIGJhZCBhc3N1bXB0aW9ucyB0b8KgbWFrZS48L3A+PGJsb2NrcXVvdGU+V2UgY2FuIHRoaW5rIG9mIHRoZSBlaWdodCBmYWxsYWNpZXMgYXMgZWlnaHQgY29tbW9uIG1pc2NvbmNlcHRpb25zIHRoYXQgZGV2ZWxvcGVycyBvZiBkaXN0cmlidXRlZCBzeXN0ZW1zIG9mdGVuIGZhbGwgcHJleSB0bywgd2hpY2ggd2Ugd2FudCB0b8KgYXZvaWQuPC9ibG9ja3F1b3RlPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqMml4ZzMteWN1a092UlFIVWsyZlI2dy5qcGVnIiAvPjxmaWdjYXB0aW9uPlRoZSA4IGZhbGxhY2llcyBvZiBkaXN0cmlidXRlZCBjb21wdXRpbmc8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+U28sIGxldOKAmXMgdGFrZSBhIGxvb2sgYXQgdGhlc2UgZWlnaHQgZmFsbGFjaWVzLCBzaGFsbMKgd2U/PC9wPjxwPlRoZSBlaWdodCBmYWxsYWNpZXMgb2YgZGlzdHJpYnV0ZWQgY29tcHV0aW5nIGFyZSBhc8KgZm9sbG93czo8L3A+PG9sPjxsaT5UaGUgbmV0d29yayBpcyByZWxpYWJsZS48L2xpPjxsaT5MYXRlbmN5IGlzwqB6ZXJvLjwvbGk+PGxpPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L2xpPjxsaT5UaGUgbmV0d29yayBpc8Kgc2VjdXJlLjwvbGk+PGxpPlRvcG9sb2d5IGRvZXNu4oCZdMKgY2hhbmdlLjwvbGk+PGxpPlRoZXJlIGlzIG9uZSBhZG1pbmlzdHJhdG9yLjwvbGk+PGxpPlRyYW5zcG9ydCBjb3N0IGlzwqB6ZXJvLjwvbGk+PGxpPlRoZSBuZXR3b3JrIGlzIGhvbW9nZW5vdXMuPC9saT48L29sPjxwPkluIHRoaXMgcG9zdCwgd2XigJlsbCBmb2N1cyBqdXN0IG9uIHRoZSBmaXJzdCBmb3VyIGZhbGxhY2llcywgd2hpY2ggd2Ugbm93IGtub3cgd2VyZSB0aGUgb3JpZ2luYWwg4oCcRmFsbGFjaWVzIG9mIE5ldHdvcmtlZCBDb21wdXRpbmfigJ0hIENvbnZlbmllbnRseSwgdGhlc2UgZmlyc3QgZm91ciBmYWxsYWNpZXMgYXJlIGFjdHVhbGx5IGFsbCBhbmNob3JlZCBhcm91bmQgb25lIGNlbnRyYWwsIGtleSBjaGFyYWN0ZXI6IHRoZSBuZXR3b3JrLiBBbmQsIGFzIHdl4oCZcmUgYWJvdXQgdG8gc2VlLCB0aGUgbmV0d29yayBpcyBhIHRyaWNreSBsaXR0bGUgZmVsbG93LiBPZiBjb3Vyc2UsIGl04oCZcyBraW5kIG9mIGRpZmZpY3VsdCB0byBoYXZlIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHdpdGhvdXQgYSBuZXR3b3JrIHNvIHdlIGhhdmUgdG8gZ2V0IHVzZWQgdG8gZGVhbGluZyB3aXRoIHRoaXMgdHJpY2t5IGNoYXJhY3Rlci48L3A+PHA+TGV04oCZcyBsZWFybiBhYm91dCB3aGF0IG1ha2VzIHRoZSBuZXR3b3JrIGhhcmQgdG8gY29udGVuZCB3aXRoLCBhbmQgd2h5IHNvbWUgb2YgdGhlc2UgZmFsbGFjaWVzIGFyZSBlYXN5IHRvwqBhc3N1bWUuPC9wPjxoND5UaGUgdHJvdWJsZSB3aXRowqBuZXR3b3JrczwvaDQ+PHA+T3VyIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIG5vIG1hdHRlciBob3cgY29tcGxleCBvciBpbnZvbHZlZCB0aGV5IGFyZSwgYWxsIGV4aXN0IHdpdGhpbiBhIG5ldHdvcmsuIFRoZSBub2RlcyBvZiBvdXIgc3lzdGVtIGhhdmUgdG8gdGFsayB0byBvbmUgYW5vdGhlciBhbmQgc2VuZCBhbmQgcmVjZWl2ZSBtZXNzYWdlcyB0byBjb21tdW5pY2F0ZSBhbmQgZGVsaXZlciBkYXRhLiBCZWNhdXNlIHRoZSBzeXN0ZW0gaXMgZGlzdHJpYnV0ZWQsIHBhcnRzIG9mIGl0IHdpbGwgbGl2ZSBpbiBkaWZmZXJlbnQgcGxhY2VzLCBhbmQgdGhlIG5ldHdvcmsgaXMgdGhlIGFuY2hvcmluZyBwb2ludCBieSB3aGljaCB0aGUgY29tcG9uZW50cyBvZiB0aGUgc3lzdGVtIHdpbGwgY29tbXVuaWNhdGUuPC9wPjxwPlRoaXMgYnJpbmdzIHVzIHRvIGZhbGxhY3kgb25lOiA8c3Ryb25nPlRoZSBuZXR3b3JrIGlzIHJlbGlhYmxlLjwvc3Ryb25nPiBSZW1lbWJlciwgdGhlc2UgYXJlIGZhbGxhY2llcyB0aGF0IHdl4oCZcmUgZGVhbGluZyB3aXRoLCBzbyB0aGUgbmV0d29yayBiZWluZyByZWxpYWJsZSBpcyBhIHRydWUgbWlzY29uY2VwdGlvbjsgdGhlIG5ldHdvcmsgaXMgPGVtPm5vdDwvZW0+IHJlbGlhYmxlITwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmVpMThGcG0xZWF4UGtySU0wMGtpR3cuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMxOiBUaGUgbmV0d29yayBpcyByZWxpYWJsZSAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlNvIG1hbnkgdGhpbmdzIHdpdGhpbiBhIG5ldHdvcmsgY2FuIGdvIHdyb25nLiBIYXJkd2FyZSBjYW4gZmFpbCwgdGhlIHBvd2VyIGNhbiBnbyBvdXQsIHRoZSBzaWduYWwgY291bGQgZ2V0IHNwb3R0eSwgb3IgdGhlIG5ldHdvcmsgY291bGQgZXZlbiBiZWNvbWUgY29tcHJvbWlzZWQhIEl0IG1pZ2h0IHNlZW0gb2J2aW91cyB0aGF0IGEgbmV0d29yayBpc27igJl0IHJlbGlhYmxlLCBidXQgYXMgZGVzaWduZXJzIG9mIGEgZGlzdHJpYnV0ZWQgc3lzdGVtLCB3ZSBjYW4gc29tZXRpbWVzIGZvcmdldCB0aGlzIHdoZW4gd2UgYXJlIHdyaXRpbmcgY29kZSB0aGF0IGlzIGdvaW5nIHRvIHJ1biBvbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbS4gV2Ugd3JpdGUgdGhhdCBjb2RlIHBlcmhhcHMgb3BlcmF0aW5nIHVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgYnV0IHdoZW4gdGhlIG5ldHdvcmsgaW5ldml0YWJseSBiZWNvbWVzIDxlbT51bnJlbGlhYmxlPC9lbT4gYXQgc29tZSBwb2ludCBkb3duIHRoZSByb2FkLCB3ZSByZWFsaXplIHRoYXQgd2UgbWFkZSBhIGJhZCBhc3N1bXB0aW9uIGFuZCBpdCBlbmRzIHVwIGFmZmVjdGluZyBvdXIgc3lzdGVtIGFkdmVyc2VseS4gVGh1cywgaXQgYmVjb21lcyBvdXIgam9iIHRvIGtlZXAgdGhpcyBmYWxsYWN5IGluIG1pbmQgYW5kIG5vdCBmb3JnZXQgdGhhdCB0aGUgbmV0d29yayBjYW5ub3QgYmUgcmVsaWVkwqB1cG9uLjwvcD48cD5Ob3csIGJlZm9yZSB3ZSBnZXQgdG9vIG11Y2ggZnVydGhlciBpbnRvIG5ldHdvcmtz4oCK4oCU4oCKbm90IHRvIG1lbnRpb24gdGhlIGZhbGxhY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlbeKAiuKAlOKAinRoZXJlIGFyZSBzb21lIGltcG9ydGFudCB0ZXJtcyBmb3IgdXMgdG8gbGVhcm4uIFdoZW4gd2UgdGFsayBhYm91dCBtZXNzYWdlcyBiZWluZyBzZW50IHRocm91Z2ggYSBuZXR3b3JrLCB3ZeKAmXJlIHVzdWFsbHkgcmVmZXJyaW5nIHRvIGRhdGEgYmVpbmcgc2VudCBhY3Jvc3MgdGhlIG5ldHdvcmsuIEJ1dCB3ZSBjYW4gdGFsayBhYm91dCBkYXRhIGFuZCB0aGUgd2F5IGl0IGlzIHNlbnQgaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBsYXRlbmN5IGFuZCBiYW5kd2lkdGguPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqcWRVdzNBa2t3bF9ZT1oyQW5sdlQtZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkxhdGVuY3kgdmVyc3VzIGJhbmR3aWR0aDwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD48c3Ryb25nPjxlbT5MYXRlbmN5PC9lbT48L3N0cm9uZz4gaXMgdGhlIG1lYXN1cmUgb2YgaG93IDxlbT5kZWxheWVkPC9lbT4gc29tZSBkYXRhIGlzIHRvIGFycml2ZSwgYmFzZWQgb24gd2hlcmV2ZXIgaXQgd2FzIHNlbnQuIFdlIGNhbiB0aGluayBvZiBsYXRlbmN5IGFzIHRoZSBzcGVlZCBhdCB3aGljaCBvdXIgZGF0YSB0cmF2ZWxzIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIsIG9yIGhvdyBsb25nIGl0IHRha2VzIGZvciB0aGUgZGF0YSB0byBhcnJpdmUgZnJvbSBub2RlIEEgdG8gbm9kZSBCIGluIG91ciBzeXN0ZW0uIExhdGVuY3kgaXMgYSBjb25jZXB0IHRoYXQgbWFueSBkZXZlbG9wZXJzIG1heSBhbHJlYWR5IGJlIHF1aXRlIGZhbWlsaWFyIHdpdGgsIGJlY2F1c2Ugd2Ugb2Z0ZW4gcmVmZXIgdG8gdGhlIGxhdGVuY3kgb2YgZGF0YSBpbiB0aGUgY29udGV4dCBvZiBtaWxsaXNlY29uZHMuIEZvciBleGFtcGxlLCBpZiBpdCB0b29rIGEgcmVxdWVzdCA0MDAgbWlsbGlzZWNvbmRzIHRvIGJlIHNlcnZlZCBmcm9tIGEgc2VydmVyIChub2RlIEEpIHRvIGEgY2xpZW50IChub2RlIEIpLCB3ZSBjYW4gc2F5IHRoYXQgdGhlIGxhdGVuY3kgb2YgdGhhdCBkYXRhIGJlaW5nIHNlbnQgd2FzIGRlbGF5ZWQgYnkgNDAwIG1pbGxpc2Vjb25kcywgb3IgdGhhdCBpdCB0b29rIDAuNCBzZWNvbmRzIGZvciB0aGUgbWVzc2FnZSB0cmF2ZWwgZnJvbSB0aGUgc2VydmVyIHRvIHRoZSBjbGllbnQuIE1hbnkgcGVyZm9ybWFuY2UtbWluZGVkIGRldmVsb3BlcnMgYXJlIG9mdGVuIHRoaW5raW5nIG9mIGxhdGVuY3kgd2hlbiB0aGV5IGNvbnNpZGVyIHdoYXQgdG8gb3B0aW1pemUgb3IgaW1wcm92ZSBpbiB0aGVpciBhcHBsaWNhdGlvbnMgb3LCoHN5c3RlbXMuPC9wPjxwPjxzdHJvbmc+PGVtPkJhbmR3aWR0aDwvZW0+PC9zdHJvbmc+LCBvbiB0aGUgb3RoZXIgaGFuZCwgaXMgYSBtZWFzdXJlIG9mIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgZnJvbSBvbmUgcG9pbnQgdG8gYW5vdGhlciBpbiBhIGNlcnRhaW4gcGVyaW9kIG9mIHRpbWUuIFdlIG9mdGVuIHRhbGsgYWJvdXQgYmFuZHdpZHRoIGluIHRoZSBjb250ZXh0IG9mIGludGVybmV0IHNwZWVkIChmb3IgZXhhbXBsZSwgbWVnYWJpdHMgcGVyIHNlY29uZCBvciBNYnBzKSBiZWNhdXNlIHdl4oCZcmUgcmVmZXJyaW5nIHRvIGhvdyBtdWNoIGRhdGEgY2FuIGJlIHNlbnQgb3ZlciBvdXIgc3BlY2lmaWMgbmV0d29yaywgb3IgdGhlIGNhcGFjaXR5IG9mIG91ciBuZXR3b3JrIHRvIHNlbmQgc29tZSBhbW91bnQgb2YgZGF0YSBpbiBhIGdpdmVuIHNwYW4gb2bCoHRpbWUuPC9wPjxwPldoaWxlIGxhdGVuY3kgaXMgdGhlIGFjdHVhbCBzcGVlZCBhdCB3aGljaCBkYXRhIGdldHMgdG8gaXRzIGRlc3RpbmF0aW9uIHZpYSB0aGUgbmV0d29yaywgYmFuZHdpZHRoIGlzIHRoZSBjYXBhY2l0eSBvZiBuZXR3b3JrIHRvIHNlbmQgYSBjZXJ0YWluIGFtb3VudCBvZiBkYXRhIHRvIGl0cyBkZXN0aW5hdGlvbi4gVW5kZXJzdGFuZGluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBpcyBpbXBvcnRhbnQgdG8gd3JhcHBpbmcgb3VyIGhlYWRzIGFyb3VuZCB0aGUgc2Vjb25kIGFuZCB0aGlyZCBmYWxsYWNpZXMsIHNvIGxldOKAmXMgbGVhcm4gYWJvdXQgdGhvc2UgdHdvwqBuZXh0ITwvcD48aDQ+U29tZSBmYWxsYWNpZXMgaHVydCBtb3JlIHRoYW7CoG90aGVyczwvaDQ+PHA+Tm93IHRoYXQgd2Uga25vdyB3aGF0IOKAnGxhdGVuY3nigJ0gYWN0dWFsbHkgbWVhbnMsIHdlIGFyZSBiZXR0ZXIgZXF1aXBwZWQgdG8gdW5kZXJzdGFuZCBmYWxsYWN5IHR3bzogPHN0cm9uZz5MYXRlbmN5IGlzIHplcm88L3N0cm9uZz4uIFVuZm9ydHVuYXRlbHksIHRoaXMgaXMgYWxzbyBhIG1pc2NvbmNlcHRpb24uPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYnRlU2s0OGpJT0FMdnlNMVhOTzhXZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzI6IExhdGVuY3kgaXMgemVybyAoaXQgaXPCoG5vdCkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoaXMgaXMgcGVyaGFwcyBhbiBlYXN5IGZhbGxhY3kgdG8gZmFsbCBwcmV5IHRvIHNpbmNlLCBpbiBvdXIgbG9jYWwgZW52aXJvbm1lbnRzIG9yIGluIHRoZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgd2UgbWF5IGV4cGVyaWVuY2UgYSBtdWNoIGxvd2VyIGxhdGVuY3k7IGluIG90aGVyIHdvcmRzLCB3ZSBsaWtlbHkgZXhwZXJpZW5jZSBhIHNob3J0IGFtb3VudCBvZiBkZWxheSB0aW1lIHdoZW4gaXQgY29tZXMgdG8gc2VuZGluZyBvciByZWNlaXZpbmcgZGF0YS4gSG93ZXZlciwgdGhhdCBsb3cgbG9jYWwgbGF0ZW5jeSBkb2VzbuKAmXQgYWNjdXJhdGVseSByZWZsZWN0IHRoZSBkZWxheSBvZiB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gbWlnaHQgZmVlbOKAiuKAlOKAimVzcGVjaWFsbHkgZ2l2ZW4gZGlmZmVyZW50IG5ldHdvcmtzLjwvcD48cD5XZeKAmXZlIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvc2NhbGFiaWxpdHktcHJvYmxlbXMtaGlkZGVuLWNoYWxsZW5nZXMtb2YtZ3Jvd2luZy1hLXN5c3RlbS1mNzQzMTNiMDYzYzMiPmFscmVhZHkgbGVhcm5lZCBhYm91dDwvYT4gbG9jYWwtYXJlYSBuZXR3b3JrcyAoTEFOKSBhbmQgd2lkZS1hcmVhIG5ldHdvcmtzIChXQU4pLiBXZSBrbm93IHRoYXQgaW4gYSBXQU4sIGRhdGEgaGFzIHRvIHRyYXZlbCBmdXJ0aGVyIGZyb20gb25lIG5vZGUgdG8gYW5vdGhlciwgc2luY2UgdGhlIG5ldHdvcmsgbWF5IHNwYW4gbGFyZ2UgZ2VvZ3JhcGhpY2FsIGRpc3RhbmNlcy4gVGhpcyBpcyBpbiBjb250cmFzdCB0byBhIExBTiwgd2hpY2ggaXMgYSBuZXR3b3JrIHdpdGggZGV2aWNlcyBpbiB0aGUgc2FtZSBidWlsZGluZyBvciByb29tLCBhbmQgdGh1cyB0aGUgZGF0YSBiZWluZyBzZW50IGFyb3VuZCBoYXMgbXVjaCBsZXNzIG9mIGEgZGlzdGFuY2UgdG/CoHRyYXZlbC48L3A+PHA+V2UgY2Fubm90IGFzc3VtZSB0aGF0IG91ciBzeXN0ZW0gd2lsbCBhbHdheXMgb3BlcmF0ZSBvbiBhIGxvY2FsLWFyZWEgbmV0d29yayAoaW4gZmFjdCwgbW9zdCBkaXN0cmlidXRlZCBzeXN0ZW1zIG9wZXJhdGUgb24gYSBXQU4pLCBhbmQgdGh1cyB3ZSBrbm93IHRoYXQgb3VyIGRhdGEgaGFzIGEgcGh5c2ljYWwgZGlzdGFuY2UgdG8gdHJhdmVsLiBCeSBwcm94eSwgd2Ugc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGVyZSB3aWxsIGJlIG5vIOKAnGRlbGF54oCdIG9yIHplcm8gbGF0ZW5jeSBiZXR3ZWVuIHNvbWUgZGF0YSBiZWluZyBzZW50IGFuZCB0aGF0IGRhdGEgYmVpbmcgcmVjZWl2ZWQuIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgdGhhdCBoYXMgdG8gdHJhdmVsIGFjcm9zcyB0aGUgd29ybGQgZnJvbSBQb3J0bGFuZCB0byBQYXJpcyB3aWxsIGhhdmUgbW9yZSBsYXRlbmN5IHRoYW4gYSByZXF1ZXN0IHRyYXZlbGluZyBmcm9tIGEgbWFjaGluZSBpbiBvbmUgcm9vbSB0b8KgYW5vdGhlci48L3A+PGJsb2NrcXVvdGU+U29tZSBsYXRlbmN5IGlzIGEgbGltaXRhdGlvbiBvZiBuZXR3b3Jrczsgd2Ugc2hvdWxkIGJlIHdpc2UgdG8gbm90IGJ1aWxkIGEgc3lzdGVtIHRoYXQgYXNzdW1lcyB0aGF0IHN1Y2ggYSBkZWxheSBpcyBub25leGlzdGVudC4gV2Ugd2lsbCBjZXJ0YWlubHkgYmUgYml0dGVuIGJ5IHN1Y2ggYSBmYWxzZSBhc3N1bXB0aW9uIGluIHRoZcKgZnV0dXJlLjwvYmxvY2txdW90ZT48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKm5uVzVZb3ZZSkI3ODROelZLaEJ3RlEuanBlZyIgLz48ZmlnY2FwdGlvbj5GYWxsYWN5ICMzOiBCYW5kd2lkdGggaXMgaW5maW5pdGUgKGl0IGlzwqBub3QpLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5UaGUgdGhpcmQgZmFsbGFjeSBpcyBzaW1pbGFyIHRvIHRoaXMgZmFsc2UgYXNzdW1wdGlvbiBhcyB3ZWxsOiA8c3Ryb25nPkJhbmR3aWR0aCBpcyBpbmZpbml0ZS48L3N0cm9uZz4gSnVzdCBhcyBsYXRlbmN5IGlzIG5vdCB6ZXJvLCB0aGUgY2FwYWNpdHkgb2YgYSBuZXR3b3JrIHRvIHNlbmQgZGF0YSBpcyBub3QgdW5saW1pdGVkLiBBcyBjb21wdXRpbmcgdGVjaG5vbG9neSBoYXMgaW1wcm92ZWQgb3ZlciB0aGUgeWVhcnPigIrigJTigIphbmQgY2VydGFpbmx5IHNpbmNlIHRoZSBlYXJseSA5MOKAmXMgd2hlbiB0aGUgRmFsbGFjaWVzIHdlcmUgY29pbmVk4oCK4oCU4oCKdGhlIGJhbmR3aWR0aCBvZiBvdXIgbmV0d29ya3Mga2VlcHMgZ2V0dGluZyBiZXR0ZXIgYW5kIGJldHRlciwgYW5kIHdl4oCZcmUgYWJsZSB0byBzZW5kIG1vcmUgZGF0YSBhY3Jvc3Mgb3VyIGRhdGEgaW4gYSBnaXZlbiBhbW91bnQgb2bCoHRpbWUuPC9wPjxwPkhvd2V2ZXIsIGV2ZW4gd2l0aCB0aGVzZSBpbXByb3ZlbWVudHMsIG5ldHdvcmtzIHN0aWxsIGRvbuKAmXQgaGF2ZSA8ZW0+dW5saW1pdGVkPC9lbT4gY2FwYWNpdHkgYW5kIGNhbm5vdCBzZW5kIGluZmluaXRlbHkgbGFyZ2UgYW1vdW50cyBvZiBkYXRhLiBXaGVuIHdlIGRlc2lnbiBhIGRpc3RyaWJ1dGVkIHN5c3RlbSwgaXQgd291bGQgYmVob292ZSB1cyB0byBub3QgYXNzdW1lIHRoYXQgYW55IGFtb3VudCBvZiBkYXRhIGNhbiBiZSBzZW50IGFjcm9zcyB0aGUgbmV0d29yay4gRm9yIGV4YW1wbGUsIHdlIG1heSBoYXZlIHNvbWUgdXNlciBvZiBvdXIgc3lzdGVtIHRoYXQgaGFzIGEgbmV0d29yayB3aXRoIGEgbGltaXRlZCBiYW5kd2lkdGggYW5kIGEgbG93ZXIgY2FwYWNpdHk7IGZvciB0aGF0IHVzZXLigJlzIGV4cGVyaWVuY2UsIHNlbmRpbmcgYSBsYXJnZSBhbW91bnQgb2YgZGF0YSAoc3VjaCBhcyBsYXJnZSBpbWFnZXMgb3IgdmVuZG9yZWQsIGRlcGVuZGVudCBmaWxlcykgd291bGQgbWVhbiB0aGF0IHdl4oCZZCBiZSBzZW5kaW5nIGZhciBtb3JlIGRhdGEgdGhhbiB0aGVpciBuZXR3b3JrIHdhcyBjYXBhYmxlIG9mIHNlbmRpbmcgb3ZlciB0aGUgbmV0d29yayBpbiBhIHJlYXNvbmFibGUgYW1vdW50IG9mwqB0aW1lLjwvcD48cD5GaW5hbGx5LCB3ZSBjb21lIHRvIGZhbGxhY3kgZm91ciwgd2hpY2ggaXMgcGVyc29uYWxseSBqdXN0IG15IGZhdm9yaXRlIG9uZTogPHN0cm9uZz5UaGUgbmV0d29yayBpcyBzZWN1cmUuPC9zdHJvbmc+IFRoZXJlIGFyZSBqdXN0IHNpbXBsZSBzbyBtYW55IHdheXMgdGhhdCBhIG5ldHdvcmsgY2FuIGJlIGF0dGFja2VkIG9yIGNvbXByb21pc2VkLCBmcm9tIHVuZW5jcnlwdGVkIG1lc3NhZ2VzIHRvIHZ1bG5lcmFiaWxpdGllcyBpbiBkZXBlbmRlbmNpZXMgdG8gb3BlbiBzb3VyY2UgY29kZSwgb3IgZXZlbiBqdXN0IGJ1Z3MgaW4gdGhpcmQtcGFydHkgc29mdHdhcmVzIHRoYXQgb3VyIHN5c3RlbSBtaWdodCBkZXBlbmQgb24gKG5vdCB0byBtZW50aW9uIGJ1Z3MgaW4gb3VyIG93biBzeXN0ZW1zLMKgdG9vISkuPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqT19va0N0MEdYSm1oUE03MUNhS0xoZy5qcGVnIiAvPjxmaWdjYXB0aW9uPkZhbGxhY3kgIzQ6IFRoZSBuZXR3b3JrIGlzIHNlY3VyZSAoaXQgREVGSU5JVEVMWSBpc8Kgbm90ISkuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPlRoZSBtaXNjb25jZXB0aW9uIHRoYXQgdGhlIG5ldHdvcmsgaXMg4oCcc2VjdXJl4oCdIGlzIGEgaGFyZCBvbmUgdG8gb3ZlcmNvbWUsIHNpbmNlLCBpZiB3ZSByZWFsbHkgc3RhcnQgdG8gdGhpbmsgYWJvdXQgaXQsIG5vIG5ldHdvcmsgaXMgcmVhbGx5IHNlY3VyZS4gSW5kZWVkLCB0aGUgb25seSB3YXkgdG8gdHJ1bHkgcHJvdGVjdCBvdXIgbmV0d29ya3MgYW5kIGJlIDEwMCUgc2VjdXJlIGlzIHRvIGp1c3Qgbm90IGNvbm5lY3QgdG8gdGhlIG5ldHdvcmshIE9mIGNvdXJzZSwgYmVjYXVzZSB3ZSBhcmUgZGVhbGluZyB3aXRoIGRpc3RyaWJ1dGVkIHN5c3RlbXPigKZ0aGlzIGlzbuKAmXQgcmVhbGx5IGVhc3kgdG8gZG8sIHNpbmNlIHdlIGtub3cgdGhhdCBhIG5ldHdvcmsgaXMgcmVxdWlyZWQgZm9yIGNvbW11bmljYXRpb24gYmV0d2VlbiBub2RlcyBpbiBvdXLCoHN5c3RlbS48L3A+PHA+U28sIHdoYXQgYXJlIHdlIHRvIGRvPyBXZWxsLCB3ZSBjYW4gdHJ5IHRvIHJlbWVtYmVyIHRoYXQgPGVtPnRydWU8L2VtPiBzZWN1cml0eSBpcyBhIGZhbGxhY3ksIGFuZCB0aGF0IHdlIGNhbiBqdXN0IGRvIHdoYXQgaXMgaW4gb3VyIHBvd2VyIHRvIHRyeSB0byBwcmV2ZW50IGJyZWFjaGVzIGFuZCBhdHRhY2tzIHdoZW4gd2UgZGVzaWduLCBidWlsZCwgYW5kIHRlc3Qgb3VyIHN5c3RlbXMuIEhvcGVmdWxseSwgYXQgbGVhc3QgdGhhdOKAmWxsIGtlZXAgdGhlIHNlY3VyaXR5IGlzc3VlcyBhdCBiYXkgZm9ywqBhd2hpbGUuPC9wPjxwPkluIHBhcnQgdHdvIG9mIHRoaXMgcG9zdCwgd2XigJlsbCBsb29rIGF0IHRoZSByZW1haW5pbmcgZm91ciBmYWxsYWNpZXMuIEkgcHJvbWlzZSB0aGF0IHRoZSBzYWQgbGl0dGxlIGJsdWUgbmV0d29yayBibG9iIHdpbGwgbWFrZSBhIHJldHVybiBhcHBlYXJhbmNlISBXZeKAmXJlIG5vdCBkb25lIHdpdGggaXQganVzdMKgeWV0LjwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5UaGUgZmFsbGFjaWVzIG9mIGRpc3RyaWJ1dGVkIGNvbXB1dGluZyBoYXZlIGJlZW4gZmFpcmx5IHdlbGwtd3JpdHRlbiBhYm91dCwgYW5kIHlvdSBjYW4gZmluZCBzb21lIGdvb2QgcmVzb3VyY2VzIG9uIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbnMgb2YgdGhlbSwgZm9yIGRpZmZlcmVudCB0ZWNobm9sb2dpZXMuIElmIHlvdeKAmXJlIGN1cmlvdXMgdG8gbGVhcm4gbW9yZSwgY2hlY2sgb3V0IHRoZSByZXNvdXJjZXMgYmVsb3chPC9wPjxvbD48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucmdvYXJjaGl0ZWN0cy5jb20vRmlsZXMvZmFsbGFjaWVzLnBkZiI+RmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIENvbXB1dGluZyBFeHBsYWluZWQ8L2E+LCBBcm5vbiBSb3RlbS1HYWwtT3o8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5zaW1wbGVvcmllbnRlZGFyY2hpdGVjdHVyZS5jb20vOC1mYWxsYWNpZXMtb2YtZGlzdHJpYnV0ZWQtc3lzdGVtcy8iPlVuZGVyc3RhbmRpbmcgdGhlIDggZmFsbGFjaWVzIG9mIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBWaWN0b3LCoENoaXJjdTwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vbXVsdGltZWRpYS50ZWxvcy5jb20vYmxvZy9kZWJ1bmtpbmctdGhlLTgtZmFsbGFjaWVzLW9mLWRpc3RyaWJ1dGVkLXN5c3RlbXMtcGFydC0yLyI+RGVidW5raW5nIHRoZSA4IEZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgUmFtaWzCoEFsZm9uc288L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMMURacWVWd1JMbkQzRWp5Y2lZQU84MmRUOU93aXE4STUiPkZhbGxhY2llcyBvZiBEaXN0cmlidXRlZCBTeXN0ZW1zPC9hPiwgVWRpwqBEYWhhbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYmxvZy5uZXdyZWxpYy5jb20vZW5naW5lZXJpbmcvdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcmVib3JuLXRoZS1jbG91ZC1lcmEiPlRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIFJlYm9ybjogVGhlIENsb3VkIEVyYTwvYT4sIEJyaWFuwqBEb2xsPC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dzIuc3lzLWNvbi5jb20vaXRzZy92aXJ0dWFsY2QvamF2YS9hcmNoaXZlcy8wOTAxL2luZ3JpZC9pbmRleC5odG1sIj5EZXV0c2No4oCZcyBGYWxsYWNpZXMsIDEwIFllYXJzIEFmdGVyPC9hPiwgSW5ncmlkIFZhbiBEZW7CoEhvb2dlbjwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MWIzNWMzYjg1YjUzIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy9mb3JhZ2luZy1mb3ItdGhlLWZhbGxhY2llcy1vZi1kaXN0cmlidXRlZC1jb21wdXRpbmctcGFydC0xLTFiMzVjM2I4NWI1MyI+Rm9yYWdpbmcgZm9yIHRoZSBGYWxsYWNpZXMgb2YgRGlzdHJpYnV0ZWQgQ29tcHV0aW5nIChQYXJ0IDEpPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICAgICAgPGl0ZW0+CiAgICAgICAgICAgIDx0aXRsZT48IVtDREFUQVtXZWVkaW5nIE91dCBEaXN0cmlidXRlZCBTeXN0ZW0gQnVnc11dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvd2VlZGluZy1vdXQtZGlzdHJpYnV0ZWQtc3lzdGVtLWJ1Z3MtMjhhMDFlMzdmNzBjP3NvdXJjZT1yc3MtOGY1NTk5M2M5NzNlLS0tLS0tMjwvbGluaz4KICAgICAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwczovL21lZGl1bS5jb20vcC8yOGEwMWUzN2Y3MGM8L2d1aWQ+CiAgICAgICAgICAgIDxjYXRlZ29yeT48IVtDREFUQVtkaXN0cmlidXRlZC1zeXN0ZW1zXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW3Byb2dyYW1taW5nXV0+PC9jYXRlZ29yeT4KICAgICAgICAgICAgPGNhdGVnb3J5PjwhW0NEQVRBW2NvbXB1dGVyLXNjaWVuY2VdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbc29mdHdhcmUtZGV2ZWxvcG1lbnRdXT48L2NhdGVnb3J5PgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbY29kZV1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW1ZhaWRlaGkgSm9zaGldXT48L2RjOmNyZWF0b3I+CiAgICAgICAgICAgIDxwdWJEYXRlPldlZCwgMDUgSnVuIDIwMTkgMTI6MzE6MDAgR01UPC9wdWJEYXRlPgogICAgICAgICAgICA8YXRvbTp1cGRhdGVkPjIwMTktMDYtMDVUMTI6MzE6MDAuOTIwWjwvYXRvbTp1cGRhdGVkPgogICAgICAgICAgICA8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqZWhudWMzVW1zR0pRVDNkRkRzVE02US5qcGVnIiAvPjxmaWdjYXB0aW9uPldlZWRpbmcgb3V0IGRpc3RyaWJ1dGVkIHN5c3RlbcKgYnVnczwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BcyB3ZeKAmXZlIGxlYXJuZWQgbW9yZSBhbmQgbW9yZSBhYm91dCBkaXN0cmlidXRlZCBzeXN0ZW1zLCB3ZeKAmXZlIHNlZW4gdGhlIG1hbnkgd2F5cyB0aGF0IHRoaW5ncyBjYW4gd3JvbmcuIE1vcmUgc3BlY2lmaWNhbGx5LCB3ZeKAmXZlIHNlZW4gdGhhdCB0aGVyZSBhcmUganVzdCA8ZW0+c28gbWFueSA8L2VtPnBvc3NpYmxlIHNjZW5hcmlvczxlbT4gPC9lbT5pbiB3aGljaCBhIHBvcnRpb24gb2YgYSBsYXJnZSBvciBzeXN0ZW0gY2FuwqBmYWlsLjwvcD48cD5TaW5jZSBmYWlsdXJlIGlzIGluZXZpdGFibGUgaW4gYW55IHNpemVkIHN5c3RlbSwgd2Ugb3VnaHQgdG8gZG8gb3Vyc2VsdmVzIGEgZmFpbHVyZSBhbmQgYmV0dGVyIHVuZGVyc3RhbmQgaXQuIFNvIGZhciwgd2XigJl2ZSBiZWVuIHRhbGtpbmcgYWJvdXQgZGlmZmVyZW50IGtpbmRzIG9mIDxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9iYXNlZHMvZmFudGFzdGljLWZhdWx0cy1hbmQtd2hhdC10by1jYWxsLXRoZW0tNTZkOTFhMWIxOThjIj5mYXVsdHM8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL21vZGVzLW9mLWZhaWx1cmUtcGFydC0xLTY2ODc1MDRiZmVkNiI+ZmFpbHVyZXM8L2E+IGluIGEgZmFpcmx5IGFic3RyYWN0IHNlbnNlLiBJdOKAmXMgdGltZSBmb3IgdXMgdG8gZ2V0IGEgbGl0dGxlIG1vcmUgY29uY3JldGUsIGhvd2V2ZXIuIFN1cmUsIHdlIHZhZ3VlbHkgdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW50IGZsYXZvcnMgYW5kIHByb2ZpbGVzIG9mIGhvdyB0aGluZ3MgY2FuIGdvIHdyb25nIHdpdGhpbiBhIHN5c3RlbSwgYW5kIHdoeSB0aGV5IGFyZSBwcm9ibGVtYXRpYyAoeWV0IGluZXZpdGFibGUpIHdpdGhpbiBvdXIgc3lzdGVtLiBCdXQgaG93IGNhbiB3ZSBzdGFydCB0byB1bmRlcnN0YW5kIHRoZXNlIGZsYXdzIGluIGEgc3lzdGVtIGluIGEgbW9yZSB0YW5naWJsZcKgZm9ybT88L3A+PHA+SW4gb3JkZXIgdG8gZG8gdGhhdCwgd2UgbmVlZCB0byB0aGluayBtb3JlIGRlZXBseSBhYm91dCB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggZmFpbHVyZXMgcHJlc2VudCB0aGVtc2VsdmVzIHRvIHVzIGluIHRoZSBzeXN0ZW1zIHRoYXQgd2UgYWxsIGRlYWwgd2l0aCBldmVyeSBkYXksIGFzIGJvdGggY29uc3VtZXJzIGFuZCBjcmVhdG9ycyBvZiBzb2Z0d2FyZS4gRm9yIG1vc3Qgb2YgdXMsIGZhaWx1cmVzIGluIG91ciBzeXN0ZW1zIHByZXNlbnQgdGhlbXNlbHZlcyBhcyBidWdzLiBUaGUgd2F5cyBpbiB3aGljaCBhIGJ1ZyBtaWdodCA8ZW0+YXBwZWFyIDwvZW0+dG8gdXMsIGhvd2V2ZXIsIGNhbiBtYWtlIGFsbCB0aGUgZGlmZmVyZW5jZSBpbiBob3cgd2UgYXJlIGFibGUgdG8gdW5kZXJzdGFuZCBpdCBpbiBhIG1vcmUgY29uY3JldGXCoHdheS48L3A+PHA+U28gd2hhdCBraW5kcyBvZiBidWdzIGRvIHdlIGRlYWwgd2l0aCwgZXhhY3RseSwgYW5kIGhvdyBkbyB0aGV5IGltcGFjdCB0aGUgZmFpbHVyZXMgb2YgYSBkaXN0cmlidXRlZCBzeXN0ZW0/IFdlbGwsIHRoYXTigJlzIHRoZSBteXN0ZXJ5IHdl4oCZcmUgYWJvdXQgdG/CoHNvbHZlITwvcD48aDQ+KEhhcmR3YXJlKSBmYWlsdXJlcyBvZiB0aGXCoHBhc3Q8L2g0PjxwPkJlZm9yZSB3ZSBkaXZlIGludG8gaWRlbnRpZnlpbmcgdGhlIGJ1Z3Mgb2YgdG9kYXksIGxldOKAmXMgdGFrZSBhIHF1aWNrIGRldG91ciBpbnRvIHRoZSBwYXN0LiBJdOKAmXMgZWFzeSB0byBnZXQgb3ZlcndoZWxtZWQgd2hlbiB0aGlua2luZyBhYm91dCBmYWlsdXJlcyBhbmQgZmF1bHRzIGluIGEgc3lzdGVtLCBzbyBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwIGludG8gdGhlIHRyZW5jaGVzLCB3ZSBvdWdodCB0byB0YWtlIGEgbW9tZW50IHRvIHNlZSBob3cgdGhlIGxhbmRzY2FwZSBvZiBidWdzIGluIGNvbXB1dGluZyBoYXZlIGNoYW5nZWQgb3ZlciB0aGXCoHllYXJzLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkhhRUZpLXlDYUJMRS1DamJHanNoRGcuanBlZyIgLz48ZmlnY2FwdGlvbj5XaGF0IGlzIGhhcmR3YXJlIHJlbGlhYmlsaXR5PzwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5VbnRpbCB0aGUgMTk4MOKAmXMsIHRoZSBtYWpvciBmb2N1cyBvZiBjb21wdXRpbmcgd2FzIGFyb3VuZCBoYXJkd2FyZS4gTW9yZSBzcGVjaWZpY2FsbHksIG11Y2ggb2YgdGhlIGZpZWxkIHdhcyBmb2N1c2VkIG9uIGhvdyB0byBtYWtlIGhhcmR3YXJlIGp1c3QgZ2VuZXJhbGx5IDxlbT5iZXR0ZXI8L2VtPi4gVGhpcyB3YXMgc2ltcGx5IGJlY2F1c2UgaGFyZHdhcmUgd2FzIHRoZSBtYWpvciBsaW1pdGluZyBmYWN0b3IgaW4gbWFueSB3YXlzLiBGb3IgZXhhbXBsZSwgaWYgd2Ugd2FudGVkIHRvIG1ha2UgYSBtYWNoaW5lIGZhc3RlciBhbmQgbW9yZSBwZXJmb3JtYW50IGJhY2sgdGhlbiwgd2UgbmVlZGVkIGJpZ2dlciBoYXJkd2FyZTsgdGhhdCB3YXMgdGhlIG9ubHkgd2F5IHRvIGhhdmUgZW5vdWdoIHNwYWNlIGZvciBhbGwgdGhlIGNpcmN1aXRzIHdlIG5lZWRlZCEgQW5kIGlmIHdlIHdhbnRlZCBtb3JlIGNpcmN1aXRz4oCK4oCU4oCKd2hpY2ggd2VyZSBlYWNoIGFscmVhZHkgcHJldHR5IGxhcmdlIGFuZCBsb2Z0eSBpbiBzaXplIOKAlHRoZW4gd2UgYWxzbyBuZWVkZWQgdG8gYmUgcHJlcGFyZWQgZm9yIHRoZW0gdG8gdXNlIGEgbG90IG9mIHBvd2VyIGFuZCBleHVkZSBhIGxvdCBvZiBlbmVyZ3kgYW5kwqBoZWF0LjwvcD48cD5UaGVzZSBpc3N1ZXMgYmVnaW4gdG8gaGlnaGxpZ2h0IHNvbWUgb2YgdGhlIGNsZWFyIHBvc3NpYmxlIGZhdWx0cyB0aGF0IGNvdWxkIGhhdmUgcG9wcGVkIHVwIHdpdGhpbiBhIHN5c3RlbSBqdXN0IGEgZmV3IGRlY2FkZXMgYWdvLiBBcyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL2ZhbnRhc3RpYy1mYXVsdHMtYW5kLXdoYXQtdG8tY2FsbC10aGVtLTU2ZDkxYTFiMTk4YyI+d2UgYWxyZWFkeSBrbm93PC9hPiwgaGFyZHdhcmUgZmF1bHRz4oCK4oCU4oCKc3VjaCBhcyBhIGNpcmN1aXQgb3ZlcmhlYXRpbmcsIG9yIGEgbmV0d29yayB3aXJpbmcgaXNzdWUgY2F1c2luZyBhIHdpZGVzcHJlYWQgb3V0YWdl4oCUYXJlIHdoYXQgbGVhZCB0byBoYXJkd2FyZSBmYWlsdXJlcy4gSWYgYW55IGFzcGVjdCBvZiB0aGUgaGFyZHdhcmUgZmFpbHMsIHRoZW4gdGhhdCBmYWlsdXJlIHdpbGwgbGlrZWx5IGNhdXNlIHNvbWUgZm9ybSBvZiBkb3dudGltZSBpbiBhIHN5c3RlbSwgd2hpY2ggd2Uga25vdyA8YSBocmVmPSJodHRwczovL21lZGl1bS5jb20vYmFzZWRzL3JlYWR5LWFuZC1hdmFpbGFibGUtZGlzdHJpYnV0ZWQtc3lzdGVtcy0xNjEwMjNhY2EzNzgiPm1ha2VzIGEgc3lzdGVtIGxlc3MgcmVsaWFibGU8L2E+LiBVbnRpbCB0aGUgODDigJlzLCBoYXJkd2FyZSBmYXVsdHMgd2VyZSB2ZXJ5IG11Y2ggYSByZWFsIGFuZCBjb21tb27CoHByb2JsZW0uPC9wPjxwPkJ1dCB0aGVzZSBkYXlzLCB0aGUgc3RvcnkgaXMgYSBsaXR0bGUgZGlmZmVyZW50LiBXZSBleHBlcmllbmNlIGZhciBsZXNzIGRvd250aW1lIGR1ZSB0byBoYXJkd2FyZSBmYXVsdHMgdGhhbiB3ZSBkaWQganVzdCBmb3J0eSB5ZWFycyBhZ28uIFdlIGhhdmUgbWFueSB5ZWFycyBvZiBjb25jZW50cmF0ZWQgZWZmb3J0IHRoYXQgaGFzIGhlbHBlZCBpbXByb3ZlIHRoZSBoYXJkd2FyZSB3ZSBhbGwgcmVseSB1cG9uIG9uIGEgZGFpbHkgYmFzaXMgbm93ISBJbiB0aGUgcGFzdCB0aHJlZSBkZWNhZGVzLCB0aGUgc2l6ZSBvZiBjaXJjdWl0cyBoYXMgZGVjcmVhc2VkLCBhbGxvd2luZyB1cyB0byBwYWNrIG1vcmUgY2lyY3VpdHMgaW50byBhIHNtYWxsZXIgc3BhY2UsIGFuZCB0aG9zZSBjaXJjdWl0cyBwcm9kdWNlIGxlc3MgaGVhdCwgYW5kIHVzZSBtdWNoIGxlc3MgZW5lcmd5LiBDaXJjdWl0cyBoYXZlIGFsc28gYmVjb21lIGVhc2llciBhbmQgY2hlYXBlciB0byBwcm9kdWNlLCBtYWtpbmcgdGhlbSBtb3JlIGluZXhwZW5zaXZlIGluIGdlbmVyYWwuIFRoaXMgaGFzIGFsc28gYWxsb3dlZCB1cyB0byBjcmVhdGUgc21hbGxlciBkZXZpY2VzLCBsaWtlIGxhcHRvcCBjb21wdXRlcnMsIHRhYmxlcywgYW5kIHNtYXJ0cGhvbmVzLCB0byBtZW50aW9uIGp1c3QgYcKgZmV3LjwvcD48cD5UaGlzIGRvZXNu4oCZdCBtZWFuIHRoYXQgdGhlcmUgYXJlIDxlbT5ubyA8L2VtPmhhcmR3YXJlIHByb2JsZW1zIHdoYXRzb2V2ZXIsIHRob3VnaCEgRXZlbiBzbWFsbCBkZXZpY2VzIHdpdGggc21hbGxlciBjaXJjdWl0cyBpbnNpZGUgb2YgdGhlbSB3aWxsIGV4cGVyaWVuY2UgaGFyZHdhcmUgZmFpbHVyZXMuIE5ldHdvcmsgaXNzdWVzIHRoYXQgY2F1c2UgZG93bnRpbWUgYXJlIHN0aWxsIGxpa2VseSB0byBoYXBwZW4sIGV2ZW4gdGhvdWdoIHRoZSBmcmVxdWVuY3kgd2l0aCB3aGljaCB0aGV5IG9jY3VyIGhhcyBkZWZpbml0ZWx5IGRyb3BwZWQgb2ZmLiBIYXJkd2FyZSBkaXNrcyBhcmUgc3RpbGwgcHJvbmUgdG8gZmFpbHVyZXMsIHdoaWNoIG1ha2VzIGl0IHRyaWNreSB0byByZWFkIChtdWNoIGxlc3Mgd3JpdGUpIGRhdGEgdG8gdGhlbS4gQW5kLCBvZiBjb3Vyc2UsIGp1c3QgYmVjYXVzZSBoYXJkd2FyZSBoYXMgaW1wcm92ZWQgZG9lc27igJl0IG1lYW4gdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBtYWludGVuYW5jZSBhbmQgdXBncmFkZXM7IHNpbmNlIHRoZXNlIGFyZSBzdGlsbCByZXF1aXJlbWVudHMsIHRoZXkgd2lsbCBzdGlsbCByZXN1bHQgaW4gcGxhbm5lZCBkb3dudGltZS48L3A+PGZpZ3VyZT48aW1nIGFsdD0iIiBzcmM9Imh0dHBzOi8vY2RuLWltYWdlcy0xLm1lZGl1bS5jb20vbWF4LzEwMjQvMSpRbHJfY2lvc0plVnM1ckFuUk1Ndk1BLmpwZWciIC8+PGZpZ2NhcHRpb24+SG93IGhhcyBoYXJkd2FyZcKgY2hhbmdlZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+T3ZlcmFsbCwgaG93ZXZlciwgdGhlIGNoYW5nZXMgd2XigJl2ZSBzZWVuIGluIGhhcmR3YXJlIGhhdmUgYmVlbiBxdWl0ZSBhIG5ldCBwb3NpdGl2ZSBmb3IgY29tcHV0aW5nLiBTbywgaWYgaGFyZHdhcmUgaGFzIGltcHJvdmVk4oCmd2hhdCBlbHNlIGNvdWxkIGJlIGEgY29udHJpYnV0aW5nIGZhY3RvciB0byBmYWlsdXJlcyBpbiBhIGRpc3RyaWJ1dGUgc3lzdGVtPyBXaHksIG91ciBkZWFyIGZyaWVuZCA8ZW0+c29mdHdhcmU8L2VtPiwgb2bCoGNvdXJzZSE8L3A+PGJsb2NrcXVvdGU+RXZlbiBpbiB0aGUgbW9zdCB3ZWxsLXRlc3RlZCBzeXN0ZW1zLCBzb2Z0d2FyZSBmYWlsdXJlcyBhcmUgcmVzcG9uc2libGUgZm9yIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIGRvd250aW1lLiBXZSBrbm93IHRoZXNlIOKAnGZhaWx1cmVz4oCdIGJ5IGFub3RoZXIgbmFtZTrCoGJ1Z3MuPC9ibG9ja3F1b3RlPjxwPkltcHJvdmVtZW50cyBpbiBoYXJkd2FyZSBub3R3aXRoc3RhbmRpbmcsIGl0IGlzIGJ1Z3MgaW4gdGhlIHNvZnR3YXJlIG9mIGRpc3RyaWJ1dGVkIHN5c3RlbXMgdGhhdCByZXN1bHQgaW4gdW5leHBlY3RlZCBhbmQgdW5wbGFubmVkIGRvd250aW1lLiBNYW55IHN0dWRpZXMgZXN0aW1hdGUgdGhhdCwgMjUgdG8gMzUlIG9mIHRoZSBkb3dudGltZSBpbiBhIHN5c3RlbSBhcmUgY2F1c2VkIGJ5IGJ1Z3MgaW4gc29mdHdhcmUtcmVsYXRlZCBjb2RlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKld3ZUJpZkhwVWF3Y3ZLQ05ic1JpUGcuanBlZyIgLz48ZmlnY2FwdGlvbj5Tb2Z0d2FyZSBmYWlsdXJlcyBhcyBhIG1ham9yIHBhaW4gcG9pbnQgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW08L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+VGhlIGludGVyZXN0aW5nIGFzcGVjdCBvZiB0aGlzIHN0b3J5IGlzIHRoZSBmYWN0IHRoYXQsIGV2ZW4gd2l0aGluIHN5c3RlbXMgdGhhdCBhcmUgZmFpcmx5IHdlbGwtZXN0YWJsaXNoZWQgYW5kIGhhdmUgcmlnb3JvdXMgdGVzdGluZyBwcmFjdGljZXMgaW4gcGxhY2UsIHN0dWRpZXMgaGF2ZSBmb3VuZCB0aGF0IHRoZSBhY3R1YWwgcGVyY2VudGFnZSBvZiBzb2Z0d2FyZS1yZWxhdGVkIGRvd250aW1lIGRvZXNu4oCZdCByZWFsbHkgPGVtPmV2ZXI8L2VtPiA8ZW0+cmVkdWNlPC9lbT4gYmV5b25kIHRoYXQgMjUlIHRocmVzaG9sZCEgVGhlcmUgYXJlIGp1c3Qgc29tZSBidWdzIHRoYXQgc3RpbGwgc2VlbSB0byBleGlzdCwgZXZlbiB3aXRoIHdlbGwgdGhvdWdodC1vdXQgdGVzdHMgYW5kIHF1YWxpdHnCoGNvbnRyb2wuPC9wPjxoND4oU29mdHdhcmUpIHByb2JsZW1zIG9mIHRoZcKgcHJlc2VudDwvaDQ+PHA+VGhlIGJ1Z3MgdGhhdCBzdGlsbCBleGlzdCBpbiBtb3JlIG1hdHVyZSBzeXN0ZW1z4oCK4oCU4oCKdGhvc2UgdGhhdCBoYXZlIHJpZ29yb3VzIHRlc3RpbmcsIGZvciBleGFtcGxl4oCK4oCU4oCKYXJlIGFsc28ga25vd24gYXMgPHN0cm9uZz48ZW0+cmVzaWR1YWwgYnVnczwvZW0+PC9zdHJvbmc+LCBhbmQgdGhleSBjYW4gYmUgY2xhc3NpZmllZCBpbnRvIHR3byBzZXBhcmF0ZSBjYXRlZ29yaWVzOjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmszREpDYVhQX1FZYTFNQTVDSGlEV3cuanBlZyIgLz48ZmlnY2FwdGlvbj5UaGUgdHdvIG1haW4ga2luZHMgb2Yg4oCccmVzaWR1YWzigJ0gc29mdHdhcmXCoGJ1Z3M8L2ZpZ2NhcHRpb24+PC9maWd1cmU+PG9sPjxsaT48c3Ryb25nPjxlbT5Cb2hyYnVnczwvZW0+PC9zdHJvbmc+LCB3aGljaCBhcmUgbmFtZWQgZm9yIE5pZWxzIEJvaHIgYW5kIEVybmVzdCBSdXRoZXJmb3Jk4oCZcyBtb2RlbCBmbyB0aGUgYXRvbWljIG51Y2xldXMswqBhbmQ8L2xpPjxsaT48c3Ryb25nPjxlbT5IZWlzZW5idWdzPC9lbT48L3N0cm9uZz4sIHdoaWNoIGFyZSBuYW1lZCBhcyBhIHB1biBvbiBXZXJuZXIgSGVpc2VuYmVyZ+KAmXMgSGVpc2VuYmVyZyB1bmNlcnRhaW50eSBwcmluY2lwbGUuPC9saT48L29sPjxwPlRoZXNlIHR3byBidWdzIGhhdmUgYmVlbiByZXNlYXJjaGVkIGJ5IG1hbnkgZGlmZmVyZW50IGNvbXB1dGVyIHNjaWVudGlzdHM7IHRocmVlIG9mIHRoZSBtb3N0IG5vdGFibGUgb25lcyBpbmNsdWRlIEppbSBHcmF5LCBCcnVjZSBMaW5kc2V5LCBhbmQgQW5kcmVhICjigJxBbml0YeKAnSkgQm9yciwgYW5kIHdl4oCZbGwgcmVhZCBhYm91dCB0aGUgZnJ1aXRzIG9mIHRoZWlyIGxhYm9yIGluIGEgbGl0dGxlIGJpdC4gQmV0d2VlbiB0aGVzZSB0d28gZGlmZmVyZW50IGtpbmRzIG9mIOKAnHJlc2lkdWFs4oCdIGJ1Z3MsIG9uZSBpcyBkZWZpbml0ZWx5IHdheSBlYXNpZXIgdG8gd3JhcCBvdXIgaGVhZHMgYXJvdW5kIHRoYW4gdGhlIG90aGVyLiBTbyBsZXTigJlzIHN0YXJ0IHdpdGggdGhhdCBvbmXCoGZpcnN0ITwvcD48cD5UaGUgPHN0cm9uZz48ZW0+Qm9ocmJ1ZzwvZW0+PC9zdHJvbmc+IGlzIGEgYnVnIHRoYXQgbW9zdCAoYWxsPykgcHJvZ3JhbW1lcnMgd2lsbCBlbmNvdW50ZXIgd2hpbGUgdGlua2VyaW5nIHdpdGggc29mdHdhcmUuIEEgQm9ocmJ1ZyBpcyBhIGJ1ZyB0aGF0IGNhbiByZWxpYWJseSBiZSByZXByb2R1Y2VkLCBnaXZlbiB0aGUgcmlnaHQgY29uZGl0aW9ucy4gRm9yIGV4YW1wbGUsIGlmIHdlIHdlcmUgYWJsZSB0byBub3RpY2UgdGhhdCBhIGJ1ZyBvY2N1cnJlZCBpbiBhIHBpZWNlIG9mIHNvZnR3YXJlIGFuZCBjbG9zZWx5IG9ic2VydmVkIHRoZSBzaXR1YXRpb24gaW4gd2hpY2ggaXQgaGFwcGVuZWQsIGlmIGl0IHdhcyBhIEJvaHJidWcsIHRoZW4gd291bGQgYmUgYWJsZSB0byByZXByb2R1Y2UgaXQgYnkgcmUtY3JlYXRpbmcgdGhlIHNhbWUgc2l0dWF0aW9uLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkFmVXBmSVVnOExiQ2ppWVhNVXVtMVEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVnOiBhIHF1aWNrIGRlZmluaXRpb24hPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgQm9ocmJ1ZyBpcyBwcmV0dHkgZWFzeSB0byBsb2NhbGl6ZSBhbmQgcGlucG9pbnQgdG8gYSBjZXJ0YWluIHBhcnQgb2YgYSBjb2RlYmFzZS4gQXMgZGV2ZWxvcGVycywgdGhpcyBpcyBhIGh1Z2UgYm9vbiwgc2luY2UgaXQgbWVhbnMgdGhhdCB3ZSBjYW4gcmVsaWFibHkgZmluZCBhbmQgdGhlbiA8ZW0+Zml4PC9lbT4gdGhlIEJvaHJidWcsIGFzIGFubm95aW5nIGFzIGl0IG1pZ2h0wqBiZSE8L3A+PHA+SW50ZXJlc3RpbmdseSwgd2hlbiBKaW0gR3JheSBhbmQgQnJ1Y2UgTGluZHNleSB3ZXJlIHJlc2VhcmNoaW5nIEJvaHJidWdzIGluIG1vcmUgbWF0dXJlIHN5c3RlbXMsIHRoZXkgcG9zaXRlZCB0aGF0IHRoZSBmcmVxdWVuY3kgb2YgdGhlc2UgcmVwcm9kdWNpYmxlIGxpdHRsZSBidWdzIGFjdHVhbGx5IHJlZHVjZWQgYXMgYSBzeXN0ZW0gZ3JldyBvbGRlciBhbmQgbW9yZcKgc3RhYmxlLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkxlc25VaklNaHB2bEtVSXhwNnJCVlEuanBlZyIgLz48ZmlnY2FwdGlvbj5Cb2hyYnVncyBpbiBhIHN5c3RlbSwgb3ZlcsKgdGltZTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5Ib3dldmVyLCBBbml0YSBCb3Jy4oCZcyByZXNlYXJjaCBhZGRlZCBhIGJpdCBtb3JlIG51YW5jZSB0byB0aGlzLiBTaGUgZm91bmQgdGhhdCB0aGUgcGVyY2VudGFnZSBvZiBCb2hyYnVncyBkaWRu4oCZdCBzdHJpY3RseSBjb250aW51ZSB0byBkcm9wIGFzIGEgc3lzdGVtIGdyZXcgbW9yZSBzdGFibGU7IHJhdGhlciwgaGVyIHJlc2VhcmNoIGZvdW5kIHRoYXQsIHdpdGggZWFjaCBuZXcgdXBncmFkZSBvciBzY2hlZHVsZWQgbWFpbnRlbmFuY2UgdGhhdCB3YXMgaW50cm9kdWNlZCBpbnRvIHRoZSBzeXN0ZW0sIHRoZXJlIHdhcyBhbHNvIGEgc2xpZ2h0IHVwdGljayBvZiBCb2hyYnVncywgc2luY2Ugc2lnbmlmaWNhbnQgY2hhbmdlcyBpbiB0aGUgc3lzdGVtIHdlcmUgc3RpbGwgdmVyeSBjYXBhYmxlIG9mIGludHJvZHVjaW5nIDxlbT5yZXByb2R1Y2libGU8L2VtPiBidWdzLjwvcD48cD5UaGFua2Z1bGx5LCBldmVuIHRob3VnaCBuZXcgQm9ocmJ1Z3MgbWlnaHQgYmUgaW50cm9kdWNlZCB3aXRoIHRoZXNlIHN5c3RlbS13aWRlIGNoYW5nZXMsIGF0IGxlYXN0IHRoZXkgY2FuIGJlIHJlcHJvZHVjZWQgKGFuZCBob3BlZnVsbHksIGZpeGVkISkuIEJ1dCB0aGluZ3MgYXJlbuKAmXQgYWx3YXlzIHRoYXQgc2ltcGxlIGluIHRoZSB3b3JsZCBvZiBzb2Z0d2FyZSAob2YgY291cnNlKS4gU29tZSBidWdzIGRvbuKAmXQgYWx3YXlzIGJlaGF2ZSB0aGUgc2FtZeKApmluIGZhY3QsIHNvbWUgb2YgdGhlbSBzZWVtIHRvIGJlaGF2ZSBkaWZmZXJlbnRseSB3aGVuIHdlIHRyeSB0byBpbnZlc3RpZ2F0ZSB0aGVtITwvcD48aDQ+RGVhbGluZyB3aXRoIGRpZmZpY3VsdCwgZGlzdHJpYnV0ZWQgYnVnczwvaDQ+PHA+VGhlcmUgaXMgb25lIHNwZWNpZXMgb2YgYnVnIHRoYXQgaXMgcGFydGljdWxhcmx5IHJlbGV2YW50IHRvIGRpc3RyaWJ1dGVkIHN5c3RlbXMsIGFuZCBpdOKAmXMgZmluYWxseSB0aW1lIGZvciB1cyB0byBjb21lIGZhY2UtdG8tZmFjZSB3aXRoIGl0IGluIHRoaXMgc2VyaWVzLiBJ4oCZbSB0YWxraW5nLCBvZiBjb3Vyc2UsIGFib3V0IHRoZSBIZWlzZW5idWchPC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqYXA0akVndW9QTHdPbHh5UVFuaEl1QS5qcGVnIiAvPjxmaWdjYXB0aW9uPkhlaXNlbmJ1ZzogYSBxdWljayBkZWZpbml0aW9uITwvZmlnY2FwdGlvbj48L2ZpZ3VyZT48cD5BIDxzdHJvbmc+PGVtPkhlaXNlbmJ1ZyA8L2VtPjwvc3Ryb25nPmNhbiBiZSBzdXBlciBmcnVzdHJhdGluZyB0byBkZWFsIHdpdGggYXMgYSBwcm9ncmFtbWVyLiBUaGlzIGlzIGEgYnVnIHRoYXQgYWN0dWFsbHkgYmVoYXZlcyA8ZW0+ZGlmZmVyZW50bHkgPC9lbT53aGVuIGl0IGlzIG9ic2VydmVkIGNsb3NlbHkuIEFzIG9uZSBiZWdpbnMgdG8gaW52ZXN0aWdhdGUgYSBIZWlzZW5idWcsIGl0IG1heSBjaGFuZ2UgaG93IGl0IG1hbmlmZXN0cyBpdHNlbGYuIEluIHNvbWUgY2FzZXMsIHdoZW4gYSBIZWlzZW5idWcgaXMsIHdlbGwsIGJlaW5nIGRlYnVnZ2VkLCBpdCBkaXNhcHBlYXJzIGNvbXBsZXRlbHkuIEFuZCBpbiBzb21lIHNpdHVhdGlvbnMsIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSByZWNyZWF0ZWQgaW4gYW4gZWZmb3J0IHRvIHJlcHJvZHVjZSB0aGUgYnVnLCB0aGUgYnVnIGp1c3Qgd29u4oCZdCBhcHBlYXIhIFByZXR0eSBmcnVzdHJhdGluZywgcmlnaHQ/PC9wPjxmaWd1cmU+PGltZyBhbHQ9IiIgc3JjPSJodHRwczovL2Nkbi1pbWFnZXMtMS5tZWRpdW0uY29tL21heC8xMDI0LzEqaGlKS2xrZmdHODNXa1RUMjFVaXRxQS5qcGVnIiAvPjxmaWdjYXB0aW9uPldoYXQgbWFrZXMgSGVpc2VuYnVncyBzb8KgaGFyZD88L2ZpZ2NhcHRpb24+PC9maWd1cmU+PHA+Rm9yIGV4YW1wbGUsIGEgYnVnIHN1Y2ggYXMgYSBkYXRhIHN0cnVjdHVyZSBydW5uaW5nIG91dCBvZiBzcGFjZSBvciBhIHBvcnRpb24gb2YgYSBwcm9ncmFtIHRoYXQgb3ZlcmZsb3dzIHNvbWUgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgbWlnaHQgbm90IGJlIHRvIGVhc2lseSByZXByb2R1Y2UgbG9jYWxseSBvciBpbiBhIHRlc3Q7IGhvd2V2ZXIsIHRoaXMgZXhhY3QgYnVnIGNvdWxkIGNhdXNlIGEgc3lzdGVtIHRvIGNyYXNoLCBhbmQgaXMgcHJldHR5wqBmYXRhbCE8L3A+PHA+VGhpcyBpcyBwYXJ0IG9mIHRoZSByZWFzb24gdGhhdCBtYWtlcyBIZWlzZW5idWdzIHNvIGRpZmZpY3VsdCB0byByZWFzb24gYWJvdXQuIFRoZXkgYXJlIGluY3JlZGlibHkgaGFyZCB0byBhY3R1YWxseSA8ZW0+cmVhc29uPC9lbT4gYWJvdXQsIGJlY2F1c2UgaXTigJlzIGhhcmQgdG8gYWN0dWFsbHkgbG9jYWxpemUgdGhlbSBhbmQgcGluIHRoZW0gZG93bi4gQW5kLCBiZWNhdXNlIHRoZXnigJlyZSBoYXJkIHRvIHJlcHJvZHVjZSA8ZW0+cmVsaWFibHk8L2VtPiwgdGhleeKAmXJlIGhhcmQgdG8gaWRlbnRpZnkgYW5kIHRodXMsIGRpZmZpY3VsdCB0byBhY3R1YWxsecKgc29sdmUhPC9wPjxwPlRoZSBIZWlzZW5idWcgaXMgZXNwZWNpYWxseSByZWxldmFudCB0byBkaXN0cmlidXRlZCBzeXN0ZW1zIGJlY2F1c2UgdGhleeKAmXJlIG1vcmUgbGlrZWx5IHRvIG9jY3VyIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYW4gaW4gYSBsb2NhbGl6ZWQsIGNlbnRyYWwgb25lLiBUaGVzZSBraW5kcyBvZiBidWdzIGFyZSBhY3R1YWxseSBpbmRpY2F0b3JzIG9mIHByb2JsZW1zIGFuZCBmYWlsdXJlcyBpbiB0aGUgc3lzdGVtIHRoYXQgb2NjdXJyZWQgbXVjaCA8ZW0+ZWFybGllcjwvZW0+IHRoYW4gd2hlbiB0aGUgYnVnIG1hbmlmZXN0ZWQgaXRzZWxmLjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKkJ1dFpMclBLREZsWGc1NmFOWHFhZVEuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGFyZSBtdWNoIG1vcmUgY29tbW9uIGluIGRpc3RyaWJ1dGVkIHN5c3RlbXMuPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkEgSGVpc2VuYnVnIGlzIHVzdWFsbHkgYSByZWQgZmxhZyB0aGF0IHNvbWV0aGluZyA8ZW0+ZWxzZSA8L2VtPndlbnQgd3JvbmcgaW4gdGhlIHN5c3RlbSBhd2hpbGUgYWdvLCBhbmQgaXQgaXMgb25seSBzdXJmYWNlIG5vdywgYW5kIGl0IG9ubHkganVzdCBzbyBoYXBwZW5zIHRoYXQgaXQgaXMgc3VyZmFjaW5nIGluIHRoZSBmb3JtIG9mIHRoaXPCoGJ1Zy48L3A+PGJsb2NrcXVvdGU+SW4gYWN0dWFsaXR5LCBhIEhlaXNlbmJ1ZyBpcyBqdXN0IGEgbG9uZy1kZWxheWVkIHNpZGUgZWZmZWN0IG9mIGEgbXVjaCBlYXJsaWVywqBwcm9ibGVtLjwvYmxvY2txdW90ZT48cD5JbiBtb3JlIG1hdHVyZSBkaXN0cmlidXRlZCBzeXN0ZW1zLCBpdCBpcyBIZWlzZW5idWdz4oCK4oCU4oCKPGVtPm5vdCA8L2VtPkJvaHJidWdz4oCK4oCU4oCKdGhhdCBjYXVzZSBtYWpvciBmYWlsdXJlcyBhbmQgc3lzdGVtIGNyYXNoZXMuIElmIHdlIHRoaW5rIGFib3V0IGl0IG1vcmUgZGVlcGx5LCB0aGlzIHN0YXJ0cyB0byBtYWtlIHNlbnNlOyB0aGVyZSBhcmUgbWFueSBtb3ZpbmcgcGFydHMgaW4gYSBkaXN0cmlidXRlZCBzeXN0ZW0sIGFuZCBtYW55IGRlcGVuZGVuY2llcyBhbmQgbm9kZXMgdGhhdCByZWx5IHVwb24gb25lIGFub3RoZXIuIEEgZmFpbHVyZSB0aGF0IGFwcGVhcnMgdG8gYmUgY29taW5nIGZyb20gPGVtPm9uZTwvZW0+IG5vZGUgaW4gdGhlIHN5c3RlbSBtaWdodCBhY3R1YWxseSBiZSB0aHJlZSBub2RlcyByZW1vdmVkIGZyb20gYSBmYWlsdXJlIHRoYXQgb3JpZ2luYXRlZCBlbHNld2hlcmUsIGJ1dCBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHN5c3RlbS4gV2hpbGUgYSBCb2hyYnVnIG1pZ2h0IGJlIGVhc3kgdG8gcmVwcm9kdWNlLCBsb2NhbGl6ZSwgYW5kIHJlYXNvbiBhYm91dCwgYSBIZWlzZW5idWcgaXMgbXVjaCB0cmlja2VyIHRvIHRoaW5rIGFib3V0IGFuZCB0aHVzLCB0b8KgZml4LjwvcD48ZmlndXJlPjxpbWcgYWx0PSIiIHNyYz0iaHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9tYXgvMTAyNC8xKmN2RnI3Mjd6QzRhNGRka2FxQlMzUWcuanBlZyIgLz48ZmlnY2FwdGlvbj5IZWlzZW5idWdzIGluIGEgc3lzdGVtLCBvdmVywqB0aW1lPC9maWdjYXB0aW9uPjwvZmlndXJlPjxwPkFuaXRhIEJvcnLigIrigJTigIpteSBuZXcgZmF2b3JpdGUgcmVzZWFyY2hlciBvbiByZXNpZHVhbCBidWdz4oCK4oCU4oCKYWN0dWFsbHkgZm91bmQgaW4gaGVyIHJlc2VhcmNoIHRoYXQgbWFueSBlbmdpbmVlcnMgaGF2ZSBhIGhhcmQgdGltZSByZWFzb25pbmcgYWJvdXQgSGVpc2VuYnVncywgYW5kIHRoYXQgbWFraW5nIGF0dGVtcHRzIHRvIDxlbT5maXg8L2VtPiBhIEhlaXNlbmJ1ZyBhY3R1YWxseSBjYXVzZSBtb3JlIHByb2JsZW1zIHRoYW4gdGhlcmUgd2VyZSB0byBiZWdpbiB3aXRoISBTbyBpZiB5b3XigJl2ZSBiZWVuIGZlZWxpbmcgbGlrZSBIZWlzZW5idWdzIGFyZSB0cmlja3kgbGl0dGxlIGNyZWF0dXJlcyBhbmQgaGFyZCB0byBjb250ZW5kIHdpdGgsIGRvbuKAmXQgd29ycnk7IHRoZSByZXNlYXJjaCBhZ3JlZXMgd2l0aMKgeW91ITwvcD48aDQ+UmVzb3VyY2VzPC9oND48cD5Tb2Z0d2FyZSBmYWlsdXJlcyBpbiBkaXN0cmlidXRlZCBzeXN0ZW1zIGFyZSBwcmV0dHkgY29vbCB0byBsZWFybiBhYm91dCwgYW5kIHlvdSBjYW4gbGVhcm4gYSB3aG9sZSBsb3QgbW9yZSBhYm91dCB0aGVtLiBUaGVyZSBpcyBhIGxvdCBvZiBpbnRlcmVzdGluZyByZXNlYXJjaCBhbmQgd3JpdGluZyBvbiBob3cgdG8gZGVhbCB3aXRoIGFuZCBndWFyZCBhZ2FpbnN0IEhlaXNlbmJ1Z3MgaW4geW91ciBzeXN0ZW0uIENoZWNrIG91dCBzb21lIG9mIHRoZSByZXNvdXJjZXMgYmVsb3cgaWYgeW914oCZcmUgY3VyaW91cyB0byBsZWFybsKgbW9yZSE8L3A+PG9sPjxsaT48YSBocmVmPSJodHRwczovL2Jvb2tzLmdvb2dsZS5jb20vYm9va3M/aWQ9WF9rRThZdlJKSkVDJmFtcDtwZz1QQTIzOSZhbXA7bHBnPVBBMjM5Ij5SZWxpYWJsZSBEaXN0cmlidXRlZCBTeXN0ZW1zOiBUZWNobm9sb2dpZXMsIFdlYiBTZXJ2aWNlcywgYW5kIEFwcGxpY2F0aW9uczwvYT4sIEtlbm5ldGjCoEJpcm1hbjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmhwbC5ocC5jb20vdGVjaHJlcG9ydHMvdGFuZGVtL1RSLTg1LjcucGRmIj5XaHkgRG8gQ29tcHV0ZXJzIFN0b3AgYW5kIFdoYXQgQ2FuIEJlIERvbmUgQWJvdXQgSXQ/PC9hPiwgSmltwqBHcmF5PC9saT48bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb3Vyc2VzLmNzLndhc2hpbmd0b24uZWR1L2NvdXJzZXMvY3NlNDkwaC8wN3dpL3JlYWRpbmdzL0ludHJvZHVjdGlvblRvRGlzdHJpYnV0ZWRTeXN0ZW1zLnBkZiI+SW50cm9kdWN0aW9uIHRvIERpc3RyaWJ1dGVkIFN5c3RlbXM8L2E+LCBVbml2ZXJzaXR5IG9mIFdhc2hpbmd0b248L2xpPjxsaT48YSBocmVmPSJodHRwczovL3d3dy5jcy5ydXRnZXJzLmVkdS9+cm1hcnRpbi90ZWFjaGluZy9zcHJpbmcwMy9jczU1My9wYXBlcnMwMS8wNi5wZGYiPkhlaXNlbmJ1Z3MgYW5kIEJvaHJidWdzOiBXaHkgYXJlIHRoZXkgZGlmZmVyZW50PzwvYT4sIFJpY2hhcmQgTWFydGluwqAoPyk8L2xpPjxsaT48YSBocmVmPSJodHRwczovL3BkZnMuc2VtYW50aWNzY2hvbGFyLm9yZy9jYWU3LzUyYjMyN2EyYmJkMjkzYTZiOTI1MzBlMzU0YTc2YjgyYWNlMi5wZGYiPlByb3RlY3RpbmcgQXBwbGljYXRpb25zIEFnYWluc3QgSGVpc2VuYnVnczwvYT4sIENocmlzwqBIb2JiczwvbGk+PC9vbD48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9MjhhMDFlMzdmNzBjIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj48aHI+PHA+PGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2Vkcy93ZWVkaW5nLW91dC1kaXN0cmlidXRlZC1zeXN0ZW0tYnVncy0yOGEwMWUzN2Y3MGMiPldlZWRpbmcgT3V0IERpc3RyaWJ1dGVkIFN5c3RlbSBCdWdzPC9hPiB3YXMgb3JpZ2luYWxseSBwdWJsaXNoZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9tZWRpdW0uY29tL2Jhc2VkcyI+YmFzZWRzPC9hPiBvbiBNZWRpdW0sIHdoZXJlIHBlb3BsZSBhcmUgY29udGludWluZyB0aGUgY29udmVyc2F0aW9uIGJ5IGhpZ2hsaWdodGluZyBhbmQgcmVzcG9uZGluZyB0byB0aGlzIHN0b3J5LjwvcD5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:47 GMT
+- request:
+ method: get
+ uri: https://circleci.com/blog/feed.xml
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Content-Type:
+ - application/xml
+ Date:
+ - Tue, 19 May 2020 11:56:49 GMT
+ Etag:
+ - '"d148e5f0c8f6530989f97099948abd37"'
+ Last-Modified:
+ - Tue, 19 May 2020 02:33:22 GMT
+ Server:
+ - nginx
+ Strict-Transport-Security:
+ - max-age=15724800
+ X-Amz-Id-2:
+ - h0m7xx1KPbdwaNBT80wl3lY2qjKEu/HZ5uc6xxI0x+PBoHh0ZIeNFeoyckUE6h7l6KO42IJzeFw=
+ X-Amz-Request-Id:
+ - 7B65A0B7D69D5FE9
+ X-Frame-Options:
+ - SAMEORIGIN
+ Content-Length:
+ - '183502'
+ Connection:
+ - keep-alive
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2ZXJzaW9uPSIyLjAiCiAgeG1sOmJhc2U9Imh0dHBzOi8vY2lyY2xlY2kuY29tLyIKICB4bWxuczphdG9tPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICA8Y2hhbm5lbD4KICAgIDx0aXRsZT5UaGUgQ2lyY2xlQ0kgQmxvZyBGZWVkIC0gQ2lyY2xlQ0k8L3RpdGxlPgogICAgPGRlc2NyaXB0aW9uPlN0YXkgdXAgdG8gZGF0ZSB3aXRoIHRoZSBsYXRlc3QgbmV3cywgdXBkYXRlcywgYW5kIGhhY2tzIGZyb20gQ2lyY2xlQ0kuPC9kZXNjcmlwdGlvbj4KICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvPC9saW5rPgogICAgPGF0b206bGluayBocmVmPSJodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2ZlZWQueG1sIiByZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Db250aW51b3VzIGludGVncmF0aW9uIGZvciBJb25pYyBhcHBsaWNhdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvY29udGlub3VzLWludGVncmF0aW9uLWZvci1pb25pYy1hcHBzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDE4IE1heSAyMDIwIDE3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbm91cy1pbnRlZ3JhdGlvbi1mb3ItaW9uaWMtYXBwcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5GaWtheW8gQWRlcG9qdTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtJbiB0aGUgd29ybGQgb2YgaHlicmlkIG1vYmlsZSBkZXZlbG9wbWVudCwgbm8gb3RoZXIgZnJhbWV3b3JrIGhhcyBkb25lIG1vcmUgZm9yIHRoZSBpbmR1c3RyeSB0aGFuIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaW9uaWNmcmFtZXdvcmsuY29tLyZxdW90OyZndDtJb25pYyBmcmFtZXdvcmsmbHQ7L2EmZ3Q7LiBDcmVhdGVkIGluIDIwMTMgYW5kIG9yaWdpbmFsbHkgYnVpbHQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXJqcy5vcmcvJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7IGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY29yZG92YS5hcGFjaGUub3JnLyZxdW90OyZndDtBcGFjaGUgQ29yZG92YSZsdDsvYSZndDssIElvbmljIGhhcyBncm93biB0byBhIGZ1bGwtZmVhdHVyZWQgYXBwbGljYXRpb24gZnJhbWV3b3JrIGZvciBkZXZlbG9waW5nIG1vYmlsZSwgZGVza3RvcCwgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93ZWIuZGV2L3Byb2dyZXNzaXZlLXdlYi1hcHBzLyZxdW90OyZndDtwcm9ncmVzc2l2ZSB3ZWIgYXBwbGljYXRpb25zJmx0Oy9hJmd0Oy4gSW9uaWMgaGFzIGFsc28gYmVjb21lIGZyYW1ld29yay1hZ25vc3RpYywgYWxsb3dpbmcgZGV2ZWxvcGVycyB0byB1c2UgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FuZ3VsYXIuaW8vJnF1b3Q7Jmd0O0FuZ3VsYXIuanMmbHQ7L2EmZ3Q7LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oywgb3IgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3Z1ZWpzLm9yZy8mcXVvdDsmZ3Q7VnVlLmpzJmx0Oy9hJmd0OyBmb3IgZGV2ZWxvcG1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2Ugd2lsbCBiZSBidWlsZGluZyBhIGhhbmR5IHRhc2sgbWFuYWdlci4gV2Ugd2lsbCB3cml0ZSB0ZXN0cyBmb3IgZmVhdHVyZXMgaW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBzZXQgdXAgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbm91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgKENJKSBwaXBlbGluZSB0byBhdXRvbWF0ZSBvdXIgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcuIFdlIHdpbGwgYmUgZGV2ZWxvcGluZyBvdXIgYXBwbGljYXRpb24gdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9yZWFjdCZxdW90OyZndDtJb25pYyBSZWFjdCZsdDsvYSZndDssIHRoZSBJb25pYyB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgZGV2ZWxvcGluZyB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vcmVhY3Rqcy5vcmcvJnF1b3Q7Jmd0O1JlYWN0LmpzJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBmb2xsb3cgdGhpcyBwb3N0LCBhIGZldyB0aGluZ3MgYXJlIHJlcXVpcmVkOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QmFzaWMga25vd2xlZGdlIG9mIFJlYWN0LmpzIChOb3QgYSBkZWFsLWJyZWFrZXIsIHlvdSBvbmx5IGhhdmUgdG8gY29weS1wYXN0ZSB0aGUgY29kZSBzbmlwcGV0cykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbm9kZWpzLm9yZyZxdW90OyZndDtOb2RlLmpzJmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtUaGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9kb2NzL2NsaSZxdW90OyZndDtJb25pYyBDTEkmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L29sJmd0OwoKJmx0O2gyJmd0O1NjYWZmb2xkaW5nIHRoZSBJb25pYyBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBiZWdpbiwgbGV04oCZcyBzY2FmZm9sZCBhIG5ldyBJb25pYyBhcHBsaWNhdGlvbiBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2lvbmljIHN0YXJ0IHRhc2stbWFuYWdlciB0YWJzIC0tdHlwZT1yZWFjdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgSW9uaWMgQ0xJIHRvIHNjYWZmb2xkIGEgbmV3IHByb2plY3QgZm9yIHVzIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0YWJzJmx0Oy9jb2RlJmd0OyB0ZW1wbGF0ZSBpbnNpZGUgYSBmb2xkZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGFzay1tYW5hZ2VyJmx0Oy9jb2RlJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1lvdSBtaWdodCBiZSBwcm9tcHRlZCBhdCBzb21lIHBvaW50IHdpdGggJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Q3JlYXRlIGZyZWUgSW9uaWMgYWNjb3VudD8mbHQ7L2NvZGUmZ3Q7LiBIaXQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7biZsdDsvY29kZSZndDsgdG8gZGVjbGluZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYW4gSW9uaWMgYWNjb3VudCBzZWUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2lvbmljZnJhbWV3b3JrLmNvbS9hcHBmbG93JnF1b3Q7Jmd0O2hlcmUmbHQ7L2EmZ3Q7LiZsdDsvaSZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmNlIHRoaXMgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB0aGUgYXBwbGljYXRpb24gKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIHRhc2stbWFuYWdlciZsdDsvY29kZSZndDspIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIHNlcnZlIHRoZSBhcHBsaWNhdGlvbiBpbiB5b3VyIHdlYiBicm93c2VyOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7aW9uaWMgc2VydmUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGlzIGNvbW1hbmQgaGFzIGNvbXBsZXRlZCwgeW91IHdpbGwgc2VlIGFuIGFwcGxpY2F0aW9uIHZpZXcgaW4geW91ciBicm93c2VyIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O0kgYW0gdXNpbmcgYSBtb2JpbGUgcHJldmlldyBhY3RpdmF0ZWQgaW4gQ2hyb21l4oCZcyBkZXZlbG9wbWVudCB0b29scy4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXNjYWZmb2xkLXByZXZpZXcucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtEb27igJl0IGJlIHN1cnByaXNlZCBpZiB5b3VycyBoYXMgYSBibGFjayBiYWNrZ3JvdW5kIGFuZCB3aGl0ZSBmb250LiBJdCB1c2VzIHRoZSBkZWZhdWx0IG1vZGUgb2YgeW91ciBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMiZndDtCdWlsZGluZyB0aGUgVGFzayBNYW5hZ2VyIGFwcGxpY2F0aW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05leHQsIGxldOKAmXMgYmVnaW4gYnVpbGRpbmcgdGhlIG1haW4gYXBwbGljYXRpb24uIEdvIGludG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyIG9mIHlvdXIgYXBwbGljYXRpb24gYW5kIG9wZW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlLiBUaGlzIGlzIHRoZSBkZWZhdWx0IGhvbWUgcGFnZSBmb3IgdGhlIG5ld2x5IHNjYWZmb2xkZWQgYXBwbGljYXRpb24uIFJlbW92ZSBldmVyeXRoaW5nIGluIHRoaXMgZmlsZSBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRzeAoKaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsKICBJb25Db250ZW50LAogIElvbkhlYWRlciwKICBJb25QYWdlLAogIElvblRpdGxlLAogIElvblRvb2xiYXIsCiAgSW9uTGlzdCwKICBJb25JdGVtU2xpZGluZywKICBJb25JdGVtLAogIElvbkxhYmVsLAogIElvbkl0ZW1PcHRpb25zLAogIElvbkl0ZW1PcHRpb24sCiAgSW9uRmFiLAogIElvbkZhYkJ1dHRvbiwKICBJb25JY29uLAogIElvbk1vZGFsLAogIElvbkJ1dHRvbiwKICBJb25DYXJkLAogIElvbkNhcmRDb250ZW50LAogIElvbklucHV0LAp9IGZyb20gJnF1b3Q7QGlvbmljL3JlYWN0JnF1b3Q7OwoKaW1wb3J0IHsgYWRkIH0gZnJvbSAmcXVvdDtpb25pY29ucy9pY29ucyZxdW90OzsKCmltcG9ydCAmcXVvdDsuL1RhYjEuY3NzJnF1b3Q7OwoKaW50ZXJmYWNlIFRhc2sgewogIGlkOiBudW1iZXI7CiAgbmFtZTogc3RyaW5nOwp9Cgpjb25zdCBUYWIxOiBSZWFjdC5GQyA9ICgpID0mYW1wO2d0OyB7CiAgY29uc3QgW3Rhc2tzLCBzZXRUYXNrc10gPSB1c2VTdGF0ZSZhbXA7bHQ7VGFza1tdJmFtcDtndDsoW10pOwogIGNvbnN0IFtzaG93TW9kYWwsIHNldFNob3dNb2RhbF0gPSB1c2VTdGF0ZShmYWxzZSk7CiAgY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKCiAgZnVuY3Rpb24gYWRkTmV3VGFzaygpIHsKICAgIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogICAgY29uc3QgbmV3VGFzayA9IHsKICAgICAgaWQ6IG5ld19pZCwKICAgICAgbmFtZTogdGFza05hbWUsCiAgICB9OwoKICAgIHRhc2tzLnB1c2gobmV3VGFzayk7CgogICAgc2V0VGFza3ModGFza3MpOwoKICAgIHNldFRhc2tOYW1lKCZxdW90OyZxdW90Oyk7CgogICAgc2V0U2hvd01vZGFsKGZhbHNlKTsKICB9CgogIHJldHVybiAoCiAgICAmYW1wO2x0O0lvblBhZ2UmYW1wO2d0OwogICAgICAmYW1wO2x0O0lvbkhlYWRlciZhbXA7Z3Q7CiAgICAgICAgJmFtcDtsdDtJb25Ub29sYmFyJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uVGl0bGUmYW1wO2d0O1Rhc2sgTWFuYWdlciZhbXA7bHQ7L0lvblRpdGxlJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25Ub29sYmFyJmFtcDtndDsKICAgICAgJmFtcDtsdDsvSW9uSGVhZGVyJmFtcDtndDsKICAgICAgJmFtcDtsdDtJb25Db250ZW50JmFtcDtndDsKICAgICAgICAmYW1wO2x0O0lvbkxpc3QmYW1wO2d0OwogICAgICAgICAge3Rhc2tzLmxlbmd0aCAmYW1wO2d0OyAwID8gKAogICAgICAgICAgICB0YXNrcy5tYXAoKGl0ZW06IFRhc2spID0mYW1wO2d0OyB7CiAgICAgICAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbVNsaWRpbmcga2V5PXtpdGVtLmlkfSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbSBjbGFzc05hbWU9JnF1b3Q7dG9kby1pdGVtJnF1b3Q7JmFtcDtndDsKICAgICAgICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDt7aXRlbS5uYW1lfSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbnMgc2lkZT0mcXVvdDtlbmQmcXVvdDsmYW1wO2d0OwogICAgICAgICAgICAgICAgICAgICZhbXA7bHQ7SW9uSXRlbU9wdGlvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsge319JmFtcDtndDtEb25lJmFtcDtsdDsvSW9uSXRlbU9wdGlvbiZhbXA7Z3Q7CiAgICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1PcHRpb25zJmFtcDtndDsKICAgICAgICAgICAgICAgICZhbXA7bHQ7L0lvbkl0ZW1TbGlkaW5nJmFtcDtndDsKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9KQogICAgICAgICAgKSA6ICgKICAgICAgICAgICAgJmFtcDtsdDtJb25JdGVtJmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkxhYmVsJmFtcDtndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CiAgICAgICAgICApfQogICAgICAgICZhbXA7bHQ7L0lvbkxpc3QmYW1wO2d0OwoKICAgICAgICB7LyogTW9kYWwqL30KICAgICAgICAmYW1wO2x0O0lvbk1vZGFsIGlzT3Blbj17c2hvd01vZGFsfSZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkNhcmQmYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICZhbXA7bHQ7SW9uTGFiZWwmYW1wO2d0O0FkZCBOZXcgVGFzayZhbXA7bHQ7L0lvbkxhYmVsJmFtcDtndDsKICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAmYW1wO2x0O0lvbkNhcmRDb250ZW50JmFtcDtndDsKICAgICAgICAgICAgICAmYW1wO2x0O0lvbkl0ZW0mYW1wO2d0OwogICAgICAgICAgICAgICAgJmFtcDtsdDtJb25JbnB1dAogICAgICAgICAgICAgICAgICB2YWx1ZT17dGFza05hbWV9CiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPSZxdW90O0VudGVyIFRhc2sgTmFtZS4uLiZxdW90OwogICAgICAgICAgICAgICAgICBvbklvbkNoYW5nZT17KGUpID0mYW1wO2d0OyBzZXRUYXNrTmFtZShlLmRldGFpbC52YWx1ZSEpfQogICAgICAgICAgICAgICAgJmFtcDtndDsmYW1wO2x0Oy9Jb25JbnB1dCZhbXA7Z3Q7CiAgICAgICAgICAgICAgJmFtcDtsdDsvSW9uSXRlbSZhbXA7Z3Q7CgogICAgICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uCiAgICAgICAgICAgICAgICBleHBhbmQ9JnF1b3Q7ZnVsbCZxdW90OwogICAgICAgICAgICAgICAgY29sb3I9JnF1b3Q7cHJpbWFyeSZxdW90OwogICAgICAgICAgICAgICAgb25DbGljaz17KCkgPSZhbXA7Z3Q7IGFkZE5ld1Rhc2soKX0KICAgICAgICAgICAgICAmYW1wO2d0OwogICAgICAgICAgICAgICAgQWRkIFRhc2sKICAgICAgICAgICAgICAmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkQ29udGVudCZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0Oy9Jb25DYXJkJmFtcDtndDsKICAgICAgICAgICZhbXA7bHQ7SW9uQnV0dG9uIG9uQ2xpY2s9eygpID0mYW1wO2d0OyBzZXRTaG93TW9kYWwoZmFsc2UpfSZhbXA7Z3Q7Q2xvc2UgTW9kYWwmYW1wO2x0Oy9Jb25CdXR0b24mYW1wO2d0OwogICAgICAgICZhbXA7bHQ7L0lvbk1vZGFsJmFtcDtndDsKCiAgICAgICAgey8qIEFkZCBUYXNrIEJ1dHRvbiAqL30KICAgICAgICAmYW1wO2x0O0lvbkZhYiB2ZXJ0aWNhbD0mcXVvdDtib3R0b20mcXVvdDsgaG9yaXpvbnRhbD0mcXVvdDtlbmQmcXVvdDsgc2xvdD0mcXVvdDtmaXhlZCZxdW90OyZhbXA7Z3Q7CiAgICAgICAgICAmYW1wO2x0O0lvbkZhYkJ1dHRvbiBvbkNsaWNrPXsoKSA9JmFtcDtndDsgc2V0U2hvd01vZGFsKHRydWUpfSZhbXA7Z3Q7CiAgICAgICAgICAgICZhbXA7bHQ7SW9uSWNvbiBpY29uPXthZGR9IC8mYW1wO2d0OwogICAgICAgICAgJmFtcDtsdDsvSW9uRmFiQnV0dG9uJmFtcDtndDsKICAgICAgICAmYW1wO2x0Oy9Jb25GYWImYW1wO2d0OwogICAgICAmYW1wO2x0Oy9Jb25Db250ZW50JmFtcDtndDsKICAgICZhbXA7bHQ7L0lvblBhZ2UmYW1wO2d0OwogICk7Cn07CgpleHBvcnQgZGVmYXVsdCBUYWIxOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyBsZXTigJlzIGdvIHRocm91Z2ggdGhlIGNvZGUgc25pcHBldCBhYm92ZS4gVGhpcyBpcyB0aGUgZW50aXJlIGNvZGUgZm9yIG91ciBUYXNrIE1hbmFnZXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnQgYnkgaW1wb3J0aW5nIHRoZSBuZWNlc3NhcnkgZGVwZW5kZW5jaWVzIGluY2x1ZGluZyB0aGUgY3NzIGZpbGUgZm9yIG91ciBwYWdlLiBXZSB0aGVuIGRlZmluZSBhbiBpbnRlcmZhY2UgdG8gZGVmaW5lIG91ciB0YXNrIG9iamVjdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtpbnRlcmZhY2UgVGFzayB7CiAgaWQ6IG51bWJlcjsKICBuYW1lOiBzdHJpbmc7Cn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7TmV4dCwgd2UgY3JlYXRlIG91ciBjb21wb25lbnQgYXMgYSBSZWFjdCBmdW5jdGlvbiBjb21wb25lbnQgdHlwZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtSZWFjdC5GQyZsdDsvY29kZSZndDsgYW5kIGJlZ2luIHRoZSBmdW5jdGlvbiBieSBkZWZpbmluZyB0aGUgZGF0YSB3ZSB3YW50IHRvIGhvbGQgaW4gb3VyIHN0YXRlIHVzaW5nIGhvb2tzOiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tzJmx0Oy9jb2RlJmd0OyBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYXNrJmx0Oy9jb2RlJmd0O3MsIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2hvd01vZGFsJmx0Oy9jb2RlJmd0OyBib29sZWFuIHRvIGNvbnRyb2wgdGhlIG9wZW5pbmcgYW5kIGNsb3Npbmcgb2Ygb3VyIHRhc2sgY3JlYXRpb24gZm9ybSwgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Rhc2tOYW1lJmx0Oy9jb2RlJmd0OyB3aGljaCBob2xkcyB0aGUgdmFsdWUgb2YgYSBuZXcgdGFzayBpbiB0aGUgcHJvY2VzcyBvZiBjcmVhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IFt0YXNrcywgc2V0VGFza3NdID0gdXNlU3RhdGUmYW1wO2x0O1Rhc2tbXSZhbXA7Z3Q7KFtdKTsKY29uc3QgW3Nob3dNb2RhbCwgc2V0U2hvd01vZGFsXSA9IHVzZVN0YXRlKGZhbHNlKTsKY29uc3QgW3Rhc2tOYW1lID0gJnF1b3Q7JnF1b3Q7LCBzZXRUYXNrTmFtZV0gPSB1c2VTdGF0ZSZhbXA7bHQ7c3RyaW5nJmFtcDtndDsoKTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Rm9sbG93aW5nIHRoZXNlIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHdlIGNhbGwgdG8gYWRkIGEgbmV3IHRhc2suIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyB0YXNrIGJ5IHNldHRpbmcgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lkJmx0Oy9jb2RlJmd0OyBiYXNlZCBvbiB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBhbmQgY2xlYXJzIHRoZSBmb3JtIGFmdGVyIGFkZGluZyB0aGUgbmV3IHRhc2sgdG8gb3VyIGV4aXN0aW5nIGxpc3Qgb2YgdGFza3MuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtmdW5jdGlvbiBhZGROZXdUYXNrKCkgewogIGNvbnN0IG5ld19pZCA9IHRhc2tzLmxlbmd0aCArIDE7CgogIGNvbnN0IG5ld1Rhc2sgPSB7CiAgICBpZDogbmV3X2lkLAogICAgbmFtZTogdGFza05hbWUsCiAgfTsKCiAgdGFza3MucHVzaChuZXdUYXNrKTsKCiAgc2V0VGFza3ModGFza3MpOwoKICBzZXRUYXNrTmFtZSgmcXVvdDsmcXVvdDspOwoKICBzZXRTaG93TW9kYWwoZmFsc2UpOwp9CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05leHQsIHdlIHJlbmRlciBvdXIgdGVtcGxhdGUgdG8gZGlzcGxheSBvdXIgbGlzdCBvZiB0YXNrcyBhbmQgYWxzbyBkaXNwbGF5IGEgaGVscGZ1bCBtZXNzYWdlIHRoYXQgcmVhZHMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmbHQ7L2NvZGUmZ3Q7IHdoZW4gdGhlIHRhc2sgbGlzdCBpcyBlbXB0eS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtGb2xsb3dpbmcgdGhlIGxpc3QgaXMgYSBtb2RhbCBjb21wb25lbnQgdGhhdCBjb250YWlucyBvdXIgdGFzayBmb3JtIGZvciBhZGRpbmcgbmV3IHRhc2tzLiBCZWxvdyB0aGUgY29tcG9uZW50IGlzIGEgZmxvYXRpbmcgYWN0aW9uIGJ1dHRvbiB0aGF0IHRoZSB1c2VyIGNsaWNrcyB0byBvcGVuIHRoZSBtb2RhbC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWZvcmUgd2UgcHJldmlldyB0aGlzLCBvcGVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEuY3NzJmx0Oy9jb2RlJmd0OyBsb2NhdGVkIGluIHRoZSBzYW1lIGZvbGRlciBhcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRzeCZsdDsvY29kZSZndDsgYW5kIHJlcGxhY2UgaXRzIGNvbnRlbnRzIHdpdGggdGhlIGZvbGxvd2luZyBjb2RlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Lyogc3JjL3BhZ2VzL1RhYjEuY3NzICovCgoudG9kby1pdGVtIHsKICAtLW1pbi1oZWlnaHQ6IDcwcHg7CiAgZm9udC1zaXplOiAxLjJlbTsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHNpbXBseSBidW1wcyB1cCB0aGUgaGVpZ2h0IGFuZCBmb250LXNpemUgb2YgdGhlIGxpc3QgaXRlbXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm93LCBnbyB0byB5b3VyIGJyb3dzZXIgYW5kIGxvYWQgdGhlIGhvbWVwYWdlIG9mIHlvdXIgYXBwbGljYXRpb24gKFRhYjEpLiBZb3Ugd2lsbCBzZWUgdGhlIHBhZ2UgZGlzcGxheWVkIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1ob21lLW5vLXRhc2tzLnBuZyZxdW90OyAvJmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QmVjYXVzZSB3ZSBoYXZlbuKAmXQgYWRkZWQgYW55IHRhc2tzIHlldCwgd2UgaGF2ZSB0aGUgbWVzc2FnZSAmbHQ7c3Ryb25nJmd0O1lvdSBoYXZlIHlldCB0byBhZGQgdGFza3MgZm9yIHRvZGF5Jmx0Oy9zdHJvbmcmZ3Q7IGRpc3BsYXllZC4gV2UgYWxzbyBoYXZlIG91ciAmbHQ7c3Ryb25nJmd0O0FkZCBUYXNrJmx0Oy9zdHJvbmcmZ3Q7IGJ1dHRvbiBpbiB0aGUgYm90dG9tIHJpZ2h0IGNvcm5lciB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwbHVzJmx0Oy9jb2RlJmd0OyBzeW1ib2wuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0FkZGluZyB0YXNrcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBhZGQgYSBuZXcgdGFzaywgY2xpY2sgdGhlIGJvdHRvbS1yaWdodCBibHVlIGJ1dHRvbiB0byBwdWxsIHVwIHRoZSB0YXNrIGNyZWF0aW9uIGZvcm0gYW5kIHR5cGUgaW4gYSB0YXNrIGFzIHNob3duIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtdGFzay5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7QUREIFRBU0smbHQ7L3N0cm9uZyZndDsgdG8gYWRkIHRoZSB0YXNrIGFuZCBnbyBhaGVhZCB0byBhZGQgMiB0byAzIG1vcmUgdGFza3MuIFdlIHNob3VsZCBub3cgaGF2ZSBlbm91Z2ggdGFza3Mgb24gdGhlIHBhZ2UgZm9yIG91ciBhcHBsaWNhdGlvbiB0byBsb29rIGZ1bmN0aW9uYWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOmNlbnRlciZxdW90OyZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTE2LXRhc2stbGlzdC5wbmcmcXVvdDsgLyZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB3ZSBoYXZlIGEgZnVuY3Rpb25hbCBhcHBsaWNhdGlvbi4gTm90IHByb2R1Y3Rpb24tcmVhZHksIGJ1dCBnb29kIGVub3VnaCB0byBzdGFydCB0ZXN0aW5nLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBZGRpbmcgdGVzdHMgdG8gdGhlIFRhc2sgTWFuYWdlciBhcHBsaWNhdGlvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtPbmUgYWR2YW50YWdlIHRoYXQgd2UgaGF2ZSB3aXRoIHRlc3Rpbmcgb3VyIElvbmljIGFwcGxpY2F0aW9ucyBpcyB0aGF0IHdoaWxlIHNjYWZmb2xkaW5nIHRoZSBhcHBsaWNhdGlvbiwgdGhlIElvbmljIENMSSBoYXMgc2V0IHVwIGFsbCB0aGF0IHRoZSBhcHBsaWNhdGlvbiBuZWVkcywgaW4gdGVybXMgb2YgcGFja2FnZXMgYW5kIGNvbmZpZ3VyYXRpb25zLCBmb3IgdGVzdGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUZXN0aW5nIElvbmljIFJlYWN0IGFwcGxpY2F0aW9ucyBpcyBkb25lIHVzaW5nIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vamVzdGpzLmlvLyZxdW90OyZndDtKZXN0Jmx0Oy9hJmd0OyB0ZXN0aW5nIGZyYW1ld29yayB0b2dldGhlciB3aXRoIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdGVzdGluZy1saWJyYXJ5LmNvbS9kb2NzL3JlYWN0LXRlc3RpbmctbGlicmFyeS9pbnRybyZxdW90OyZndDtSZWFjdCBUZXN0aW5nIExpYnJhcnkmbHQ7L2EmZ3Q7IGFuZCB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vaW9uaWMtdGVhbS9pb25pYy1yZWFjdC10ZXN0LXV0aWxzJnF1b3Q7Jmd0O0lvbmljIFJlYWN0IFRlc3QgVXRpbHMmbHQ7L2EmZ3Q7IGxpYnJhcnkgd2hpY2ggaXMgYSBzbWFsbCBzdWl0ZSBvZiB1dGlsaXRpZXMgdG8gc2ltdWxhdGUgY29tbW9uIGZlYXR1cmVzIGluIElvbmljIGxpa2UgZmlyaW5nIGN1c3RvbSBJb25pYyBldmVudHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIHByb2plY3QgYWxyZWFkeSBjb21lcyB3aXRoIGEgdGVzdCBmaWxlIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7QXBwLnRzeCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLiBBcyB5b3UgbWF5IGhhdmUgZ3Vlc3NlZCwgdGhlIHRlc3QgZmlsZSBpcyBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtBcHAudGVzdC50c3gmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGZvbGxvd3MgdGhlIGNvbnZlbnRpb24gZm9yIEplc3QgdGVzdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsvLyBzcmMvQXBwLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgQXBwIGZyb20gJnF1b3Q7Li9BcHAmcXVvdDs7Cgp0ZXN0KCZxdW90O3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZyZxdW90OywgKCkgPSZhbXA7Z3Q7IHsKICBjb25zdCB7IGJhc2VFbGVtZW50IH0gPSByZW5kZXIoJmFtcDtsdDtBcHAgLyZhbXA7Z3Q7KTsKICBleHBlY3QoYmFzZUVsZW1lbnQpLnRvQmVEZWZpbmVkKCk7Cn0pOwombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHRlc3Qgc2ltcGx5IGNoZWNrcyB0aGF0IHRoZSBhcHBsaWNhdGlvbiByZW5kZXJzIHByb3Blcmx5IGFuZCBkb2VzIG5vdCBjcmFzaC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBydW4gdGhpcyB0ZXN0LCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBpbnZva2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2plc3QmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gcnVuIHRoZSB0ZXN0IGRlZmluZWQgaW4gdGhlIGZpbGUuIEFzIGRpcmVjdGVkLCBwcmVzcyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDthJmx0Oy9jb2RlJmd0OyB0byBydW4gYWxsIHRlc3RzLiBUaGUgYWJvdmUgY29tbWFuZCBpcyB0aGUgY29tbWFuZCB3ZSB3aWxsIGJlIHVzaW5nIHRvIHJ1biBhbGwgdGVzdHMgaW4gb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgbGV04oCZcyBhZGQgc29tZSB0ZXN0cyBvZiBvdXIgb3duLiBXZSB3aWxsIGJlIGNyZWF0aW5nIGEgdGVzdCBmaWxlIHRvIHRlc3QgdGhlIGFwcGxpY2F0aW9uIGxvZ2ljIHdlIGhhdmUgaW4gb3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1RhYjEudHN4Jmx0Oy9jb2RlJmd0OyBmaWxlIHdoaWNoIGhvdXNlcyBvdXIgYXBwbGljYXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtUYWIxLnRlc3QudHN4Jmx0Oy9jb2RlJmd0OyBpbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYy9wYWdlcyZsdDsvY29kZSZndDsgZm9sZGVyLiBJdOKAmXMgdGhlIHNhbWUgcGxhY2UgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VGFiMS50c3gmbHQ7L2NvZGUmZ3Q7IGZpbGUgaXMgbG9jYXRlZC4gSW5zaWRlIHRoZSBuZXdseSBjcmVhdGVkIGZpbGUsIHBsYWNlIGluIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Oy8vIHNyYy9wYWdlcy9UYWIxLnRlc3QudHN4CgppbXBvcnQgUmVhY3QgZnJvbSAmcXVvdDtyZWFjdCZxdW90OzsKaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAmcXVvdDtAdGVzdGluZy1saWJyYXJ5L3JlYWN0JnF1b3Q7OwppbXBvcnQgVGFiMSBmcm9tICZxdW90Oy4vVGFiMSZxdW90OzsKCnRlc3QoJnF1b3Q7UGFnZSB0aXRsZSBpcyBUYXNrIE1hbmFnZXImcXVvdDssIGFzeW5jICgpID0mYW1wO2d0OyB7CiAgY29uc3QgeyBmaW5kQnlUZXh0IH0gPSByZW5kZXIoJmFtcDtsdDtUYWIxIC8mYW1wO2d0Oyk7CiAgYXdhaXQgZmluZEJ5VGV4dCgmcXVvdDtUYXNrIE1hbmFnZXImcXVvdDspOwp9KTsKCnRlc3QoJnF1b3Q7V2hlbiB0aGVyZSBhcmUgbm8gVGFza3MsIGluZm9ybSB0aGUgdXNlciB0aGF0IG5vIHRhc2tzIGhhdmUgYmVlbiBjcmVhdGVkJnF1b3Q7LCBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IHsgZmluZEJ5VGV4dCB9ID0gcmVuZGVyKCZhbXA7bHQ7VGFiMSAvJmFtcDtndDspOwogIGF3YWl0IGZpbmRCeVRleHQoJnF1b3Q7WW91IGhhdmUgeWV0IHRvIGFkZCB0YXNrcyBmb3IgdG9kYXkmcXVvdDspOwp9KTsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBmaWxlLCB3ZSBoYXZlIGFkZGVkIHR3byB0ZXN0cy4gVGhlIGZpcnN0IHRlc3QgY2hlY2tzIGlmIG91ciBwYWdlIGRpc3BsYXlzIHdpdGggdGhlIGNvcnJlY3QgdGl0bGUgd2hpY2ggaXMgJmx0O3N0cm9uZyZndDtUYXNrIE1hbmFnZXImbHQ7L3N0cm9uZyZndDsuIFRoZSBzZWNvbmQgdGVzdCBjaGVja3MgaWYgb3VyIGFwcGxpY2F0aW9uIGluaXRpYWxseSBsb2FkcyB3aXRob3V0IHRhc2tzLCBhbmQgaWYgaXQgZG9lcywgaXQgZGlzcGxheXMgdGhlIG1lc3NhZ2UgJmx0O3N0cm9uZyZndDtZb3UgaGF2ZSB5ZXQgdG8gYWRkIHRhc2tzIGZvciB0b2RheSZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3csIGxldOKAmXMgcnVuIHRoZXNlIHRlc3RzIGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kIGF0IHRoZSByb290IG9mIG91ciBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSBhIHNjcmVlbiBzaW1pbGFyIHRvIHRoZSBvbmUgYmVsb3cgb24geW91ciBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLiZsdDsvcCZndDsKCiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjpjZW50ZXImcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi10ZXN0cy1sb2NhbC1ydW4ucG5nJnF1b3Q7IC8mZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIG91ciB0ZXN0cyBydW5uaW5nIGFzIGV4cGVjdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBdXRvbWF0aW5nIG91ciB0ZXN0aW5nJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBmaW5hbCB0YXNrIGlzIHRvIGF1dG9tYXRlIG91ciBjb250aW51b3VzIGludGVncmF0aW9uIHByb2Nlc3MuIFRvIGFjaGlldmUgdGhhdCwgd2Ugd2lsbCBiZSBkb2luZyB0aGUgZm9sbG93aW5nOiZsdDsvcCZndDsKCiZsdDtvbCZndDsKICAmbHQ7bGkmZ3Q7QWRkIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgdG8gb3VyIHByb2plY3QgdG8gc2V0IHVwIGEgQ0kgcGlwZWxpbmUgb24gQ2lyY2xlQ0kmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIG91ciBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG9zaXRvcnkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDcmVhdGUgYSBDaXJjbGVDSSBwcm9qZWN0IGZvciBvdXIgYXBwbGljYXRpb24mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtSdW4gdGhlIENJIHBpcGVsaW5lIG9uIENpcmNsZUNJJmx0Oy9saSZndDsKJmx0Oy9vbCZndDsKCiZsdDtwJmd0O0xldOKAmXMgZ2V0IHRvIGl0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZpcnN0LCBsZXTigJlzIGFkZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3Igb3VyIENJIHBpcGVsaW5lIHRvIG91ciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbiBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLiBJbnNpZGUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbmZpZy55bWwmbHQ7L2NvZGUmZ3Q7IGZpbGUsIGVudGVyIHRoZSBmb2xsb3dpbmcgY29kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpqb2JzOgogIGJ1aWxkOgogICAgd29ya2luZ19kaXJlY3Rvcnk6IH4vcmVwbwogICAgZG9ja2VyOgogICAgICAtIGltYWdlOiBjaW1nL25vZGU6MTIuMTYKICAgIHN0ZXBzOgogICAgICAtIGNoZWNrb3V0CiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdXBkYXRlLW5wbQogICAgICAgICAgY29tbWFuZDogJnF1b3Q7c3VkbyBucG0gaW5zdGFsbCAtZyBucG1ANSZxdW90OwogICAgICAtIHJlc3RvcmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgLSBydW46CiAgICAgICAgICBuYW1lOiBpbnN0YWxsLXBhY2thZ2VzCiAgICAgICAgICBjb21tYW5kOiBucG0gaW5zdGFsbAogICAgICAtIHNhdmVfY2FjaGU6CiAgICAgICAgICBrZXk6IGRlcGVuZGVuY3ktY2FjaGUte3sgY2hlY2tzdW0gJnF1b3Q7cGFja2FnZS1sb2NrLmpzb24mcXVvdDsgfX0KICAgICAgICAgIHBhdGhzOgogICAgICAgICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gcnVuOgogICAgICAgICAgbmFtZTogdGVzdAogICAgICAgICAgY29tbWFuZDogbnBtIHJ1biB0ZXN0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgY29uZmlndXJhdGlvbiBwdWxscyBpbiBhIE5vZGUuanMgaW1hZ2UgYW5kIGluc3RhbGxzIGFsbCB0aGUgZGVwZW5kZW5jaWVzIGRlZmluZWQgaW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0Oy4gT25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCB0aGUgdGVzdCBzY3JpcHQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bnBtIHJ1biB0ZXN0Jmx0Oy9jb2RlJmd0OyBpcyB0aGVuIGV4ZWN1dGVkIHRvIHJ1biBhbGwgdGhlIHRlc3RzIGluIG91ciBhcHBsaWNhdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGdvb2QgdG8gZ28uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY29tbWl0IGFsbCB5b3VyIGNoYW5nZXMgYW5kIHB1c2ggdGhlIHByb2plY3QgdG8gYSBHaXRIdWIgcmVwb3NpdG9yeSBvbiB0aGUgR2l0SHViIGFjY291bnQgY29ubmVjdGVkIHRvIHlvdXIgQ2lyY2xlQ0kgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIGlzIHRvIHNldCB1cCB0aGUgcmVwb3NpdG9yeSBmb3Igb3VyIHByb2plY3QgYXMgYSBDaXJjbGVDSSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBDaXJjbGVDSSBjb25zb2xlLCBnbyB0byB0aGUgJmx0O3N0cm9uZyZndDtBZGQgUHJvamVjdHMmbHQ7L3N0cm9uZyZndDsgcGFnZSB0byBhZGQgdGhlIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1hZGQtcHJvamVjdC5wbmcmcXVvdDsgYWx0PSZxdW90O0FkZCBQcm9qZWN0JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0Oy4gVGhpcyB3aWxsIGxvYWQgdGhlIG5leHQgc2NyZWVuLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3N0YXJ0LWJ1aWxkaW5nMS5wbmcmcXVvdDsgYWx0PSZxdW90O1N0YXJ0IEJ1aWxkaW5nIC0gQ29uZmlnIHNhbXBsZSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O09uIHRoZSBzZXR1cCBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7LiBCZWZvcmUgdGhlIGJ1aWxkIHN0YXJ0cywgeW91IGdldCBhIHByb21wdCB0byBlaXRoZXIgZG93bmxvYWQgYW5kIHVzZSB0aGUgcHJvdmlkZWQgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBoYXZlIGl0IG9uIGEgc2VwYXJhdGUgYnJhbmNoIG9yIHNldCB1cCBvbmUgbWFudWFsbHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzIucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIEFkZCBtYW51YWxseSZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1NlbGVjdCAmbHQ7c3Ryb25nJmd0O0FkZCBNYW51YWxseSZsdDsvc3Ryb25nJmd0OyB0byBwcm9jZWVkLiBUaGlzIHdpbGwgcHJvbXB0IGFub3RoZXIgZGlhbG9nIHRoYXQgY2hlY2tzIHRvIGNvbmZpcm0gdGhhdCB5b3UgaGF2ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBzZXQgdXAgdG8gYmVnaW4gYnVpbGRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xNi1zdGFydC1idWlsZGluZzMucG5nJnF1b3Q7IGFsdD0mcXVvdDtTdGFydCBCdWlsZGluZyAtIENvbmZpcm0gY29uZmlndXJhdGlvbiZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsgdG8gY29tcGxldGUgdGhlIHNldHVwLiBUaGlzIHdpbGwgaW1tZWRpYXRlbHkgdHJpZ2dlciB0aGUgcGlwZWxpbmUgdXNpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiBvdXIgcHJvamVjdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGUgYnVpbGQgaXMgZG9uZSBydW5uaW5nLCB5b3Ugd2lsbCBnZXQgYSBzdWNjZXNzZnVsIGJ1aWxkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtc3VjY2Vzc2Z1bC5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHN1Y2Nlc3NmdWwmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O2J1aWxkJmx0Oy9zdHJvbmcmZ3Q7IHRvIHNlZSB0aGUgYmVoaW5kLXRoZS1zY2VuZXMgcHJvY2VzcyhJIGhhdmUgY29sbGFwc2VkIHRoZSAmbHQ7ZW0mZ3Q7dGVzdCZsdDsvZW0mZ3Q7IHN0ZXApLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTYtYnVpbGQtcHJvY2Vzcy5wbmcmcXVvdDsgYWx0PSZxdW90O0J1aWxkIHByb2Nlc3MmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBzY3JlZW4sIG91ciBwcm9qZWN0IGlzIHByb3Blcmx5IHNldCB1cCBhbmQgYWxsIG91ciB0ZXN0cyBhcmUgcnVubmluZyBmaW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgYXMgeW91IGRldmVsb3AsIGFsbCB5b3UgaGF2ZSB0byBkbyBpcyBhZGQgbW9yZSBmZWF0dXJlcywgYWRkIHRlc3RzIHRvIHRoZW0gYW5kIHB1c2ggdG8gR2l0SHViLiBPbmNlIHlvdSBwdXNoLCB0aGUgQ0kgcGlwZWxpbmUgd2lsbCBydW4gYW5kIGFsbCB5b3VyIHRlc3RzIHdpbGwgYmUgZXhlY3V0ZWQuIElmIGFueSB0ZXN0IGZhaWxzLCB5b3VyIGJ1aWxkIHdpbGwgZmFpbCB3aGljaCB3aWxsIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgYSBidWcgaW4geW91ciBhcHBsaWNhdGlvbiB0byBiZSBmaXhlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgZW5zdXJlIHRoYXQgeW914oCZcmUgbm90IHB1c2hpbmcgYW55IGJ1Z3MgaW50byB5b3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIHRoaXMgYXJ0aWNsZSwgd2UgaGF2ZSBzZXQgdXAgYW4gYXV0b21hdGVkIENJIHBpcGVsaW5lIGZvciBvdXIgSW9uaWMgYXBwbGljYXRpb25zIHRvIGltcHJvdmUgb3VyIGRldmVsb3BtZW50IHdvcmtmbG93IGJ5IGF1dG9tYXRpbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcy4gSGF2aW5nIGEgQ0kgcGlwZWxpbmUgdGhhdCBwcm9wZXJseSBydW5zIG91ciB0ZXN0cyBwcm90ZWN0cyB1cyBhZ2FpbnN0IG91cnNlbHZlcyBieSBlbnN1cmluZyB0aGF0IHdlIGRvbuKAmXQgZW5kIHVwIHdpdGggYnJva2VuIGFwcGxpY2F0aW9ucyBvciB0aGF0IHdlIGRvbuKAmXQgcHVzaCBidWdneSBjb2RlIHRvIG91ciB0ZWFt4oCZcyByZXBvc2l0b3J5IHdoaWxlIHdvcmtpbmcgdG9nZXRoZXIgb24gYSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyA6KSZsdDsvcCZndDsKCiZsdDtociAvJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3R3aXR0ZXIuY29tL2NvZGVyb25mbGVlaz9sYW5nPWVuJnF1b3Q7Jmd0O0Zpa2F5byZsdDsvYSZndDsgaXMgYSBmdWxsc3RhY2sgZGV2ZWxvcGVyIGFuZCBhdXRob3Igd2l0aCBvdmVyIGEgZGVjYWRlIG9mIGV4cGVyaWVuY2UgZGV2ZWxvcGluZyB3ZWIgYW5kIG1vYmlsZSBzb2x1dGlvbnMuIEhlIGlzIGN1cnJlbnRseSB0aGUgU29mdHdhcmUgTGVhZCBhdCBUZWNoIFNwZWNpYWxpc3QgQ29uc3VsdGluZyBhbmQgZGV2ZWxvcHMgY291cnNlcyBmb3IgUGFja3QgYW5kIFVkZW15LiBIZSBoYXMgYSBzdHJvbmcgcGFzc2lvbiBmb3IgdGVhY2hpbmcgYW5kIGhvcGVzIHRvIGJlY29tZSBhIGZ1bGwtdGltZSBhdXRob3IuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5EcmF3biBPdXQgQ29udmVyc2F0aW9ucywgZmVhdHVyaW5nIENpcmNsZUNJIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlciwgUGF0IFNoaWVsZHM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZHJhd24tb3V0LWNvbnZlcnNhdGlvbi1mZWF0dXJpbmctY2lyY2xlY2ktcHJpbmNpcGFsLXNvZnR3YXJlLWVuZ2luZWVyLXBhdC1zaGllbGRzLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5GcmksIDE1IE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RyYXduLW91dC1jb252ZXJzYXRpb24tZmVhdHVyaW5nLWNpcmNsZWNpLXByaW5jaXBhbC1zb2Z0d2FyZS1lbmdpbmVlci1wYXQtc2hpZWxkcy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Db3JleSBMZXdpczwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtPbiB0aGlzIGVwaXNvZGUgb2YgRHJhd24gT3V0IENvbnZlcnNhdGlvbnMsIHdlIHRhbGsgYWJvdXQgc29tZXRoaW5nIG5lYXIgYW5kIGRlYXIgdG8gb3VyIGhlYXJ0cyDigJMgQ2lyY2xlQ0kuIFdlLCBhbG9uZyB3aXRoIGh1bmRyZWQgb2YgdGhvdXNhbmRzIG9mIG90aGVyIGRldmVsb3BlcnMgYXQgY29tcGFuaWVzIGxpa2UgU3BvdGlmeSwgRmFjZWJvb2ssIEZvcmQgYW5kIEFldG5hLCB1c2UgQ2lyY2xlQ0kgZXZlcnkgZGF5IHRvIG1ha2Ugc3VyZSB0aGF0IHdl4oCZcmUgZGVwbG95aW5nIHF1YWxpdHkgY29kZSwgYW5kIGJ1aWxkaW5nIGVmZmljaWVuY2llcyBpbnRvIG91ciBlbmdpbmVlcmluZyBwcm9jZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0LCB3aGF0IGV4YWN0bHkgaXMgdW5kZXJuZWF0aCBvdXIgcGxhdGZvcm3igJlzIGhvb2Q/Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Sm9pbiBvdXIgQ1RPIFJvYiBadWJlciBhcyBoZSBob3N0cyBDaXJjbGVDSeKAmXMgUHJpbmNpcGFsIFNvZnR3YXJlIEVuZ2luZWVyIFBhdCBTaGllbGRzIHRvIGRpc2N1c3MgdGhlIGlubmVyLXdvcmtpbmdzIG9mIG91ciB0ZWNobm9sb2d5IGFuZCBwbGF0Zm9ybS4gVGhleSBkaXNjdXNzIGV2ZXJ5dGhpbmcgZnJvbSBwcm9kdWN0IGZlYXR1cmVzIHRvIGFyY2hpdGVjdHVyZSBhbmQgdGFsayBhYm91dCBob3cgYW5kIHdoeSB0aGUgY29yZSBlbGVtZW50cyBvZiBvdXIgcGxhdGZvcm0gZ290IGJ1aWx0LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhL3JvYi1wYXQucG5nJnF1b3Q7IGFsdD0mcXVvdDtyb2ItcGF0LnBuZyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1JvYiBldmVuIHRha2VzIGEgdHVybiB3aXRoIHRoZSBtYXJrZXJzIHRvIGRpc2N1c3MgZG9tYWluLWRyaXZlbiBkZXNpZ24sIGF1dGhlbnRpY2F0aW9uIGFuZCBtb3JlLiBMZWFybiBldmVyeXRoaW5nIHlvdSBldmVyIHdhbnRlZCB0byBrbm93IGFib3V0IENpcmNsZUNJIGFuZCBtb3JlIGluIHRvZGF54oCZcyBjb252ZXJzYXRpb24uJmx0Oy9wJmd0OwoKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXImcXVvdDsmZ3Q7CiAgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3lvdXR1LmJlL1dMOVJRNmZNbGUwJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvY2lyY2xlY2kuZ2lmJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsKICAmbHQ7L2EmZ3Q7CgombHQ7YnIgLyZndDsKCiAgJmx0O3AmZ3Q7CiAgICAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8veW91dHUuYmUvV0w5UlE2Zk1sZTAmcXVvdDsgc3R5bGU9JnF1b3Q7Y29sb3I6IzAwMDBFRTsmcXVvdDsmZ3Q7CiAgICAgIFdhdGNoIHRoZSBmdWxsIHZpZGVvIGhlcmUKICAgICZsdDsvYSZndDsKICAmbHQ7L3AmZ3Q7CiZsdDsvZGl2Jmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZG8gSSB1c2UgSW5mcmFzdHJ1Y3R1cmUgYXMgQ29kZT88L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWRvLWktaWFjLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5UaHUsIDE0IE1heSAyMDIwIDEyOjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2hvdy1kby1pLWlhYy88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5BbmdlbCBSaXZlcmE8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7SW5mcmFzdHJ1Y3R1cmUgYXMgY29kZSAoSWFDKSBpcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBhbmQgcHJvdmlzaW9uaW5nIGNsb3VkIGFuZCBJVCByZXNvdXJjZXMgdmlhIG1hY2hpbmUgcmVhZGFibGUgZGVmaW5pdGlvbiBmaWxlcyBhbmQgaXMgYSBwYXJ0IG9mIG1vZGVybiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lcy4gSWFDIGVuYWJsZXMgb3JnYW5pemF0aW9ucyB0byBwcm92aXNpb24sIG1hbmFnZSwgYW5kIGRlc3Ryb3kgY29tcHV0ZSByZXNvdXJjZXMgdXNpbmcgbW9kZXJuIERldk9wcyB0b29scy4gSWFDIGVuYWJsZXMgdGhpcyBieSBzdGF0aWNhbGx5IGRlZmluaW5nIGFuZCBkZWNsYXJpbmcgdGhlc2UgcmVzb3VyY2VzIGluIGNvZGUsIHRoZW4gZGVwbG95aW5nIGFuZCBkeW5hbWljYWxseSBtYWludGFpbmluZyB0aGVzZSByZXNvdXJjZXMgdmlhIGNvZGUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gcmVjZW50IGludGVyYWN0aW9ucyB3aXRoIGRldmVsb3BlcnMsIEnigJl2ZSByZWFsaXplZCB0aGF0IG1hbnkgYXJlIGVpdGhlciBub3QgYXdhcmUgb2YgSWFDLCBvciBhcmUgYXdhcmUgYnV0IGhhdmUgYWJhbmRvbmVkIHRoZWlyIGluaXRpYWwgZWZmb3J0cyBiZWNhdXNlIHJhbXBpbmcgdXAgd2FzIHRvbyBjdW1iZXJzb21lLiBJbiB0aGlzIHBvc3QsIEkgd2lsbCBkaXNjdXNzIHRoZSBiZW5lZml0cyBvZiBJYUMgYW5kIHNvbWUgb2YgdGhlIHRvb2xpbmcgb3B0aW9uIGN1cnJlbnRseSBhdmFpbGFibGUgYWxvbmcgd2l0aCBhIGJyaWVmIGRlbW9uc3RyYXRpb24gb24gaG93IHRvIHVzZSB0aGVtIGluIGhvcGVzIG9mIGVhc2luZyB0aGUgdHJhbnNpdGlvbiB0byB1c2luZyBJYUMuIEkgd2lsbCBmb2N1cyBvbiB0aGUgdHdvIG1vc3QgcG9wdWxhciBJYUMgdG9vbHMgdXNlZCBpbiB0aGUgaW5kdXN0cnkgdG9kYXk6ICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cudGVycmFmb3JtLmlvLyZxdW90OyZndDtIYXNoaUNvcnDigJlzIFRlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7UHJlcmVxdWlzaXRlcyZsdDsvaDImZ3Q7CgombHQ7cCZndDtCZWZvcmUgeW91IGdldCBzdGFydGVkLCB5b3XigJlsbCBuZWVkIHRvIGhhdmUgdGhlc2UgdGhpbmdzOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9mcmVlJnF1b3Q7Jmd0O0dvb2dsZSBDbG91ZCZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NyZWF0ZSBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL3Jlc291cmNlLW1hbmFnZXIvZG9jcy9jcmVhdGluZy1tYW5hZ2luZy1wcm9qZWN0cyNjcmVhdGluZ19hX3Byb2plY3QmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIHByb2plY3QmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2FwcC5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkgQVBJIHRva2VuJmx0Oy9hJmd0OyBhbmQgc2F2ZSBpdCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgbG9jYWwgaW5zdGFsbCBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vc2RrL2RvY3MvcXVpY2tzdGFydHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIFNESyBDTEkmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSBsb2NhbCBpbnN0YWxsIG9mIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vaHViLmRvY2tlci5jb20vc2VhcmNoLz90eXBlPWVkaXRpb24mYW1wO2FtcDtvZmZlcmluZz1jb21tdW5pdHkmcXVvdDsmZ3Q7RG9ja2VyIGNsaWVudCZsdDsvYSZndDsmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBHb29nbGUgQ2xvdWQgcHJvamVjdCBjcmVkZW50aWFscyZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDbG91ZFBsYXRmb3JtL2NvbW11bml0eS9ibG9iL21hc3Rlci90dXRvcmlhbHMvZ2V0dGluZy1zdGFydGVkLW9uLWdjcC13aXRoLXRlcnJhZm9ybS9pbmRleC5tZCNnZXR0aW5nLXByb2plY3QtY3JlZGVudGlhbHMmcXVvdDsmZ3Q7R29vZ2xlIENsb3VkIGNyZWRlbnRpYWxzJmx0Oy9hJmd0OyBpbiBvcmRlciB0byBwZXJmb3JtIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgdXNpbmcgSWFDIHRvb2xpbmcuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NvbnNvbGUuY2xvdWQuZ29vZ2xlLmNvbS9hcGlzL2NyZWRlbnRpYWxzL3NlcnZpY2VhY2NvdW50a2V5JnF1b3Q7Jmd0O0NyZWF0ZSBTZXJ2aWNlIEFjY291bnQgS2V5IHBhZ2UmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7U2VsZWN0IHRoZSBkZWZhdWx0IHNlcnZpY2UgYWNjb3VudCBvciBjcmVhdGUgYSBuZXcgb25lLCBzZWxlY3QgSlNPTiBhcyB0aGUga2V5IHR5cGUsIGFuZCBjbGljayAmbHQ7c3Ryb25nJmd0O0NyZWF0ZSZsdDsvc3Ryb25nJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O1NhdmUgdGhpcyBKU09OIGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgYW5kIHJlbmFtZSB0aGUgZmlsZSB0byAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaWNkX2RlbW9fZ2NwX2NyZWRzLmpzb24mbHQ7L2NvZGUmZ3Q7LiBUaGlzIGlzICZsdDtzdHJvbmcmZ3Q7dmVyeSBpbXBvcnRhbnQmbHQ7L3N0cm9uZyZndDsgZm9yIGVuYWJsaW5nIHRoZSBHb29nbGUgQ2xvdWQgQ0xJIGluIHRoZSBjb250YWluZXIgbGF0ZXIgb24mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O2gyJmd0O0NyZWF0ZSBhIFB1bHVtaSBBUEkgdG9rZW4mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7WW91IHdpbGwgbmVlZCB0byBnZXQgYSBQdWx1bWkgQVBJIHRva2VuIHRvIHN0b3JlIHlvdXIgcHJvamVjdCBzdGF0ZSBvbiBQdWx1bWnigJlzIGJhY2tlbmQgY2xvdWQuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDtHbyB0byAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vYXBwLnB1bHVtaS5jb20vJnF1b3Q7Jmd0O2FwcC5wdWx1bWkuY29tLyZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1NlbGVjdCBhbiBPcmdhbml6YXRpb24mbHQ7L3N0cm9uZyZndDsgb24gdGhlIHVwcGVyIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSBhbmQgc2VsZWN0IHlvdXIgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtDbGljayAmbHQ7c3Ryb25nJmd0O0FjY2VzcyBUb2tlbnMmbHQ7L3N0cm9uZyZndDsgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7TmV3IEFjY2VzcyBUb2tlbiZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgcGFnZSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0NsaWNrICZsdDtzdHJvbmcmZ3Q7Q3JlYXRlJmx0Oy9zdHJvbmcmZ3Q7IGFuZCBzYXZlIHRoZSBuZXcgQVBJIHRva2VuIHRoYXQgd2FzIGNyZWF0ZWQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGluaXRpYWxpemUgeW91ciBQdWx1bWkgcHJvamVjdCBsYXRlciZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7aDImZ3Q7RG9ja2VyIHB1bGwgSWFDMTAxIERvY2tlciBpbWFnZSZsdDsvaDImZ3Q7CgombHQ7cCZndDtBdCB0aGlzIHBvaW50LCBhbGwgb2YgdGhlIHByZXJlcXVpc2l0ZXMgYXJlIGNvbXBsZXRlZCBhbmQgeW914oCZcmUgcmVhZHkgdG8gcHVsbCB0aGUgZG9ja2VyIGltYWdlIGZvciB0aGlzIHdvcmtzaG9wLiBJbiB0ZXJtaW5hbCB0eXBlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBwdWxsIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm93IGhhdmUgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2FyaXYzcmEvaWFjMTAxJmx0Oy9jb2RlJmd0OyBkb2NrZXIgaW1hZ2UgbG9jYWxseS4gWW91IGNhbiB2ZXJpZnkgYnV5IHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgYW5kIHlvdSBzaG91bGQgc2VlIHRoZSBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0RvY2tlciBydW4gSWFDMTAxIGNvbnRhaW5lciZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgd2XigJlsbCBjcmVhdGUgYSBuZXcgRG9ja2VyIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YXJpdjNyYS9pYWMxMDEmbHQ7L2NvZGUmZ3Q7IGltYWdlIHdoaWNoIGhhcyBhbGwgdGhlIElhQyB0b29scyBhbmQgY29kZSBwcmUtYmFrZWQuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O01vdW50aW5nIHRoZSAvLmNvbmZpZy9nY2xvdWQvIGRpcmVjdG9yeSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtCZWZvcmUgcnVubmluZyB0aGUgbmV3IGNvbnRhaW5lciB5b3UgbmVlZCB0aGUgYWJzb2x1dGUgcGF0aCB0byB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vLmNvbmZpZy9nY2xvdWQvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkuIE9uIG15IE1hY09TIG1hY2hpbmUsIG15IGFic29sdXRlIHBhdGggaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7L1VzZXJzL2FuZ2VsLy5jb25maWcvZ2Nsb3VkLyZsdDsvY29kZSZndDsuIEJlIHN1cmUgdG8gZ2V0IHlvdXIgYWJzb2x1dGUgZmlsZSBwYXRoIGZvciB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2Nsb3VkJmx0Oy9jb2RlJmd0OyBkaXJlY3Rvcnkgb24geW91ciBsb2NhbCBtYWNoaW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtSdW4gSWFDMTAxIGNvbnRhaW5lciB3aXRoIG1vdW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtSdW4gdGhpcyBjb21tYW5kIGluIGEgdGVybWluYWwgcnVuIGJ1dCBiZSBzdXJlIHRvIHJlcGxhY2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0OyZsdDsvY29kZSZndDsgYml0IHdpdGggeW91ciBhY3R1YWwgYWJzb2x1dGUgcGF0aCB0byB5b3VyIGxvY2FsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dsb2N1ZC8mbHQ7L2NvZGUmZ3Q7ZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtaXQgLS1uYW1lIGlhY3Rlc3QgLS1tb3VudCB0eXBlPWJpbmQsc291cmNlPSZhbXA7bHQ7eW91ciBhYnNvbHV0ZSBwYXRoIGhlcmUmYW1wO2d0Oy5jb25maWcvZ2Nsb3VkLyx0YXJnZXQ9L3Jvb3QvLmNvbmZpZy9nY2xvdWQvIGFyaXYzcmEvaWFjMTAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJYUMxMDEgY29udGFpbmVyIGlzIHJ1bm5pbmcmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGUgcHJldmlvdXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgeW91ciBJYUMxMDEgY29udGFpbmVyIHdpbGwgYmUgdXAgYW5kIHJ1bm5pbmcgYW5kIHlvdXIgdGVybWluYWwgc2hlbGwgaGFzIGRyb3BwZWQgeW91IGludG8gdGhlIHJ1bm5pbmcgY29udGFpbmVyLiBFdmVyeSBjb21tYW5kIHlvdSBydW4gaW4geW91ciB0ZXJtaW5hbCBzaGVsbCB3aWxsIGJlIGV4ZWN1dGVkIGluIHRoZSBEb2NrZXIgY29udGFpbmVyIGZyb20gbm93IG9uIHVudGlsIHlvdSBtYW51YWxseSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtleGl0Jmx0Oy9jb2RlJmd0OyB0aGUgY29udGFpbmVyLiBUaGUgY29udGFpbmVyIGhhcyB0aGUgVGVycmFmb3JtIGFuZCBQdWx1bWkgQ0xJIHRvb2xzIGluc3RhbGxlZCwgYXMgd2VsbCBhcyBleGFtcGxlIGNvZGUgZm9yIGVhY2ggdGhhdCBjcmVhdGVzIGluZnJhc3RydWN0dXJlIGluIHRoZWlyIHJlc3BlY3RpdmUgdG9vbHMuIFRoZSBjb250YWluZXIgcHJvamVjdHMgZmlsZXMgYXJlIG1hcHBlZCBhcyBmb2xsb3dzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHJvamVjdHMvCnxfIHRlcnJhZm9ybS9nY3AvY29tcHV0ZS8gICAjIENvbnRhaW5zIHRoZSBUZXJyYWZvcm0gY29kZSBmaWxlcwp8XyBwdWx1bWkvZ2NwL2NvbXB1dGUvICAgICAgIyBDb250YWlucyB0aGUgUHVsdW1pIGNvZGUgZmlsZXMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gyJmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O0hhc2hpQ29ycCBUZXJyYWZvcm0mbHQ7L2EmZ3Q7IGlzIGEgYW4gb3BlbiBzb3VyY2UgdG9vbCBmb3IgYnVpbGRpbmcsIGNoYW5naW5nLCBhbmQgdmVyc2lvbmluZyBpbmZyYXN0cnVjdHVyZSBzYWZlbHkgYW5kIGVmZmljaWVudGx5LiBUZXJyYWZvcm0gY2FuIG1hbmFnZSBleGlzdGluZyBzZXJ2aWNlIHByb3ZpZGVycyBhcyB3ZWxsIGFzIGN1c3RvbSBpbi1ob3VzZSBzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q29uZmlndXJhdGlvbiBmaWxlcyBkZXNjcmliZSB0aGUgY29tcG9uZW50cyBuZWVkZWQgdG8gcnVuIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yIHlvdXIgZW50aXJlIGRhdGFjZW50ZXIgb24gVGVycmFmb3JtLiBUZXJyYWZvcm0gZ2VuZXJhdGVzIGFuIGV4ZWN1dGlvbiBwbGFuIGRlc2NyaWJpbmcgd2hhdCBpdCB3aWxsIGRvIHRvIHJlYWNoIHRoZSBkZXNpcmVkIHN0YXRlLCBhbmQgdGhlbiBleGVjdXRlcyBpdCB0byBidWlsZCB0aGUgZGVzY3JpYmVkIGluZnJhc3RydWN0dXJlLiBBcyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBUZXJyYWZvcm0gaXMgYWJsZSB0byBkZXRlcm1pbmUgd2hhdCBjaGFuZ2VkIGFuZCBjcmVhdGUgaW5jcmVtZW50YWwgZXhlY3V0aW9uIHBsYW5zIHdoaWNoIGNhbiBiZSBhcHBsaWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZSBpbmZyYXN0cnVjdHVyZSBUZXJyYWZvcm0gY2FuIG1hbmFnZSBpbmNsdWRlcyBsb3ctbGV2ZWwgY29tcG9uZW50cyBzdWNoIGFzIGNvbXB1dGUgaW5zdGFuY2VzLCBzdG9yYWdlLCBhbmQgbmV0d29ya2luZywgYXMgd2VsbCBhcyBoaWdoLWxldmVsIGNvbXBvbmVudHMgc3VjaCBhcyBETlMgZW50cmllcywgU2FhUyBmZWF0dXJlcywgZXRjLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBUZXJyYWZvcm0mbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCB3aXRoIHByb3Zpc2lvbmluZyBzb21lIHJlc291cmNlcyBpbiBHQ1AgdXNpbmcgVGVycmFmb3JtIGNvZGUuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDttYWluLnRmICZsdDsvY29kZSZndDsgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBjb2RlIHRoYXQgaGFzIG91ciBpbmZyYXN0cnVjdHVyZSBkZWZpbmVkLiBJbiB0aGlzIGZpbGUgd2XigJlyZSBjcmVhdGluZyBhIG5ldyBjb21wdXRlIGluc3RhbmNlIHRoYXQgd2lsbCBpbnN0YWxsIGFuZCBydW4gYSBQeXRob24gRmxhc2sgYXBwIHBhY2thZ2VkIGluIGEgRG9ja2VyIGNvbnRhaW5lci4gVGhlIFRlcnJhZm9ybSBjb2RlIHdpbGwgYWxzbyBjcmVhdGUgc29tZSBmaXJld2FsbCBydWxlcyB0aGF0IHdpbGwgYWxsb3cgcHVibGljIGFjY2VzcyB0byB0aGUgYXBwIG92ZXIgcG9ydCA1MDAwLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHByb3Zpc2lvbiB0aGlzLCBydW4gdGhpcyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NkIH4vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtJbml0aWFsaXppbmcgVGVycmFmb3JtJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1doaWxlIGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC90ZXJyYWZvcm0vZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBydW4gdGhpcyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7dGVycmZvcm0gaW5pdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSByZXN1bHRzIGJlbG93LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cm9vdEBkOWNlNzIxMjkzZTI6fi9wcm9qZWN0L3RlcnJhZm9ybS9nY3AvY29tcHV0ZSMgdGVycmFmb3JtIGluaXQKCkluaXRpYWxpemluZyB0aGUgYmFja2VuZC4uLgoKSW5pdGlhbGl6aW5nIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBDaGVja2luZyBmb3IgYXZhaWxhYmxlIHByb3ZpZGVyIHBsdWdpbnMuLi4KLSBEb3dubG9hZGluZyBwbHVnaW4gZm9yIHByb3ZpZGVyICZxdW90O2dvb2dsZSZxdW90OyAoaGFzaGljb3JwL2dvb2dsZSkgMy4xMC4wLi4uCgoqIHByb3ZpZGVyLmdvb2dsZTogdmVyc2lvbiA9ICZxdW90O34mYW1wO2d0OyAzLjEwJnF1b3Q7CgpUZXJyYWZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkIQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7aDMmZ3Q7UHJldmlld2luZyB3aXRoIFRlcnJhZm9ybSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUZXJyYWZvcm0gaGFzIGEgY29tbWFuZCB0aGF0IGFsbG93cyB5b3UgdG8gZHJ5IHJ1biBhbmQgdmFsaWRhdGUgeW91ciBUZXJyYWZvcm0gY29kZSB3aXRob3V0IGFjdHVhbGx5IGV4ZWN1dGluZyBhbnl0aGluZy4gVGhlIGNvbW1hbmQgaXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3RlcnJhZm9ybSBwbGFuJmx0Oy9jb2RlJmd0OyB3aGljaCBhbHNvIGdyYXBocyBhbGwgdGhlIGFjdGlvbnMgYW5kIGNoYW5nZXMgdGhhdCBUZXJyYWZvcm0gd2lsbCBleGVjdXRlIGFnYWluc3QgeW91ciBleGlzdGluZyBpbmZyYXN0cnVjdHVyZS4gSW4gdGhlIHRlcm1pbmFsIHJ1bjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3RlcnJhZm9ybSBwbGFuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIHNlZSByZXN1bHRzIHNpbWlsYXIgdG8gdGhpcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0FuIGV4ZWN1dGlvbiBwbGFuIGhhcyBiZWVuIGdlbmVyYXRlZCBhbmQgaXMgc2hvd24gYmVsb3cuClJlc291cmNlIGFjdGlvbnMgYXJlIGluZGljYXRlZCB3aXRoIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKICArIGNyZWF0ZQoKVGVycmFmb3JtIHdpbGwgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGFjdGlvbnM6CgogICMgZ29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwuaHR0cC01MDAwIHdpbGwgYmUgY3JlYXRlZAogICsgcmVzb3VyY2UgJnF1b3Q7Z29vZ2xlX2NvbXB1dGVfZmlyZXdhbGwmcXVvdDsgJnF1b3Q7aHR0cC01MDAwJnF1b3Q7IHsKICAgICAgKyBjcmVhdGlvbl90aW1lc3RhbXAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVzdGluYXRpb25fcmFuZ2VzID0gKGtub3duIGFmdGVyIGFwcGx5KQogIH0KCiAgICAjIGdvb2dsZV9jb21wdXRlX2luc3RhbmNlLmRlZmF1bHQgd2lsbCBiZSBjcmVhdGVkCiAgKyByZXNvdXJjZSAmcXVvdDtnb29nbGVfY29tcHV0ZV9pbnN0YW5jZSZxdW90OyAmcXVvdDtkZWZhdWx0JnF1b3Q7IHsKICAgICAgKyBjYW5faXBfZm9yd2FyZCAgICAgICA9IGZhbHNlCiAgICAgICsgY3B1X3BsYXRmb3JtICAgICAgICAgPSAoa25vd24gYWZ0ZXIgYXBwbHkpCiAgICAgICsgZGVsZXRpb25fcHJvdGVjdGlvbiAgPSBmYWxzZQogICAgICArIGd1ZXN0X2FjY2VsZXJhdG9yICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGlkICAgICAgICAgICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGluc3RhbmNlX2lkICAgICAgICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVsX2ZpbmdlcnByaW50ICAgID0gKGtub3duIGFmdGVyIGFwcGx5KQogICAgICArIGxhYmVscyAgICAgICAgICAgICAgID0gewogICAgICAgICAgKyAmcXVvdDtjb250YWluZXItdm0mcXVvdDsgPSAmcXVvdDtjb3Mtc3RhYmxlLTY5LTEwODk1LTYyLTAmcXVvdDsKICAgICAgICB9CiAgICAgICsgbWFjaGluZV90eXBlICAgICAgICAgPSAmcXVvdDtnMS1zbWFsbCZxdW90OwogIH0KICBQbGFuOiAyIHRvIGFkZCwgMCB0byBjaGFuZ2UsIDAgdG8gZGVzdHJveS4KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgeW91IGNhbiBzZWUsIFRlcnJhZm9ybSBpcyBnb2luZyB0byBjcmVhdGUgbmV3IEdDUCByZXNvdXJjZXMgZm9yIHlvdSBiYXNlZCBvbiB0aGUgY29kZSBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bWFpbi50ZiZsdDsvY29kZSZndDsgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGFwcGx5Jmx0Oy9oMyZndDsKCiZsdDtwJmd0O05vdyB5b3XigJlyZSByZWFkeSB0byBjcmVhdGUgdGhlIG5ldyBpbmZyYXN0cnVjdHVyZSBhbmQgZGVwbG95IHRoZSBhcHBsaWNhdGlvbi4gUnVuIHRoaXMgY29tbWFuZCBpbiB0aGUgdGVybWluYWw6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt0ZXJyYWZvcm0gYXBwbHkKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGVycmFmb3JtIHdpbGwgcHJvbXB0IHlvdSB0byBjb25maXJtIHlvdXIgY29tbWFuZC4gVHlwZSB5ZXMgYW5kIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0RvIHlvdSB3YW50IHRvIHBlcmZvcm0gdGhlc2UgYWN0aW9ucz8KICBUZXJyYWZvcm0gd2lsbCBwZXJmb3JtIHRoZSBhY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4KICBPbmx5ICd5ZXMnIHdpbGwgYmUgYWNjZXB0ZWQgdG8gYXBwcm92ZS4KCiAgRW50ZXIgYSB2YWx1ZTogeWVzCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RlcnJhZm9ybSB3aWxsIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgYW5kIHlvdSB3aWxsIGhhdmUgYW4gYXBwbGljYXRpb24gdXAgYW5kIHJ1bm5pbmcgb24gR0NQIHNob3J0bHkgYWZ0ZXIgaXQgY29tcGxldGVzLiBQbGVhc2Ugbm90ZSB0aGF0IGl0IHdpbGwgdGFrZSAzLTUgbWludXRlcyBmb3IgdGhlIGFwcGxpY2F0aW9uIHRvIGNvbWUgb25saW5lIGFmdGVyIFRlcnJhZm9ybSBjb21wbGV0ZXMuIEl04oCZcyBub3QgYW4gaW5zdGFudCBwcm9jZXNzIGJlY2F1c2UgdGhlIGJhY2tlbmQgc3lzdGVtcyBhcmUgcHJvdmlzaW9uaW5nIGFuZCBicmluZ2luZyB0aGluZ3Mgb25saW5lLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgZG9uZSwgeW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7bGFuZ3VhZ2Utc2hlbGwgaGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7T3V0cHV0czoKClB1YmxpY19JUF9BZGRyZXNzICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgMzQuNzQuNzUuMTcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1B1YmxpY19JUF9BZGRyZXNzJmx0Oy9jb2RlJmd0OyB2YWx1ZSBpcyB0aGUgSVAgQWRkcmVzcyB0aGF0IHlvdXIgYXBwIGlzIHJ1bm5pbmcgb24sIHNvIGlmIHlvdSBnbyB0byBhIGJyb3dzZXIgYW5kIHBsdWcgdGhhdCBudW1iZXIgaW4gcGx1cyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7OjUwMDAmbHQ7L2NvZGUmZ3Q7IHBvcnQgYWRkcmVzcyAoaXQgd291bGQgbG9vayBsaWtlIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7MzQuNzQuNzUuMTc6NTAwMCZsdDsvY29kZSZndDspIHlvdSB3aWxsIHNlZSB5b3VyIGFwcCBydW5uaW5nIGluIEdDUC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7VGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Tm93IHRoYXQgeW91IGhhdmUgcHJvb2YgdGhhdCB5b3VyIEdvb2dsZSBDb21wdXRlIGluc3RhbmNlIGFuZCB5b3VyIGFwcGxpY2F0aW9uIHdvcmssIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dGVycmFmb3JtIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdG8gZGVzdHJveSB0aGUgYXNzZXRzIHRoYXQgeW91IGNyZWF0ZWQgaW4gdGhpcyB0dXRvcmlhbC4gWW91IGNhbiBsZWF2ZSBpdCB1cCBhbmQgcnVubmluZywgYnV0IGJlIGF3YXJlIHRoYXQgdGhlcmUgaXMgYSBjb3N0IGFzc29jaWF0ZWQgd2l0aCBhbnkgYXNzZXRzIHJ1bm5pbmcgb24gdGhlIEdvb2dsZSBDbG91ZCBQbGF0Zm9ybSBhbmQgeW91IHdpbGwgYmUgbGlhYmxlIGZvciB0aG9zZSBjb3N0cy4gR29vZ2xlIGdpdmVzIGEgZ2VuZXJvdXMgJDMwMCBjcmVkaXQgZm9yIGl0cyBmcmVlIHRyaWFsIHNpZ24tdXAsIGJ1dCB5b3UgY291bGQgZWFzaWx5IGVhdCB0aHJvdWdoIHRoYXQgaWYgeW91IGxlYXZlIGFzc2V0cyBydW5uaW5nLiBJdOKAmXMgdXAgdG8geW91LCBidXQgcnVubmluZyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt0ZXJyYWZvcm0gZGVzdHJveSZsdDsvY29kZSZndDsgd2lsbCB0ZXJtaW5hdGUgYW55IHJ1bm5pbmcgYXNzZXRzLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIEnigJlsbCBkZW1vbnN0cmF0ZSBob3cgdG8gcGVyZm9ybSBpbmZyYXN0cnVjdHVyZSBwcm92aXNpb25pbmcgdXNpbmcgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5wdWx1bWkuY29tLyZxdW90OyZndDtQdWx1bWkmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtQdWx1bWkgU0RLJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9wcm9kdWN0LyNzZGsmcXVvdDsmZ3Q7UHVsdW1pIFNESyZsdDsvYSZndDsgaXMgYW4gb3BlbiBzb3VyY2UgZnJhbWV3b3JrIGZvciBkZWZpbmluZyBhbmQgZGVwbG95aW5nIGNsb3VkIGFwcHMgYW5kIElhQy4gUHVsdW1pIGVuYWJsZXMgZGV2ZWxvcGVycyB0byB3cml0ZSBjb2RlIGluIHRoZWlyIGZhdm9yaXRlIGxhbmd1YWdlIHN1Y2ggYXMgVHlwZVNjcmlwdCwgSmF2YVNjcmlwdCwgUHl0aG9uLCBhbmQgR28uIFRoaXMgZW5hYmxlcyBtb2Rlcm4gYXBwcm9hY2hlcyB0byBjbG91ZCBhcHBsaWNhdGlvbnMgYW5kIGluZnJhc3RydWN0dXJlIHdpdGhvdXQgbmVlZGluZyB0byBsZWFybiBhbm90aGVyIFlBTUwgb3IgRFNMIGRpYWxlY3QuIFRoaXMgdW5sb2NrcyBhYnN0cmFjdGlvbnMgYW5kIHJldXNlLCBhcyB3ZWxsIGFzIGFjY2VzcyB0byB5b3VyIGZhdm9yaXRlIElERXMsIHJlZmFjdG9yaW5nLCBhbmQgdGVzdGluZyB0b29scy4gTWFzdGVyIG9uZSB0b29sY2hhaW4gYW5kIHNldCBvZiBmcmFtZXdvcmtzIGFuZCBnbyB0byBhbnkgY2xvdWQgKEFXUywgQXp1cmUsIEdDUCwgb3IgS3ViZXJuZXRlcykgd2l0aCBlYXNlLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQcm92aXNpb25pbmcgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBQdWx1bWkmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUgZXhwZXJpZW5jZWQgYnVpbGRpbmcgaW5mcmFzdHJ1Y3R1cmUgdXNpbmcgVGVycmFmb3JtLCBub3cgeW914oCZbGwgbGVhcm4gaG93IHRvIHByb3Zpc2lvbiBhbmQgZGVwbG95IG5ldyBpbmZyYXN0cnVjdHVyZSB1c2luZyBQdWx1bWkuIFRoZSBQdWx1bWkgZXhhbXBsZSB3aWxsIGNyZWF0ZSB0aGUgc2FtZSBHQ1AgcmVzb3VyY2VzIHByZXZpb3VzbHkgdXNpbmcgUHVsdW1pIGNvZGUgYW5kIHRvb2xzLiBQdWx1bWkgZW5hYmxlcyB5b3UgdG8gZGVmaW5lIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgaW4gcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHdoaWNoIHByb3ZpZGVzIGxvdHMgb2YgZmxleGliaWxpdHkuIEluIHRoaXMgZXhhbXBsZSwgd2XigJlyZSB1c2luZyAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vd3d3LnB5dGhvbi5vcmcvJnF1b3Q7Jmd0O1B5dGhvbiZsdDsvYSZndDsgYXMgb3VyIGxhbmd1YWdlLiBUaGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7X19tYWluLnB5X18mbHQ7L2NvZGUmZ3Q7IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O34vcHJvamVjdC9wdWx1bWkvZ2NwL2NvbXB1dGUvJmx0Oy9jb2RlJmd0OyBkaXJlY3RvcnkgaXMgd2hlcmUgd2VyZSBnb2luZyB0byBkZWZpbmUgb3VyIGluZnJhc3RydWN0dXJlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlIHN1cmUgdG8gaGF2ZSB5b3VyIFB1bHVtaSBBUEkgdG9rZW4gYXZhaWxhYmxlLiBZb3XigJlsbCBuZWVkIGl0IGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIFB1bHVtaSBleGFtcGxlIGNhbiBiZSBmb3VuZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7fi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8mbHQ7L2NvZGUmZ3Q7IGRpcmVjdG9yeS4gUnVuIHRoaXMgY29tbWFuZCB0byBjaGFuZ2UgaW50byB0aGUgUHVsdW1pIGV4YW1wbGUgZGlyZWN0b3J5OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2Qgfi9wcm9qZWN0L3B1bHVtaS9nY3AvY29tcHV0ZS8KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O2gzJmd0O0luc3RhbGxpbmcgZGVwZW5kaWVuY2llcyBmb3IgUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1NpbmNlIHdl4oCZcmUgZGVmaW5pbmcgb3VyIElhQyBzcGVjcyB1c2luZyBQeXRob24gd2XigJlsbCBuZWVkIHRvIGZpcnN0IGluc3RhbGwgdGhlIFB1bHVtaSBQeXRob24gU0RLIGRlcGVuZGVuY2llcy4gSW4gdGhlIHRlcm1pbmFsIHJ1biB0aGlzIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtwaXAgaW5zdGFsbCAtciAuLi9yZXF1aXJlbWVudHMudHh0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtoMyZndDtQcmV2aWV3aW5nIHdpdGggUHVsdW1pJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1B1bHVtaSBoYXMgYSBkcnktcnVuIGNvbW1hbmQgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBwcmV2aWV3Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRpc3BsYXlzIGEgcHJldmlldyBvZiB0aGUgdXBkYXRlcyB0byBhbiBleGlzdGluZyBzdGFjayB3aG9zZSBzdGF0ZSBpcyByZXByZXNlbnRlZCBieSBhbiBleGlzdGluZyBzdGF0ZSBmaWxlLiBUaGUgbmV3IGRlc2lyZWQgc3RhdGUgaXMgY29tcHV0ZWQgYnkgcnVubmluZyBhIFB1bHVtaSBwcm9ncmFtLCBhbmQgZXh0cmFjdGluZyBhbGwgcmVzb3VyY2UgYWxsb2NhdGlvbnMgZnJvbSBpdHMgcmVzdWx0aW5nIG9iamVjdCBncmFwaC4gVGhlc2UgYWxsb2NhdGlvbnMgYXJlIHRoZW4gY29tcGFyZWQgYWdhaW5zdCB0aGUgZXhpc3Rpbmcgc3RhdGUgdG8gZGV0ZXJtaW5lIHdoYXQgb3BlcmF0aW9ucyBtdXN0IHRha2UgcGxhY2UgdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZCBzdGF0ZS4gTm8gY2hhbmdlcyB0byB0aGUgc3RhY2sgd2lsbCBhY3R1YWxseSB0YWtlIHBsYWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGlzIGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHByZXZpZXcKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIHlvdSB3aWxsIHNlZSB0aGUgZm9sbG93aW5nIHJlc3VsdHMgcHJvbXB0aW5nIHlvdSBmb3IgdGhlIFB1bHVtaSBBUEkgdG9rZW4geW91IGNyZWF0ZWQgZWFybGllci4gUGFzdGUgdGhlIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLiBBZnRlciB5b3UgcGFzdGUgdGhlIHRva2VuIGhpdCBlbnRlci4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O01hbmFnZSB5b3VyIFB1bHVtaSBzdGFja3MgYnkgbG9nZ2luZyBpbi4KUnVuIGBwdWx1bWkgbG9naW4gLS1oZWxwYCBmb3IgYWx0ZXJuYXRpdmUgbG9naW4gb3B0aW9ucy4KRW50ZXIgeW91ciBhY2Nlc3MgdG9rZW4gZnJvbSBodHRwczovL2FwcC5wdWx1bWkuY29tL2FjY291bnQvdG9rZW5zCiAgICBvciBoaXQgJmFtcDtsdDtFTlRFUiZhbXA7Z3Q7IHRvIGxvZyBpbiB1c2luZyB5b3VyIGJyb3dzZXIgICAgICAgICAgICAgICAgICAgOgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7ICZsdDtpJmd0O1doZW4gcGFzdGluZyB0aGUgQVBJIHRva2VuIGludG8gdGhlIHRlcm1pbmFsLCBubyB2YWx1ZXMgd2lsbCBiZSBkaXNwbGF5ZWQuIEl0IHdpbGwgcmVtYWluIGludmlzaWJsZSBmb3Igc2VjdXJpdHkgcHVycG9zZXMuJmx0Oy9pJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBtYXkgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGEgc3RhY2sgaW4gdGhlIHRlcm1pbmFsLiBJZiBzbywgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkZXYmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB0aGVuIGhpdCBlbnRlci4gWW91IHdpbGwgc2VlIHJlc3VsdHMgc2ltaWxhciB0byB0aGlzLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UHJldmlld2luZyB1cGRhdGUgKGRldik6CiAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICAgICAgICAgICBQbGFuCiArICAgcHVsdW1pOnB1bHVtaTpTdGFjayAgICAgIGNvbXB1dGUtZGV2ICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6TmV0d29yayAgIG5ldHdvcmsgICAgICAgICAgICAgICAgICAgICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6SW5zdGFuY2UgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGUKICsgICDilJTilIAgZ2NwOmNvbXB1dGU6RmlyZXdhbGwgIGZpcmV3YWxsICAgICAgICAgICAgICAgICAgICBjcmVhdGUKClJlc291cmNlczoKICAgICsgNSB0byBjcmVhdGUKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7WW914oCZdmUganVzdCBlbmFibGVkIGFjY2VzcyB0byB0aGUgUHVsdW1pIGJhY2tlbmQgY2xvdWQgd2hpY2gga2VlcHMgdHJhY2sgb2YgdGhlIHN0YXRlIG9mIHlvdXIgaW5mcmFzdHJ1Y3R1cmVzLiBOb3cgeW914oCZcmUgcmVhZHkgdG8gcnVuIHNvbWUgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7UHVsdW1pIHVwJmx0Oy9oMyZndDsKCiZsdDtwJmd0O1RvIGV4ZWN1dGUgdGhlIFB1bHVtaSBjb2RlLCB1c2UgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIHVwJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGNyZWF0ZXMgb3IgdXBkYXRlcyByZXNvdXJjZXMgaW4gYSBzdGFjay4gVGhlIG5ldyBkZXNpcmVkIGdvYWwgc3RhdGUgZm9yIHRoZSB0YXJnZXQgc3RhY2sgaXMgY29tcHV0ZWQgYnkgcnVubmluZyB0aGUgY3VycmVudCBQdWx1bWkgcHJvZ3JhbSBhbmQgb2JzZXJ2aW5nIGFsbCByZXNvdXJjZSBhbGxvY2F0aW9ucyB0byBwcm9kdWNlIGEgcmVzb3VyY2UgZ3JhcGguIFRoaXMgZ29hbCBzdGF0ZSBpcyB0aGVuIGNvbXBhcmVkIGFnYWluc3QgdGhlIGV4aXN0aW5nIHN0YXRlIHRvIGRldGVybWluZSB3aGF0IGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQvb3IgZGVsZXRlIG9wZXJhdGlvbnMgbXVzdCB0YWtlIHBsYWNlIHRvIGFjaGlldmUgdGhlIGRlc2lyZWQgZ29hbCBzdGF0ZSBpbiB0aGUgbW9zdCBtaW5pbWFsbHkgZGlzcnVwdGl2ZSB3YXkuIEFmdGVyd2FyZCwgdGhpcyBjb21tYW5kIHJlY29yZHMgYSBmdWxsIHRyYW5zYWN0aW9uYWwgc25hcHNob3Qgb2YgdGhlIHN0YWNr4oCZcyBuZXcgc3RhdGUgc28gdGhhdCB0aGUgc3RhY2sgbWF5IGJlIHVwZGF0ZWQgaW5jcmVtZW50YWxseSBhZ2FpbiBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgdGVybWluYWwgcnVuOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7cHVsdW1pIHVwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1NlbGVjdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7eWVzJmx0Oy9jb2RlJmd0OyBvcHRpb24gYW5kIGhpdCBlbnRlci4gVGhlIFB1bHVtaSBhcHAgd2lsbCBleGVjdXRlLCBhbmQgc2hvcnRseSBhZnRlciB5b3XigJlsbCBoYXZlIGEgY29tcGxldGUgc2VydmVyIHJ1bm5pbmcgYW4gYXBwbGljYXRpb24gb24gR0NQLiBZb3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtVcGRhdGluZyAoZGV2KToKICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cwogKyAgIHB1bHVtaTpwdWx1bWk6U3RhY2sgICAgICBjb21wdXRlLWRldiAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUnOKUgCBnY3A6Y29tcHV0ZTpOZXR3b3JrICAgbmV0d29yayAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQKICsgICDilJzilIAgZ2NwOmNvbXB1dGU6QWRkcmVzcyAgIHdvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxICBjcmVhdGVkCiArICAg4pSc4pSAIGdjcDpjb21wdXRlOkZpcmV3YWxsICBmaXJld2FsbCAgICAgICAgICAgICAgICAgICAgY3JlYXRlZAogKyAgIOKUlOKUgCBnY3A6Y29tcHV0ZTpJbnN0YW5jZSAgd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDEgIGNyZWF0ZWQKCk91dHB1dHM6CiAgICBleHRlcm5hbF9pcCAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICBpbnN0YW5jZV9tZXRhX2RhdGE6IHsKICAgICAgICBnY2UtY29udGFpbmVyLWRlY2xhcmF0aW9uOiAmcXVvdDtzcGVjOlxuICBjb250YWluZXJzOlxuICAgIC0gbmFtZTogd29ya3Nob3BzLWluZnJhLWFzLWNvZGUxMDFcbiAgICAgIGltYWdlOiBhcml2M3JhL3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxOmxhdGVzdFxuICAgICAgc3RkaW46IGZhbHNlXG4gICAgICB0dHk6IGZhbHNlXG4gIHJlc3RhcnRQb2xpY3k6IEFsd2F5c1xuJnF1b3Q7CiAgICB9CiAgICBpbnN0YW5jZV9uYW1lICAgICA6ICZxdW90O3dvcmtzaG9wcy1pbmZyYS1hcy1jb2RlMTAxJnF1b3Q7CiAgICBpbnN0YW5jZV9uZXR3b3JrICA6IFsKICAgICAgICBbMF06IHsKICAgICAgICAgICAgYWNjZXNzQ29uZmlncyAgICA6IFsKICAgICAgICAgICAgICAgIFswXTogewogICAgICAgICAgICAgICAgICAgIG5hdElwICAgICAgICAgICAgICA6ICZxdW90OzM0Ljc0Ljc1LjE3JnF1b3Q7CiAgICAgICAgICAgICAgICAgICAgbmV0d29ya190aWVyICAgICAgIDogJnF1b3Q7UFJFTUlVTSZxdW90OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICAgIG5hbWUgICAgICAgICAgICAgOiAmcXVvdDtuaWMwJnF1b3Q7CiAgICAgICAgfQogICAgXQoKUmVzb3VyY2VzOgogICAgKyA1IGNyZWF0ZWQKCkR1cmF0aW9uOiA1OHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlc2UgcmVzdWx0cywgeW914oCZbGwgc2VlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXh0ZXJuYWxfaXAmbHQ7L2NvZGUmZ3Q7IGtleS4gSXTigJlzIHZhbHVlIGlzIHRoZSBJUCBBZGRyZXNzIHRvIHRoZSBwdWJsaWMgZmFjaW5nIGFwcGxpY2F0aW9uIGV4cG9zZWQgb24gcG9ydCA1MDAwLiBKdXN0IGxpa2UgdGhlIHByZXZpb3VzIFRlcnJhZm9ybSBleGFtcGxlLCB5b3UgY2FuIGFjY2VzcyB0aGUgYXBwbGljYXRpb24gaW4gYSBicm93c2VyLiBSZW1lbWJlciB0byBhbGxvdyBmb3IgYSBmZXcgbWludXRlcyBzbyB0aGUgYmFja2VuZCBzeXN0ZW0gY2FuIGJyaW5nIGV2ZXJ5dGhpbmcgb25saW5lLiZsdDsvcCZndDsKCiZsdDtoMyZndDtQdWx1bWkgZGVzdHJveSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtQdWx1bWkgaGFzIGEgY29tbWFuZCB0byB0ZXJtaW5hdGUgYWxsIG9mIHRoZSBjbG91ZCByZXNvdXJjZXMgY2FsbGVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1bHVtaSBkZXN0cm95Jmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGRlbGV0ZXMgYW4gZW50aXJlIGV4aXN0aW5nIHN0YWNrIGJ5IG5hbWUuIFRoZSBjdXJyZW50IHN0YXRlIGlzIGxvYWRlZCBmcm9tIHRoZSBhc3NvY2lhdGVkIHN0YXRlIGZpbGUgaW4gdGhlIHdvcmtzcGFjZS4gQWZ0ZXIgcnVubmluZyB0byBjb21wbGV0aW9uLCBhbGwgb2YgdGhpcyBzdGFja+KAmXMgcmVzb3VyY2VzIGFuZCBhc3NvY2lhdGVkIHN0YXRlIHdpbGwgYmUgZ29uZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtSdW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVsdW1pIGRlc3Ryb3kmbHQ7L2NvZGUmZ3Q7IGluIHRoZSB0ZXJtaW5hbCBhbmQgc2VsZWN0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5ZXMmbHQ7L2NvZGUmZ3Q7IG9wdGlvbiB3aGVuIHByb21wdGVkIHRvICZsdDtzdHJvbmcmZ3Q7cGVybWFuZW50bHkmbHQ7L3N0cm9uZyZndDsgZGVzdHJveSB0aGUgR0NQIHJlc291cmNlcyBjcmVhdGVkLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O0NvbmdyYXR1bGF0aW9ucyEgWW914oCZdmUganVzdCBsZXZlbGVkIHVwIGFuZCBub3cgaGF2ZSBleHBlcmllbmNlIHByb3Zpc2lvbmluZyBhbmQgZGVwbG95aW5nIGFwcGxpY2F0aW9ucyB0byBHQ1AgdXNpbmcgdGhlIG1vZGVybiBJYUMgdG9vbHMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vJnF1b3Q7Jmd0O1RlcnJhZm9ybSZsdDsvYSZndDsgYW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS8mcXVvdDsmZ3Q7UHVsdW1pJmx0Oy9hJmd0Oy4gVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2lsbCBoZWxwIHlvdSBleHBhbmQgeW91ciBrbm93bGVkZ2UgZnJvbSBoZXJlOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy50ZXJyYWZvcm0uaW8vZG9jcy9jbGktaW5kZXguaHRtbCZxdW90OyZndDtUZXJyYWZvcm0gR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucHVsdW1pLmNvbS9kb2NzL2dldC1zdGFydGVkLyZxdW90OyZndDtQdWx1bWkgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS9vcmIvcHVsdW1pL3B1bHVtaSZxdW90OyZndDtQdWx1bWkgb3JiIGZvciBDaXJjbGVDSSZsdDsvYSZndDsmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyZxdW90OyZndDtEb2NrZXIgR2V0dGluZyBTdGFydGVkJmx0Oy9hJmd0OyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tL0dvb2dsZUNsb3VkUGxhdGZvcm0vY29tbXVuaXR5L2Jsb2IvbWFzdGVyL3R1dG9yaWFscy9nZXR0aW5nLXN0YXJ0ZWQtb24tZ2NwLXdpdGgtdGVycmFmb3JtL2luZGV4Lm1kI2dldHRpbmctcHJvamVjdC1jcmVkZW50aWFscyZxdW90OyZndDtHb29nbGUgQ2xvdWQgUGxhdGZvcm0mbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogICAgICAKICAgICAgPGl0ZW0+CiAgICAgICAgPHRpdGxlPkEgbG9vayBhdCBDaXJjbGVDSeKAmXMgaW5kdXN0cnktbGVhZGluZyBzdXBwb3J0IGZvciB0cmFuc2l0aW9uLXJlbGF0ZWQgbWVkaWNhbCBsZWF2ZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hLWxvb2stYXQtY2lyY2xlY2ktcy1pbmR1c3RyeS1sZWFkaW5nLXN1cHBvcnQtZm9yLXRyYW5zaXRpb24tcmVsYXRlZC1tZWRpY2FsLWxlYXZlLzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5XZWQsIDEzIE1heSAyMDIwIDA3OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2EtbG9vay1hdC1jaXJjbGVjaS1zLWluZHVzdHJ5LWxlYWRpbmctc3VwcG9ydC1mb3ItdHJhbnNpdGlvbi1yZWxhdGVkLW1lZGljYWwtbGVhdmUvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RWxpemFiZXRoIEJlbGw8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7T25lIG9mIHRoZSBncmVhdCB0aGluZ3MgYWJvdXQgd29ya2luZyBhdCBDaXJjbGVDSSBpcyB0aGF0IHRoZSBjb21wYW55IGJlbGlldmVzIHRoYXQgZXZlcnlvbmUgc2hvdWxkIGJlIGFibGUgdG8gYmUgdGhlaXIgd2hvbGUgc2VsZiBhdCB3b3JrLiBJbmNsdXNpdml0eSwgZGVtb25zdHJhdGluZyB0cnVzdCBhbmQgcmVzcGVjdCwgYW5kIG1ha2luZyBzdXJlIGV2ZXJ5b25lIGhhcyB0aGUgdG9vbHMgYW5kIHN1cHBvcnQgdGhleSBuZWVkIGFyZSBhbGwgYnVyaWVkIGRlZXAgaW4gdGhlIGN1bHR1cmUgaGVyZSDigJMgaXQgaXMgYSBiaWcgcGFydCBvZiBob3cgd2UgZGVsaXZlciB0aGUgYmVzdCB2YWx1ZSBmb3Igb3VyIGN1c3RvbWVycy4gV2l0aCB0aGF0IGluIG1pbmQsIHRoZSBjb21wYW55IHJlY2VudGx5IHJvbGxlZCBvdXQgYSBuZXcgaGVhbHRoY2FyZSBwb2xpY3kgZm9yIG91ciB0cmFuc2dlbmRlciBjby13b3JrZXJzLiBJbiBhIGZpcnN0IGZvciBjb21wYW5pZXMgaW4gdGhlIENJL0NEIHNwYWNlLCBDaXJjbGVDSSBub3cgb2ZmZXJzIGZ1bGx5LWNvbXBlbnNhdGVkIHBhaWQgbGVhdmUgZm9yIGVtcGxveWVlcyByZWNvdmVyaW5nIGZyb20gdHJhbnNpdGlvbi1yZWxhdGVkIG1lZGljYWwgcHJvY2VkdXJlcy4gVGhpcyBwb2xpY3kgaXMgYW4gZXh0cmVtZWx5IGltcG9ydGFudCBhZGRpdGlvbiB0byBDaXJjbGVDSeKAmXMgYmVuZWZpdHMgcGFja2FnZSBhbmQgYW5vdGhlciBleGFtcGxlIG9mIHRoZSBjb21wYW554oCZcyBkZWRpY2F0aW9uIHRvIHRoZSB3ZWxsLWJlaW5nIG9mIGFsbCBlbXBsb3llZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VHJhbnNpdGlvbiBpcyBhbiBpbW1lbnNlbHkgc3RyZXNzZnVsIHByb2Nlc3MsIGFuZCB0aGUgbWVkaWNhbCBwcm9jZWR1cmVzIHJlcXVpcmVkIHRvIHRyZWF0IHRoZSBkeXNwaG9yaWEgZXhwZXJpZW5jZWQgYnkgc29tZSB0cmFuc2dlbmRlciBwZW9wbGUgb2Z0ZW4gbmVlZCBhIHZlcnkgY2FyZWZ1bCBhcHByb2FjaCB0byByZWNvdmVyeS4mbHQ7L3AmZ3Q7CgombHQ7YmxvY2txdW90ZSZndDsKICAmbHQ7cCZndDtUaGUgZ29hbCBvZiB0aGUgcG9saWN5IGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRyYW5zZ2VuZGVyIGVtcGxveWVlcyBmZWVsIHN1cHBvcnRlZCBkdXJpbmcgdGhpcyBkaWZmaWN1bHQgdGltZSwgYW5kIGJ5IGVuc3VyaW5nIHRoYXQgdHJhbnNnZW5kZXIgZW1wbG95ZWVzIGhhdmUgYWNjZXNzIHRvIGFwcHJvcHJpYXRlbHkgY29tcGVuc2F0ZWQgbWVkaWNhbCBsZWF2ZSwgdGhlIGNvbXBhbnkgY2FuIHJlbW92ZSBtYWpvciBzb3VyY2VzIG9mIHVubmVjZXNzYXJ5IHN0cmVzcy4gVGhpcyB3YXksIHdlIGNhbiByZXR1cm4gdG8gd29yayBoYXBwaWVyLCBoZWFsdGhpZXIsIGFuZCBiZXR0ZXIgYWJsZSB0byBkbyBvdXIgYmVzdCBmb3Igb3VyIGN1c3RvbWVycyBhbmQgb3VyIGNvbGxlYWd1ZXMuJmx0Oy9wJmd0OwombHQ7L2Jsb2NrcXVvdGUmZ3Q7CgombHQ7aDImZ3Q7SG93IHRoaXMgcG9saWN5IGNhbWUgdG9nZXRoZXImbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgcHVzaCBmb3IgdGhlIGZvcm1hbGl6YXRpb24gb2YgdGhlc2UgYmVuZWZpdHMgZ3JldyBvdXQgb2YgdGhlIGVmZm9ydHMgb2YgbWFueSBpbmRpdmlkdWFscy4gVG9nZXRoZXIsIHRoZSB0cmFucyBlbXBsb3llZXMgYXQgQ2lyY2xlQ0kgZGlzY3Vzc2VkIHRoZSBpc3N1ZSBhbW9uZ3N0IG91cnNlbHZlcywgb3VyIG1hbmFnZXJzLCBhbmQgb3RoZXIgc3Rha2Vob2xkZXJzIHdobyBzdXBwb3J0ZWQgdXMgaW4gYnJpbmdpbmcgdGhlIHRvcGljIHRvIG91ciBleGVjdXRpdmUgdGVhbS4gQnkgYnVpbGRpbmcgY29uc2Vuc3VzLCBib3RoIHdpdGhpbiB0aGUgdHJhbnMgcG9wdWxhdGlvbiBhdCB0aGUgY29tcGFueSBhbmQgb3VyIGNpc2dlbmRlciBjb2xsZWFndWVzLCB3ZSB3ZXJlIGFibGUgdG8gc3VjY2Vzc2Z1bGx5IGFkdm9jYXRlIGZvciBhIGZvcm1hbGl6YXRpb24gb2YsIGFuZCBhIGNvbW1pdG1lbnQgdG8sIHRoaXMgaW5kdXN0cnktbGVhZGluZyB0cmFucyBoZWFsdGhjYXJlIGJlbmVmaXQuIFF1ZWVyU3BoZXJlLCB0aGUgRW1wbG95ZWUgUmVzb3VyY2UgR3JvdXAgaGVyZSBhdCBDaXJjbGVDSSBmb3IgTEdCVFFJQSsgZW1wbG95ZWVzLCBoZWxwZWQgY29vcmRpbmF0ZSB0aGUgZWZmb3J0IHRvIGFkdm9jYXRlLCBhbmQgdGhlIHJlc3VsdCB3YXMgYSBwb2xpY3kgdGhhdCBoZWxwcyBlbnN1cmUgdHJhbnMgZW1wbG95ZWVzIGdldCB0aGUgc3VwcG9ydCB3ZSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uZSBvZiB0aGUgYmVzdCB0aGluZ3MgZm9yIG1lIGFib3V0IHdvcmtpbmcgYXQgQ2lyY2xlQ0kgaXMgaG93IGVtcG93ZXJlZCBJIGZlZWwgdG8gY2FsbCBhdHRlbnRpb24gdG8gaXNzdWVzIG9yIHByYWN0aWNlcyB0aGF0IGNhbiBiZSBpbXByb3ZlZCBhbmQgYnJpbmcgcGVvcGxlIHRvZ2V0aGVyIHRvIHdvcmsgb24gdGhlbSwgdG8gdGhlIGJlbmVmaXQgb2YgYm90aCB0aGUgY29tcGFueSBhcyBhIHdob2xlIGFuZCB1bmRlcnJlcHJlc2VudGVkIG9yIG1hcmdpbmFsaXplZCBlbXBsb3llZXMuIFRyYW5zIHBlb3BsZSBmYWNlIHN5c3RlbWljIGJpYXM6IHRoZXJlIGFyZSBubyBmZWRlcmFsLWxldmVsIHByb3RlY3Rpb25zIGZyb20gZGlzY3JpbWluYXRpb24gb24gdGhlIGJhc2lzIG9mIGdlbmRlciBpZGVudGl0eSBpbiB0aGUgVW5pdGVkIFN0YXRlcywgYW5kIG9mIHRoZSB0cmFucyBwb3B1bGF0aW9uIHN1cnZleWVkIGJ5IHRoZSBOYXRpb25hbCBDZW50ZXIgZm9yIFRyYW5zZ2VuZGVyIEVxdWFsaXR5IGluIDIwMTUsIDgwJSBvZiB0aG9zZSB3aG8gd2VyZSBlbXBsb3llZCByZXBvcnRlZCBleHBlcmllbmNpbmcgaGFyYXNzbWVudCwgbWlzdHJlYXRtZW50LCBvciBoYWQgdG8gdGFrZSBzdGVwcyB0byBhdm9pZCB0aG9zZSBob3N0aWxlIHdvcmtwbGFjZSBiZWhhdmlvcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SSBrbm93IGZpcnN0aGFuZCBob3cgZGlmZmljdWx0IGJlaW5nIG91dCBhdCB3b3JrIGNhbiBiZS4gQXQgYSBwcmV2aW91cyBlbXBsb3llciBlYXJseSBpbiBteSB0cmFuc2l0aW9uLCBJIGZlbHQgYWxpZW5hdGVkIGFuZCBkaXNsaWtlZCBieSBjb2xsZWFndWVzIHdobyBoYWQgcHJldmlvdXNseSBiZWVuIGZyaWVuZGx5IGJlZm9yZSB0aGV5IGtuZXcgSSB3YXMgdHJhbnNnZW5kZXIuIEkgaGF2ZSBoYWQgdG8gbWluaW1pemUgdGhlIGZhY3QgdGhhdCBJ4oCZbSB0cmFucywgdG9sZXJhdGUgYWN0aXZlIGhvc3RpbGl0eSBmcm9tIGNvd29ya2Vycywgb3IgcHJldGVuZCB0aGF0IEkgd2FzIGNpc2dlbmRlciwgaW4gb3JkZXIgdG8gcHJvdGVjdCBteSBqb2IuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgQ2lyY2xlQ0ksIEkgaGF2ZSBmZWx0IHN1cHBvcnRlZCwgcmVzcGVjdGVkLCBhbmQgYWJsZSB0byBjb25maWRlbnRseSBiZSBteXNlbGYuIEkgZmVlbCBleGNlcHRpb25hbGx5IGZvcnR1bmF0ZSB0byBoYXZlIGEgd29uZGVyZnVsIGdyb3VwIG9mIHRyYW5zZ2VuZGVyIGNvbGxlYWd1ZXMgYW5kIGZyaWVuZHMgKHdlIG1ha2UgdXAgNyUgb2YgdGhlIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0ksIGFuZCAzJSBvZiB0aGUgb3JnIGluIHRvdGFsLCBjb21wYXJlZCB0byAwLjYlIG9mIHRoZSBnZW5lcmFsIHBvcHVsYXRpb24pLCBhbmQgdG8gd29yayBzb21ld2hlcmUgd2hlcmUgb3VyIHZpZXdzIGFuZCBleHBlcmllbmNlcyBhcmUgdmFsdWVkIGF0IHRoZSBoaWdoZXN0IGxldmVscyBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0lmIHlvdSBsaWtlIHRoZSBzb3VuZCBvZiB3b3JraW5nIHNvbWV3aGVyZSB3aXRoIGEgcmVtb3RlLWZpcnN0IGN1bHR1cmUgYW5kIGNvbGxhYm9yYXRpbmcgb24gaW50ZXJlc3RpbmcgcHJvYmxlbXMgd2l0aCBhIGJ1bmNoIG9mIG90aGVyIHRyYW5zIGZvbHggYW5kIGFsbGllcywgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9jYXJlZXJzLyZxdW90OyZndDtjaGVjayBvdXQgb3VyIG9wZW5pbmdzIGhlcmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIEdhdHNieSBhcHBzIHRvIEhlcm9rdTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtZ2F0c2J5LWFwcHMtdG8taGVyb2t1LzwvbGluaz4KICAgICAgICA8cHViRGF0ZT5Nb24sIDExIE1heSAyMDIwIDA5OjAwOjAwIC0wNzAwPC9wdWJEYXRlPgogICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJ0cnVlIj5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1nYXRzYnktYXBwcy10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9qYW1zdGFjay5vcmcvJnF1b3Q7Jmd0O0pBTVN0YWNrJmx0Oy9hJmd0OyBpcyBxdWlja2x5IGJlY29taW5nIGEgYmlnIGRlYWwgaW4gdGhlIHdvcmxkIG9mIHdlYiBkZXZlbG9wbWVudC4gSkFNU3RhY2ssIHdoaWNoIHN0YW5kcyBmb3IgSmF2YXNjcmlwdCwgQVBJcywgYW5kIEhUTUwgbWFya3VwLCBpcyBhIG1vZGVybiBhcmNoaXRlY3R1cmUgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMgYW5kIG9uZSBvZiBpdHMgbWFqb3IgZmVhdHVyZXMgaXMgdGhhdCBpdCBkb2VzbuKAmXQgcmVxdWlyZSBhIGRhdGFiYXNlIGFuZCBhIHdlYiBzZXJ2ZXIgaXMgb3B0aW9uYWwuIFRoZSBKQU1TdGFjayBhcmNoaXRlY3R1cmUgaXMgYWltZWQgYXQgZGVjb3VwbGluZyB0aGUgZnJvbnRlbmQgYW5kIHRoZSBiYWNrZW5kIGJ5IGdlbmVyYXRpbmcgYSBmcm9udGVuZCBtYWRlIG9mIEhUTUwsIENTUywgYW5kIEphdmFzY3JpcHQgYW5kIGEgYmFja2VuZCB0aGF0IGlzIHNpbXBseSBhIGNvbnRlbnQgQVBJIHJldHVybmluZyBKU09OIG9yIFhNTC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbmUgb2YgdGhlIGxlYWRpbmcgSkFNU3RhY2sgcGxhdGZvcm1zIHRvZGF5IGlzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnLyZxdW90OyZndDtHYXRzYnkuanMmbHQ7L2EmZ3Q7LiBHYXRzYnkuanMgaXMgYSBmcmVlIGFuZCBvcGVuLXNvdXJjZSBmcmFtZXdvcmsgYmFzZWQgb24gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3JlYWN0anMub3JnLyZxdW90OyZndDtSZWFjdC5qcyZsdDsvYSZndDsgdGhhdCBoZWxwcyBkZXZlbG9wZXJzIGJ1aWxkIGhpZ2gtc3BlZWQgd2ViIGFwcGxpY2F0aW9ucy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHR1dG9yaWFsLCB3ZSB3aWxsIGJlIGRlbW9uc3RyYXRpbmcgaG93IHRvIGRlcGxveSBhIEdhdHNieS5qcyBzaXRlIHRvIHRoZSBwb3B1bGFyIEhlcm9rdSBwbGF0Zm9ybSBieSBidWlsZGluZyBhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmUgZm9yIGl0cyBkZXBsb3ltZW50IHVzaW5nIENpcmNsZUNJLiZsdDsvcCZndDsKCiZsdDtoMiZndDtQcmVyZXF1aXNpdGVzJmx0Oy9oMiZndDsKCiZsdDtwJmd0O0luIG9yZGVyIHRvIGZvbGxvdyBhbG9uZyB3aXRoIHRoaXMgcG9zdCwgeW91IHdpbGwgbmVlZCBhIGZldyB0aGluZ3MgaW4gcGxhY2U6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7ICZhbXA7Z3Q7PSAxMC4xNiBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZSAtdiZsdDsvY29kZSZndDsgb24geW91ciB0ZXJtaW5hbCB0byBwcmludCBvdXQgeW91ciB2ZXJzaW9uIG9mIE5vZGVKUyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7R2l0Jmx0Oy9hJmd0OyBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0gKFlvdSBjYW4gY29uZmlybSB0aGlzIGJ5IHJ1bm5pbmcgdGhlIGNvbW1hbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z2l0Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsLiBUaGlzIHNob3VsZCBwcmludCBvdXQgYXZhaWxhYmxlIGdpdCBjb21tYW5kcykmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuaGVyb2t1LmNvbS8mcXVvdDsmZ3Q7SGVyb2t1Jmx0Oy9hJmd0OyBhY2NvdW50Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7QSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O0dpdEh1YiZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7Q2lyY2xlQ0kmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7V2l0aCB0aGVzZSwgeW91IGFyZSByZWFkeSB0byBmb2xsb3cgYWxvbmcuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NyZWF0aW5nIGEgR2F0c2J5LmpzIHByb2plY3QmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7VG8gYmVnaW4sIHdlIG5lZWQgdG8gY3JlYXRlIG91ciBHYXRzYnkuanMgcHJvamVjdC4gSW4gYW4gYXBwcm9wcmlhdGUgbG9jYXRpb24gd2l0aGluIHlvdXIgc3lzdGVtLCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBwcm9qZWN0OiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGdhdHNieSBuZXcgZ2F0c2J5LWhlcm9rdS1kZXBsb3kKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBwYXJ0IG9mIHRoaXMgY29tbWFuZCBpcyB0aGUgZm9sZGVyIG5hbWUgZm9yIG15IHByb2plY3QgdG8gYmUgc2NhZmZvbGRlZCBpbi4gWW91IGNhbiB1c2UgYW55IHByZWZlcnJlZCBuYW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCB3aWxsIGltbWVkaWF0ZWx5IGJlZ2luIHNjYWZmb2xkaW5nIGEgbmV3IEdhdHNieS5qcyBwcm9qZWN0LiBZb3UgbWlnaHQgYmUgcHJvbXB0ZWQgdG8gc2VsZWN0IGVpdGhlciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt5YXJuJmx0Oy9jb2RlJmd0OyBvciAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7IGFzIHlvdXIgcGFja2FnZSBtYW5hZ2VyLCBmb3IgdGhpcyB0dXRvcmlhbCwgZ28gd2l0aCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtucG0mbHQ7L2NvZGUmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNjYWZmb2xkaW5nIHByb2Nlc3MgaXMgZG9uZSwgZ28gaW50byB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3QgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NkIGdhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OykgYW5kIHJ1biB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gYm9vdCB1cCBhIHNlcnZlciB0byBzZXJ2ZSB0aGUgYXBwbGljYXRpb24gaW4gZGV2ZWxvcG1lbnQgbW9kZTombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBydW4gZGV2ZWxvcAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGlzIHdpbGwgc2VydmUgdGhlIGFwcGxpY2F0aW9uIGF0IHRoZSBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8mbHQ7L2NvZGUmZ3Q7IGFuZCBkaXNwbGF5IHRoZSBwYWdlIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MS5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIGEgZnVuY3Rpb25hbCBHYXRzYnkuanMgc2l0ZSB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7U2V0dGluZyB1cCBhIEhlcm9rdSBBcHAgZm9yIEdhdHNieSZsdDsvaDImZ3Q7CgombHQ7cCZndDtUbyBzZXQgdXAgYSBIZXJva3UgYXBwIGZvciBvdXIgR2F0c2J5IGFwcGxpY2F0aW9uLCB3ZSBuZWVkIHRvIGxvZyBpbnRvIEhlcm9rdSBhbmQgY3JlYXRlIGEgbmV3IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5Mi5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdlIG5lZWQgdG8gZ2V0IHRoZSBuYW1lIG9mIG91ciBhcHBsaWNhdGlvbiAodGhpcyB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dhdHNieS1oZXJva3UtZGVwbG95Jmx0Oy9jb2RlJmd0OyBmb3IgdGhlIGFwcGxpY2F0aW9uIGNyZWF0ZWQgYWJvdmUpIGFuZCB0aGUgQVBJIGtleSBmb3Igb3VyIEhlcm9rdSBhY2NvdW50LiBUaGUgQVBJIGtleSBjYW4gYmUgZm91bmQgaW4gdGhlIEhlcm9rdSAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXZSB3aWxsIG5lZWQgdGhlc2UgdHdvIHZhbHVlcyAodGhlIGFwcCBuYW1lIGFuZCBBUEkga2V5KSBsYXRlciBvbiB0byBjcmVhdGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9uIG91ciBDaXJjbGVDSSBwcm9qZWN0IGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiBvdXIgSGVyb2t1IGFjY291bnQgaXMgdG8gaW5zdGFsbCBzb21lIG5lY2Vzc2FyeSBidWlsZHBhY2tzLiBCdWlsZHBhY2tzIGFyZSBzY3JpcHRzIHRoYXQgcnVuIHdoZW4geW91ciBhcHBsaWNhdGlvbiBpcyBkZXBsb3llZC4gV2Ugd2lsbCBuZWVkIHR3byBidWlsZCBwYWNrcyBmb3IgdGhpcyBleGVyY2lzZTombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0O2hlcm9rdS9ub2RlanM6IFJlcXVpcmVkIGZvciBhbGwgTm9kZS5qcyBhcHBsaWNhdGlvbnMmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtoZXJva3UvaGVyb2t1LWJ1aWxkcGFjay1zdGF0aWM6IFRoZSBIZXJva3UgQnVpbGRwYWNrIFN0YXRpYyBwYWNrYWdlIChiZWNhdXNlIEdhdHNieS5qc+KAmXMgYnVpbGQgaXMgbWFkZSB1cCBvZiBzdGF0aWMgZmlsZXMsIHRoaXMgd2lsbCBoZWxwIHVzIHNlcnZlIHRoZSBzdGF0aWMgZmlsZXMgb24gdGhlIEhlcm9rdSBwbGF0Zm9ybSkmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7R28gdG8geW91ciBIZXJva3UgYXBwbGljYXRpb27igJlzICZsdDtzdHJvbmcmZ3Q7U2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgcGFnZSBhbmQgc2Nyb2xsIGRvd24gdG8gJmx0O3N0cm9uZyZndDtCdWlsZHBhY2tzJmx0Oy9zdHJvbmcmZ3Q7ICh5b3UgbWlnaHQgYWxyZWFkeSBzZWUgdGhhdCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgYnVpbGRwYWNrIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQpLiBDbGljayAmbHQ7c3Ryb25nJmd0O0FkZCBidWlsZHBhY2smbHQ7L3N0cm9uZyZndDsgYW5kIHlvdSB3aWxsIHNlZSBhIGRpYWxvZyBwb3AgdXAgc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnkzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rm9yIGVhY2ggYnVpbGRwYWNrICgmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3Uvbm9kZWpzJmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L2hlcm9rdS1idWlsZHBhY2stc3RhdGljJmx0Oy9jb2RlJmd0OykgZW50ZXIgdGhlIGlkZW50aWZpZXIgaW50byB0aGUgdGV4dCBmaWVsZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTYXZlIENoYW5nZXMmbHQ7L3N0cm9uZyZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtOb3RlOiZsdDsvc3Ryb25nJmd0OyAmbHQ7aSZndDtJZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aGVyb2t1L25vZGVqcyZsdDsvY29kZSZndDsgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCwgb25seSBhZGQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2hlcm9rdS9oZXJva3UtYnVpbGRwYWNrLXN0YXRpYyZsdDsvY29kZSZndDsgYnVpbGQgcGFjay4mbHQ7L2kmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgZG9pbmcgdGhpcyBmb3IgYm90aCBidWlsZHBhY2tzLCB5b3Ugd2lsbCBzZWUgdGhlIHR3byBidWlsZCBwYWNrcyBub3cgbGlzdGVkIGluICZsdDtzdHJvbmcmZ3Q7QnVpbGRwYWNrcyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGF0IGNvbXBsZXRlcyB0aGUgc2V0IHVwIHJlcXVpcmVkIGZvciBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1NldHRpbmcgdXAgdGhlIEdhdHNieS5qcyBwcm9qZWN0IG9uIENpcmNsZUNJJmx0Oy9oMiZndDsKCiZsdDtwJmd0O091ciBuZXh0IHRhc2sgaXMgdG8gZ2V0IG91ciBHYXRzYnkuanMgcHJvamVjdCBzZXQgdXAgb24gQ2lyY2xlQ0kuIFdlIG5lZWQgdG8gcHVzaCBvdXIgY29kZSB0byBhIEdpdEh1YiByZXBvc2l0b3J5IG9uIHRoZSBhY2NvdW50IHlvdSBoYXZlIGxpbmtlZCB0byB5b3VyIENpcmNsZUNJIGFjY291bnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgZ28gdG8gdGhlICZsdDtzdHJvbmcmZ3Q7QWRkIFByb2plY3RzJmx0Oy9zdHJvbmcmZ3Q7IHBhZ2UgdG8gYWRkIHRoZSBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk0LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2xpY2sgJmx0O3N0cm9uZyZndDtTZXQgVXAgUHJvamVjdCZsdDsvc3Ryb25nJmd0OyB0byBiZWdpbiBzZXR0aW5nIHVwIHRoZSBwcm9qZWN0LiBUaGlzIHdpbGwgbG9hZCB0aGUgbmV4dCBzY3JlZW4uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk1LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhlIHNldHVwIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U3RhcnQgQnVpbGRpbmcmbHQ7L3N0cm9uZyZndDsuIEJlZm9yZSB0aGUgYnVpbGQgc3RhcnRzLCB5b3Ugd2lsbCBnZXQgYSBwcm9tcHQgdG8gZWl0aGVyIGRvd25sb2FkIGFuZCB1c2UgdGhlIHByb3ZpZGVkIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgaGF2ZSBpdCBhZGRlZCBvbiBhIHNlcGFyYXRlIGJyYW5jaCBvciBzZXQgb25lIHVwIG1hbnVhbGx5LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk2LnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U2VsZWN0ICZsdDtzdHJvbmcmZ3Q7QWRkIE1hbnVhbGx5Jmx0Oy9zdHJvbmcmZ3Q7IHRvIHByb2NlZWQuIFRoaXMgd2lsbCBwcm9tcHQgYW5vdGhlciBkaWFsb2cgdGhhdCBjaGVja3MgdG8gY29uZmlybSB0aGF0IHlvdSBoYXZlIGEgY29uZmlndXJhdGlvbiBmaWxlIHNldCB1cCB0byBiZWdpbiBidWlsZGluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTcucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IEJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGNvbXBsZXRlIHRoZSBzZXR1cC4gVGhlIGJ1aWxkIHdpbGwgc3VyZWx5IGZhaWwgYmVjYXVzZSB3ZSBoYXZlIG5vdCBzZXQgdXAgb3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB5ZXQsIHRoaXMgd2Ugd2lsbCBkbyBsYXRlciBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgZmluYWwgdGhpbmcgd2UgbmVlZCB0byBkbyBvbiB0aGUgQ2lyY2xlQ0kgY29uc29sZSBpcyB0byBzZXQgdXAgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZW52LXZhcnMvJnF1b3Q7Jmd0O2Vudmlyb25tZW50IHZhcmlhYmxlcyZsdDsvYSZndDsgZm9yIHRoZSBwcm9qZWN0IHdlIGp1c3QgYWRkZWQuIFRoaXMgd2lsbCBlbmFibGUgaXQgdG8gaGF2ZSBhdXRoZW50aWNhdGVkIGFjY2VzcyB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIGZvciBkZXBsb3ltZW50cy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtHbyB0byB5b3VyIHByb2plY3TigJlzIHNldHRpbmdzIGJ5IGNsaWNraW5nICZsdDtzdHJvbmcmZ3Q7UHJvamVjdCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBvbiB0aGUgJmx0O3N0cm9uZyZndDtQaXBlbGluZXMmbHQ7L3N0cm9uZyZndDsgcGFnZSAobWFrZSBzdXJlIHlvdXIgcHJvamVjdCBpcyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIHByb2plY3QpLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5OC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgd2lsbCBuYXZpZ2F0ZSB0byB0aGUgcHJvamVjdCBzZXR0aW5ncyBwYWdlLiBPbiB0aGlzIHBhZ2UsIGNsaWNrICZsdDtzdHJvbmcmZ3Q7RW52aXJvbm1lbnQgVmFyaWFibGVzJmx0Oy9zdHJvbmcmZ3Q7IG9uIHRoZSBzaWRlIG1lbnUuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNS0xMC1nYXRzYnk5LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcGFnZSwgY2xpY2sgJmx0O3N0cm9uZyZndDtBZGQgRW52aXJvbm1lbnQgVmFyaWFibGUgYnV0dG9uJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTAucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZGQgdGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Jmx0Oy9wJmd0OwombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDs6IFRoaXMgaXMgdGhlIG5hbWUgb2YgeW91ciBIZXJva3UgYXBwbGljYXRpb24gKGluIHRoaXMgY2FzZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnYXRzYnktaGVyb2t1LWRlcGxveSZsdDsvY29kZSZndDspJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7SEVST0tVX0FQSV9LRVkmbHQ7L2NvZGUmZ3Q7OiBZb3VyIEhlcm9rdSBhY2NvdW50IEFQSSBrZXkgZm91bmQgdW5kZXIgdGhlICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCZsdDsvc3Ryb25nJmd0OyB0YWIgb2YgeW91ciBIZXJva3UgYWNjb3VudCBpbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50IFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O09uY2UgYWRkZWQsIHlvdSB3aWxsIGhhdmUgZXZlcnl0aGluZyBzZXQgdXAgb24geW91ciBDaXJjbGVDSSBjb25zb2xlIGZvciBkZXBsb3ltZW50IHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRoZSBHYXRic3kuanMgc2l0ZSB1c2luZyBvcmJzJmx0Oy9oMiZndDsKCiZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy8mcXVvdDsmZ3Q7T3JicyZsdDsvYSZndDsgYXJlIHJldXNhYmxlIHBhY2thZ2VzIG9mIFlBTUwgY29uZmlndXJhdGlvbiB0aGF0IGNvbmRlbnNlIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoZXkgZW5hYmxlIGRldmVsb3BlcnMgdG8gZWFzaWx5IHVzZSBwb3dlcmZ1bCBwaXBlbGluZSBmdW5jdGlvbmFsaXRpZXMgd2l0aCBhbGwgdGhlIGJvaWxlcnBsYXRlIGFic3RyYWN0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBleGVyY2lzZSwgd2Ugd2lsbCBiZSB1c2luZyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7b3JiIGZvciBIZXJva3UmbHQ7L2EmZ3Q7IHRvIGNvbmZpZ3VyZSBvdXIgcGlwZWxpbmUgdG8gZGVwbG95IG91ciBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QnV0IGJlZm9yZSB0aGF0LCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIGZpbGUgdG8gaW5zdHJ1Y3Qgb3VyIEhlcm9rdSBCdWlsZHBhY2sgU3RhdGljIHBhY2thZ2Ugb24gaG93IHRvIGRlcGxveSBhbmQgc2VydmUgb3VyIGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O0F0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCwgY3JlYXRlIGEgbmV3IGZpbGUgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3RhdGljLmpzb24mbHQ7L2NvZGUmZ3Q7IGFuZCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGUgaW50byBpdDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3sKICAmcXVvdDtyb290JnF1b3Q7OiAmcXVvdDtwdWJsaWMvJnF1b3Q7LAogICZxdW90O2hlYWRlcnMmcXVvdDs6IHsKICAgICZxdW90Oy8qKiZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJnF1b3Q7CiAgICB9LAogICAgJnF1b3Q7LyoqLmNzcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy8qKi5qcyZxdW90OzogewogICAgICAmcXVvdDtDYWNoZS1Db250cm9sJnF1b3Q7OiAmcXVvdDtwdWJsaWMsIG1heC1hZ2U9MzE1MzYwMDAsIGltbXV0YWJsZSZxdW90OwogICAgfSwKICAgICZxdW90Oy9zdGF0aWMvKiomcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0sCiAgICAmcXVvdDsvaWNvbnMvKi5wbmcmcXVvdDs6IHsKICAgICAgJnF1b3Q7Q2FjaGUtQ29udHJvbCZxdW90OzogJnF1b3Q7cHVibGljLCBtYXgtYWdlPTMxNTM2MDAwLCBpbW11dGFibGUmcXVvdDsKICAgIH0KICB9LAogICZxdW90O2h0dHBzX29ubHkmcXVvdDs6IHRydWUsCiAgJnF1b3Q7ZXJyb3JfcGFnZSZxdW90OzogJnF1b3Q7NDA0Lmh0bWwmcXVvdDsKfQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgbW9zdCBpbXBvcnRhbnQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgaGVyZSBpcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkuIFdoZW4gR2F0c2J5LmpzIHJ1bnMgaXRzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2J1aWxkJmx0Oy9jb2RlJmd0OyBzY3JpcHQgKHRoaXMgaXMgYWxzbyB0aGUgc2NyaXB0IHVzZWQgYnkgSGVyb2t1IHRvIHJ1biB0aGUgYnVpbGQgYmVmb3JlIGRlcGxveW1lbnQpLCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3B1YmxpYyZsdDsvY29kZSZndDsgZm9sZGVyIGlzIGdlbmVyYXRlZCBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBjb250YWluaW5nIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHByb2R1Y3Rpb24gdmVyc2lvbiBpcyB3aGF0IHRoZSBob3N0IHNlcnZlcyB0byB1c2Vycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaHVzLCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cm9vdCZsdDsvY29kZSZndDsgcHJvcGVydHkgaXMgdXNlZCB0byBwb2ludCB0byB0aGlzIGZvbGRlciBzbyB0aGF0IHRoZSBob3N0IHNlcnZlcyB0aGUgYXBwcm9wcmlhdGUgY29kZS4gT3RoZXIgcGFyYW1ldGVycyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24gYXJlIHNpbXBseSBiZXN0LXByYWN0aWNlIGNvbmZpZ3VyYXRpb25zIGZvciBHYXRzYnkuanMgc2l0ZXMuIEZvciBleGFtcGxlLCBjYWNoaW5nIGd1aWRlbGluZXMgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvY2FjaGluZy8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7R29vZCEgTm93IHdlIGNhbiB3cml0ZSBvdXIgZGVwbG95bWVudCBzY3JpcHQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXQgdGhlIHJvb3Qgb2YgeW91ciBHYXRzYnkuanMgcHJvamVjdCwgY3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgYW5kIGEgZmlsZSB3aXRoaW4gaXQgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0Oy4gSW5zaWRlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb25maWcueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLCBlbnRlciB0aGUgZm9sbG93aW5nIGNvZGU6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt2ZXJzaW9uOiAyLjEKb3JiczoKICBoZXJva3U6IGNpcmNsZWNpL2hlcm9rdUAwLjAuMTAKd29ya2Zsb3dzOgogIGhlcm9rdV9kZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGhlcm9rdS9kZXBsb3ktdmlhLWdpdAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGF04oCZcyBpdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgY29uZmlndXJhdGlvbiBhYm92ZSwgd2UgcHVsbCBpbiB0aGUgSGVyb2t1IG9yYiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjaXJjbGVjaS9oZXJva3VAMC4wLjEwJmx0Oy9jb2RlJmd0OyB3aGljaCBhdXRvbWF0aWNhbGx5IGdpdmVzIHVzIGFjY2VzcyB0byBhIHBvd2VyZnVsIHNldCBvZiBIZXJva3Ugam9icyBhbmQgY29tbWFuZHMuIE9uZSBvZiB0aG9zZSBqb2JzIGlzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtoZXJva3UvZGVwbG95LXZpYS1naXQmbHQ7L2NvZGUmZ3Q7IHdoaWNoIGRlcGxveXMgeW91ciBhcHBsaWNhdGlvbiBzdHJhaWdodCBmcm9tIHlvdXIgR2l0SHViIHJlcG8gdG8geW91ciBIZXJva3UgYWNjb3VudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGlzIGpvYiBhbHJlYWR5IHRha2VzIGNhcmUgb2YgaW5zdGFsbGluZyB0aGUgSGVyb2t1IENMSSwgaW5zdGFsbGluZyBwcm9qZWN0IGRlcGVuZGVuY2llcywgcnVubmluZyB0aGUgYnVpbGQgc2NyaXB0LCBhbmQgZGVwbG95aW5nIHRoZSBhcHBsaWNhdGlvbi4gSXQgYWxzbyBwaWNrcyB1cCBvdXIgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGggZGVwbG95bWVudCB0byBvdXIgSGVyb2t1IGFwcGxpY2F0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgdGhlIG1vbWVudCBvZiB0cnV0aCAoZHJ1bSByb2xsKS4gTGV04oCZcyBjb21taXQgYWxsIHRoZSBjaGFuZ2VzIHdlIGhhdmUgbWFkZSB0byBvdXIgR2F0c2J5LmpzIHByb2plY3QgYW5kIHB1c2ggdG8gb3VyIHJlcG8gdG8gdHJpZ2dlciB0aGUgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTEucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtHcmVhdCEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUbyBzZWUgdGhlIGJlaGluZC10aGUtc2NlbmVzIHpjdGlvbiBvZiB0aGUgZGVwbG95bWVudCwgeW91IGNhbiBjbGljayBpbnRvIHRoZSBidWlsZC4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDUtMTAtZ2F0c2J5MTIucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgZm9yIHRoZSBmaW5hbCBjb25maXJtYXRpb24gdGhhdCB0aGUgZGVwbG95bWVudCBvZiBvdXIgR2F0c2J5LmpzIHNpdGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bCwgdmlzaXQgdGhlIGRlZmF1bHQgSGVyb2t1IGFkZHJlc3MgZm9yIHRoZSBzaXRlIGF0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vW0FQUF9OQU1FXS5oZXJva3VhcHAuY29tJmx0Oy9jb2RlJmd0Oy4gSWYgeW91IHVzZWQgdGhlIHNhbWUgbmFtZSBhcyBJIGRpZCBmb3IgdGhpcyBleGVyY2lzZSwgdGhhdCB3aWxsIGJlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHBzOi8vZ2F0c2J5LWhlcm9rdS1kZXBsb3kuaGVyb2t1YXBwLmNvbS8mbHQ7L2NvZGUmZ3Q7LiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93ICh0aGlzIG1pZ2h0IGJlIGRpZmZlcmVudCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IEdhdHNieS5qcyBzdGFydGVyIHRlbXBsYXRlLCBsZWFybiBtb3JlIGFib3V0IHN0YXJ0ZXJzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZ2F0c2J5anMub3JnL2RvY3MvcGx1Z2lucy10aGVtZXMtYW5kLXN0YXJ0ZXJzLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OykuJmx0Oy9wJmd0OwoKJmx0O3AgYWxpZ249JnF1b3Q7Y2VudGVyJnF1b3Q7Jmd0OwogICAmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA1LTEwLWdhdHNieTEzLnBuZyZxdW90OyB3aWR0aD0mcXVvdDs4NzUmcXVvdDsgLyZndDsKJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NvbmNsdXNpb24mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyB0dXRvcmlhbCwgd2UgZGVwbG95ZWQgYSBHYXRzYnkuanMgc2l0ZSB0byBIZXJva3UgdXNpbmcgQ2lyY2xlQ0kgb3Jicy4gTm93IHdoZW4gd2UgcHVzaCBvdXIgY29kZSwgYWxsIGNoYW5nZXMgd2lsbCBiZSBkZXBsb3llZCBhdXRvbWF0aWNhbGx5LiBUaGlzIHR1dG9yaWFsIGhhcyBhbHNvIGRlbW9uc3RyYXRlZCBob3cgQ2lyY2xlQ0kgb3JicyBtYWtlcyBkZXBsb3ltZW50IGVhc3kuIEluc3RlYWQgb2Ygd3JpdGluZyBtYW55IGxpbmVzIG9mIGNvbmZpZyBuZWVkIHRvIGRlcGxveSB0byBIZXJva3UsIG9yYnMgYWJzdHJhY3QgYWxsIG9mIHRoYXQgaW50byBjb252ZW5pZW50IGNvbW1hbmRzIGZvciB1cyB0byB1c2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q2hlY2sgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vb3Jicy9yZWdpc3RyeS8mcXVvdDsmZ3Q7Q2lyY2xlQ0kgb3JicyByZWdpc3RyeSZsdDsvYSZndDsgZm9yIG9yYnMgdGhhdCBzdWl0IHlvdXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kIGRlcGxveW1lbnQgZGVzdGluYXRpb24gb2YgY2hvaWNlLiZsdDsvcCZndDsKCiZsdDtwJmd0O0hhcHB5IGNvZGluZyEmbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5MZXR0aW5nIGNoYW5nZSBhbmQgdW5jZXJ0YWludHkgYWR2YW5jZSB5b3VyIHNvZnR3YXJlIGFyY2hpdGVjdHVyZTwvdGl0bGU+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VGh1LCAwNyBNYXkgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9sZXR0aW5nLWNoYW5nZS1hbmQtdW5jZXJ0YWludHktYWR2YW5jZS15b3VyLXNvZnR3YXJlLWFyY2hpdGVjdHVyZS88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5Sb2IgWnViZXI8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIGZpcnN0IGxpbmVzIG9mIENpcmNsZUNJ4oCZcyBjb2RlYmFzZSB3ZXJlIHdyaXR0ZW4gbmVhcmx5IG5pbmUgeWVhcnMgYWdvLiBMb29raW5nIGJhY2sgb24gd2hhdCB3ZSBoYXZlIGJ1aWx0IHNvIGZhciB3aXRoIHRoZSBjbGFyaXR5IG9mIGhpbmRzaWdodCBleHBvc2VzIHNvbWUgaW50ZXJlc3RpbmcgdGhlbWVzIHRoYXQgY2FuIGJlIGluc3RydWN0aXZlIGluIGlkZW50aWZ5aW5nIGFwcHJvYWNoZXMgdG8gZGVhbGluZyB3aXRoIGNoYW5nZS4gV2hpbGUgdGhleSB3ZXJlbuKAmXQgYWxsIGludGVudGlvbmFsLCBpdCBkb2VzbuKAmXQgbWFrZSB0aGVtIGFueSBsZXNzIHZhbHVhYmxlLiBUaHJlZSBzdWNoIHRoZW1lcyBhcmU6IGRlZmVycmluZyB0aGUgbmVlZCB0byBoYW5kbGUgY2hhbmdlLCB0aGlua2luZyBsaWtlIGEgcHJvZHVjdCBtYW5hZ2VyLCBhbmQga2VlcGluZyB5b3VyIGhlYWQgdXAuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0NoYW5nZSBpcyBhIGNvbnN0YW50IGluIHRlY2hub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7Q2hhbmdlIG1pZ2h0IGJlIG9uZSBvZiB0aGUgb25seSBjb25zdGFudHMgZW5naW5lZXJzIHdpbGwgZGVhbCB3aXRoIG92ZXIgdGhlIGNvdXJzZSBvZiB0aGVpciBjYXJlZXJzLiBJdCBjZXJ0YWlubHkgZHJpdmVzIG1hbnkgb2Ygb3VyIG1vc3QgaW50ZXJlc3RpbmcgY2hhbGxlbmdlcy4gVGhlIG1hcmtldCBpcyBjaGFuZ2luZywgb3VyIGJ1c2luZXNzIGlzIGV2b2x2aW5nLCBvdXIgY3VzdG9tZXIgYmFzZSBpcyBncm93aW5nLCBhbmQgb3VyIHRlYW0gaXMgc2NhbGluZy4gV2UgbmVlZCB0byBidWlsZCBhIHNvbHV0aW9uIHRoYXQgbWVldHMgdG9kYXnigJlzIG5lZWRzIGJ1dCBzZXRzIHVzIHVwIGZvciB0aGUgZGVtYW5kcyBvZiB0b21vcnJvdy4gSG93IGRvIHdlIGRlc2lnbiBvdXIgc3lzdGVtcyBpbiBhIG1hbm5lciB0aGF0IGNhbiBhZGFwdCBhbmQgY2hhbmdlIHRvIHRoaW5ncyB0aGF0IGRvbuKAmXQgZXZlbiBleGlzdCB3aGVuIHdlIHN0YXJ0IGJ1aWxkaW5nIGl0PyZsdDsvcCZndDsKCiZsdDtwJmd0O1RoZXJlIGhhcyBiZWVuIGEgbG90IG9mIHRhbGsgaW4gcmVjZW50IHllYXJzIGFib3V0IGFyY2hpdGVjdHVyZXMgdGhhdCBhcmUgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGV2b2x2ZSBvciBtb3JlIGVhc2lseSBhZGFwdCB0byBjaGFuZ2UuIFRoZW4gd2Ugc3RhcnQgdG8gZGViYXRlIHRoZSBtZXJpdHMgb2YgdGhlc2UgYXJjaGl0ZWN0dXJlcyB1c2luZyBhIGxpbmUgb2YgdGhpbmtpbmcgdGhhdCBzdWdnZXN0cyB5b3UgYXJlIGNob29zaW5nIHRvIGhhdmUgYSDigJxNaWNyb3NlcnZpY2VzIEFyY2hpdGVjdHVyZeKAnSBvciBhbiDigJxFdmVudC1Ecml2ZW4gQXJjaGl0ZWN0dXJl4oCdIG9yIGEg4oCcU2VydmVybGVzcyBBcmNoaXRlY3R1cmUu4oCdIEkgd291bGQgcG9zaXQgdGhhdCB0aGlzIHR5cGUgb2YgZGVzY3JpcHRpb24gY3JlYXRlcyBhIGZhbHNlIHNlbnNlIG9mIGZpbmFsaXR5IHRoYXQgZG9lc27igJl0IGFjdHVhbGx5IGV4aXN0IGluIG1vc3QgcmVhbC13b3JsZCBzeXN0ZW1zLiZsdDsvcCZndDsKCiZsdDtwJmd0O091dHNpZGUgb2YgdGhlIHlvdW5nZXN0IG9mIHByb2plY3RzLCBpdOKAmXMgdW5saWtlbHkgdGhhdCB5b3UgY2FuIGRlc2NyaWJlIHRoZSBhcmNoaXRlY3R1cmUgdGhhdCB5b3UgaGF2ZSB3aXRoIGFueSBzaW1wbGUgb25lLWxpbmVyLiBJdOKAmXMgbW9yZSBsaWtlbHkganVzdCDigJx5b3VyIGFyY2hpdGVjdHVyZSzigJ0gYW5kIGlmIHlvdeKAmXZlIGJlZW4gd29ya2luZyBvbiBpdCBmb3IgYW55IHNpZ25pZmljYW50IGFtb3VudCBvZiB0aW1lLCB5b3UgbWF5IGhhdmUgYXBwbGllZCBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0dGVybnMgYWxvbmcgdGhlIHdheSB0byBzb2x2ZSBzcGVjaWZpYyBwcm9ibGVtcy4gVGhlcmXigJlzIHByb2JhYmx5IGEgbW9ub2xpdGggc29tZXdoZXJlLCBzb21lIG51bWJlciBvZiBtaWNyb3NlcnZpY2VzLCBhIGZldyBldmVudHMsIGFuZCBhIHNlcnZlcmxlc3MgZWxlbWVudCBvciB0d28uIE9uIHRvcCBvZiBhbGwgdGhhdCwgeW91IG1pZ2h0IGJlIGluIHRoZSBtaWRkbGUgb2YgdHJhbnNpdGlvbmluZyBzb21lIG9mIHRob3NlIHBpZWNlcyBmcm9tIG9uZSBwYXR0ZXJuIHRvIGFub3RoZXIuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0Rlc2lnbiBhcmNoaXRlY3R1cmUgdG8gc29sdmUgcHJvYmxlbXMmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gb2Z0ZW4gYXNrZWQgYnkgZm9sa3Mgd2hpY2ggYXJjaGl0ZWN0dXJlIHRoZXkgc2hvdWxkIGNob29zZSwgb3Igd2hlbiB0aGV5IHNob3VsZCBzd2l0Y2ggZnJvbSBvbmUgdG8gYW5vdGhlci4gSSBoYXZlIGEgZ3JlYXQgdGVuZGVuY3kgdG8gZGlzYXBwb2ludCB3aXRoIGFuc3dlcnMgbGlrZSDigJx3aGF0IHByb2JsZW0gYXJlIHlvdSB0cnlpbmcgdG8gc29sdmU/4oCdJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28sIHdoYXQgJmx0O3N0cm9uZyZndDtzaG91bGQmbHQ7L3N0cm9uZyZndDsgeW91IGJlIHRoaW5raW5nIGFib3V0IGFzIHlvdXIgcHJvZHVjdCBldm9sdmVzIGFuZCB5b3VyIG5lZWRzIGFyZSBjaGFuZ2luZz8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGVyZSBhcmUgYSBsb3Qgb2YgYXBwcm9hY2hlcyB0aGF0IHdlIGNhbiB1c2UgdG8gZGVzaWduIHNvZnR3YXJlIGFuZCBzeXN0ZW1zIHRvIGJlIG1vcmUgcmVzaWxpZW50IHRvIGNoYW5nZS4gVGhlIGFsbHVyZSBvZiBub3QgaGF2aW5nIHRvIGRvIGNvbXBsZXggcmVmYWN0b3Jpbmcgb3IgcmVidWlsZGluZyBkb3duIHRoZSByb2FkIGxlYWRzIHVzIHRvIHdhbnQgdG8gZGVzaWduIHN5c3RlbXMgdGhhdCBoYXZlIGEgbG93IGNvc3Qgb2YgY2hhbmdlLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2hpbGUgZ2VuZXJhbGl6ZWQgYWJzdHJhY3Rpb25zIGFuZCByZXVzYWJsZSBjb21wb25lbnRzIGFyZSBhdCB0aGUgY29yZSBvZiByZWR1Y2luZyB0aGUgaW1wYWN0IG9mIGNoYW5nZSwgdGhleSBhcmUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2Jsb2cuY29kaW5naG9ycm9yLmNvbS90aGUtZGVsdXNpb24tb2YtcmV1c2UvJnF1b3Q7Jmd0O2hhcmQgdG8gZ2V0IHJpZ2h0IGluIHRoZSBmaXJzdCBwbGFjZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0l04oCZcyBoYXJkIHRvIHByZWRpY3QgdGhlIGZ1dHVyZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtBdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHRlY2huaWNhbCBsYW5kc2NhcGUgaXMgY2hhbmdpbmcsIHlvdXIgYnVzaW5lc3MgYW5kIHlvdXIgb3JnYW5pemF0aW9uIGFyZSBib3RoIGV2b2x2aW5nIGFzIHdlbGwuIFRoZXNlIGJvdGggaGF2ZSBhIHNpZ25pZmljYW50IGltcGFjdCBvbiB5b3VyIGFyY2hpdGVjdHVyYWwgZGVjaXNpb25zLiBUaGUgc3BlY2lmaWMgdHlwZXMgb2YgY2hhbmdlIHRoYXQgeW91IGFyZSB1bmRlcmdvaW5nIHdpbGwgaW5mbHVlbmNlIHRoZSBzb2Z0d2FyZSBhcmNoaXRlY3R1cmUgYmVzdCBzdWl0ZWQgdG8gYWJzb3JiIHRob3NlIGNoYW5nZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGVhcmx5IGRheXMgb2YgYSBwcm9qZWN0IG9yIGNvbXBhbnksIGl04oCZcyBwb3NzaWJsZSB0byBtYWtlIHN3ZWVwaW5nIGZ1bmRhbWVudGFsIHNoaWZ0cyBpbiB0aGUgb2JqZWN0aXZlLiBFeHRyZW1lLCBidXQgbm90IHVuY29tbW9uLCBleGFtcGxlcyBpbmNsdWRlIFRpbnkgU3BlY2sgYmVjb21pbmcgU2xhY2sgYW5kIE9kZW8gYmVjb21pbmcgVHdpdHRlci4gV2hlbiB0aGUgZG9tYWluIG9mIHlvdXIgYnVzaW5lc3MgY2FuIG1vdmUgdGhhdCBkcmFzdGljYWxseSwgdGhlIGNsZWFuIGJvdW5kYXJpZXMgb2YgeW91ciBEREQgbW9kZWwgYXJlIG91dCB0aGUgd2luZG93LiBJbiBhIHNldCBvZiBtaWNyb3NlcnZpY2VzLCB0aGVzZSBib3VuZGFyaWVzIHdpbGwgYmUgY29kaWZpZWQsIHNvIGlmIHlvdSBoYXZlIHRvIGN1dCB0aHJvdWdoIHRoZW0sIHlvdeKAmWxsIGxpa2VseSBiZSB0aGFua2Z1bCBmb3IgYSBtb3JlIHBsaWFibGUgbW9ub2xpdGguJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB5b3UgZmluZCBwcm9kdWN0IC8gbWFya2V0IGZpdCwgeW91ciBwcmlvcml0aWVzIHdpbGwgc2hpZnQgdG93YXJkcyBzdXBwb3J0aW5nIHlvdXIgcmFwaWQgZ3Jvd3RoLiBXaXRoIHN5c3RlbSBzY2FsZSBhcyBhIGRyaXZlciBvZiBjaGFuZ2UsIHRoZSBhYmlsaXR5IHRvIHJlc3BvbmQgdG8gY2hhbmdlIGlzIG9mdGVuIHRpZWQgdG8gdGhlIGluZGVwZW5kZW5jZSBvZiBzeXN0ZW1zIGJhc2VkIG9uIHRoZWlyIG9wZXJhdGlvbmFsIGNoYXJhY3RlcmlzdGljcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBZnRlciB0aGF0IHNjYWxpbmcgcGhhc2UsIHlvdeKAmWxsIGhhdmUgYSBsYXJnZXIgb3JnYW5pemF0aW9uIGFuZCBmYXIgbW9yZSB0ZWFtcy4gSWYgeW914oCZcmUgbHVja3kgeW914oCZbGwgYmUgYmFjayB0byBzdXN0YWluYWJsZSBwcm9kdWN0IGV2b2x1dGlvbi4gVGhlbiB0aGUgY29zdCBvZiBjaGFuZ2Ugd2lsbCBiZSBwcm9wb3J0aW9uYWwgdG8gdGhlIGFtb3VudCBvZiBjcm9zcy10ZWFtIGNvb3JkaW5hdGlvbiByZXF1aXJlZCB0byBtYWtlIGEgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtoMiZndDtEZWZlciByZXNwb25zZSB0byBjaGFuZ2UmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7V2hlbiBhbiBpbmRpdmlkdWFsIG9yIHRlYW0gaGFzIGEgcHJvYmxlbSB0aGV54oCZcmUgdHJ5aW5nIHRvIHNvbHZlLCB0aGV5IGdlbmVyYWxseSBzdGFydCBvZmYgd2l0aCBhIHByZXR0eSBzaW1wbGUgZGlyZWN0aXZlIOKAkyBsZXTigJlzIGJ1aWxkIHRvIHNvbHZlIHRoYXQgcHJvYmxlbS4gV2hhdOKAmXMgdGhlIG1vc3QgZWZmZWN0aXZlIGFyY2hpdGVjdHVyZSB3ZSBjYW4gdXNlIHRvIGJ1aWxkIGEgdmlhYmxlIHByb2R1Y3QgYXQgdGhlIGxvd2VzdCBjb3N0PyBUaGlzIGlzIGdlbmVyYWxseSB0cnVlIHdoZXRoZXIgaXTigJlzIGEgc3RhcnR1cCBvciBhIGh1Z2UgbXVsdGluYXRpb25hbCBjb3Jwb3JhdGlvbi4gQSBuZXcgcHJvamVjdCB3aWxsIGJlIGJ1aWx0IG9uIGEgc3lzdGVtIHRoYXTigJlzIHJlbGF0aXZlbHkgbmV3LCBhbmQgd2lsbCBiZSB1bmxpa2VseSB0byBoYXZlIHByb2R1Y3QtbWFya2V0IGZpdCBiZWNhdXNlIHRoZSBjb21wYW55IHdvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCBpdHMgYnVzaW5lc3MgZG9tYWluIHlldCwgYW5kIHdvbuKAmXQga25vdyB3aGVyZSB0aGUgcHJpbWFyeSBzb3VyY2VzIG9mIGNoYW5nZSB3aWxsIGNvbWUgZnJvbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHNpdHVhdGlvbiwgZGVzaWduaW5nIGZvciBjaGFuZ2UgYmVjb21lcyBhIGxvdCBoYXJkZXIuIElmIGl04oCZcyBhIGxvdCBtb3JlIGV4cGVuc2l2ZSB0byBtYWtlIHRoaW5ncyByZXNpbGllbnQgdG8gY2hhbmdlIGFuZCB5b3UgY2Fu4oCZdCB0ZWxsIHlldCB3aGljaCBwYXJ0cyBvZiB5b3VyIHN5c3RlbSB3aWxsIGNoYW5nZSwgaG93IGRvIHlvdSBtYWtlIHRoZSBkZWNpc2lvbiBhYm91dCB3aGVyZSB0byBtYWtlIHRoYXQgaW52ZXN0bWVudD8mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBjb3VudGVyaW50dWl0aXZlIGFzIGl0IG1heSBzb3VuZCwgdGhlIGFuc3dlciBpcyBwcm9iYWJseSBub3doZXJlLiBBdCBsZWFzdCBub3QgeWV0LiBJbnN0ZWFkIHdhdGNoIGNoYW5nZSBjbG9zZWx5IGFuZCBidWlsZCBpbiBhIHdheSB0aGF0IG1pbmltaXplcyB0aGUgY29zdCBvZiBiZWluZyB3cm9uZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiDigJwmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly9zaG9wLm9yZWlsbHkuY29tL3Byb2R1Y3QvOTc4MDU5NjUyMjcwNC5kbyZxdW90OyZndDs5NyBUaGluZ3MgRXZlcnkgU29mdHdhcmUgQXJjaGl0ZWN0IFNob3VsZCBLbm93Jmx0Oy9hJmd0O+KAnSBLZXZsaW4gSGVubmV5LCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vbWVkaXVtLmNvbS9Aa2V2bGluaGVubmV5L2h0dHBzLW1lZGl1bS1jb20ta2V2bGluaGVubmV5LXVzZS11bmNlcnRhaW50eS1hcy1hLWRyaXZlci00OTNlYmViZDU3NWQmcXVvdDsmZ3Q7ZGVzY3JpYmVzIGFuIGltcG9ydGFudCBhcHByb2FjaCB0byB0aGlua2luZyBhYm91dCB1bmNlcnRhaW50eSZsdDsvYSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2Jsb2NrcXVvdGUmZ3Q7CiAgJmx0O3AmZ3Q74oCcVGhlIHByZXNlbmNlIG9mIHR3byBvcHRpb25zIGlzIGFuIGluZGljYXRvciB0aGF0IHlvdSBuZWVkIHRvIGNvbnNpZGVyIHVuY2VydGFpbnR5IGluIHRoZSBkZXNpZ24uIFVzZSB0aGUgdW5jZXJ0YWludHkgYXMgYSBkcml2ZXIgdG8gZGV0ZXJtaW5lIHdoZXJlIHlvdSBjYW4gZGVmZXIgY29tbWl0bWVudCB0byBkZXRhaWxzIGFuZCB3aGVyZSB5b3UgY2FuIHBhcnRpdGlvbiBhbmQgYWJzdHJhY3QgdG8gcmVkdWNlIHRoZSBzaWduaWZpY2FuY2Ugb2YgZGVzaWduIGRlY2lzaW9ucy4gSWYgeW91IGhhcmR3aXJlIHRoZSBmaXJzdCB0aGluZyB0aGF0IGNvbWVzIHRvIG1pbmQsIHlvdeKAmXJlIG1vcmUgbGlrZWx5IHRvIGJlIHN0dWNrIHdpdGggaXQg4oCTIGluY2lkZW50YWwgZGVjaXNpb25zIGJlY29tZSBzaWduaWZpY2FudCBhbmQgdGhlIHNvZnRuZXNzIG9mIHRoZSBzb2Z0d2FyZSBoYXJkZW5zLuKAnSZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7VGhpcyBmcmFtaW5nIGlzIGdyZWF0IGZvciBleHBsaWNpdCBkZWNpc2lvbnMsIGJ1dCB3aGF0IGlmIHlvdSBkb27igJl0IGtub3cgeW914oCZcmUgbWFraW5nIGEgY2hvaWNlPyZsdDsvcCZndDsKCiZsdDtwJmd0O01hbnkgdGltZXMsIHRoZSBjaG9pY2UgaXNu4oCZdCBldmVuIHZpc2libGUgeWV0LCBidXQgd2lsbCByZXZlYWwgaXRzZWxmIGxhdGVyLiBJbiB0aGVzZSBzaXR1YXRpb25zLCB0aGUgYW5zd2VyIGlzIG5vdCB0byBvdmVyIGdlbmVyYWxpemUsIGJ1aWxkaW5nIGFic3RyYWN0aW9ucyBldmVyeXdoZXJlIGp1c3QgaW4gY2FzZS4gSW5zdGVhZCwga2VlcCB0aGluZ3MgYXMgc2ltcGxlIGFzIHBvc3NpYmxlIHNvIHlvdSBjYW4gdW5kZXJzdGFuZCB0aGVtIGxhdGVyIGlmIHlvdSBoYXZlIHRvIG1ha2UgYSBjaGFuZ2UuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O1NpbXBsaWNpdHkgbWFrZXMgaXQgZWFzaWVyIHRvIGFkYXB0IHRvIGNoYW5nZSZsdDsvaDMmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZWFybHkgZGF5cywgdGhlIENpcmNsZUNJIGFwcGxpY2F0aW9uIHdhcyBhIG1vbm9saXRoIHRoYXQgdG9vayBhIGN1c3RvbWVy4oCZcyBidWlsZCB3aXRoIGl0cyBhc3NvY2lhdGVkIGRhdGEgYW5kIHB1c2hlZCBpdCBpbnRvIG9uZSBvZiBzZXZlcmFsIExYQyBjb250YWluZXJzLiBFdmVyeSBjb250YWluZXIgdGhhdCB3ZSBzcHVuIHVwIHdhcyBpbnN0YW50aWF0ZWQgZnJvbSB0aGUgc2FtZSBpbWFnZSB0aGF0IGNvbnRhaW5lZCBldmVyeXRoaW5nIHRoYXQgd2UgdGhvdWdodCBhbnlvbmUgd291bGQgZXZlciB3YW50IGluIHRoZWlyIHRlc3QgZW52aXJvbm1lbnQuIEluIGhpbmRzaWdodCwgdGhpcyBzb3VuZHMgbGlrZSBhIHRlcnJpYmxlIGlkZWEsIGJ1dCBhdCB0aGUgdGltZSwgaXQgd2FzIGZhbnRhc3RpYy4gSXQgd2FzIHNpbXBsZSB0byBtYWludGFpbiBhbmQgc3VwcG9ydGVkIHRoZSBuZWVkcyBvZiBvdXIgZWFybHkgY3VzdG9tZXJzLCBtYW55IG9mIHdob20gd2VyZSBidWlsZGluZyBSYWlscyBtb25vbGl0aHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXMgdGltZSBwYXNzZWQgYW5kIG91ciBjdXN0b21lciBiYXNlIGdyZXcsIHNvIGRpZCB0aGUgZGl2ZXJzaXR5IG9mIHRoZWlyIG5lZWRzIGluIHRlcm1zIG9mIHRlc3QgZW52aXJvbm1lbnRzLiBVcGdyYWRlZCB2ZXJzaW9ucyBvZiB0aGVpciB1bmRlcmx5aW5nIGRhdGFiYXNlcywgbm92ZWwgbmV3IGRldmVsb3BtZW50IGZyYW1ld29ya3MsIGV2ZW4gbmV3IG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbnMgYmVjYW1lIG5lY2Vzc2FyeS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgb3JpZ2luYWwgY29udGFpbmVyIG1hbmFnZW1lbnQgaW4gQ2lyY2xlQ0kgd2FzbuKAmXQgZGVzaWduZWQgaW4gYSB3YXkgdGhhdCBhbGxvd2VkIHVzIHRvIGFkYXB0IGVhc2lseSB0byB0aGVzZSBjaGFuZ2luZyBuZWVkcy4gQnV0IGl0IHdhcyBmYWlybHkgc2ltcGxlLiBTbyB3aGVuIHdlIHNldCBvdXQgdG8gc29sdmUgdGhlc2UgcHJvYmxlbXMsIHdlIGtuZXcgd2hlcmUgdG8gc3BsaWNlIGluIGEgbmV3IGFwcHJvYWNoIGFuZCBpdCB3YXMgbWluaW1hbCB3b3JrIHRvIGVuYWJsZSB0aGF0IHNwbGljaW5nLiBXZSBhbHNvIGRpZG7igJl0IGhhdmUgdG8gdW5yYXZlbCBhIHBvb3IgZ2VuZXJhbGl6YXRpb24gdGhhdCBkaWRu4oCZdCBzdXBwb3J0IG91ciBuZXcgcHJvYmxlbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdOKAmXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB3aGlsZSBzZWVtaW5nbHkgc2ltcGxlLCB3ZSB3ZXJlIGZpdmUgeWVhcnMgaW50byBzdWNjZXNzZnVsIGdyb3d0aCBhcyBhIGNvbXBhbnkgbWVldGluZyB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycyBvbiB0aGF0IHNpbXBsZSBzeXN0ZW0gYmVmb3JlIG91ciBmaXJzdCBjdXN0b21lcnMgdGVzdGVkIGl0cyByZXBsYWNlbWVudC4gSW4gdGhvc2UgZml2ZSB5ZWFycywgRG9ja2VyIHdhcyBjcmVhdGVkLCBhcyB3YXMgSGFzaGlDb3Jw4oCZcyBOb21hZC4gQ29tYmluZWQsIHRob3NlIHRvb2xzIGVsaW1pbmF0ZWQgaHVnZSBwb3J0aW9ucyBvZiB0aGUgd29yayBuZWNlc3NhcnkgdG8gZ2V0IHRoZSBmbGV4aWJsZSBhbmQgc2NhbGFibGUgZW52aXJvbm1lbnRzIHRoYXQgd2Ugc3VwcG9ydCBmb3IgY3VzdG9tZXJzIHRvZGF5LiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28sIGFzIHdlIHJldG9vbGVkIHRoZSBzeXN0ZW0gdG8gYWRhcHQgdG8gdGhlIGNoYW5nZWQgbWFya2V0IHdlIHdlcmUgaW4gYSBwb3NpdGlvbiB0byBhc2sg4oCcSG93IGRvIHdlIGRvIHRoaXMgaW4gYSB3YXkgdGhhdCBiZXR0ZXIgcG9zaXRpb25zIHVzIGZvciBpbmNyZW1lbnRhbCBjaGFuZ2U/4oCdIEl0IHdvdWxkIGJlIGRpZmZpY3VsdCB0byBvdmVyc3RhdGUgaG93IG11Y2ggdmFsdWUgdGhhdCBmaXZlIHllYXJzIG9mIGV4cGVyaWVuY2UgcHJvdmlkZWQgd2hlbiBkZXNpZ25pbmcgYSBzb2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJdCBzb3VuZHMgd2VpcmQgYW5kIGdyb3NzbHkgdW5mYWlyIHRvIHNheSB0aGlzLCBidXQgbW9zdCBvZiB0aGUgdGltZSB3ZSBkb27igJl0IGV2ZW4ga25vdyB0aGF0IHdl4oCZcmUgbWFraW5nIGEgbW9udW1lbnRhbCBkZXNpZ24gZGVjaXNpb24gYmVjYXVzZSB0aGUgYWx0ZXJuYXRlIHBhdGggaGFzbuKAmXQgc2hvd24gdXAgeWV0LiBIb3cgZG8geW91IGd1YXJkIGFnYWluc3QgdGhpcz8mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7RGVmZXIsIGRlZmVyLCBkZWZlciZsdDsvaDMmZ3Q7CgombHQ7cCZndDtUaGUgY29ycmVjdCBzb2x1dGlvbnMgaGF2ZSBhIGhhYml0IG9mIHJldmVhbGluZyB0aGVtc2VsdmVzIGlmIHlvdSBjYW4gZmluZCBhIHdheSB0byB3YWl0IGxvbmcgZW5vdWdoLiBUZWNobm9sb2d5IGdhaW5zIHRyYWN0aW9uIG9yIGRpZXMuIElmIHlvdSBjaG9zZSBhIGNvbnRhaW5lciBvcmNoZXN0cmF0aW9uIGVuZ2luZSBpbiAyMDE2LCB0aGVyZeKAmXMgYSByb3VnaGx5IDIwJSBjaGFuY2UgdGhhdCB5b3Ugd291bGQgaGF2ZSBjaG9zZW4gS3ViZXJuZXRlcy4gVGhhdCBtZWFucyBieSB0aGUgYmVnaW5uaW5nIG9mIDIwMTgsIGFsbW9zdCA4MCUgb2YgY29tcGFuaWVzIHdlcmUgc3dpdGNoaW5nLiBUaG9zZSBhcmUgbm90IGdyZWF0IG9kZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7U28gZGVmZXJyaW5nIGNhbiBiZSBnb29kLiBEZWZlcnJpbmcgdG8gdGhlIHBvaW50IG9mIGNyZWF0aW5nIGEgY3Jpc2lzIGlzIG5vdC4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7VGhpbmsgbGlrZSBhIHByb2R1Y3QgbWFuYWdlciZsdDsvaDImZ3Q7CgombHQ7cCZndDtZb3VyIGFyY2hpdGVjdHVyZSBpcyBhIGxlYWt5IGFic3RyYWN0aW9uLiBXaGlsZSBDaXJjbGVDSSBpcyBwcm9iYWJseSBhbiBleHRyZW1lIGV4YW1wbGUgb2YgdGhpcyBjYXNlIGR1ZSB0byB0aGUgYWNjZXNzIG91ciBjdXN0b21lcnMgaGF2ZSB0byBzeXN0ZW1zIGluIG91ciBwbGF0Zm9ybSwgdGhlcmUgaXMgYWx3YXlzIHNvbWUgaW1wbGljYXRpb24gZm9yIGN1c3RvbWVycyBvZiB0aGUgZGVjaXNpb25zIHlvdSBtYWtlIGluIGRlZmluaW5nIHlvdXIgYXJjaGl0ZWN0dXJlLiBSZWNvZ25pemluZyB0aGlzIGltcGFjdCBhbmQgYmVpbmcgYWJsZSB0byBjb2hlcmVudGx5IGRpc2N1c3MgYXBwcm9hY2hlcyBhbmQgYWx0ZXJuYXRpdmVzIGlzIGEgaHVnZSBhc3NldCB0aGF0IGFuIGVuZ2luZWVyIGNhbiBicmluZyB0byB0aGVpciBQTSBhbmQgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaGlsZSB3ZSB3ZXJlIHdpdG5lc3NpbmcgYWxsIG9mIHRoaXMgY2hhbmdlIGluIGhvdyBvdXIgY3VzdG9tZXJzIHdlcmUgYnVpbGRpbmcgc29mdHdhcmUsIG9uZSB0aGluZyB3ZSBpZ25vcmVkIGZvciB0b28gbG9uZyB3YXMgdGhlIHJpc2Ugb2YgRG9ja2VyLiBEb2NrZXIgZGlkbuKAmXQgZXZlbiBleGlzdCB3aGVuIENpcmNsZUNJIHN0YXJ0ZWQgaW4gMjAxMSwgdGhlbiBieSAyMDE0IGl0IHdhcyBldmVyeXdoZXJlLiBNYW55IG9mIG91ciBjdXN0b21lcnMgaGFkIHN0YXJ0ZWQgYnVpbGRpbmcgRG9ja2VyIGltYWdlcyBhcyBwYXJ0IG9mIHRoZWlyIGJ1aWxkIHRvIHByZXBhcmUgZm9yIGRlcGxveS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtEb2NrZXIgd2FzIG9yaWdpbmFsbHkgYnVpbHQgb24gdG9wIG9mIExYQywgYW5kIHRoYXQgbWVhbnQgaW4gdGhvc2UgZWFybHkgZGF5cyB3ZSBjb3VsZCBzdXBwb3J0IHRoZSB1c2Ugb2YgRG9ja2VyIGNvbW1hbmRzIHRvIGJ1aWxkIGltYWdlcyBhbmQgcHVzaCB0aGVtIHRvIHJlcG9zaXRvcmllcyBhbGwgaW5zaWRlIG9mIG9uZSBvZiBvdXIgTFhDIGNvbnRhaW5lcnMuIEluIDIwMTQsIERvY2tlciBsYXVuY2hlZCBzb21ldGhpbmcgY2FsbGVkIGxpYmNvbnRhaW5lciBhbmQgdGhleSBwdWxsZWQgYXBhcnQgdGhlIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBzeXN0ZW0gYW5kIGNyZWF0ZWQgZXhlY3V0aW9uIGRyaXZlcnMsIHdoaWNoIHNvb24gbGVkIHRvIHRoZSBkZXByZWNhdGlvbiBvZiB0aGUgTFhDIGRyaXZlci4gRGlzYXBwb2ludGluZywgYnV0IGl0IHN0aWxsIHdvcmtlZC4gVGhlbiBEb2NrZXIgZGVsZXRlZCBhbGwgTFhDIHN1cHBvcnQuIFRoYXQgd2FzIGJhZC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QWx3YXlzIHRoaW5rIGFib3V0IHVzZXJzJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVycyBhbmQgYXJjaGl0ZWN0cywgd2Ugc2F3IHRoaXMgY29taW5nLCBhbmQgZnJhbmtseSwgaXQgd2FzIHVuZGVyIHRoZSByYWRhciBvZiBvdXIgcHJvZHVjdCB0ZWFtLiBPdXIgbm9uLXRlY2huaWNhbCBwcm9kdWN0IGZvbGtzIGRpZG7igJl0IG5lY2Vzc2FyaWx5IHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBidXQgb3VyIGVuZ2luZWVycyB3ZXJlIHRhbGtpbmcgYWJvdXQgaXQgZXZlcnkgZGF5LiBTbyBhcyBhbiBlbmdpbmVlciwgYW4gYXJjaGl0ZWN0LCBvciBhIGxlYWRlciBpbiB0ZWNobm9sb2d5LCB5b3UgbmVlZCB0byBiZSB0aGlua2luZyBhYm91dCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBwcm9kdWN0IGFuZCB3b3JraW5nIHdpdGggeW91ciBwcm9kdWN0IG1hbmFnZXJzIHRvIGVuc3VyZSBldmVyeW9uZSB1bmRlcnN0YW5kcyB0aGUgaW1wbGljYXRpb25zIG9mIHRlY2huaWNhbCBjaG9pY2VzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0l04oCZcyBpbXBvcnRhbnQgdG8gc2VwYXJhdGUgdGhpcyBkaXNjdXNzaW9uIGZyb20gdGVjaG5pY2FsIGludmVzdG1lbnRzLiBUaGVyZSBpcyBhYnNvbHV0ZWx5IGEgcGxhY2UgZm9yIHRoaXMgdHlwZSBvZiBpbnZlc3RtZW50LCBhbmQsIGFuIGFyZ3VtZW50IHRoYXQgZnJhbWluZyB0aGVzZSBpbnZlc3RtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB5b3UgZnJhbWUgcHJvZHVjdCBpbnZlc3RtZW50cyBtYWtlcyBpdCBtdWNoIGVhc2llciB0byBtYWtlIHRyYWRlb2ZmIGRlY2lzaW9ucy4gSG93ZXZlciwgaWRlbnRpZnlpbmcgdGhlIGRpcmVjdGx5IGN1c3RvbWVyLXZpc2libGUgZmVhdHVyZSBpbXBhY3Qgb2YgYXJjaGl0ZWN0dXJhbCBjaG9pY2VzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBtb3JlIGNvbW1vbmx5IGRpc2N1c3NlZCBpbXBhY3RzIG9mIGNvc3QsIHBlcmZvcm1hbmNlLCBzZWN1cml0eSwgZXRjLiZsdDsvcCZndDsKCiZsdDtwJmd0O0J1aWxkaW5nIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHlvdXIgYXJjaGl0ZWN0dXJlIGFuZCB0aGUgdmFsdWUgYWNoaWV2ZWQgYnkgeW91ciBjdXN0b21lcnMgd2lsbCBwdXQgeW91IGluIGEgcG9zaXRpb24gdG8gbWFrZSBtb3JlIGluZm9ybWVkIGRlY2lzaW9ucyBhYm91dCB3aGF0IGFuZCBob3cgdG8gYnVpbGQgYXMgeW91ciBidXNpbmVzcyBldm9sdmVzLiBUaGVuIHlvdSBjYW4gZm9jdXMgb24gZ2V0dGluZyBhaGVhZCBvZiB0aGF0IGV2b2x1dGlvbi4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7S2VlcCB5b3VyIGhlYWQgdXAmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SeKAmW0gQ2FuYWRpYW4gYW5kLCB1bnN1cnByaXNpbmdseSwgSSBncmV3IHVwIHBsYXlpbmcgaWNlIGhvY2tleS4gVGhyb3VnaG91dCBteSBjaGlsZGhvb2QsIEkgc3BlbnQgYW4gZW5kbGVzcyBhbW91bnQgb2YgdGltZSBhdCBwcmFjdGljZSBqdXN0IHNrYXRpbmc6IGZvcndhcmRzLCBiYWNrd2FyZHMsIHR1cm5pbmcsIHN0b3BwaW5nLCBmaWd1cmUgZWlnaHRzIGFyb3VuZCBjb25lcy4gVGhlbiBjYW1lIHN0aWNrIGhhbmRsaW5nLiBUaGUgaWRlYSB3YXMgdG8gaGF2ZSB0aGUgbW92ZW1lbnQgb24gdGhlIGljZSBiZWNvbWUgc2Vjb25kIG5hdHVyZSBzbyBJIGNvdWxkIGZvY3VzIG9uIHdoYXQgcmVhbGx5IG1hdHRlcmVkOiBzZWVpbmcgdGhlIHBsYXkgZGV2ZWxvcCwgZ2V0dGluZyBpbnRvIHNwYWNlLCBhbmQgdHJ5aW5nIHRvIHNjb3JlLiBNYWtlIHRoZSBmdW5kYW1lbnRhbHMgYWxtb3N0IGVmZm9ydGxlc3Mgc28geW91IGNhbiBwdXQgeW91ciBlbmVyZ3kgaW50byB0aGUgbm92ZWwgc3R1ZmYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gc29mdHdhcmUsIHdlIGhhdmUgYSBiYWQgdGVuZGVuY3kgdG8gbWFrZSB0aGUgZnVuZGFtZW50YWxzIGEgbG90IGhhcmRlciB0aGFuIHRoZXkgc2hvdWxkIGJlIGJ5IGFkb3B0aW5nIG5ldyB0ZWNobm9sb2d5IHRoYXQgd2UgdGhpbmsgaXMgZ29pbmcgdG8gYmUgZ2FtZSBjaGFuZ2luZywgYnV0IGVuZHMgdXAgaGF2aW5nIG1vZGVzdCB1cHNpZGUgaWYgYW55LiBUbyBtYWtlIHRoaW5ncyB3b3JzZSwgdGhlIGRvd25zaWRlIGlzIG9mdGVuIHVuYm91bmRlZCBhcyB3ZSBnZXQgb3VyIHRlYW1zIHVwIHRoZSBsZWFybmluZyBjdXJ2ZSwgZmluZCB1bnRlc3RlZCBlZGdlIGNhc2VzIGR1cmluZyBwcm9kdWN0aW9uIGluY2lkZW50cywgYW5kIGludmVudCBvdXIgb3duIOKAnGJlc3QgcHJhY3RpY2VzLuKAnSBBIHdvcmxkIHdoZXJlIFN0YWNrIE92ZXJmbG93IGhhcyBubyBhbnN3ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1doaWxlIHdl4oCZcmUgcHV0dGluZyB0aGlzIGVmZm9ydCBpbnRvIG91ciBub3ZlbCB0ZWNoLCB3ZeKAmXJlIG5vdCBmb2N1c2luZyBvbiBob3cgb3VyIHN5c3RlbXMgbmVlZCB0byBldm9sdmUgdG8gbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7QSB0aW1lIHNpbXBsaWNpdHkgd291bGQgaGF2ZSBoZWxwZWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7Q2lyY2xlQ0kgaXMgYSBDbG9qdXJlIHNob3AgYW5kLCBpbiBvdXIgZWFybHkgZGF5cywgd2UgZGVjaWRlZCB3ZeKAmWQgYmUgYmV0dGVyIGF0IGZyb250IGVuZCBkZXZlbG9wbWVudCBpZiB3ZSB1c2VkIHRoZSBzYW1lIGxhbmd1YWdlIHRoYXQgd2UgdXNlZCBpbiB0aGUgYmFja2VuZC4gU28gd2UgYWRvcHRlZCBPbSwgYSBDbG9qdXJlU2NyaXB0IHdyYXBwZXIgYXJvdW5kIFJlYWN0LiBBIGZldyB5ZWFycyBsYXRlciwgRGF2aWQgTm9sZW4sIHRoZSBwZXJzb24gd2hvIHN0YXJ0ZWQgT20sIGRlY2lkZWQgaGUgZGlkbuKAmXQgbGlrZSB0aGUgbW9kZWwgc28gaGUgcmVwbGFjZWQgaXQgd2l0aCBzb21ldGhpbmcgaW5jb21wYXRpYmxlIGNhbGxlZCBPbSBOZXh0LiBXZSB0cmllZCB0byBtaWdyYXRlIGluY3JlbWVudGFsbHkgdG8gT20gTmV4dCBhbmQgZW5kZWQgdXAgd2l0aCBhbiBvdmVybHkgY29tcGxleCBmcm9udGVuZCB3aXRoIHR3byBzdGF0ZSBtb2RlbHMgYW5kIG1hc3NpdmUgb3ZlcmhlYWQgdG8gZXZlcnkgY2hhbmdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGVuZGVkIHVwIHJld3JpdGluZyBpdCBpbiBSZWFjdC4gSW4gcmV0cm9zcGVjdCwgT20gaGFkIGJvdGggaGlnaCByaXNrIGFuZCBoaWdoIGNvc3QgdG8gY2hhbmdlIGFuZCB3ZSBwYWlkIHRoZSBwcmljZS4gQW5kIHdlIHNwZW50IHRoYXQgdGltZSBsb29raW5nIGF0IG91ciBmZWV0LCBub3QgYWhlYWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Tm8gY29tcGFueSBoYXMgZXZlciB3b24gYmVjYXVzZSBvZiBhbiBhbWF6aW5nbHkgbm92ZWwgb3IgZXNvdGVyaWMgdGVjaG5vbG9neSBjaG9pY2UuIFRoZXJlIGlzIGFuIGVuZGxlc3MgbGlzdCwgaG93ZXZlciwgb2YgY29tcGFuaWVzIHRoYXQgaGF2ZSB3b24gYmVjYXVzZSB0aGV5IGNhbiBtb3ZlIHF1aWNrbHkgYW5kIHdpdGggYWdpbGl0eSwgYWRhcHRpbmcgdG8gY2hhbmdlIGFzIGl0IGhhcHBlbnMuIFRlY2hub2xvZ3kgc2hvdWxkIGJlIGFuIGFjY2VsZXJhdG9yIGhlbHBpbmcgdXMgbWVldCB0aGUgbmVlZHMgb2Ygb3VyIGN1c3RvbWVycy4gV2VsbC11bmRlcnN0b29kLCBwcm9kdWN0aW9uLXRlc3RlZCB0b29scyBhcmUgZmFyIG1vcmUgbGlrZWx5IHRvIGZpdCB0aGF0IGJpbGwuIEFzIG15IGNvbGxlYWd1ZSBCZWFyIHNheXMsIOKAnElmIGEgdG9vbCBpc27igJl0IGhlbHBpbmcsIGl04oCZcyBub3QgYSB0b29sLCBpdOKAmXMgYSBjaG9yZS4gRHJvcCBpdC7igJ0mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7Q29uY2x1c2lvbiZsdDsvaDImZ3Q7CgombHQ7cCZndDtVbmZvcmVzZWVuIGNoYW5nZSBpcyB0b3Atb2YtbWluZCBmb3Igc28gbWFueSBvZiB1cyByaWdodCBub3csIGFuZCBpdOKAmXMgbW9yZSBvYnZpb3VzIHRoYW4gZXZlciB0aGF0LCBpbiBidXNpbmVzcywgbm9ib2R5IGNhbiBwcmVkaWN0IHRoZSBmdXR1cmUuIEl04oCZcyBhIHNhZmUgYmV0IHRoYXQgZm9sa3MgYXQgR00gZGlkbuKAmXQgc3RhcnQgdGhlIHllYXIgdGhpbmtpbmcgYWJvdXQgaG93IHRvIHVzZSB0aGVpciBmYWN0b3JpZXMgdG8gbWFrZSB2ZW50aWxhdG9ycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWluZyBwcmVwYXJlZCB0byBhZGFwdCBpbiB0aGUgZmFjZSBvZiBjaGFuZ2UgcmVxdWlyZXMgdGhpbmtpbmcgYWJvdXQgY2hhbmdlIGFzIGEgZHJpdmVyIGluIGV2ZXJ5dGhpbmcgeW91IGRvLiBXYXRjaCBob3cgeW91ciBtYXJrZXQgaXMgY2hhbmdpbmcgYW5kIHJlZmxlY3Q9IG9uIGhvdyB0aGF0IGltcGFjdHMgeW91ciBhcmNoaXRlY3R1cmUgc28gdGhhdCB5b3UgY2FuIG1ha2UgdGFyZ2V0ZWQsIGluY3JlbWVudGFsIGltcHJvdmVtZW50cyBpbiBpdHMgYWRhcHRhYmlsaXR5LiBUaGlzIHdpbGwgaGVscCBrZWVwIHlvdSBmb2N1c2VkIG9uIGV2b2x1dGlvbiB3aXRob3V0IHdhc3RpbmcgdGltZSBvciBtb25leSBvbiBhcmVhcyB0aGF0IHdvbuKAmXQgbmVlZCBpdC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCbGFjayBTd2FuIGV2ZW50cyBhcmUgc28gdW51c3VhbCB0aGF0IHN0dWR5aW5nIHRoZSBzcGVjaWZpY3MgY2FuIGJlIGxvdyB2YWx1ZSwgYnV0IHRoZXkgcmVtaW5kIHVzIGhvdyBmYXIgcmVhbGl0eSBjYW4gYmUgZnJvbSBvdXIgcGxhbnMuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Ib3cgZW5naW5lZXJpbmcgbWFuYWdlcnMgY2FuIGVmZmVjdGl2ZWx5IHN1cHBvcnQgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvaG93LWVuZ2luZWVyaW5nLW1hbmFnZXJzLWNhbi1lZmZlY3RpdmVseS1zdXBwb3J0LWVuZ2luZWVycy10ZWFtcy1hbmQtb3JnYW5pemF0aW9ucy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+V2VkLCAyOSBBcHIgMjAyMCAxNTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9ob3ctZW5naW5lZXJpbmctbWFuYWdlcnMtY2FuLWVmZmVjdGl2ZWx5LXN1cHBvcnQtZW5naW5lZXJzLXRlYW1zLWFuZC1vcmdhbml6YXRpb25zLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkxlbmEgUmVpbmhhcmQ8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7VGhlIHR5cGljYWwgam9iIGRlc2NyaXB0aW9uIGZvciBtYW55IGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMgaXMgYWN0aW9uLXBhY2tlZC4gSXQgaXMgYSBtaXggb2YgaGFuZHMtb24gY29kaW5nLCB0ZWNobmljYWwgbGVhZGVyc2hpcCBhbmQgZGVjaXNpb24gbWFraW5nLCBwcm9jZXNzIGFuZCBwcm9qZWN0IG1hbmFnZW1lbnQsIHByb2R1Y3Qgb3ZlcnNpZ2h0LCBwZW9wbGUgbWFuYWdlbWVudCwgZmluZGluZyBhbmQgaGlyaW5nIHRhbGVudCDigKYgdGhlIGxpc3QgZ29lcyBvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiBvdXIgd29yaywgd2UgZGVhbCB3aXRoIGJvdGggdGVjaG5pY2FsIGFuZCBwZW9wbGUgc3lzdGVtczogd2Ugc3VwcG9ydCBpbmRpdmlkdWFsIGVuZ2luZWVyc+KAmSBncm93dGg7IGhlbHAgdGVhbXMgYmVjb21lIHN1Y2Nlc3NmdWw7IGFuZCBtYWtlIHRoZSBvcmdhbml6YXRpb24gbW9yZSBwcm9kdWN0aXZlLCBmdW5jdGlvbmFsLCBhbmQgaW5ub3ZhdGl2ZS4gQWJvdmUgYWxsLCBhbiBlbmdpbmVlcmluZyBtYW5hZ2VyIGlzIGEgc2VydmljZSBvciBzdXBwb3J0IHJvbGUgYWNyb3NzIHRoZXNlIHZhcmlvdXMgbGF5ZXJzLiZsdDsvcCZndDsKCiZsdDtwJmd0O1BlcmhhcHMgbW9zdCBmYXNjaW5hdGluZyBhbmQgZGlmZmljdWx0IGlzIHRoZSBoaWdoLWxldmVsIG9mIGFtYmlndWl0eSB0aGF0IGNvbWVzIHdpdGggZW5naW5lZXJpbmcgbWFuYWdlbWVudC4gTWFueSBwcm9ibGVtcyBvciBxdWVzdGlvbnMgZG9u4oCZdCBoYXZlIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLiBUaGVyZSBhcmVu4oCZdCBhYnNvbHV0ZSBhbnN3ZXJzIHRvIHdoYXQgaXQgbWVhbnMgdG8gYmUgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgZWl0aGVyLCBidXQgdGhlcmUgYXJlIGNlcnRhaW4gdmFsdWVzIGFuZCBndWlkZXBvc3RzIHRvIGZvbGxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgbG9vayBhdCB3aGF0IGNhbiBzaGFwZSBvdXIgdGhpbmtpbmcgYWJvdXQgb3VyIHJvbGUgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgYW5kIGhvdyB0byBlZmZlY3RpdmVseSBzdXBwb3J0IGluZGl2aWR1YWwgZW5naW5lZXJzLCB0ZWFtcywgYW5kIG9yZ2FuaXphdGlvbnMuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1doYXQgZG8gZW5naW5lZXJzIG5lZWQgdG8gdGhyaXZlIGF0IHdvcms/Jmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SXQgaGVscHMgdG8gc3RhcnQgc2hhcGluZyBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IHJvbGVzIGJ5IHVuZGVyc3RhbmRpbmcgd2hhdCBlbmdpbmVlcnMgbmVlZCwgYW5kIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGV5IHRocml2ZS4gUmVzZWFyY2ggZnJvbSBwZXJmb3JtYW5jZSBjb2FjaCBhbmQgdHJhaW5lciBQYWxvbWEgTWVkaW5hIGV4cG9zZXMgc2l4IGNvcmUgbmVlZHMgaHVtYW5zIGhhdmUgKGluY2x1ZGluZyBhdCB3b3JrKS4gU2hlIGNhbGxzIHRoaXMgcmVzZWFyY2ggdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGFsb21hbWVkaW5hLmNvbS9iaWNlcHMmcXVvdDsmZ3Q7QklDRVBTIG1vZGVsJmx0Oy9hJmd0OzombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7QmVsb25naW5nLiZsdDsvc3Ryb25nJmd0OyBBcyBodW1hbnMsIHdlIHN0cml2ZSB0byBiZSBwYXJ0IG9mIGEgY29tbXVuaXR5IG9mIGxpa2UtbWluZGVkIHBlb3BsZSB3aGVyZSB3ZSB1bmRlcnN0YW5kIGFuZCBzdXBwb3J0IGVhY2ggb3RoZXIuIFdlIGFsc28gd2FudCB0byBmZWVsIGFzIGlmIHdlIGFyZSBub3QgYmVpbmcgZGlzY3JpbWluYXRlZCBhZ2FpbnN0IG9yIG1hcmdpbmFsaXplZC4gQmVsb25naW5nIGlzIHJlYWxseSBpbXBvcnRhbnQgdG8gbWUgcGVyc29uYWxseTogSSBsb3ZlIHdvcmtpbmcgYXMgcGFydCBvZiBhIGRpc3RyaWJ1dGVkIHRlYW0sIGJ1dCBJIGFsc28gcmVhbGx5IGVuam95IHNlZWluZyBwZW9wbGUgaW4gcGVyc29uIGV2ZXJ5IG9uY2UgaW4gYSB3aGlsZS4gSXQgbWFrZXMgbWUgZmVlbCBtb3JlIGNvbm5lY3RlZCB0byB0aGVtLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7SW1wcm92ZW1lbnQuJmx0Oy9zdHJvbmcmZ3Q7IFdlIGFsc28gc2VlayB0byBjb250aW51b3VzbHkgbGVhcm4sIGltcHJvdmUsIGFuZCBncm93IGluIGFyZWFzIHRoYXQgbWF0dGVyIHRvIHVzLCBhcyB3ZWxsIGFzIHRvIG91ciB0ZWFtIG9yIGNvbXBhbnkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtDaG9pY2UuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8gaGF2ZSBjaG9pY2UsIGNvbnRyb2wsIGFuZCBhdXRvbm9teSBvdmVyIGltcG9ydGFudCBwYXJ0cyBvZiBvdXIgbGl2ZXMuIEluIG9uZSBvZiBteSBwcmV2aW91cyByb2xlcywgSSB0b29rIG9uIGEgbG90IG9mIHdvcmsgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLiBCdXQgdWx0aW1hdGVseSwgdGhlIGNvbnRyb2wgSSBoYWQgb3ZlciBteSBkb21haW4gd2FzIGxpbWl0ZWQgZHVlIHRvIG9yZ2FuaXphdGlvbmFsIGlzc3VlcyDigJMgd2hpY2ggbGVkIG1lIHRvIGxlYXZlIHRoZSBjb21wYW55LiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7RXF1YWxpdHkuJmx0Oy9zdHJvbmcmZ3Q7IFdlIHdhbnQgdG8ga25vdyB0aGF0IG91ciBhY2Nlc3MgdG8gaW5mb3JtYXRpb24sIG1vbmV5LCB0aW1lLCBhbmQgb3RoZXIgcmVzb3VyY2VzIGlzIGZhaXIgYW5kIGVxdWFsIGZvciBldmVyeW9uZSDigJMgbm90IGp1c3QgZm9yIG91cnNlbHZlcywgYnV0IGFsc28gZm9yIHRoZSBwZW9wbGUgYXJvdW5kIHVzLiBFdmVyeW9uZeKAmXMgbmVlZHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgZXF1YWxseSBpbXBvcnRhbnQuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtQcmVkaWN0YWJpbGl0eS4mbHQ7L3N0cm9uZyZndDsgV2UgbG9vayBmb3IgY2VydGFpbnR5LCBzYWZldHksIGFuZCBzdGFiaWxpdHkgaW4gb3VyIGxpdmVzLiBXZSBhbHNvIHdhbnQgZ29hbHMsIHN0cmF0ZWd5LCBhbmQgZGlyZWN0aW9uIHRvIGJlIGNvbnNpc3RlbnQg4oCTIGFuZCB0byBub3QgY2hhbmdlIHRvbyBxdWlja2x5LiBJ4oCZdmUgYmVlbiBsZWFkaW5nIHRlYW1zIGluIGZhc3QtZ3Jvd2luZyBzdGFydHVwcyBmb3IgdGhlIGxhc3QgY291cGxlIG9mIHllYXJzLCBhbmQgd2hlbiB0aGVyZeKAmXMgYSBsb3Qgb2YgY2hhbmdlIGhhcHBlbmluZywgaXTigJlzIGEgY2hhbGxlbmdlIHRvIGluc3RpbGwgcHJlZGljdGFiaWxpdHkgaW4gdGVhbXMuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtTaWduaWZpY2FuY2UuJmx0Oy9zdHJvbmcmZ3Q7IERlZXAgZG93biwgYWxsIG9mIHVzIHNlZWsgbWVhbmluZywgaW1wb3J0YW5jZSwgYW5kIHN0YXR1cy4gV2UgYWxzbyB3YW50IHRvIGJlIGFwcHJlY2lhdGVkIGZvciBvdXIgd29yayBieSBwZW9wbGUgd2hvc2Ugb3BpbmlvbnMgbWVhbiBzb21ldGhpbmcgdG8gdXMuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0lmIG91ciBjb3JlIG5lZWRzIGFyZSB0aHJlYXRlbmVkLCBwZW9wbGUgcmVzb3J0IHRvIGZpZ2h0LW9yLWZsaWdodCBtb2RlcyBvZiByZWFjdGlvbiwgd2hpY2ggYXJlIHZlcnkgc3RyZXNzZnVsLiBUaGUgZmFpbHVyZSB0byBtZWV0IGNvcmUgbmVlZHMgaGFzIGhpZ2ggY29zdHMgZm9yIG9yZ2FuaXphdGlvbnMgYnkgaGFybWluZyBwZW9wbGUgb24gb3VyIHRlYW1zLiBTbyBob3cgY2FuIGVuZ2luZWVyaW5nIG1hbmFnZXJzIHB1dCB0aGUgQklDRVBTIG1vZGVsIGludG8gYWN0aW9uIHRvIGhlbHAgdGhlaXIgdGVhbXMgdGhyaXZlPyZsdDsvcCZndDsKCiZsdDtoMiZndDtVc2luZyB0cnVzdC1iYXNlZCByZWxhdGlvbnNoaXBzIHRvIGhlbHAgZW5naW5lZXJzIGdyb3cmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgZm91bmRhdGlvbiBvZiBiZWluZyBhIGdvb2QgZW5naW5lZXJpbmcgbWFuYWdlciBpcyBnZXR0aW5nIHRvIGtub3cgb3VyIHRlYW1tYXRlcyBhbmQgdW5kZXJzdGFuZGluZyB3aGF0IGlzIGltcG9ydGFudCB0byB0aGVtLiBIZXJlIGFyZSBhIGZldyBwbGFjZXMgdG8gc3RhcnQgYnVpbGRpbmcgdHJ1c3Qgd2l0aGluIHlvdXIgdGVhbS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0FzayBxdWVzdGlvbnMuJmx0Oy9zdHJvbmcmZ3Q7IE9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCB0b29scyBtYW5hZ2VycyBoYXZlIGlzIGFza2luZyBnb29kIHF1ZXN0aW9ucy4gVGhlIGJhc2lzIGZvciBkb2luZyBvdXIgam9icyB3ZWxsIGlzIGxpc3RlbmluZywgb2JzZXJ2aW5nLCB0YWtpbmcgbm90ZSBvZiB3aGF0IG1vdGl2YXRlcyBvdXIgdGVhbW1hdGVzLCBhbmQgcmVhbGx5IGRpZ2dpbmcgaW50byB0aGVpciByZXNwb25zZXMgdG8gb3VyIHF1ZXN0aW9ucy4gSSB1c3VhbGx5IGdhdGhlciBxdWVzdGlvbnMgYmVmb3JlIEkgbWVldCB3aXRoIG15IHRlYW1tYXRlcyBvbmUtb24tb25lLCBzbyBJIGFtIHByZXBhcmVkIGFuZCBJIGNhbiBndWlkZSB0aGUgY29udmVyc2F0aW9uIHRvd2FyZHMgdW5kZXJzdGFuZGluZyB0aGVtIGJldHRlci4gT3ZlciB0aW1lLCBJIGhhdmUgYnVpbHQgYSBraXQgb2Ygb25lLW9uLW9uZSBxdWVzdGlvbnMgdGhhdCBJIHB1bGwgb3V0IHdoZW4gSSBuZWVkIHNvbWUgaW5zcGlyYXRpb24gZm9yIHRoZXNlIGNvbnZlcnNhdGlvbnMuIEFza2luZyBxdWVzdGlvbnMgaGVscHMgdXMgYWRqdXN0IG91ciBsZWFkZXJzaGlwIHN0eWxlIHRvIHRoZSBwZW9wbGUgd2UgYXJlIGxlYWRpbmcuIEl0IGFsc28gZW5zdXJlcyB0aGF0IHRoZXkgZmVlbCB1bmRlcnN0b29kIGFuZCBoZWFyZCwgd2hpY2ggYXJlIHJlYWxseSBpbXBvcnRhbnQgcGlsbGFycyBvZiBpbmNsdXNpb24gYW5kIGJlbG9uZ2luZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0JlIGN1cmlvdXMuJmx0Oy9zdHJvbmcmZ3Q7IFBlb3BsZSBhcmUgZnVsbCBvZiBzdXJwcmlzZXMsIGFuZCBzb21ldGltZXMgb3VyIHRlYW1tYXRlc+KAmSByZWFjdGlvbnMgbWF5IGJlIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZyb20gd2hhdCB3ZSBleHBlY3RlZC4gSSBvbmNlIHJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIGVuZ2luZWVyIG9uIG15IHRlYW0gd2hvIHdhcyBkZWVwbHkgdXBzZXQgYWJvdXQgdGhlIHNwZWNpZmljIHdvcmRpbmcgdXNlZCBpbiBhIHByb2R1Y3QtcmVsZWFzZSBub3RlIHRvIGN1c3RvbWVycy4gQXQgZmlyc3QgSSBkaWQgbm90IHVuZGVyc3RhbmQgdGhlaXIgc3Ryb25nIHJlYWN0aW9uLiBCdXQgd2hlbiB3ZSB0YWxrZWQsIEkgbGVhcm5lZCB0aGUgZW5naW5lZXIgaGFkIGJlZW4gb3ZlcnJ1bGVkIGJ5IHNvbWVvbmUgd2l0aCBtb3JlIHBvd2VyLCBtYWtpbmcgdGhlbSBmZWVsIGhlbHBsZXNzLCBhbmQgdGhyZWF0ZW5pbmcgdGhlaXIgY29yZSBuZWVkIGZvciBjaG9pY2UgYW5kIGVxdWFsaXR5LiZsdDsvcCZndDsKCiZsdDtwJmd0O1doYXQgbWFuYWdlcnMgbWlnaHQgcGVyY2VpdmUgYXMgbm8gYmlnIGRlYWwgY2FuIGJlIGVub3Jtb3VzIHRocmVhdHMgdG8gb3RoZXIgcGVvcGxlLiBDYXNlcyB3aGVyZSB3ZeKAmXJlIHN1cnByaXNlZCBieSBvdXIgdGVhbW1hdGVz4oCZIHJlYWN0aW9ucyBhcmUgZ29vZCBvcHBvcnR1bml0aWVzIHRvIGZvY3VzIG9uIGh1bWFuLWNlbnRyaWMgcmVzcG9uc2VzLCBsaWtlIGdpdmluZyBwZW9wbGUgdGhlIG9wcG9ydHVuaXR5IHRvIHRhbGsgdGhyb3VnaCB0aGVpciBmZWVsaW5ncy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O0Nvbm5lY3QgdG8gdGhlIGJpZ2dlciBwaWN0dXJlLiZsdDsvc3Ryb25nJmd0OyBDcmVhdGluZyBhbiBpbXBhY3QgaXMgYSB2ZXJ5IGdvb2QgbW90aXZhdG9yIGZvciBhbGwgb2YgdXMsIHNvIGhlbHBpbmcgZW5naW5lZXJzIHVuZGVyc3RhbmQgaG93IHRoZWlyIHdvcmsgY29ubmVjdHMgdG8gdGhlIGJpZ2dlciBwaWN0dXJlIChob3cgaXQgaGVscHMgdXNlcnMgb3Igc3VwcG9ydHMgb3RoZXIgdGVhbXMpIGlzIGFuIGV4dHJlbWVseSBpbXBvcnRhbnQgYW5kIHN0cmF0ZWdpYyBza2lsbCBmb3IgbWFuYWdlcnMuIFdoaWxlIGdvYWwtc2V0dGluZyBmcmFtZXdvcmtzIGxpa2UgT0tScyBjYW4gaGVscCwgaXQgaXMgYWxzbyBjcnVjaWFsIHRvIGFsaWduIGVuZ2luZWVyaW5nIGluaXRpYXRpdmVzIHdpdGggaGlnaGVyLWxldmVsIGdvYWxzLCBhbmQgY29ubmVjdCB0aGVtIGNsZWFybHkgd2l0aCB1c2VyIHZhbHVlLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7SW52b2x2ZSBlbmdpbmVlcnMgaW4gZGVjaXNpb24gbWFraW5nLiZsdDsvc3Ryb25nJmd0OyBGZWVsaW5nIHRoYXQgZGVjaXNpb25zIGFyZSBmYWlyIGFuZCBlcXVpdGFibGUgaXMgYW4gaW1wb3J0YW50IGNvbXBvbmVudCBvZiB0aGUgQklDRVBTIG1vZGVsLiBXaGVuIHdlIG1ha2UgZGVjaXNpb25zLCBpdCBpcyBoZWxwZnVsIHRvIGFzayBldmVyeW9uZSBmb3IgdGhlaXIgb3BpbmlvbnMgZmlyc3QsIGFuZCB0YWtlIHRoZWlyIG9waW5pb25zIGludG8gYWNjb3VudC4gSXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBnbyB3aXRoIHdoYXQgZXZlcnlvbmUgd2FudHMuIEJ1dCB3ZSBjYW4gc3RpbGwgZG8gYSBnb29kIGpvYiBhdCBjb250ZXh0dWFsaXppbmcgdGhlIGRlY2lzaW9ucyB3ZSBtYWtlLCBhbmQgaGVscGluZyBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IHRoZWlyIGZlZWRiYWNrIHdhcyBjb25zaWRlcmVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7R2l2ZSBmZWVkYmFjayBmb3IgZ3Jvd3RoLiZsdDsvc3Ryb25nJmd0OyBPbmUgb2YgdGhlIGJlc3QgdGhpbmdzIHdlIGdldCB0byBkbyBhcyBlbmdpbmVlcmluZyBtYW5hZ2VycyBpcyBzdXBwb3J0IGVuZ2luZWVyc+KAmSBncm93dGguIEdpdmUgZmVlZGJhY2sgcmVndWxhcmx5IHRvIGhlbHAgdGhlIHBlb3BsZSBvbiB5b3VyIHRlYW0gdW5kZXJzdGFuZCB3aGVyZSB0aGV5IGFyZSBhdCBhbmQgZ3JvdyDigJMgYnkgY291cnNlLWNvcnJlY3Rpbmcgd2hlcmUgbmVlZGVkLCBhcyB3ZWxsIGFzIGJ5IGRvaW5nIG1vcmUgaW4gdGhlIGFyZWFzIGluIHdoaWNoIHRoZXkgYXJlIGFscmVhZHkgZG9pbmcgZ3JlYXQuIE1hbmFnZXJzIG5lZWQgZmVlZGJhY2sgYXMgd2VsbDogaXTigJlzIGltcG9ydGFudCB0byByZWd1bGFybHkgYXNrIHlvdXIgdGVhbSBmb3IgZmVlZGJhY2sgc28geW91IGNhbiBtYWtlIGFkanVzdG1lbnRzLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7Q29hY2ggZW5naW5lZXJzLiZsdDsvc3Ryb25nJmd0OyBDb2FjaGluZyBoZWxwcyBwZW9wbGUgZmluZCBhbnN3ZXJzIHRoZW1zZWx2ZXMsIGltcHJvdmVzIHRoZWlyIHByb2JsZW0tc29sdmluZyBhbmQgbGVhZGVyc2hpcCBza2lsbHMsIGFuZCBpbmNyZWFzZXMgbGVhcm5pbmcsIHJlc2lsaWVuY2UsIGFuZCBzZWxmLW1hbmFnZW1lbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTcG9uc29yIGVuZ2luZWVycy4mbHQ7L3N0cm9uZyZndDsgVGhpbmsgYmFjayBvbiB5b3VyIGNhcmVlciwgYW5kIHdoZXRoZXIgeW91IGhhdmUgaGFkIGEgbWVudG9yIHdobyBjb25uZWN0ZWQgeW91IHdpdGggc29tZW9uZSwgcHV0IHlvdXIgbmFtZSBmb3J3YXJkLCBhbmQgdXNlZCB0aGVpciBpbmZsdWVuY2UgdG8gbWFrZSBhIGRpZmZlcmVuY2UgaW4geW91ciBjYXJlZXIuIEJlIHRoYXQgcGVyc29uIGZvciBzb21lb25lIGVsc2U6IGludmVzdCBpbiB0aGVpciBncm93dGgsIGxpZnQgdGhlbSB1cCwgYW5kIHB1dCB5b3VyIHdlaWdodCBiZWhpbmQgdGhlaXIgc3VjY2Vzcy4gU3VwcG9ydGluZyB5b3VyIHRlYW3igJlzIHN1Y2Nlc3MgY2FuIG1ha2UgYSByZWFsIGRpZmZlcmVuY2UgZm9yIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhpcyBpcyB0aGUgZm91bmRhdGlvbiBvZiBvdXIgd29yayBhcyBlbmdpbmVlcmluZyBtYW5hZ2Vycy4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RHJpdmluZyBhIGN1bHR1cmUgb2YgdHJ1c3QgYW5kIGNvbnRpbnVvdXMgaW1wcm92ZW1lbnQgb24gdGVhbXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUaGUgbmV4dCBpbXBvcnRhbnQgYnVpbGRpbmcgYmxvY2sgaW4gb3VyIHdvcmsgYXMgZW5naW5lZXJpbmcgbWFuYWdlcnMgaXMgdGhlIHRlYW0uIEFjY29yZGluZyB0byByZXNlYXJjaCwgaGlnaC1wZXJmb3JtaW5nIHRlYW1zIG5lZWQgdGhlIGZvbGxvd2luZyBlbGVtZW50cy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7UHN5Y2hvbG9naWNhbCBzYWZldHkuJmx0Oy9zdHJvbmcmZ3Q7IFRoaXMgaXMgYWJvdXQgYmVsaWV2aW5nIHRoYXQgd2Ugd2lsbCBub3QgYmUgcmVqZWN0ZWQsIGFuZCBmZWVsaW5nIGZyZWUgdG8gZXhwcmVzcyBvdXIgd29yay1yZWxhdGVkIHRob3VnaHRzIGFuZCBmZWVsaW5ncyB0byB0aGUgcGVvcGxlIGFyb3VuZCB1cy4gSXQgYWxzbyBtZWFucyBiZWxpZXZpbmcgdGhhdCBvdGhlcnMgd29u4oCZdCB0aGluayBsZXNzIG9mIHVzIGlmIHdlIG1ha2UgYSB3ZWxsLWludGVudGlvbmVkIG1pc3Rha2Ugb3IgYXNrIGZvciBoZWxwLiZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtzdHJvbmcmZ3Q7U3RydWN0dXJlIGFuZCBjbGFyaXR5LiZsdDsvc3Ryb25nJmd0OyBFdmVyeW9uZSBvbiB0aGUgdGVhbSBzaG91bGQgdW5kZXJzdGFuZCBleHBlY3RhdGlvbnMsIGdvYWxzLCBhbmQgYWNjb3VudGFiaWxpdHkuJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O3N0cm9uZyZndDtNZWFuaW5nIGFuZCBpbXBhY3QuJmx0Oy9zdHJvbmcmZ3Q7IEhpZ2gtcGVyZm9ybWluZyB0ZWFtcyBmaW5kIGEgc2Vuc2Ugb2YgcHVycG9zZSBpbiB0aGVpciB3b3JrLCBhbmQga25vdyB0aGF0IHRoZWlyIHdvcmsgaGFzIGFuIGltcGFjdC4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7THVja2lseSBmb3IgbWFuYWdlcnMsIHRoaXMgcmVzZWFyY2ggbmVhdGx5IGFsaWducyB3aXRoIHRoZSBCSUNFUFMgbW9kZWwuIEFsbCBodW1hbiBjb3JlIG5lZWRzIGFyZSByZXByZXNlbnRlZCBhbmQgaGF2ZSBpbXBhY3QgYXQgdGhlIHRlYW0gbGV2ZWwgYXMgd2VsbC4gQnkgdW5kZXJzdGFuZGluZyBhbmQgcmVzcG9uZGluZyB0byBwZW9wbGXigJlzIG1vdGl2YXRpb25zLCBsZWFkZXJzIGNyZWF0ZSB0aGUgYmFzaXMgZm9yIHRlYW1zICB0byBleHByZXNzIHRoZW1zZWx2ZXMg4oCTIGFuZCBwcm92aWRlIHRoZSBzdHJ1Y3R1cmUsIG1lYW5pbmcsIGFuZCBpbXBhY3QgdGhleSBuZWVkLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgdHJ1c3QuJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBmaXJzdCBzdGVwIGluIGNyZWF0aW5nIHN0cnVjdHVyZSBpcyBidWlsZGluZyByZWxhdGlvbnNoaXBzLiBGb3Igb3VyIGRpc3RyaWJ1dGVkIHRlYW1zIGF0IENpcmNsZUNJLCB3ZeKAmXZlIGJ1aWx0IGRpZmZlcmVudCBzdHJ1Y3R1cmVzIHRvIGhlbHAgdGVhbW1hdGVzIGRvIHRoYXQsIHN1Y2ggYXMgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucyBhbmQgZW5naW5lZXJpbmcgdGFsa3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtTdHJ1Y3R1cmUgYXJvdW5kIGhvdyB3ZSBjb2xsYWJvcmF0ZS4mbHQ7L3N0cm9uZyZndDsgT3VyIGVuZ2luZWVyaW5nIGRlcGFydG1lbnQgYXQgQ2lyY2xlQ0kgaGFzIGRvdWJsZWQgaW4gc2l6ZSBmb3IgdGhyZWUgeWVhcnMgaW4gYSByb3cuIE92ZXIgdGhpcyB0aW1lLCB3ZeKAmXZlIG1vdmVkIHRvIGEgbW9yZSBzdHJlYW1saW5lZCBlbmdpbmVlcmluZyBkZWxpdmVyeSBwcm9jZXNzIGZvciBhbGwgdGVhbXMuIEJ1dCB3ZSBzdGlsbCBsZWF2ZSBpdCB0byB0aGUgdGVhbXMgdG8gZGVjaWRlIGhvdyB0byBpbXBsZW1lbnQgdCBkYXktdG8tZGF5IHByb2Nlc3NlcywgaW5jbHVkaW5nIGRhaWx5IHN0YW5kdXAgbWVldGluZ3MsIHBsYW5uaW5nIHNlc3Npb25zLCBvciBjb2xsYWJvcmF0aW9uLiBFdmVyeSB0ZWFtIGhhcyBzcGVjaWZpYyBuZWVkcywgYW5kIHRoZXkga25vdyBiZXN0IGhvdyB0byBhZGRyZXNzIHRoZW0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtSZW1vdmUgYmxvY2tlcnMuJmx0Oy9zdHJvbmcmZ3Q7IFN0cnVjdHVyZXMgY2FuIGFsc28gaGVscCBtaXRpZ2F0ZSB0aGUgaW1wYWN0IG9mIGdldHRpbmcgYmxvY2tlZCBhdCB3b3JrLiBXZSBhbGwga25vdyBob3cgZnJ1c3RyYXRpbmcgaXQgaXMgdG8gYmUgc3R1Y2suIFB1dHRpbmcgdXAgcGF0aHdheXMgdG8gaGVscCBwZW9wbGUgZ2V0IHVuYmxvY2tlZCBjYW4gYmUgcmVhbGx5IGltcG9ydGFudCDigJMgZm9yIGV4YW1wbGUsIHNldHRpbmcgdXAgcmVndWxhciBwYWlyIHByb2dyYW1taW5nIHJvdGF0aW9ucywgaW52ZXN0aW5nIGluIHNlbGYtc2VydmUgaW5mb3JtYXRpb24gYWNjZXNzLCBzdXBwb3J0aW5nIGVhY2ggb3RoZXIgYWNyb3NzIHRlYW1zLCBwdXR0aW5nIHVwIGVzY2FsYXRpb24gcGF0aHMgZm9yIHBlb3BsZSB0byBnZXQgaGVscCB3aGVuIHRoZXkgbmVlZCBpdCwgb3IgaGVscGluZyBwZW9wbGUgc3VwcG9ydCBlYWNoIG90aGVyIHRocm91Z2gga25vd2xlZGdlLXNoYXJpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtDb250aW51b3VzbHkgaW1wcm92ZS4mbHQ7L3N0cm9uZyZndDsgV2UgY2FuIHVzZSByZXRyb3NwZWN0aXZlcyB0byBkaXNjdXNzIGFuZCBpbXByb3ZlIGhvdyB3ZSB3b3JrIHRvZ2V0aGVyLiBCbGFtZWxlc3MgcG9zdG1vcnRlbXMgYXJlIGFsc28gYSBncmVhdCB0b29sIHRvIGhlbHAgdW5kZXJzdGFuZCBwcm9ibGVtcyBhbmQgZHJpdmUgdG93YXJkcyBzb2x1dGlvbnMuIENvZGUgcmV2aWV3cywgbWVudG9yaW5nLCBvciBrbm93bGVkZ2Ugc2hhcmluZyBjYW4gaGVscCB0ZWFtIG1lbWJlcnMgbGVhcm4gZnJvbSBlYWNoIG90aGVyLiBUaGUgd2F5IHdlIHRhbGsgYWJvdXQgbGVhcm5pbmcgbWF0dGVycyDigJMgZXNwZWNpYWxseSB0aGUgd2F5IHdlIGRpc2N1c3MgbWlzdGFrZXMuIFRoZXNlIGRlY2lzaW9ucyB3aWxsIGZ1bmRhbWVudGFsbHkgc2hhcGUgdGhlIGN1bHR1cmUgb2Ygb3VyIHRlYW1zLCBhbmQgZGV0ZXJtaW5lIHdoZXRoZXIgcGVvcGxlIGZlZWwgc2FmZSBvciB0aHJlYXRlbmVkIGluIHRoZWlyIGNvcmUgbmVlZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtEcml2ZSB0b3dhcmQgYWxpZ25tZW50LiZsdDsvc3Ryb25nJmd0OyBDb21tdW5pY2F0ZSBzdHJhdGVneSwgZGlyZWN0aW9uLCBhbmQgcmVsZXZhbnQgdGFjdGljYWwgZGV0YWlscyB0byBvdXIgdGVhbXMg4oCTIGFuZCByZW1lbWJlciBpdOKAmXMgYWxtb3N0IGltcG9zc2libGUgdG8gb3Zlci1jb21tdW5pY2F0ZSB0aGVzZSBkZXRhaWxzLiBBbHdheXMgcmVwZWF0IHdoYXTigJlzIGltcG9ydGFudC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtBcyBlbmdpbmVlcmluZyBtYW5hZ2Vycywgd2UgYXJlIGxpa2UgbW9ydGFyOiBXZSBjb25uZWN0IHN0cnVjdHVyZXMsIHRlYW1zLCBhbmQgcGVvcGxlLiBXZSBob2xkIHRoZW0gdG9nZXRoZXIsIGJ1dCBhbHNvIGlkZW50aWZ5IGFuZCBmaWxsIGdhcHMgYXMgbmVlZGVkLiBIYW5kbGluZyBhbWJpZ3VpdHkgaXMgb25lIG9mIHRoZSBtb3N0IGltcG9ydGFudCBhbmQgZGlmZmljdWx0IGFzcGVjdHMgb2YgZW5naW5lZXJpbmcgbWFuYWdlbWVudC4uIEZvciBhIGxvdCBvZiB3b3JrIGluIG91ciBmaWVsZCwgdGhlcmUgYXJlIG5vIHN0cmFpZ2h0Zm9yd2FyZCBhbnN3ZXJzLCBsZXQgYWxvbmUgcmVzb2x1dGlvbnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T3VyIHdvcmsgaXNu4oCZdCBzbyBtdWNoIGFib3V0IHVzOyBpdOKAmXMgYWJvdXQgdGhlIHBlb3BsZSwgdGVhbXMsIGFuZCBvcmdhbml6YXRpb25zIHdlIHN1cHBvcnQuIFdlIGJ1aWxkIHN0cnVjdHVyZXMgdG8gaGVscCBvdGhlcnMgc2hpbmUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1N1cHBvcnRpbmcgb3JnYW5pemF0aW9uYWwgY2hhbmdlJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7TGFzdGx5LCBjcmVhdGluZyBlbnZpcm9ubWVudHMgaW4gd2hpY2ggZW5naW5lZXJzIGNhbiB0aHJpdmUgaXMgYWJvdXQgc3VwcG9ydGluZyBvdXIgb3JnYW5pemF0aW9uLiBXZSBuZWVkIHRvIHVzZSBvdXIgcG93ZXIgYXMgbWFuYWdlcnMgdG8gZHJpdmUgb3JnYW5pemF0aW9uYWwgY2hhbmdlLCBubyBtYXR0ZXIgdGhlIHNpemUgb2Ygb3VyIGJ1c2luZXNzZXMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtBZHZvY2F0ZSBmb3IgY2hhbmdlLiZsdDsvc3Ryb25nJmd0OyBUbyBiZSBlZmZlY3RpdmUgYXMgbWFuYWdlcnMsIHdlIG5lZWQgdG8gcHVzaCBmb3Igb3JnYW5pemF0aW9uYWwgY2hhbmdlIHRvIGltcHJvdmUgdGhlIGxhcmdlciBzdHJ1Y3R1cmVzIGFyb3VuZCB1cy4gRm9yIGV4YW1wbGUsIHdlIG1heSBuZWVkIHRvIGFkdm9jYXRlIGZvciBtb3JlIGNsYXJpdHkgYXJvdW5kIGVuZ2luZWVyaW5nIG1hbmFnZXIgcm9sZXMsIGhhdmUgY29udmVyc2F0aW9ucyBhYm91dCB3aGF0IGVuZ2luZWVyaW5nIG1hbmFnZW1lbnQgc2hvdWxkIGJlIGxpa2UgaW4gb3VyIGNvbXBhbnksIGFuZCBkZXRlcm1pbmUgcmVxdWlyZW1lbnRzIGZvciBoaXJpbmcgZW5naW5lZXJpbmcgbWFuYWdlcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O3N0cm9uZyZndDtNYW5hZ2UgdXAuJmx0Oy9zdHJvbmcmZ3Q7IE1hbmFnaW5nIG91ciBvd24gbWFuYWdlcnMgaXMgYSB1c2VmdWwgYnV0IGRpZmZpY3VsdCBza2lsbC4gRHJpdmluZyBvcmdhbml6YXRpb25hbCBjaGFuZ2UgYWxzbyBtZWFucyBtYWtpbmcgc3VyZSB0aGF0IG91ciBlbmdpbmVlcnPigJkgY29uY2VybnMgYXJlIGhlYXJkIGF0IHRoZSBoaWdoZXN0IGxldmVscywgYW5kIHRoYXQgd2UgdXNlIG91ciBwb3dlciB0byBtYWtlIHN1cmUgZW5naW5lZXJzIGhhdmUgYSB2b2ljZSBpbiB0aGUgcmVzdCBvZiB0aGUgb3JnYW5pemF0aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7QnVpbGQgZnJhbWV3b3JrcyBhbmQgc3RhbmRhcmRzLiZsdDsvc3Ryb25nJmd0OyBXaGlsZSBpdCBpcyBhbHdheXMgaW1wb3J0YW50IHRvIG1ha2Ugcm9vbSBmb3IgaW5kaXZpZHVhbCBuZWVkcywgc3RydWN0dXJlcyBhbmQgZnJhbWV3b3JrcyBmb3IgbWFuYWdlcnMgaGVscCB1cyBob2xkIGVhY2ggb3RoZXIgYWNjb3VudGFibGUuIFRoZXkgYWxzbyAgaGVscCBsZXZlbCB0aGUgcGxheWluZyBmaWVsZCBhbmQgYnVpbGQgaW4gZXF1YWxpdHkgZm9yIHRoZSBwZW9wbGUgb24gb3VyIHRlYW1zLiBPbiBteSBjdXJyZW50IHRlYW0sIGV2ZXJ5IHF1YXJ0ZXIgd2UgcGljayBzb21lIGhpZ2gtcHJpb3JpdHkgcHJvamVjdHMgIHRvIGltcHJvdmUgaG93IHdlIHdvcmsgYXMgYW4gb3JnYW5pemF0aW9uLiBNb3N0IHJlY2VudGx5LCB3ZeKAmXZlIHdvcmtlZCBvbiBvdXIgaGlyaW5nIHByb2Nlc3MgYW5kIGluY2lkZW50IHJlbWVkaWF0aW9uOyBsYXN0IHllYXIsIHdlIGRldmVsb3BlZCBhbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvd2h5LXdlLXJlLWRlc2lnbmVkLW91ci1lbmdpbmVlcmluZy1jYXJlZXItcGF0aHMtYXQtY2lyY2xlY2kvJnF1b3Q7Jmd0O2ludGVybmFsIGNhcmVlciBncm93dGggZnJhbWV3b3JrIGZvciBlbmdpbmVlcnMmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtHcm93aW5nIGFzIGEgbGVhZGVyJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7QmVpbmcgYSBnb29kIGVuZ2luZWVyaW5nIG1hbmFnZXIgaXNu4oCZdCBhbHdheXMgYSBzdHJhaWdodGZvcndhcmQgcGF0aDsgYSBsb3QgZGVwZW5kcyBvbiB3aGVyZSB3ZSBhcmUgYXQgaW4gb3VyIGNhcmVlcnMgYW5kIHdoZXJlIHdlIGFyZSBsb29raW5nIHRvIGdvLCBhcyB3ZWxsIGFzIHRoZSBncm93dGggc3RhZ2UsIHNpemUsIGFuZCBuZWVkcyBvZiBvdXIgb3JnYW5pemF0aW9ucy4gSW4gb3VyIGRhaWx5IHdvcmssIHdlIGhvbGQgdmFzdCBhbW91bnRzIG9mIHVuY2VydGFpbnR5IHdoaWxlIGFsc28gdHJ5aW5nIHRvIG1ha2UgcHJvZ3Jlc3MuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QW4gb3ZlcmFyY2hpbmcgdGhlbWUgaW4gbXkgd29yayBpbiBlbmdpbmVlcmluZyBtYW5hZ2VtZW50ICBoYXMgYmVlbiBncm93dGggYW5kIGltcHJvdmVtZW50LiBXZSByYXJlbHkgZGVhbCB3aXRoIGdyZWVuZmllbGQgcHJvamVjdHMgb3IgYXJlIGFibGUgdG8gYnVpbGQgYSB0ZWFtIG9yIGRlcGFydG1lbnQgZnJvbSBzY3JhdGNoLiBFdmVuIHdoZW4gd2UgZG8sIHdlIGJ1aWxkIG9uIGV4aXN0aW5nIHN0cnVjdHVyZXMgaW4gb3VyIG9yZ2FuaXphdGlvbi4gSSBiZWxpZXZlIG91ciBzdXBwb3J0aW5nIHJvbGUgbGFyZ2VseSBtZWFucyBoZWxwaW5nIGVuZ2luZWVycyBncm93LCBzdXBwb3J0aW5nIHRlYW1zIGF0IGNvbnRpbnVvdXNseSBsZWFybmluZywgYW5kIGhlbHBpbmcgb3JnYW5pemF0aW9ucyBiZWNvbWUgYmV0dGVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIGVuZ2luZWVyaW5nIG1hbmFnZXJzLCB3ZSBmcmVxdWVudGx5IGZhY2UgcXVlc3Rpb25zIHRoYXQgZG9u4oCZdCBjbGVhciByaWdodCBvciB3cm9uZyBhbnN3ZXJzLiBNYW55IHllYXJzIGFnbywgbXkgbGVhZGVyc2hpcCBjb2FjaCBlbmNvdXJhZ2VkIG1lIHRvIHVzZSB0aG9zZSBraW5kcyBvZiB1bmNlcnRhaW4gc2l0dWF0aW9ucyB0byBhc2sgbXlzZWxmLCDigJxXaGF0IGtpbmQgb2YgbGVhZGVyIGRvIEkgd2FudCB0byBiZT/igJ0mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJIHdhbnQgdG8gbGVhdmUgdGhlIGxhc3QgY2FsbCB0byBncm93dGggYW5kIGltcHJvdmVtZW50IHdpdGggeW91IChhbmQgbWUpOiBObyBtYXR0ZXIgd2hhdCB5b3VyIHJvbGUgb3IgY29tcGFueSBpcyBsaWtlLCB3b3JrIG9uIHNoYXBpbmcgeW91ciBhcHByb2FjaCB0byBlbmdpbmVlcmluZyBtYW5hZ2VtZW50LiBHZXQgdG8ga25vdyB0aGUgcGVvcGxlIHRoYXQgeW91IHdvcmsgd2l0aCwgYW5kIHVzZSBmZWVkYmFjayB0byBoZWxwIHRoZW0gY291cnNlLWNvcnJlY3QuIEJ1aWxkIHRlYW1zIHRoYXQgYXJlIHBzeWNob2xvZ2ljYWxseSBzYWZlIHBsYWNlcywgd2hlcmUgcGVvcGxlIGZpbmQgbWVhbmluZyBpbiBhIHNoYXJlZCBwdXJwb3NlLiBBbmQgdXNlIHlvdXIgcG93ZXIgYW5kIHByaXZpbGVnZSB0byBkcml2ZSBjaGFuZ2UgaW4geW91ciBvcmdhbml6YXRpb24uIE1ha2UgcGVvcGxlIHRoZSBjZW50ZXIgYW5kIGZvY3VzIG9mIHlvdXIgd29yaywgYW5kIGJ1aWxkIG9uIHRoYXQgZm91bmRhdGlvbiB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhleSBjYW4gdGhyaXZlLiAgQWx3YXlzIHB1c2ggdG8gY29udGludW91c2x5IGltcHJvdmUuIExlYWQgd2l0aCBodW1ibGVuZXNzLCBlbXBhdGh5LCBhbmQgbG90cyBvZiBjdXJpb3NpdHkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2hhdCBraW5kIG9mIGxlYWRlciBkbyB5b3Ugd2FudCB0byBiZT8mbHQ7L3AmZ3Q7CgombHQ7aHIgLyZndDsKJmx0O3AmZ3Q7SWYgeW914oCZcmUgY3VyaW91cyBhYm91dCBlbmdpbmVlcmluZyBtYW5hZ2VtZW50IGF0IENpcmNsZUNJIGFuZCB3b3JraW5nIHdpdGggdXM6IGpvaW4gdXMhICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9ib2FyZHMuZ3JlZW5ob3VzZS5pby9jaXJjbGVjaSZxdW90OyZndDtXZeKAmXJlIGhpcmluZyBlbmdpbmVlcmluZyBtYW5hZ2VycyZsdDsvYSZndDsuJmx0Oy9wJmd0Owo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5CdWlsZGluZyBhbmQgZGVwbG95aW5nIEZsdXR0ZXIgYXBwcyB3aXRoIEZhc3RsYW5lPC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2RlcGxveS1mbHV0dGVyLWFuZHJvaWQvPC9saW5rPgogICAgICAgIDxwdWJEYXRlPldlZCwgMjkgQXByIDIwMjAgMTA6MDA6MDAgLTA3MDA8L3B1YkRhdGU+CiAgICAgICAgPGd1aWQgaXNQZXJtYUxpbms9InRydWUiPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZGVwbG95LWZsdXR0ZXItYW5kcm9pZC88L2d1aWQ+CiAgICAgICAgCiAgICAgICAgICA8ZGM6Y3JlYXRvcj5HYWJyaWVsIFNpbW1lcjwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvJnF1b3Q7Jmd0O0ZsdXR0ZXImbHQ7L2EmZ3Q7IGlzIGEgdG9vbGtpdCBwcm92aWRlZCBieSBHb29nbGUgZm9yIGJ1aWxkaW5nIGNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9ucywgaW5jbHVkaW5nIEFuZHJvaWQsIGlPUywgYW5kIHdlYiBhcHBzLiBBcyBtb3JlIGFwcHMgYXJlIHdyaXR0ZW4gdXNpbmcgaXQgYW5kIERhcnQgKHRoZSB1bmRlcmx5aW5nIGxhbmd1YWdlKSwgaXTigJlzIGJlY29taW5nIG1vcmUgaW1wb3J0YW50IHRvIGNvbnNpZGVyIGhvdyBkZXZlbG9wZXJzIGNhbiBwYWNrYWdlIGFuZCBkZWxpdmVyIHRoZWlyIGNvZGUgdG8gdGhlaXIgdXNlcnMuIExldmVyYWdpbmcgQ2lyY2xlQ0kgYW5kIEZhc3RsYW5lLCB0aGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcHJvY2VzcyB0aGF0IGNhbiBiZSBhdXRvbWF0ZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbGluZyBGbHV0dGVyIGFuZCBjcmVhdGluZyB5b3VyIGZpcnN0IGFwcCBjYW4gYmUgZG9uZSBieSBmb2xsb3dpbmcgdGhlc2UgZ3VpZGVzOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZmx1dHRlci5kZXYvZG9jcy9nZXQtc3RhcnRlZC9pbnN0YWxsJnF1b3Q7Jmd0O0luc3RhbGwmbHQ7L2EmZ3Q7Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2ZsdXR0ZXIuZGV2L2RvY3MvZ2V0LXN0YXJ0ZWQvY29kZWxhYiZxdW90OyZndDtXcml0ZSB5b3VyIGZpcnN0IGFwcCZsdDsvYSZndDsuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBkZWZhdWx0IOKAnGhlbGxvIHdvcmxk4oCdIGFwcCB3aWxsIHN1ZmZpY2UuIFdlIHdvbuKAmXQgYmUgZGVhbGluZyBtdWNoIHdpdGggdGhlIGFwcGxpY2F0aW9uIGl0c2VsZi4gUHVzaCBpdCB0byBhIHJlcG9zaXRvcnkgb24gR2l0SHViLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Vuc3VyZSB0aGF0IHlvdSBhcmUgc2V0IHVwIHRvIHB1Ymxpc2ggYXBwcyB1c2luZyBHb29nbGUgUGxheSBvciB0aGUgQXBwbGUgQXBwIFN0b3JlIC0gc3RlcHMgZm9yIGVhY2ggd2lsbCB2YXJ5LCBzbyBiZSBzdXJlIHRvIGZvbGxvdyB0aGUgc3RlcHMgb3V0bGluZWQgZm9yIHRoZSByZXNwZWN0aXZlIHByb3ZpZGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtBbmRyb2lkJmx0Oy9oMiZndDsKCiZsdDtwJmd0O1doZW4gcHVibGlzaGluZyBBbmRyb2lkIGFwcHMsIHRoZXJlIGFyZSBhIGZldyByZXF1aXJlbWVudHMgdG8gc2F0aXNmeSBiZWZvcmUgaW1wbGVtZW50aW5nIEZhc3RsYW5lLiBBbiDigJx1cGxvYWQga2V54oCdIGlzIHJlcXVpcmVkIHNvIHRoYXQgR29vZ2xlIGNhbiB2ZXJpZnkgdGhlIGF1dGhlbnRpY2l0eSBvZiB0aGUgYXBwIGJlZm9yZSBhY2NlcHRpbmcgaXQuIFN0ZXBzIGZvciBzZXR0aW5nIHRoaXMgdXAgY2FuIGJlIGZvdW5kICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9mbHV0dGVyLmRldi9kb2NzL2RlcGxveW1lbnQvYW5kcm9pZCZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oy4gSXTigJlzIHJlY29tbWVuZGVkIHRvIHVzZSBBcHBCdW5kbGVzIHdoZW4gYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBhcyBpdCBhbGxvd3MgR29vZ2xlIHRvIGJ1aWxkIGluZGl2aWR1YWwgQVBLcyBmb3IgZGlmZmVyZW50IHBsYXRmb3JtcyB3aGlsZSBrZWVwaW5nIGZpbGVzaXplIGRvd24uIFRha2Ugbm90ZSBvZiB3aGVyZSB5b3Ugc2F2ZSB5b3VyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5qa3MmbHQ7L2NvZGUmZ3Q7IGZpbGUuIFdoaWxlIGl0IGNhbiBsaXZlIGluIHlvdXIgaG9tZSBkaXJlY3RvcnksIGhhdmluZyBpdCBzYXZlZCB0byBhIGdpdC1pZ25vcmVkIGRpcmVjdG9yeSBpbiB5b3VyIHByb2plY3Qgd2lsbCBjb21lIGluIGhhbmR5IHdoZW4gY29uZmlndXJpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtwJmd0O1R3byB0aGluZ3MgZnJvbSB0aGlzIGd1aWRlIHdpbGwgbmVlZCB0byBiZSBhZGRlZCB0byBDaXJjbGVDSSBhcyAmbHQ7YSBocmVmPSZxdW90Oy9kb2NzLzIuMC9lbnYtdmFycy8mcXVvdDsmZ3Q7ZW52aW9ybm1lbnQgdmFyaWFibGVzJmx0Oy9hJmd0OzogdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2tleS5wcm9wZXJ0aWVzJmx0Oy9jb2RlJmd0OyBmaWxlIGFuZCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7a2V5LmprcyZsdDsvY29kZSZndDsgZmlsZS4gVGhpcyB3aWxsIGFsbG93IHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IHBpcGVsaW5lIHRvIHByb3Blcmx5IGJ1aWxkIGFuZCBzaWduIHRoZSBhcHBsaWNhdGlvbi4gU2luY2Ugb25lIGZpbGUgcmVxdWlyZXMgbmV3bGluZXMgdG8gYmUgcHJlc2VudCwgYW5kIGFub3RoZXIgaXMgYSBiaW5hcnkgZmlsZSwgaXTigJlzIHJlY29tbWVuZGVkIHRoYXQgdGhleSBhcmUgYmFzZTY0LWVuY29kZWQgcHJpb3IgdG8gYWRkaW5nIHRoZW0gYXMgZW52aW9ybm1lbnQgdmFyaWFibGVzIHRvIHByZXNlcnZlIHRoZSBkYXRhLiZsdDsvcCZndDsKCiZsdDtwJmd0O1lvdSBjYW4gZW5jb2RlIHRoZW0gYnkgcnVpbm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Y2F0ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7IHwgYmFzZTY0IC13IDAgIyAtdyAwIHdpbGwgZW5zdXJlIG5vIG5ld2xpbmVzIGFyZSBwcmVzZW50LgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBmaWxlcyBjYW4gdGhlbiBiZSByZS1hZGRlZCBkdXJpbmcgdGhlIGpvYiB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2VjaG8gJnF1b3Q7JEVOVl9WQVJJQUJMRV9OQU1FJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7ICZhbXA7bHQ7ZmlsZSZhbXA7Z3Q7CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSB3aWxsIGFsc28gd2FudCB0byBzZXQgdXAgYSBGYXN0bGFuZSBzZXJ2aWNlIGFjY291bnQgd2hpbGUgY3JlYXRpbmcgeW91ciBBbmRyb2lkIHNldHVwLiBZb3UgY2FuIHJlYWQgbW9yZSBhYm91dCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5mYXN0bGFuZS50b29scy9nZXR0aW5nLXN0YXJ0ZWQvYW5kcm9pZC9zZXR1cC8mcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuIEJlIHN1cmUgdG8ga2VlcCB5b3VyIFNlcnZpY2UgQWNjb3VudCBKU09OIGZpbGUgaGFuZHkuIFdl4oCZbGwgYmUgYWRkaW5nIHRoYXQgdG8gdGhlIHBpcGVsaW5lIHNob3J0bHkuIEFsc28gbm90ZSB0aGF0IGNvbW1hbmRzIHNob3VsZCBiZSBydW4gZnJvbSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZCZsdDsvY29kZSZndDsgZGlyZWN0b3J5IHVuZGVyIHlvdXIgRmx1dHRlciBwcm9qZWN0LiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IHJlcXVpcmVkIGJ5IEZhc3RsYW5lIGNhbiBiZSBkb25lIGJ5IGFkZGluZyB0aGUgc2VydmljZSBhY2NvdW50IEpTT04gZmlsZSBjb250ZW50cyBhcyB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IGVudmlvcm5tZW50IHZhcmlhYmxlLiBUaGlzIGlzIG5vdCB0byBiZSBjb25mdXNlZCB3aXRoICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1NVUFBMWV9KU09OX0tFWSZsdDsvY29kZSZndDsgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgYSBmaWxlIHBhdGggdG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O0Zhc3RsYW5lJmx0Oy9oMiZndDsKCiZsdDtwJmd0O05vdyB0aGF0IG91ciBlbnZpb3JubWVudCB2YXJpYWJsZXMgYXJlIGluIHBsYWNlIGFuZCB3ZSBjYW4gYnVpbGQgYSBzaWduZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LmFhYiZsdDsvY29kZSZndDsgZmlsZSB1c2luZyBGbHV0dGVyLCBpdOKAmXMgdGltZSB0byB0ZWxsIEZhc3RsYW5lIGhvdyB0byBkbyB0aGlzIGZvciB1cy4gV2XigJlsbCBzdGFydCB3aXRoIEFuZHJvaWQuIE9wZW5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7YW5kcm9pZC9mYXN0bGFuZS9GYXN0ZmlsZSZsdDsvY29kZSZndDsgd2lsbCByZXZlYWwgc29tZSBkZWZhdWx0cyBmb3IgYnVpbGRpbmcgQW5kcm9pZCBhcHBzLCBidXQgdGhleSB3b27igJl0IHdvcmsgZm9yIG91ciB1c2UgY2FzZS4gV2XigJlyZSBidWlsZGluZyB3aXRoIEZsdXR0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Rmlyc3QsIGxldOKAmXMgZGVmaW5lIGEgbmV3IOKAnGxhbmXigJ0uIFRoaXMgaXMgYSBzZXQgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgRmFzdGxhbmUgd2lsbCBleGVjdXRlIHdoZW4gY2FsbGVkLiBGb3Igbm93LCB3ZeKAmWxsIGJlIHB1c2hpbmcgb3VyIGFwcCB0byB0aGUg4oCcYmV0YeKAnSBjaGFubmVsLCBub3QgdG8gcHJvZHVjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwoKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgaXMgdGhlIGJhc2ljIHN0cnVjdHVyZSBvZiBhIGxhbmUuIE5leHQsIHdl4oCZbGwgd2FudCB0byBncmFiIGEgYnVpbGQgbnVtYmVyIHdoaWNoIGlzIGFuIGluY3JlbWVudGluZyBudW1iZXIgdXNlZCBhcyBhIHJlZmVyZW5jZSBmb3IgdGhlIHZlcnNpb24gb2YgdGhlIGFwcCAod2hpY2ggZGlmZmVycyBmcm9tIHRoZSB1c2VyLWZhY2luZyBzZW12ZXIpLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHRvIHRoZSBsYW5lOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ICBidWlsZF9udW1iZXIgPSBudW1iZXJfb2ZfY29tbWl0cygpCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1RoaXMgZW5zdXJlcyB0aGF0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZF9udW1iZXImbHQ7L2NvZGUmZ3Q7IGlzIHRoZSBudW1iZXIgb2YgY29tbWl0cyB0aGF0IGhhdmUgYmVlbiBtYWRlIHRvIHRoZSBHaXQgcmVwb3NpdG9yeS4gVGhpcyBjYW4gYWxzbyBiZSBtYW51YWxseSBpbmNyZW1lbnRlZCBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cHVic3BlYy55YW1sJmx0Oy9jb2RlJmd0OyBmaWxlIHRoYXQgRmx1dHRlciB1c2VzIHRvIGJ1aWxkIHRoZSBwYWNrYWdlLiZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQsIHdl4oCZbGwgZG8gdGhlIGJ1aWxkaW5nLiBXZSBuZWVkIHRvIGdvIHRvIHRoZSBwYXJlbnQgZGlyZWN0b3J5LCBydW4gYSBmZXcgc2hlbGwgY29tbWFuZHMgdG8gZmV0Y2ggb3VyIHBhY2thZ2VzLCBjbGVhbiB0aGUgcHJldmlvdXMgYnVpbGQgKGlmIGF2YWlsYWJsZSksIHRoZW4gYnVpbGQgdGhlIGFwcGJ1bmRsZSB3aXRoIG91ciBidWlsZCBudW1iZXIuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIERpci5jaGRpciAmcXVvdDsuLi8uLiZxdW90OyBkbwogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7cGFja2FnZXMmcXVvdDssICZxdW90O2dldCZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2NsZWFuJnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7YnVpbGQmcXVvdDssICZxdW90O2FwcGJ1bmRsZSZxdW90OywgJnF1b3Q7LS1idWlsZC1udW1iZXI9I3tidWlsZF9udW1iZXJ9JnF1b3Q7KQogIGVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtGaW5hbGx5LCB3ZSBjYW4gc2VuZCBpdCB0byB0aGUgYXBwIHN0b3JlIG9uIHRoZSBiZXRhIGNoYW5uZWwuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDsgIHVwbG9hZF90b19wbGF5X3N0b3JlKHRyYWNrOiAnYmV0YScsIGFhYjogJy4uL2J1aWxkL2FwcC9vdXRwdXRzL2J1bmRsZS9yZWxlYXNlL2FwcC5hYWInKQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGxhbmUgd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2Rlc2MgJnF1b3Q7RGVwbG95IGEgbmV3IGJldGEgYnVpbGQgdG8gR29vZ2xlIFBsYXkmcXVvdDsKbGFuZSA6YmV0YSBkbwogIGJ1aWxkX251bWJlciA9IG51bWJlcl9vZl9jb21taXRzKCkKICBEaXIuY2hkaXIgJnF1b3Q7Li4vLi4mcXVvdDsgZG8KICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O3BhY2thZ2VzJnF1b3Q7LCAmcXVvdDtnZXQmcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtjbGVhbiZxdW90OykKICAgIHNoKCZxdW90O2ZsdXR0ZXImcXVvdDssICZxdW90O2J1aWxkJnF1b3Q7LCAmcXVvdDthcHBidW5kbGUmcXVvdDssICZxdW90Oy0tYnVpbGQtbnVtYmVyPSN7YnVpbGRfbnVtYmVyfSZxdW90OykKICBlbmQKICB1cGxvYWRfdG9fcGxheV9zdG9yZSh0cmFjazogJ2JldGEnLCBhYWI6ICcuLi9idWlsZC9hcHAvb3V0cHV0cy9idW5kbGUvcmVsZWFzZS9hcHAuYWFiJykKZW5kCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dvIGFoZWFkIGFuZCBzYXZlIHRoZSBmaWxlLCBhbmQgdGhlbiBydW4gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZmFzdGxhbmUgYmV0YSZsdDsvY29kZSZndDsuIEl0IHdpbGwgcnVuIHRocm91Z2ggdGhlIHN0ZXBzLCBidWlsZGluZyB0aGUgYXBwIGFuZCBwdXNoaW5nIHRoZSBhcHBsaWNhdGlvbiBmb3IgeW91LiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdywgd2XigJlsbCBkbyB0aGUgc2FtZSBmb3IgaU9TLCBidXQgcmVwbGFjaW5nIHNvbWUgb2YgdGhlIGNvbW1hbmRzIHdpdGggdGhlaXIgcmVzcGVjdGl2ZSBpT1MgY29tbWFuZHMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2lvcy9GYXN0bGFuZSZsdDsvY29kZSZndDsgZGlyZWN0b3J5LiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZGVzYyAmcXVvdDtEZXBsb3kgYSBuZXcgYnVpbGQgdG8gVGVzdGZsaWdodCZxdW90OwpsYW5lIDpiZXRhIGRvCiAgRGlyLmNoZGlyICZxdW90Oy4uLy4uJnF1b3Q7IGRvCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtwYWNrYWdlcyZxdW90OywgJnF1b3Q7Z2V0JnF1b3Q7KQogICAgc2goJnF1b3Q7Zmx1dHRlciZxdW90OywgJnF1b3Q7Y2xlYW4mcXVvdDspCiAgICBzaCgmcXVvdDtmbHV0dGVyJnF1b3Q7LCAmcXVvdDtidWlsZCZxdW90OywgJnF1b3Q7aW9zJnF1b3Q7LCAmcXVvdDstLXJlbGVhc2UmcXVvdDssICZxdW90Oy0tbm8tY29kZXNpZ24mcXVvdDspCiAgZW5kCiAgYnVpbGRfaW9zX2FwcChzY2hlbWU6ICZxdW90O015QXBwJnF1b3Q7KQogIHVwbG9hZF90b190ZXN0ZmxpZ2h0CmVuZAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDsmbHQ7c3Ryb25nJmd0O05vdGU6Jmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhcHAgaXMgYnVpbHQgdHdpY2UuIFRoZSBmaXJzdCBidWlsZCBidWlsZHMgYWdhaW5zdCB0aGUgbGF0ZXN0IEZsdXR0ZXIgdG9vbGNoYWluLCB3aGlsZSB0aGUgc2Vjb25kIGJ1aWxkIGJ1aWxkcyB0aGUgYWN0dWFsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5pcGEmbHQ7L2NvZGUmZ3Q7IGZpbGUgdGhhdCB3aWxsIGJlIHVwbG9hZGVkIHRvIFRlc3RmbGlnaHQuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O05vdywgd2l0aCBDaXJjbGVDSSZsdDsvaDImZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gcGxhY2UsIGl04oCZcyB0aW1lIHRvIGdldCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB3cml0dGVuIHNvIHRoYXQgYSBwdXNoIHRvIGEgYnJhbmNoIGlzIHRyYW5zbGF0ZWQgdG8gYSBuZXcgZGVwbG95bWVudC4mbHQ7L3AmZ3Q7CgombHQ7aDMmZ3Q7aU9TJmx0Oy9oMyZndDsKCiZsdDtwJmd0O0ZvciBkZXBsb3lpbmcgd2l0aCBpT1MsIENpcmNsZUNJIGFscmVhZHkgaGFzIGRvY3MgdG8gY292ZXIgdGhpcyEgU3RlcHMgZm9yIHNldHRpbmcgdXAgRmFzdGxhbmUgZGVwbG95bWVudCB3aXRoIEZsdXR0ZXIgaXMgc2ltaWxhciB0byB0aGUgc3RlcHMgb3V0bGluZWQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvaW9zLWNvZGVzaWduaW5nLyZxdW90OyZndDtoZXJlJmx0Oy9hJmd0OyBhbmQgJmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvZGVwbG95aW5nLWlvcy8jYXBwLXN0b3JlLWNvbm5lY3QmcXVvdDsmZ3Q7aGVyZSZsdDsvYSZndDsuJmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0FuZHJvaWQmbHQ7L2gzJmd0OwoKJmx0O3AmZ3Q7V2hlbiBpdCBjb21lcyB0byB0aGUgRG9ja2VyIGltYWdlIHRvIHBpY2ssIHRoZXJlIGFyZSB0d28gb3B0aW9ucy4gRWl0aGVyIHlvdSBjYW4gYnVpbGQgYW5kIHB1c2ggdGhlIERvY2tlciBpbWFnZSB1c2VkIGJ5IHRoZSBGbHV0dGVyIHByb2plY3QgZm91bmQgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdGh1Yi5jb20vZmx1dHRlci9mbHV0dGVyL2Jsb2IvbWFzdGVyL2Rldi9jaS9kb2NrZXJfbGludXgvRG9ja2VyZmlsZSZxdW90OyZndDtoZXJlJmx0Oy9hJmd0Oywgb3IgeW91IGNhbiBwdWxsICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dtZW1zdHIvZmx1dHRlci1mYXN0bGFuZTpsYXRlc3QmbHQ7L2NvZGUmZ3Q7LCB3aGljaCBpcyBidWlsdCBvbiB0b3Agb2YgYW4gZXhpc3RpbmcgRmx1dHRlciBEb2NrZXIgaW1hZ2UgYW5kIGluc3RhbGxzIEZhc3RsYW5lIGFsb25nc2lkZSBpdCwgYXZvaWRpbmcgYWRkaXRpb25hbCBvdmVyaGVhZCBvZiBpbnN0YWxsaW5nIGl0IGR1cmluZyBydW50aW1lLiZsdDsvcCZndDsKCiZsdDtwJmd0O0Fsc28gZW5zdXJlIHRoYXQgdGhlIGVudmlvcm5tZW50IHZhcmlhYmxlcyBtZW50aW9uZWQgZWFybGllciBhcmUgYWRkZWQgdG8geW91ciBwcm9qZWN0LiBOYW1lbHk6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQTEFZX1NUT1JFX1VQTE9BRF9LRVkmbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtrZXkuamtzJmx0Oy9jb2RlJmd0OyBmaWxlJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7UExBWV9TVE9SRV9VUExPQURfS0VZX0lORk8mbHQ7L2NvZGUmZ3Q7IC0gQSBiYXNlNjQtZW5jb2RlZCBmaWxlIGNvbnRhaW5pbmcgdGhlIHBhc3N3b3JkIGFuZCBvdGhlciBpbmZvIHJlZ2FyZGluZyB0aGUgdXBsb2FkIHNpZ25pbmcga2V5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7U1VQUExZX0pTT05fS0VZX0RBVEEmbHQ7L2NvZGUmZ3Q7IC0gWW91ciBHb29nbGUgU2VydmljZSBBY2NvdW50IEpTT04gc3RyaW5nIGZvciBhdXRoZW50aWNhdGlvbiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtJbiB5b3VyIHByb2plY3RzIHJvb3QsIGFkZCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy5jaXJjbGVjaSZsdDsvY29kZSZndDsgZm9sZGVyLCBhbmQgaW4gdGhhdCBmb2xkZXIgYWRkIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y2lyY2xlY2kueW1sJmx0Oy9jb2RlJmd0OyBmaWxlLiBBZGQgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHRvIHRoZSBuZXdseSBjcmVhdGVkIGZpbGU6Jmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7JwogIAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGUgc25pcHBldCBhYm92ZSBkZWZpbmVzIGFuIGV4ZWN1dG9yIHdlIGNhbiByZXVzZSBsYXRlciBpbiBvdXIgY29uZmlndXJhdGlvbiB0aGFua3MgdG8gdGhlIHVzZSBvZiByZXVzYWJsZSBjb25maWd1cmF0aW9uIGFuZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYnMmbHQ7L2EmZ3Q7IGluIENpcmNsZUNJIDIuMS4gSXQgYWxzbyBpbmNsdWRlcyBzb21lIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBlbnN1cmUgSmF2YSBkb2VzbuKAmXQgY29uc3VtZSBhbGwgb2Ygb3VyIG1lbW9yeSB3aGlsZSBidWlsZGluZyB0aGUgYXBwLiBOZXh0LCB3ZeKAmWxsIGRlZmluZSB0aGUgam9iIHdlIHdhbnQgdG8gcnVuIHRoZSBjb21tYW5kcy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2pvYnM6CiAgYmV0YV9kZXBsb3k6CiAgICBleGVjdXRvcjogYW5kcm9pZC1mbHV0dGVyCiAgICBzdGVwczoKICAgICAgLSBjaGVja291dAogICAgICAtIHJ1bjogZWNobyAmcXVvdDskUExBWV9TVE9SRV9VUExPQURfS0VZJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGtleS5qa3MKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWV9JTkZPJnF1b3Q7IHwgYmFzZTY0IC0tZGVjb2RlICZhbXA7Z3Q7IGFuZHJvaWQva2V5LnByb3BlcnRpZXMKICAgICAgLSBydW46IGNkIGFuZHJvaWQgJmFtcDthbXA7JmFtcDthbXA7IGZhc3RsYW5lIGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgd2XigJlsbCBkZWZpbmUgb3VyIHdvcmtmbG93IHdoaWNoIHdpbGwgb25seSBydW4gdGhlIGpvYiB3aGVuIHRoZSBuZXcgY29kZSBpcyBwdXNoZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2JldGEmbHQ7L2NvZGUmZ3Q7IGJyYW5jaC4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3dvcmtmbG93czoKICBkZXBsb3k6CiAgICBqb2JzOgogICAgICAtIGJldGFfZGVwbG95OgogICAgICAgICAgZmlsdGVyczoKICAgICAgICAgICAgYnJhbmNoZXM6CiAgICAgICAgICAgICAgb25seTogYmV0YQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZW5kLCB5b3VyIGNvbmZpZ3VyYXRpb24gd2lsbCBsb29rIGxpa2UgdGhpczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQoKZXhlY3V0b3JzOgogIGFuZHJvaWQtZmx1dHRlcjoKICAgIGRvY2tlcjoKICAgICAgLSBpbWFnZTogZ21lbXN0ci9mbHV0dGVyLWZhc3RsYW5lOmxhdGVzdAogICAgZW52aXJvbm1lbnQ6CiAgICAgIFRFUk06IGR1bWIKICAgICAgX0pBVkFfT1BUSU9OUzogJnF1b3Q7LVhteDIwNDhtIC1YWDorVW5sb2NrRXhwZXJpbWVudGFsVk1PcHRpb25zIC1YWDorVXNlQ0dyb3VwTWVtb3J5TGltaXRGb3JIZWFwJnF1b3Q7CiAgICAgIEdSQURMRV9PUFRTOiAnLURvcmcuZ3JhZGxlLmp2bWFyZ3M9JnF1b3Q7LVhteDIwNDhtJnF1b3Q7Jwpqb2JzOgogIGJldGFfZGVwbG95OgogICAgZXhlY3V0b3I6IGFuZHJvaWQtZmx1dHRlcgogICAgc3RlcHM6CiAgICAgIC0gY2hlY2tvdXQKICAgICAgLSBydW46IGVjaG8gJnF1b3Q7JFBMQVlfU1RPUkVfVVBMT0FEX0tFWSZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBrZXkuamtzCiAgICAgIC0gcnVuOiBlY2hvICZxdW90OyRQTEFZX1NUT1JFX1VQTE9BRF9LRVlfSU5GTyZxdW90OyB8IGJhc2U2NCAtLWRlY29kZSAmYW1wO2d0OyBhbmRyb2lkL2tleS5wcm9wZXJ0aWVzCiAgICAgIC0gcnVuOiBjZCBhbmRyb2lkICZhbXA7YW1wOyZhbXA7YW1wOyBmYXN0bGFuZSBiZXRhCgp3b3JrZmxvd3M6CiAgZGVwbG95OgogICAgam9iczoKICAgICAgLSBiZXRhX2RlcGxveToKICAgICAgICAgIGZpbHRlcnM6CiAgICAgICAgICAgIGJyYW5jaGVzOgogICAgICAgICAgICAgIG9ubHk6IGJldGEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDsvZG9jcy8yLjAvcHJvamVjdHMvJnF1b3Q7Jmd0O1NldCB1cCB5b3VyIHByb2plY3Qgb24gQ2lyY2xlQ0kmbHQ7L2EmZ3Q7LiBPbmNlIHlvdSBjbGljayAmbHQ7c3Ryb25nJmd0O1NldCBVcCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7LCB5b3Ugd2lsbCBiZSBicm91Z2h0IHRvIGEgdGV4dCBlZGl0b3IgdGhhdCB3aWxsIGFsbG93IHlvdSB0byBjb3B5IGluIHRoZSBjb25maWcgZnJvbSBhYm92ZS4gQ2xpY2sgJmx0O3N0cm9uZyZndDtTdGFydCBCdWlsZGluZyZsdDsvc3Ryb25nJmd0Oy4gTm93IGV2ZXJ5IG5ldyBjb21taXQgdG8gdGhlIGJldGEgYnJhbmNoIHdpbGwgcmVzdWx0IGluIGEgZGVwbG95LiZsdDsvcCZndDsKPC9kZXNjcmlwdGlvbj4KICAgICAgICAKICAgICAgPC9pdGVtPgogICAgCiAgICAgIAogICAgICA8aXRlbT4KICAgICAgICA8dGl0bGU+Q29udGludW91cyBkZXBsb3ltZW50IG9mIGFuIEV4cHJlc3MgR3JhcGhRTCBzZXJ2ZXIgdG8gSGVyb2t1PC90aXRsZT4KICAgICAgICA8bGluaz5odHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2NvbnRpbnVvdXMtZGVwbG95bWVudC1vZi1hbi1leHByZXNzLWdyYXBocWwtc2VydmVyLXRvLWhlcm9rdS88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+VHVlLCAyOCBBcHIgMjAyMCAwOTowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9jb250aW51b3VzLWRlcGxveW1lbnQtb2YtYW4tZXhwcmVzcy1ncmFwaHFsLXNlcnZlci10by1oZXJva3UvPC9ndWlkPgogICAgICAgIAogICAgICAgICAgPGRjOmNyZWF0b3I+RmlrYXlvIEFkZXBvanU8L2RjOmNyZWF0b3I+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgICA8ZGVzY3JpcHRpb24+Jmx0O3AmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dyYXBocWwub3JnLyZxdW90OyZndDtHcmFwaFFMJmx0Oy9hJmd0OyBjb250aW51ZXMgdG8gZ3JvdyBpbiBwb3B1bGFyaXR5IHdpdGggZWFjaCBwYXNzaW5nIGRheSwgc2luY2UgaXRzICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9lbmdpbmVlcmluZy5mYi5jb20vY29yZS1kYXRhL2dyYXBocWwtYS1kYXRhLXF1ZXJ5LWxhbmd1YWdlLyZxdW90OyZndDtwdWJsaWMgcmVsZWFzZSBieSBGYWNlYm9vayZsdDsvYSZndDsgaW4gMjAxNS4gVGhlIHRlY2hub2xvZ3kgZW5hYmxlcyBmcm9udCBlbmQgY2xpZW50cyB0byBxdWVyeSBleGFjdGx5IHdoYXQgdGhleSBuZWVkIGZyb20gdGhlIGJhY2tlbmQsIGFuZCBpcyBnYWluaW5nIHdpZGUgcmVjb2duaXRpb24gYW5kIGFkb3B0aW9uIGJ5IHJlcHV0YWJsZSBjb21wYW5pZXMgc3VjaCBhcyBQaW50ZXJlc3QsIENvdXJzZXJhLCBBaXJibmIsIGFuZCBGYWNlYm9vayBpdHNlbGYuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SW4gdGhpcyBwb3N0LCB3ZSB3aWxsIGxlYXJuIGhvdyB0byBkZXBsb3kgYSBzaW1wbGUgR3JhcGhRTCBzZXJ2ZXIgd3JpdHRlbiBpbiBOb2RlLmpzIHRvIEhlcm9rdSB2aWEgYSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24vJnF1b3Q7Jmd0O2NvbnRpbnVvdXMgaW50ZWdyYXRpb24mbHQ7L2EmZ3Q7IChDSSkgcGlwZWxpbmUgdXNpbmcgQ2lyY2xlQ0kuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1ByZXJlcXVpc2l0ZXMmbHQ7L2gyJmd0OwombHQ7cCZndDtUbyBmb2xsb3cgYWxvbmcgd2l0aCB0aGlzIHBvc3QsIHlvdSB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBhbHJlYWR5IHNldCB1cDombHQ7L3AmZ3Q7CiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL25vZGVqcy5vcmcvJnF1b3Q7Jmd0O05vZGUuanMmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlIC12Jmx0Oy9jb2RlJmd0OyBvbiB5b3VyIHRlcm1pbmFsIHRvIHByaW50IG91dCB5b3VyIHZlcnNpb24gb2YgTm9kZS5qcyBpbnN0YWxsZWQpJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2dpdC1zY20uY29tLyZxdW90OyZndDtHaXQmbHQ7L2EmZ3Q7IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSAoeW91IGNhbiBjb25maXJtIHRoaXMgYnkgcnVubmluZyB0aGUgY29tbWFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtnaXQmbHQ7L2NvZGUmZ3Q7IG9uIHlvdXIgdGVybWluYWw7IHRoaXMgc2hvdWxkIHByaW50IG91dCBhdmFpbGFibGUgZ2l0IGNvbW1hbmRzKSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0O0EgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL3d3dy5oZXJva3UuY29tLyZxdW90OyZndDtIZXJva3UmbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9naXRodWIuY29tLyZxdW90OyZndDtHaXRIdWImbHQ7L2EmZ3Q7IGFjY291bnQmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vc2lnbnVwLyZxdW90OyZndDtDaXJjbGVDSSZsdDsvYSZndDsgYWNjb3VudCZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDsjI1NjYWZmb2xkaW5nIHRoZSBHcmFwaFFMIHNlcnZlciBwcm9qZWN0ClRvIGJlZ2luIHNldHRpbmcgdXAgYSBHcmFwaFFMIHNlcnZlciwgY3JlYXRlIGEgbmV3IGZvbGRlciBmb3IgdGhlIHByb2plY3QgYnkgcnVubmluZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtta2RpciBncmFwaHFsLXRlc3Qtc2VydmVyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7Tm93IGdvIGludG8gdGhlIHJvb3Qgb2YgdGhlIGZvbGRlciBhbmQgcnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZCB0byBzY2FmZm9sZCBhIG5ldyBOb2RlLmpzIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5pdCAteQombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDtwJmd0O1RoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsteSZsdDsvY29kZSZndDsgb3B0aW9uYWwgZmxhZyBhbGxvd3MgeW91IHRvIHNraXAgY29uZmlybWluZyB0aGUgZGVmYXVsdCBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbnMgZm9yIGNyZWF0aW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtwYWNrYWdlLmpzb24mbHQ7L2NvZGUmZ3Q7IGZpbGUgYW5kIGp1c3QgYWNjZXB0cyB0aGVtLiZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIGFyZSBnb2luZyB0byBjcmVhdGUgYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2V4cHJlc3Nqcy5jb20vJnF1b3Q7Jmd0O0V4cHJlc3NKUyZsdDsvYSZndDsgTm9kZS5qcyBhcHBsaWNhdGlvbiBhbmQgYnVpbGQgdGhlIEdyYXBoUUwgc2VydmVyLiBUbyBkbyB0aGlzLCB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIGZvbGxvd2luZyBwYWNrYWdlczombHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2V4cHJlc3MmbHQ7L2NvZGUmZ3Q7OiB0byBjcmVhdGUgb3VyIEV4cHJlc3NKUyBOb2RlLmpzIGFwcGxpY2F0aW9uJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Z3JhcGhxbCZsdDsvY29kZSZndDs6IHRoZSBHcmFwaFFMIG5wbSBwYWNrYWdlIGZvciBOb2RlLmpzJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OzogRXhwcmVzc0pTIG1pZGRsZXdhcmUgZm9yIEdyYXBoUUwmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7SW5zdGFsbCB0aGVzZSBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O25wbSBpbnN0YWxsIC0tc2F2ZSBleHByZXNzIGdyYXBocWwgZXhwcmVzcy1ncmFwaHFsCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0dyZWF0ISZsdDsvcCZndDsKCiZsdDtwJmd0O1dlIG5vdyBoYXZlIHRoZSByZXF1aXJlZCBwYWNrYWdlcyB0byBzdGFydCBwdXR0aW5nIHRvZ2V0aGVyIG91ciBHcmFwaFFMIHNlcnZlci4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgdGhlIEdyYXBoUUwgc2NoZW1hJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7Q3JlYXRlIGEgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgYXQgdGhlIHJvb3Qgb2YgeW91ciBwcm9qZWN0IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bWtkaXIgc3JjCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1dpdGhpbiB0aGlzIGZvbGRlciwgY3JlYXRlIGEgbmV3IGZpbGUgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEuanMmbHQ7L2NvZGUmZ3Q7IGFuZCBwYXN0ZSBpbiB0aGUgY29kZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0Owpjb25zdCB7IGJ1aWxkU2NoZW1hIH0gPSByZXF1aXJlKCZxdW90O2dyYXBocWwmcXVvdDspOwoKY29uc3Qgc2NoZW1hID0gYnVpbGRTY2hlbWEoYAogICAgdHlwZSBRdWVyeSB7CiAgICAgICAgdXNlcnM6IFtVc2VyIV0hLAogICAgICAgIHVzZXIoaWQ6IEludCEpOiBVc2VyIQogICAgfQoKICAgIHR5cGUgTXV0YXRpb24gewogICAgICAgIGVkaXRVc2VyKGlkOiBJbnQhLCBuYW1lOiBTdHJpbmchLCBlbWFpbDogU3RyaW5nISk6IFVzZXIhCiAgICB9CgogICAgdHlwZSBVc2VyIHsKICAgICAgICBpZDogSUQhCiAgICAgICAgbmFtZTogU3RyaW5nIQogICAgICAgIGVtYWlsOiBTdHJpbmcKICAgICAgICBwb3N0czogW1Bvc3QhXQogICAgfQoKICAgIHR5cGUgUG9zdCB7CiAgICAgICAgaWQ6IElEIQogICAgICAgIHRpdGxlOiBTdHJpbmchCiAgICAgICAgcHVibGlzaGVkOiBCb29sZWFuIQogICAgICAgIGxpbms6IFN0cmluZwogICAgfQpgKTsKCm1vZHVsZS5leHBvcnRzID0gc2NoZW1hOwoKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBhYm92ZSBjb2RlLCB3ZSBoYXZlIGNyZWF0ZWQgZm91ciB0eXBlcywgY29uc2lzdGluZyBvZiB0d28gYnVpbHQtaW4gdHlwZXMgKCZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7KSBhbmQgdHdvIGN1c3RvbSB0eXBlcyAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXNlciZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1Bvc3QmbHQ7L2NvZGUmZ3Q7KS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtCZWdpbm5pbmcgd2l0aCB0aGUgY3VzdG9tIHR5cGVzLCB3ZSBkZWZpbmVkIHRoZSBmb2xsb3dpbmc6Jmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VyJmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHVzZXIgaW4gdGhlIGFwcGxpY2F0aW9uIHdpdGggaXRzIHJlc3BlY3RpdmUgZmllbGRzIGFuZCBhIHJlbGF0aW9uYWwgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cG9zdHMmbHQ7L2NvZGUmZ3Q7IGZpZWxkLCB3aGljaCByZXR1cm5zIGFuIGFycmF5IG9mIHBvc3RzIGNyZWF0ZWQgYnkgdGhlIHVzZXImbHQ7L2xpJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtQb3N0Jmx0Oy9jb2RlJmd0OzogYSB0eXBlIHJlcHJlc2VudGluZyBhIHB1YmxpY2F0aW9uIGNyZWF0ZWQgYnkgYSB1c2VyIGluIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGl0cyByZXNwZWN0aXZlIGZpZWxkcyZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OzogaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1F1ZXJ5Jmx0Oy9jb2RlJmd0OyB0eXBlLCB3ZSBkZWZpbmVkIHR3byBwaWVjZXMgb2YgaW5mb3JtYXRpb24gdGhhdCBjYW4gYmUgcXVlcmllZCBmcm9tIG91ciBHcmFwaFFMIHNlcnZlciBhcyBmb2xsb3dzOgogICAgJmx0O3VsJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlcnMmbHQ7L2NvZGUmZ3Q7OiBhbiBhcnJheSBvZiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtVc2VycyZsdDsvY29kZSZndDsmbHQ7L2xpJmd0OwogICAgICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7dXNlciZsdDsvY29kZSZndDs6IGEgc2luZ2xlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O1VzZXImbHQ7L2NvZGUmZ3Q7IHdpdGggdGhlIHNwZWNpZmllZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgaW4gdGhlIGFyZ3VtZW50cyBsaXN0Jmx0Oy9saSZndDsKICAgICZsdDsvdWwmZ3Q7CiAgJmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7OiBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7TXV0YXRpb24mbHQ7L2NvZGUmZ3Q7IHR5cGUsIHdlIGRlZmluZWQgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VkaXRVc2VyJmx0Oy9jb2RlJmd0OyBtdXRhdGlvbiwgd2hpY2gsIGdpdmVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtpZCZsdDsvY29kZSZndDsgb2YgdGhlIHVzZXIsIGNhbiBiZSBjYWxsZWQgdG8gZWRpdCBhIHVzZXIgYW5kIHRoZW4gdXBkYXRlIHRoZSBpbmZvcm1hdGlvbiAoJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bmFtZSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2VtYWlsJmx0Oy9jb2RlJmd0OykmbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhlIHNjaGVtYSBpcyBjcmVhdGVkIHVzaW5nIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtidWlsZFNjaGVtYSZsdDsvY29kZSZndDsgb2YgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2dyYXBocWwmbHQ7L2NvZGUmZ3Q7IHBhY2thZ2UgYW5kIGV4cG9ydGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O01vY2tpbmcgZGF0YSZsdDsvaDImZ3Q7CiZsdDtwJmd0O0luIG9yZGVyIHRvIGhhdmUgcmVzdWx0cyBmb3Igb3VyIHF1ZXJpZXMsIHdlIG5lZWQgZGF0YS4gRm9yIHRoaXMgZXhlcmNpc2UsIHdlIHdpbGwgYmUgdXNpbmcgTW9uZ29EQi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIb3dldmVyLCBzaW5jZSB0aGUgZ29hbCBvZiB0aGlzIHBvc3QgaXMgdG8gZGVtb25zdHJhdGUgZGVwbG95aW5nIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyLCB3ZSB3b27igJl0IGJvdGhlciB3aXRoIHNldHRpbmcgdXAgYSBNb25nb0RCIHNlcnZlci4gSW5zdGVhZCwgd2Ugd2lsbCAgdXNlIGEgbW9ja2VkIHZlcnNpb24gdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O21vbmdvZGItbWVtb3J5LXNlcnZlciZsdDsvY29kZSZndDsuIFRoaXMgcGFja2FnZSBhbGxvd3MgdXMgdG8gY3JlYXRlIGFuZCB1c2UgYW4gaW4tbWVtb3J5IE1vbmdvREIgZGF0YWJhc2Ugc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RvIHNldCB0aGlzIHVwLCBpbnN0YWxsIHRoZSByZXF1aXJlZCBwYWNrYWdlcyBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBhdCB0aGUgcm9vdCBvZiB5b3VyIHByb2plY3Q6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtucG0gaW5zdGFsbCAtLXNhdmUgbW9uZ29kYiBtb25nb2RiLW1lbW9yeS1zZXJ2ZXIKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwombHQ7cCZndDtUaGlzIGluc3RhbGxhdGlvbiBtaWdodCB0YWtlIGEgd2hpbGUsIGRlcGVuZGluZyBvbiB5b3VyIGRvd25sb2FkIHNwZWVkLiBNb25nb0RCIHdhcyBhdCBsZWFzdCA2NiBtZWdhYnl0ZXMgaW4gc2l6ZSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7T25jZSB0aGUgaW5zdGFsbGF0aW9uIGlzIGNvbXBsZXRlLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhLmpzJmx0Oy9jb2RlJmd0OyBpbiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c3JjJmx0Oy9jb2RlJmd0OyBmb2xkZXIuIFRoaXMgZmlsZSB3aWxsIGV4cG9ydCBhbiBhcnJheSBvZiBoYXJkLWNvZGVkIHVzZXIgZGF0YS4gUGFzdGUgdGhlIGZvbGxvd2luZyBjb2RlIGJlbG93IGludG8gdGhlIGZpbGUuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBVc2VycyA9IFsKICB7CiAgICBpZDogMSwKICAgIG5hbWU6ICZxdW90O0Zpa2F5byBBZGVwb2p1JnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2ZpazRjaHJpc3RAeWFob28uY29tJnF1b3Q7LAogICAgcG9zdHM6IFsKICAgICAgewogICAgICAgIGlkOiAxLAogICAgICAgIHRpdGxlOiAmcXVvdDtDcmVhdGluZyBhbiBFbW9qaSBHYW1lIHdpdGggVnVlLCBBdXRoMCwgYW5kIEdvb2dsZSBWaXNpb24gQVBJJnF1b3Q7LAogICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSwKICAgICAgICBsaW5rOgogICAgICAgICAgJnF1b3Q7aHR0cHM6Ly9hdXRoMC5jb20vYmxvZy9jcmVhdGluZy1hbi1lbW9qaS1nYW1lLXdpdGgtdnVlLWF1dGgwLWFuZC1nb29nbGUtdmlzaW9uLWFwaS8mcXVvdDssCiAgICAgICAgYXV0aG9yOiAxCiAgICAgIH0sCiAgICAgIHsKICAgICAgICBpZDogMiwKICAgICAgICB0aXRsZTogJnF1b3Q7RWxlY3Ryb24gVHV0b3JpYWw6IEJ1aWxkaW5nIE1vZGVybiBEZXNrdG9wIEFwcHMgd2l0aCBWdWUuanMmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2F1dGgwLmNvbS9ibG9nL2VsZWN0cm9uLXR1dG9yaWFsLWJ1aWxkaW5nLW1vZGVybi1kZXNrdG9wLWFwcHMtd2l0aC12dWUtanMvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDMsCiAgICAgICAgdGl0bGU6ICZxdW90O1N0YXRlIE1hbmFnZW1lbnQgd2l0aCBWdWV4OiBhIFByYWN0aWNhbCBUdXRvcmlhbCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazoKICAgICAgICAgICZxdW90O2h0dHBzOi8vYXV0aDAuY29tL2Jsb2cvc3RhdGUtbWFuYWdlbWVudC13aXRoLXZ1ZXgtYS1wcmFjdGljYWwtdHV0b3JpYWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMQogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMiwKICAgIG5hbWU6ICZxdW90O0pvaG4gRG9lJnF1b3Q7LAogICAgZW1haWw6ICZxdW90O2pvaG5AY29tcGFueS5jb20mcXVvdDssCiAgICBwb3N0czogWwogICAgICB7CiAgICAgICAgaWQ6IDQsCiAgICAgICAgdGl0bGU6ICZxdW90O0J1aWxkIGEgQ0kgcG93ZXJlZCBSRVNUZnVsIEFQSSB3aXRoIExhcmF2ZWwmcXVvdDssCiAgICAgICAgcHVibGlzaGVkOiB0cnVlLAogICAgICAgIGxpbms6CiAgICAgICAgICAmcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9ibG9nL2J1aWxkLWEtY2ktcG93ZXJlZC1yZXN0ZnVsLWFwaS13aXRoLWxhcmF2ZWwvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9LAogICAgICB7CiAgICAgICAgaWQ6IDUsCiAgICAgICAgdGl0bGU6ICZxdW90O0F1dG9tYXRlIHlvdXIgTnV4dC5qcyBhcHAgZGVwbG95bWVudCZxdW90OywKICAgICAgICBwdWJsaXNoZWQ6IHRydWUsCiAgICAgICAgbGluazogJnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9hdXRvbWF0ZS15b3VyLW51eHQtanMtYXBwLWRlcGxveW1lbnQvJnF1b3Q7LAogICAgICAgIGF1dGhvcjogMgogICAgICB9CiAgICBdCiAgfSwKICB7CiAgICBpZDogMywKICAgIG5hbWU6ICZxdW90O0phbmUgUGF1bCZxdW90OywKICAgIGVtYWlsOiAmcXVvdDtqYW5lQGNvbXBhbnkuY29tJnF1b3Q7LAogICAgcG9zdHM6IFtdCiAgfQpdOwoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgVXNlcnMKfTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBjb2RlIGFib3ZlLCB3ZSBoYXZlIGFuIGFycmF5IG9mIHVzZXIgb2JqZWN0cyB3aXRoIHRoZWlyIGNvcnJlc3BvbmRpbmcgcG9zdHMuIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBiZSB1c2VkIHRvIHNlZWQgb3VyIGluLW1lbW9yeSBkYXRhYmFzZSBvbmNlIGl0IGlzIGluc3RhbnRpYXRlZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCB0YXNrIGlzIHRvIHNldCB1cCBvdXIgbW9jayBNb25nb0RCIGRhdGFiYXNlIHNlcnZlci4gSW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyLCBjcmVhdGUgYSBuZXcgZmlsZSBuYW1lZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkYXRhYmFzZS5qcyZsdDsvY29kZSZndDsgYW5kIGluc2VydCB0aGUgZm9sbG93aW5nIGNvZGUgaW50byB0aGUgZmlsZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O01vbmdvTWVtb3J5U2VydmVyJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtyZXF1aXJlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtzMiZxdW90OyZndDsmcXVvdDttb25nb2RiLW1lbW9yeS1zZXJ2ZXImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O21vbmdvZGImcXVvdDsmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtjb25zdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bm8mcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O3JlcXVpcmUmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90Oy4vZGF0YSZxdW90OyZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0Oyk7Jmx0Oy9zcGFuJmd0OwoKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7bGV0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDtudWxsJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXN5bmMmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7ZnVuY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25mJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoKSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDt7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7bmV3Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtNb25nb01lbW9yeVNlcnZlciZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygpOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrJnF1b3Q7Jmd0O2NvbnN0Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtubyZxdW90OyZndDttb25nb0RCVVJMJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7YXdhaXQmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7LiZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtnZXRDb25uZWN0aW9uU3RyaW5nJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7Y29uc3QmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O25vJnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7PSZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7TW9uZ29DbGllbnQmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3QmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vbmdvREJVUkwmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDssJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O3smbHQ7L3NwYW4mZ3Q7CiAgICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDt1c2VOZXdVcmxQYXJzZXImbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs6Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtrYyZxdW90OyZndDt0cnVlJmx0Oy9zcGFuJmd0OwogICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSk7Jmx0Oy9zcGFuJmd0OwoKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtjMSZxdW90OyZndDsvL1NlZWQgRGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7CiAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDtpZiZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O28mcXVvdDsmZ3Q7ISZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OykmbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7eyZsdDsvc3BhbiZndDsKICAgICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RhdGFiYXNlJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oz0mbHQ7L3NwYW4mZ3Q7ICZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2Nvbm5lY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2RiJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KCk7Jmx0Oy9zcGFuJmd0OwogICAgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7ayZxdW90OyZndDthd2FpdCZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YWJhc2UmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDsuJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O2NvbGxlY3Rpb24mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDsoJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3MyJnF1b3Q7Jmd0OyZxdW90O3VzZXJzJnF1b3Q7Jmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7KSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7aW5zZXJ0TWFueSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OygmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZGF0YSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7VXNlcnMmbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7cCZxdW90OyZndDspOyZsdDsvc3BhbiZndDsKICAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0O30mbHQ7L3NwYW4mZ3Q7CgogICZsdDtzcGFuIGNsYXNzPSZxdW90O2smcXVvdDsmZ3Q7cmV0dXJuJmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtkYXRhYmFzZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtwJnF1b3Q7Jmd0OzsmbHQ7L3NwYW4mZ3Q7CiZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7fSZsdDsvc3BhbiZndDsKCiZsdDtzcGFuIGNsYXNzPSZxdW90O254JnF1b3Q7Jmd0O21vZHVsZSZsdDsvc3BhbiZndDsmbHQ7c3BhbiBjbGFzcz0mcXVvdDtvJnF1b3Q7Jmd0Oy4mbHQ7L3NwYW4mZ3Q7Jmx0O3NwYW4gY2xhc3M9JnF1b3Q7bngmcXVvdDsmZ3Q7ZXhwb3J0cyZsdDsvc3BhbiZndDsgJmx0O3NwYW4gY2xhc3M9JnF1b3Q7byZxdW90OyZndDs9Jmx0Oy9zcGFuJmd0OyAmbHQ7c3BhbiBjbGFzcz0mcXVvdDtueCZxdW90OyZndDtzdGFydERhdGFiYXNlJmx0Oy9zcGFuJmd0OyZsdDtzcGFuIGNsYXNzPSZxdW90O3AmcXVvdDsmZ3Q7OyZsdDsvc3BhbiZndDsKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7SW4gdGhlIGNvZGUgYWJvdmUsIHdlIGV4cG9ydCBhICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3N0YXJ0RGF0YWJhc2UmbHQ7L2NvZGUmZ3Q7IGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHNpbXBseSBzdGFydHMgYSBuZXcgKG1vY2tlZCkgTW9uZ29EQiBzZXJ2ZXIgaW5zdGFuY2UgYW5kIGdldHMgdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciB0aGUgZGF0YWJhc2UgaW5zdGFuY2UuIEl0IHRoZW4gY3JlYXRlcyBhIG5ldyBNb25nb0RCIGNsaWVudCBjb25uZWN0aW9uIHVzaW5nIHRoZSBjb25uZWN0aW9uIHN0cmluZy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwgd2Ugc2VlZCBpdCB3aXRoIG91ciB1c2VyIGRhdGEgZXhwb3J0ZWQgZnJvbSBvdXIgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZGF0YS5qcyZsdDsvY29kZSZndDsgZmlsZS4gQSBjaGVjayBpcyBtYWRlIHRvIHNlZSBpZiB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIGlzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O251bGwmbHQ7L2NvZGUmZ3Q7IGJlZm9yZSBzZWVkaW5nIGl0IHdpdGggZGF0YSwgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBmcm9tIGJlaW5nIGVudGVyZWQgaW50byB0aGUgZGF0YWJhc2UgZWFjaCB0aW1lIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdXAuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RmluYWxseSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlIGRhdGFiYXNlIHJlZmVyZW5jZS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVmaW5pbmcgb3VyIHJlc29sdmVycyZsdDsvaDImZ3Q7CiZsdDtwJmd0O05leHQgdXAsIHdlIG5lZWQgdG8gZGVmaW5lIHJlc29sdmVycyBmb3Igb3VyIEdyYXBoUUwgcXVlcmllcyBpbiBvcmRlciB0byByZXR1cm4gdGhlIGFwcHJvcHJpYXRlIGRhdGEgZm9yIGVhY2ggcXVlcnkgb3BlcmF0aW9uLiBXZSB3aWxsIGRlZmluZSByZXNvbHZlcnMgZm9yIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDt1c2VycyZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3VzZXImbHQ7L2NvZGUmZ3Q7IHF1ZXJpZXMgYW5kIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtlZGl0VXNlciZsdDsvY29kZSZndDsgbXV0YXRpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Q3JlYXRlIGEgbmV3IGZpbGUgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NyYyZsdDsvY29kZSZndDsgZm9sZGVyIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3Jlc29sdmVycy5qcyZsdDsvY29kZSZndDsgYW5kIHBhc3RlIGluIHRoZSBmb2xsb3dpbmcgY29kZS4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2NvbnN0IHJlc29sdmVycyA9IHsKICB1c2VyczogYXN5bmMgKF8sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIKICAgICAgLmNvbGxlY3Rpb24oJnF1b3Q7dXNlcnMmcXVvdDspCiAgICAgIC5maW5kKCkKICAgICAgLnRvQXJyYXkoKTsKICB9LAogIHVzZXI6IGFzeW5jICh7IGlkIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CiAgICByZXR1cm4gZGIuY29sbGVjdGlvbigmcXVvdDt1c2VycyZxdW90OykuZmluZE9uZSh7IGlkIH0pOwogIH0sCiAgLy9NdXRhdGlvbiByZXNvbHZlcnMKICBlZGl0VXNlcjogYXN5bmMgKHsgaWQsIG5hbWUsIGVtYWlsIH0sIGNvbnRleHQpID0mYW1wO2d0OyB7CiAgICBjb25zdCB7IGRiIH0gPSBhd2FpdCBjb250ZXh0KCk7CgogICAgcmV0dXJuIGRiCiAgICAgIC5jb2xsZWN0aW9uKCZxdW90O3VzZXJzJnF1b3Q7KQogICAgICAuZmluZE9uZUFuZFVwZGF0ZSgKICAgICAgICB7IGlkIH0sCiAgICAgICAgeyAkc2V0OiB7IG5hbWUsIGVtYWlsIH0gfSwKICAgICAgICB7IHJldHVybk9yaWdpbmFsOiBmYWxzZSB9CiAgICAgICkKICAgICAgLnRoZW4ocmVzcCA9JmFtcDtndDsgcmVzcC52YWx1ZSk7CiAgfSAKfTsKCm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZXJzOwoKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QXMgc2VlbiBhYm92ZSwgd2Ugbm93IGhhdmUgcmVzb2x2ZXJzIGZvciB0aGUgdGhyZWUgR3JhcGhRTCByZXF1ZXN0cyBhdmFpbGFibGUgb24gb3VyIHNlcnZlci4gVGhlc2UgcmVzb2x2ZXJzIGZldGNoIGFuZCB1cGRhdGUgZGF0YSB1c2luZyB0aGUgZGF0YWJhc2UgcmVmZXJlbmNlIHdlIGNyZWF0ZWQgZWFybGllciBieSByZWZlcmVuY2luZyBpdCBmcm9tIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtjb250ZXh0Jmx0Oy9jb2RlJmd0OyBvYmplY3Qgb2YgdGhlIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1RoaXMgcmVmZXJlbmNlIHdpbGwgYmUgYWRkZWQgdG8gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2NvbnRleHQmbHQ7L2NvZGUmZ3Q7IG9iamVjdCBvZiBvdXIgR3JhcGhRTCBzZXJ2ZXIgc2V0dXAgaW4gdGhlIG5leHQgc2VjdGlvbiB3aGVuIHdlIHB1dCBldmVyeXRoaW5nIHRvZ2V0aGVyLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTZXR0aW5nIHVwIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O0l0IGlzIHRpbWUgdG8gcHV0IGV2ZXJ5IGNvbXBvbmVudCB3ZSBidWlsdCB0b2dldGhlciB0byBzZXQgdXAgb3VyIEdyYXBoUUwgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0JlZm9yZSB3ZSBiZWdpbiwgd2UgbmVlZCB0byBpbnN0YWxsIG9uZSBtb3JlIHBhY2thZ2UuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIGNvbWVzIHdpdGggdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0dyYXBoaVFMJmx0Oy9jb2RlJmd0OyBhcHBsaWNhdGlvbiwgd2hpY2ggYWxsb3dzIHlvdSB0byBxdWVyeSB5b3VyIEdyYXBoUUwgZW5kcG9pbnQsIGJ1dCBsZXTigJlzIGFkZCBhIHRvb2wgdGhhdCBpcyBtb3JlIHJvYnVzdC4gV2Ugd2lsbCBpbnN0YWxsIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJmx0Oy9jb2RlJmd0OyBwYWNrYWdlIHRvIGdpdmUgdXMgYSBmYW5jaWVyIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgb3VyIEdyYXBoUUwgZW5kcG9pbnQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSBmb2xsb3dpbmcgY29kZSB0byBpbnN0YWxsIHRoZSBwYWNrYWdlOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7bnBtIGluc3RhbGwgLS1zYXZlIGdyYXBocWwtcGxheWdyb3VuZC1taWRkbGV3YXJlLWV4cHJlc3MKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7V2Ugd2lsbCB1c2UgdGhpcyBtaWRkbGV3YXJlIHRvIHNldCB1cCB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kIGZvciBxdWVyeWluZyBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0xldOKAmXMgc2V0IHVwIG91ciBzZXJ2ZXIgYnkgY3JlYXRpbmcgYSBmaWxlIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2luZGV4LmpzJmx0Oy9jb2RlJmd0OyBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBhbmQgcGxhY2luZyB0aGUgZm9sbG93aW5nIGNvZGUgaW4gaXQuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtjb25zdCBleHByZXNzID0gcmVxdWlyZSgmcXVvdDtleHByZXNzJnF1b3Q7KTsKY29uc3QgZ3JhcGhxbEhUVFAgPSByZXF1aXJlKCZxdW90O2V4cHJlc3MtZ3JhcGhxbCZxdW90Oyk7CmNvbnN0IHNjaGVtYSA9IHJlcXVpcmUoJnF1b3Q7Li9zcmMvc2NoZW1hJnF1b3Q7KTsKY29uc3QgcmVzb2x2ZXJzID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9yZXNvbHZlcnMmcXVvdDspOwpjb25zdCBzdGFydERhdGFiYXNlID0gcmVxdWlyZSgmcXVvdDsuL3NyYy9kYXRhYmFzZSZxdW90Oyk7CmNvbnN0IGV4cHJlc3NQbGF5Z3JvdW5kID0gcmVxdWlyZSgmcXVvdDtncmFwaHFsLXBsYXlncm91bmQtbWlkZGxld2FyZS1leHByZXNzJnF1b3Q7KS5kZWZhdWx0OwoKLy8gQ3JlYXRlIGEgY29udGV4dCBmb3IgaG9sZGluZyBjb250ZXh0dWFsIGRhdGEgCmNvbnN0IGNvbnRleHQgPSBhc3luYyAoKSA9JmFtcDtndDsgewogIGNvbnN0IGRiID0gYXdhaXQgc3RhcnREYXRhYmFzZSgpOwoKICByZXR1cm4geyBkYiB9Owp9OwoKY29uc3QgYXBwID0gZXhwcmVzcygpOwoKYXBwLnVzZSgKICAmcXVvdDsvZ3JhcGhxbCZxdW90OywKICBncmFwaHFsSFRUUCh7CiAgICBzY2hlbWEsCiAgICByb290VmFsdWU6IHJlc29sdmVycywKICAgIGNvbnRleHQKICB9KQopOwoKLy9HcmFwaHFsIFBsYXlncm91bmQgcm91dGUKYXBwLmdldCgmcXVvdDsvcGxheWdyb3VuZCZxdW90OywgZXhwcmVzc1BsYXlncm91bmQoeyBlbmRwb2ludDogJnF1b3Q7L2dyYXBocWwmcXVvdDsgfSkpOwoKY29uc3QgcG9ydCA9IHByb2Nlc3MuZW52LlBPUlQgfHwgJnF1b3Q7NDAwMCZxdW90OzsKCmFwcC5saXN0ZW4ocG9ydCk7Cgpjb25zb2xlLmxvZyhg8J+agCBTZXJ2ZXIgcmVhZHkgYXQgaHR0cDovL2xvY2FsaG9zdDo0MDAwL2dyYXBocWxgKTsKCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0luIHRoZSBmaWxlIGFib3ZlLCB3ZSBzdGFydCBieSBpbXBvcnRpbmcgYWxsIG5lY2Vzc2FyeSBtb2R1bGVzLiBUaGVuLCB3ZSBjcmVhdGUgb3VyIEdyYXBoUUwgY29udGV4dCBhbmQgcmV0dXJuIGFuIG9iamVjdCBmcm9tIGl0IGNvbnRhaW5pbmcgdGhlIHJlZmVyZW5jZSB0byBvdXIgTW9uZ29EQiBpbnN0YW5jZS4gTmV4dCwgd2UgY3JlYXRlIG91ciBFeHByZXNzSlMgYXBwbGljYXRpb24gYW5kIHNldCB1cCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZXhwcmVzcy1ncmFwaHFsJmx0Oy9jb2RlJmd0OyBtaWRkbGV3YXJlIHdpdGggR3JhcGhRTCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzY2hlbWEmbHQ7L2NvZGUmZ3Q7LCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtyZXNvbHZlcnMmbHQ7L2NvZGUmZ3Q7LCBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29udGV4dCZsdDsvY29kZSZndDsuIFdlIHRoZW4gc2V0IHVwIHRoZSBHcmFwaFFMIFBsYXlncm91bmQgYXQgdGhlIHJvdXRlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBsb2FkIG91ciBHcmFwaFFMIGVuZHBvaW50LiBGaW5hbGx5LCB3ZSBzdGFydCBvdXIgRXhwcmVzc0pTIHNlcnZlciB0byBsaXN0ZW4gYXQgcG9ydCA0MDAwIGFuZCBwcmludCBhIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUuJmx0Oy9wJmd0OwoKJmx0O2gyJmd0O1F1ZXJ5aW5nIHRoZSBHcmFwaFFMIHNlcnZlciZsdDsvaDImZ3Q7CiZsdDtwJmd0O05vdyB0aGF0IHdlIGhhdmUgb3VyIHNlcnZlciBzZXQgdXAsIGxldOKAmXMgdGFrZSBpdCBmb3IgYSBzcGluLiBGaXJzdCwgbGV04oCZcyBjcmVhdGUgYSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtzdGFydCZsdDsvY29kZSZndDsgc2NyaXB0IGluICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3BhY2thZ2UuanNvbiZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCBvdXIgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O0FkZCB0aGUgZm9sbG93aW5nIHNjcmlwdCB0byB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2NyaXB0cyZsdDsvY29kZSZndDsgc2VjdGlvbiBvZiB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7cGFja2FnZS5qc29uJmx0Oy9jb2RlJmd0OyBmaWxlLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7Li4uCgrigJxzY3JpcHRz4oCdIDogewoJLi4uLAoJ4oCcc3RhcnTigJ0gOiDigJxub2RlIGluZGV4Lmpz4oCdCn0KJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25wbSBzdGFydCZsdDsvY29kZSZndDsgdG8gYm9vdCB1cCB0aGUgc2VydmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O09uY2UgdGhlIHNlcnZlciBpcyB1cCBhbmQgcnVubmluZywgb3BlbiB1cCB5b3VyIGJyb3dzZXIgYW5kIHZpc2l0ICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMC9wbGF5Z3JvdW5kJmx0Oy9jb2RlJmd0OyB0byBvcGVuIHVwIHRoZSBwbGF5Z3JvdW5kLiBZb3Ugd2lsbCBzZWUgYSBzY3JlZW4gc2ltaWxhciB0byB0aGUgb25lIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDEucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgcGxheWdyb3VuZCBhdXRvbWF0aWNhbGx5IHBvaW50cyB0byBvdXIgR3JhcGhRTCBlbmRwb2ludC4gRnJvbSBoZXJlIHdlIGNhbiB3cml0ZSBxdWVyaWVzIGFnYWluc3Qgb3VyIGVuZHBvaW50IGFuZCBnZXQgdGhlIHJlc3VsdHMuIFBhc3RlIHRoZSBxdWVyeSBiZWxvdyBpbnRvIHRoZSBxdWVyeSBzZWN0aW9uIG9mIHRoZSBwbGF5Z3JvdW5kIGFuZCBoaXQgUGxheSB0byBydW4gaXQ6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDt7CiAgdXNlcnMgewogICAgbmFtZQogICAgZW1haWwKICAgIHBvc3RzIHsKICAgICAgdGl0bGUKICAgICAgcHVibGlzaGVkCiAgICB9CiAgfQp9CgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtSdW5uaW5nIHRoZSBhYm92ZSBxdWVyeSB3aWxsIHByb2R1Y2UgdGhlIHJlc3VsdCBzaG93biBvbiB0aGUgc2NyZWVuIGJlbG93LiZsdDsvcCZndDsKCiZsdDtwIGFsaWduPSZxdW90O2NlbnRlciZxdW90OyZndDsKICAgJmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsMi5wbmcmcXVvdDsgd2lkdGg9JnF1b3Q7ODc1JnF1b3Q7IC8mZ3Q7CiZsdDsvcCZndDsKCiZsdDtwJmd0O0FzIHNlZW4gYWJvdmUsIG91ciBHcmFwaFFMIHNlcnZlciBpcyB3b3JraW5nIGZpbmUgYW5kIHJldHVybmluZyB0aGUgZXhwZWN0ZWQgZGF0YS4mbHQ7L3AmZ3Q7CgombHQ7aDImZ3Q7RGVwbG95aW5nIHRvIEhlcm9rdSB3aXRoIENpcmNsZUNJJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7T3VyIGZpbmFsIHRhc2sgaXMgdG8gZGVwbG95IG91ciBHcmFwaFFMIHNlcnZlciB0aHJvdWdoIGEgQ0kgcGlwZWxpbmUgd2l0aCBDaXJjbGVDSSBvbiB0aGUgSGVyb2t1IGhvc3RpbmcgcGxhdGZvcm0uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2UgYXJlIGdvaW5nIHRvIHRha2UgdGhlIGZvbGxvd2luZyBzdGVwcyB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7UHVzaCB0aGUgcHJvamVjdCB0byBhIEdpdEh1YiByZXBvc2l0b3J5Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7Q3JlYXRlIGEgbmV3IEhlcm9rdSBhcHAgYW5kIGdldCB0aGUgSGVyb2t1IEFQSSBrZXkmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgYSBuZXcgcHJvamVjdCB0byBvdXIgQ2lyY2xlQ0kgYWNjb3VudCBhbmQgY29ubmVjdCBpdCB0byB0aGUgR2l0SHViIHJlcG8mbHQ7L2xpJmd0OwogICZsdDtsaSZndDtBZGQgb3VyIEhlcm9rdSBhcHAgbmFtZSBhbmQgQVBJIGtleSBhcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gb3VyIG5ldyBwcm9qZWN0Jmx0Oy9saSZndDsKICAmbHQ7bGkmZ3Q7V3JpdGUgb3VyIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgZGVwbG95bWVudCB0byBIZXJva3UmbHQ7L2xpJmd0OwogICZsdDtsaSZndDtQdXNoIHRoZSBjb25maWd1cmF0aW9uIHRvIG91ciBHaXRIdWIgcmVwbyB0byBkZXBsb3kgdG8gSGVyb2t1Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O0xldOKAmXMgYmVnaW4uIEZpcnN0LCBwdXNoIHRoZSBwcm9qZWN0IHRvIGEgR2l0SHViIHJlcG8uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TmV4dCwgY3JlYXRlIGEgSGVyb2t1IGFwcGxpY2F0aW9uIGFzIHNob3duIGJlbG93LiBUaGUgbmFtZSB5b3UgZW50ZXIgaXMgdGhlIG5hbWUgeW91IHdpbGwgc2F2ZSBhcyB5b3VyIEhlcm9rdSBhcHAgbmFtZSBvbiBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWwzLnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7WW91IGNhbiBnZXQgeW91ciBIZXJva3UgQVBJIGtleSBieSBnb2luZyB0byAmbHQ7c3Ryb25nJmd0O0FjY291bnQgU2V0dGluZ3MmbHQ7L3N0cm9uZyZndDsgYW5kIHNjcm9sbGluZyBkb3duIHRvIHRoZSAmbHQ7c3Ryb25nJmd0O0FQSSBLZXkmbHQ7L3N0cm9uZyZndDsgc2VjdGlvbi4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtUaGUgbmV4dCBzdGVwIHRvIGRlcGxveWluZyBvdXIgYXBwbGljYXRpb24gdG8gSGVyb2t1IGlzIHRvIGNvbm5lY3QgdGhlIGFwcGxpY2F0aW9uIG9uIG91ciBHaXRIdWIgcmVwb3NpdG9yeSB0byBDaXJjbGVDSS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIZWFkIHRvIHlvdXIgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9kYXNoYm9hcmQmcXVvdDsmZ3Q7Q2lyY2xlQ0kgZGFzaGJvYXJkJmx0Oy9hJmd0OyBhbmQgYWRkIHRoZSBwcm9qZWN0IGluIHRoZSAmbHQ7c3Ryb25nJmd0O0FkZCBQcm9qZWN0Jmx0Oy9zdHJvbmcmZ3Q7IHNlY3Rpb24uJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsNC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtwJmd0O05leHQgdG8gc2V0IHVwIHlvdXIgcHJvamVjdCAoaW4gdGhpcyBjYXNlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O3NpbXBsZS1ncmFwaHFsLW5vZGUtc2VydmVyJmx0Oy9jb2RlJmd0OyksIGNsaWNrICZsdDtzdHJvbmcmZ3Q7U2V0IFVwIFByb2plY3QmbHQ7L3N0cm9uZyZndDsuIFRoaXMgd2lsbCBicmluZyB5b3UgdG8gYSBwYWdlIHNpbWlsYXIgdG8gdGhlIG9uZSBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCBhbGlnbj0mcXVvdDtjZW50ZXImcXVvdDsmZ3Q7CiAgICZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDUucG5nJnF1b3Q7IHdpZHRoPSZxdW90Ozg3NSZxdW90OyAvJmd0OwombHQ7L3AmZ3Q7CgombHQ7cCZndDtDbGljayAmbHQ7c3Ryb25nJmd0O1N0YXJ0IGJ1aWxkaW5nJmx0Oy9zdHJvbmcmZ3Q7IHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIHByb2plY3QuIFRoaXMgd2lsbCBpbW1lZGlhdGVseSBnaXZlIHVzIGFuIGVycm9yIGluZGljYXRpbmcgdGhhdCBhIENpcmNsZUNJIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW5ub3QgYmUgZm91bmQgaW4gdGhlIHByb2plY3QuIFRoaXMgaXMgdW5kZXJzdGFuZGFibGUsIGFzIHdlIGFyZSB5ZXQgdG8gaW5jbHVkZSBvdXIgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBmaWxlLiBXZSB3aWxsIGJlIGRvaW5nIHRoYXQgbGF0ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlIG5leHQgc3RlcCBpcyB0byBhZGQgb3VyIEhlcm9rdSBkZXRhaWxzIGFzICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wL2Vudi12YXJzLyZxdW90OyZndDtlbnZpcm9ubWVudCB2YXJpYWJsZXMmbHQ7L2EmZ3Q7IHRvIHRoZSBuZXdseSBzZXQgdXAgcHJvamVjdC4KSW4gb3JkZXIgdG8gcHVzaCBvdXIgcHJvamVjdCB0byBIZXJva3UgZnJvbSBDaXJjbGVDSSwgd2UgbmVlZCB0byBjb25maWd1cmUgYW4gYXV0aGVudGljYXRlZCBoYW5kc2hha2UgYmV0d2VlbiBDaXJjbGVDSSBhbmQgSGVyb2t1LiBUaGlzIGlzIGRvbmUgYnkgY3JlYXRpbmcgdHdvIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgc2V0dGluZ3MgZm9yIHlvdXIgQ2lyY2xlQ0kgcHJvamVjdC4gVGhlIHR3byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlOiZsdDsvcCZndDsKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtIRVJPS1VfQVBQX05BTUUmbHQ7L2NvZGUmZ3Q7OiBUaGlzIGlzIHRoZSBuYW1lIG9mIHlvdXIgSGVyb2t1IGFwcGxpY2F0aW9uIChpbiB0aGlzIGNhc2UgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7c2ltcGxlLWdyYXBocWwtbm9kZS1zZXJ2ZXImbHQ7L2NvZGUmZ3Q7KSZsdDsvbGkmZ3Q7CiAgJmx0O2xpJmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OzogWW91ciBIZXJva3UgYWNjb3VudCBBUEkga2V5LiBUaGlzIGNhbiBiZSBmb3VuZCBvbiB0aGUgJmx0O3N0cm9uZyZndDtBY2NvdW50Jmx0Oy9zdHJvbmcmZ3Q7IHRhYiBvZiB5b3VyIEhlcm9rdSBhY2NvdW50IHVuZGVyICZsdDtzdHJvbmcmZ3Q7QWNjb3VudCBTZXR0aW5ncyZsdDsvc3Ryb25nJmd0Oy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VG8gYWRkIHRoZXNlIGRldGFpbHMsIGhlYWQgb3ZlciB0byB5b3VyIENpcmNsZUNJIGRhc2hib2FyZCBhbmQgY2xpY2sgJmx0O3N0cm9uZyZndDtTZXR0aW5ncyZsdDsvc3Ryb25nJmd0OyBmb3IgeW91ciBwcm9qZWN0LiBPbiB0aGUgc2lkZWJhciBtZW51IG9uIHRoZSBzZXR0aW5ncyBwYWdlLCBjbGljayAmbHQ7c3Ryb25nJmd0O0Vudmlyb25tZW50IFZhcmlhYmxlcyZsdDsvc3Ryb25nJmd0OyB1bmRlciAmbHQ7c3Ryb25nJmd0O0J1aWxkIFNldHRpbmdzJmx0Oy9zdHJvbmcmZ3Q7LiZsdDsvcCZndDsKCiZsdDtwJmd0OyZsdDtpbWcgc3JjPSZxdW90Oy9ibG9nL21lZGlhLzIwMjAtMDQtMjctZ3JhcGhxbDYucG5nJnF1b3Q7IGFsdD0mcXVvdDsmcXVvdDsgLyZndDsmbHQ7L3AmZ3Q7CgombHQ7cCZndDtPbiB0aGUgRW52aXJvbm1lbnQgVmFyaWFibGVzIHBhZ2UsIGNyZWF0ZSB0d28gdmFyaWFibGVzIG5hbWVkICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUFBfTkFNRSZsdDsvY29kZSZndDsgYW5kICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0hFUk9LVV9BUElfS0VZJmx0Oy9jb2RlJmd0OyBhbmQgYWRkIHRoZSByZXNwZWN0aXZlIHZhbHVlcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtXaXRoIHRoZXNlIGluIHBsYWNlLCBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiBjYW4gdXNlIHRoZW0gdG8gbWFrZSBhdXRoZW50aWNhdGVkIGRlcGxveW1lbnRzIHRvIHRoZSBIZXJva3UgcGxhdGZvcm0uCk5vdywgbGV04oCZcyB3cml0ZSBvdXIgQ2lyY2xlQ0kgY29uZmlndXJhdGlvbiB0byBkZXBsb3kgb3VyIEdyYXBoUUwgc2VydmVyIHRvIEhlcm9rdS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtDcmVhdGUgYSBmb2xkZXIgd2l0aCB0aGUgbmFtZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsuY2lyY2xlY2kmbHQ7L2NvZGUmZ3Q7IGF0IHRoZSByb290IG9mIHlvdXIgcHJvamVjdCBhbmQgY3JlYXRlIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Y29uZmlnLnltbCZsdDsvY29kZSZndDsgZmlsZSBpbnNpZGUgaXQuIEFkZCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uJmx0Oy9wJmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O3ZlcnNpb246IDIuMQpvcmJzOgogIGhlcm9rdTogY2lyY2xlY2kvaGVyb2t1QDAuMC4xMAp3b3JrZmxvd3M6CiAgaGVyb2t1X2RlcGxveToKICAgIGpvYnM6CiAgICAgIC0gaGVyb2t1L2RlcGxveS12aWEtZ2l0CiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKJmx0O3AmZ3Q7VGhlIGNvZGUgYWJvdmUgdXNlcyBDaXJjbGVDSeKAmXMgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2NpcmNsZWNpLmNvbS9vcmJzL3JlZ2lzdHJ5L29yYi9jaXJjbGVjaS9oZXJva3UmcXVvdDsmZ3Q7SGVyb2t1IG9yYiZsdDsvYSZndDsgdG8gcGVyZm9ybSBhIHNlYW1sZXNzIGRlcGxveW1lbnQgdG8gSGVyb2t1LiBBbiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2lyY2xlY2kuY29tL29yYnMvJnF1b3Q7Jmd0O29yYiZsdDsvYSZndDsgaXMgYSByZXVzYWJsZSBwYWNrYWdlIG9mIGEgWUFNTCBjb25maWd1cmF0aW9uIHRoYXQgY29uZGVuc2VzIHJlcGVhdGVkIHBpZWNlcyBvZiBjb25maWcgaW50byBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoaXMgb25lIG1ha2VzIGl0IHZlcnkgZWFzeSB0byBkZXBsb3kgdG8gSGVyb2t1IHdpdGhvdXQgd3JpdGluZyBhIHNvcGhpc3RpY2F0ZWQgY29uZmlnIHlvdXJzZWxmLiZsdDsvcCZndDsKCiZsdDtwJmd0O1NhdmUgdGhpcyBmaWxlIGFuZCBwdXNoIHlvdXIgY2hhbmdlcyB0byB0aGUgR2l0SHViIHJlcG9zaXRvcnkuIFRoZW4gd2F0Y2ggeW91ciBDaXJjbGVDSSBkYXNoYm9hcmQgdHJpZ2dlciBhIGRlcGxveW1lbnQgYWZ0ZXIgdGhlIHN1Y2Nlc3NmdWwgcHVzaC4gWW91IHdpbGwgc2VlIGEgc3VjY2Vzc2Z1bCBkZXBsb3ltZW50IG9uIHlvdXIgZGFzaGJvYXJkIHNpbWlsYXIgdG8gdGhlIHNjcmVlbiBiZWxvdy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDsmbHQ7aW1nIHNyYz0mcXVvdDsvYmxvZy9tZWRpYS8yMDIwLTA0LTI3LWdyYXBocWw3LnBuZyZxdW90OyBhbHQ9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Jmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7QXdlc29tZSEmbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXTigJlzIG5vdyB2aXNpdCBvdXIgUGxheWdyb3VuZCBvbiB0aGUgbGl2ZSBhcHBsaWNhdGlvbiB0byBjb25maXJtIHRoYXQgb3VyIGRlcGxveW1lbnQgaXMgZmluZS4gVmlzaXQgdGhlIGxpbmsgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9ZT1VSX0hFUk9LVV9BUFBfTkFNRS5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7LiBGb3Igb3VyIGV4ZXJjaXNlLCB0aGlzIHdpbGwgYmUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7aHR0cHM6Ly9zaW1wbGUtZ3JhcGhxbC1ub2RlLXNlcnZlci5oZXJva3VhcHAuY29tL3BsYXlncm91bmQmbHQ7L2NvZGUmZ3Q7IGFzIHNlZW4gYmVsb3cuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7L2Jsb2cvbWVkaWEvMjAyMC0wNC0yNy1ncmFwaHFsOC5wbmcmcXVvdDsgYWx0PSZxdW90OyZxdW90OyAvJmd0OyZsdDsvcCZndDsKCiZsdDtoMiZndDtDb25jbHVzaW9uJmx0Oy9oMiZndDsKJmx0O3AmZ3Q7SW4gdGhpcyBhcnRpY2xlLCB3ZSBoYXZlIGJlZW4gYWJsZSB0byBzdWNjZXNzZnVsbHkgcHV0IHRvZ2V0aGVyIGEgc2ltcGxlIEdyYXBoUUwgc2VydmVyIGFuZCBhdXRvbWF0ZSBpdHMgZGVwbG95bWVudCB1c2luZyBDaXJjbGVDSS4gR3JhcGhRTCBpcyBoZXJlIHRvIHN0YXkgYW5kIGlzIGV4cGVjdGVkIHRvIGdhaW4gbW9yZSBhZG9wdGlvbiwgc2luY2UgaXRzIG1hbnkgYmVuZWZpdHMgbWFrZSBpdCB3b3J0aHkgb2YgaW5jcmVhc2VkIHVzZS4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtIYXBweSBjb2RpbmchJmx0Oy9wJmd0OwoKJmx0O2hyIC8mZ3Q7CgombHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vdHdpdHRlci5jb20vY29kZXJvbmZsZWVrP2xhbmc9ZW4mcXVvdDsmZ3Q7RmlrYXlvJmx0Oy9hJmd0OyBpcyBhIGZ1bGxzdGFjayBkZXZlbG9wZXIgYW5kIGF1dGhvciB3aXRoIG92ZXIgYSBkZWNhZGUgb2YgZXhwZXJpZW5jZSBkZXZlbG9waW5nIHdlYiBhbmQgbW9iaWxlIHNvbHV0aW9ucy4gSGUgaXMgY3VycmVudGx5IHRoZSBTb2Z0d2FyZSBMZWFkIGF0IFRlY2ggU3BlY2lhbGlzdCBDb25zdWx0aW5nIGFuZCBkZXZlbG9wcyBjb3Vyc2VzIGZvciBQYWNrdCBhbmQgVWRlbXkuIEhlIGhhcyBhIHN0cm9uZyBwYXNzaW9uIGZvciB0ZWFjaGluZyBhbmQgaG9wZXMgdG8gYmVjb21lIGEgZnVsbC10aW1lIGF1dGhvci4mbHQ7L3AmZ3Q7Cgo8L2Rlc2NyaXB0aW9uPgogICAgICAgIAogICAgICA8L2l0ZW0+CiAgICAKICAgICAgCiAgICAgIDxpdGVtPgogICAgICAgIDx0aXRsZT5Eb2NrZXIgYW5kIENJL0NEIHR1dG9yaWFsOiBhIGRlZXAgZGl2ZSBpbnRvIGNvbnRhaW5lcnM8L3RpdGxlPgogICAgICAgIDxsaW5rPmh0dHBzOi8vY2lyY2xlY2kuY29tL2Jsb2cvZG9ja2VyLWFuZC1jaWNkLXR1dG9yaWFsLWEtZGVlcC1kaXZlLWludG8tY29udGFpbmVycy88L2xpbms+CiAgICAgICAgPHB1YkRhdGU+RnJpLCAyNCBBcHIgMjAyMCAxMjowMDowMCAtMDcwMDwvcHViRGF0ZT4KICAgICAgICA8Z3VpZCBpc1Blcm1hTGluaz0idHJ1ZSI+aHR0cHM6Ly9jaXJjbGVjaS5jb20vYmxvZy9kb2NrZXItYW5kLWNpY2QtdHV0b3JpYWwtYS1kZWVwLWRpdmUtaW50by1jb250YWluZXJzLzwvZ3VpZD4KICAgICAgICAKICAgICAgICAgIDxkYzpjcmVhdG9yPkFuZ2VsIFJpdmVyYTwvZGM6Y3JlYXRvcj4KICAgICAgICAKICAgICAgICAKICAgICAgICAgIDxkZXNjcmlwdGlvbj4mbHQ7cCZndDtUaGlzIGlzIGEgZm9sbG93LXVwIHRvIGEgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7IHRoYXQgSSB3cm90ZSBhZnRlciBDaXJjbGVDSSAyLjAgd2FzIHJlbGVhc2VkLiBUaGlzIHJlbGVhc2UgaW1wbGVtZW50ZWQgYnVpbGQgc3VwcG9ydCB1c2luZyBEb2NrZXIgZXhlY3V0b3JzLiBBZnRlciB0aGUgcmVsZWFzZSwgd2UgcmVhbGl6ZWQgdGhhdCBvbmUgb2YgdGhlIGJpZ2dlc3QgYmFycmllcnMgdGhhdCBDaXJjbGVDSSB1c2VycyBlbmNvdW50ZXJlZCB3YXMgYSBsYWNrIG9mIGV4cGVyaWVuY2Ugd2l0aCBEb2NrZXIuIFRoaXMgd2FzIGNvbmZpcm1lZCB0aHJvdWdoIG15IGNvbnZlcnNhdGlvbnMgd2l0aCBudW1lcm91cyBkZXZlbG9wZXJzLCBpbiB0aGUgY29tbXVuaXR5IGFuZCBhdCBldmVudHMsIGFib3V0IHRoZWlyIHVzZSBvZiBjb250YWluZXIgdGVjaG5vbG9naWVzIGluIHRoZWlyICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9jaXJjbGVjaS5jb20vY29udGludW91cy1pbnRlZ3JhdGlvbi8mcXVvdDsmZ3Q7Y29udGludW91cyBpbnRlZ3JhdGlvbiZsdDsvYSZndDsgcGlwZWxpbmVzLiBUaGVzZSBjb252ZXJzYXRpb25zIGhhdmUgaGlnaGxpZ2h0ZWQgdGhhdCBtYW55IGRldmVsb3BlcnMgZG9u4oCZdCBoYXZlIGEgZnVsbCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byB1c2UgY29udGFpbmVyIHRlY2hub2xvZ2llcy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGlzIHBvc3QsIEkgd2lsbCBleHBhbmQgb24gYW5kIGRlbW9uc3RyYXRlIHNvbWUgb2YgdGhlIG1vcmUgdXNlZnVsIERvY2tlciBjb21tYW5kcyBkaXNjdXNzZWQgaW4gbXkgJmx0O2EgaHJlZj0mcXVvdDsvYmxvZy9kb2NrZXItd2hhdC15b3Utc2hvdWxkLWtub3cvJnF1b3Q7Jmd0O3ByZXZpb3VzIHBvc3QmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtXaGF0IGlzIERvY2tlcj8mbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZSBpcyB0aGUgc2ltcGxpZmllZCBkZWZpbml0aW9uIG9mIERvY2tlciB0aGF0IEkgdXNlZCBpbiBteSBwcmV2aW91cyBwb3N0OiZsdDsvcCZndDsKCiZsdDtibG9ja3F1b3RlJmd0OwogICZsdDtwJmd0O0RvY2tlciBpcyBhIHBsYXRmb3JtIGZvciBkZXZlbG9wZXJzIGFuZCBzeXNhZG1pbnMgdG8gZGV2ZWxvcCwgZGVwbG95LCBhbmQgcnVuIGFwcGxpY2F0aW9ucyB1c2luZyBjb250YWluZXJzLiZsdDsvcCZndDsKJmx0Oy9ibG9ja3F1b3RlJmd0OwoKJmx0O3AmZ3Q7RG9ja2VyIGlzIGFsc28gcmVmZXJyZWQgdG8gYXMgYW4gYXBwbGljYXRpb24gcGFja2FnaW5nIHRvb2wgdGhhdCBlbmFibGVzIGFwcGxpY2F0aW9ucyB0byBiZSBjb25maWd1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIGEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZC8jaW1hZ2VzLWFuZC1jb250YWluZXJzJnF1b3Q7Jmd0O0RvY2tlciBpbWFnZSZsdDsvYSZndDsgdGhhdCBjYW4gYmUgdXNlZCB0byBzcGF3biAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2dldC1zdGFydGVkLyNpbWFnZXMtYW5kLWNvbnRhaW5lcnMmcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IHRoYXQgcnVuIGluc3RhbmNlcyBvZiB0aGUgYXBwbGljYXRpb24uIEl0IHByb3ZpZGVzIG1hbnkgYmVuZWZpdHMgaW5jbHVkaW5nIHJ1bnRpbWUgZW52aXJvbm1lbnQgaXNvbGF0aW9uLCBjb25zaXN0ZW5jeSB2aWEgY29kZSwgYW5kIHBvcnRhYmlsaXR5LiBEb2NrZXIgY29udGFpbmVycyBjYW4gcnVuIG9uIGFueSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgc3VwcG9ydHMgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZW5naW5lJnF1b3Q7Jmd0O0RvY2tlciBFbmdpbmUmbHQ7L2EmZ3Q7LiZsdDsvcCZndDsKCiZsdDtoMiZndDtCYXNpYyBEb2NrZXIgdGVybWlub2xvZ3kmbHQ7L2gyJmd0OwoKJmx0O3AmZ3Q7SGVyZeKAmXMgYSBsaXN0IG9mIGJhc2ljIERvY2tlciBjb21tYW5kcyBhbmQgdGVybXMgd2l0aCBsaW5rcyB0byBtb3JlIGluZm9ybWF0aW9uLiBUaGVzZSB3aWxsIGhlbHAgeW91IHVuZGVyc3RhbmQgRG9ja2VyIGFuZCBjb250cm9sIHRoZSBleGVjdXRvci4gVGhlIGNvbW1hbmRzIGNhbiBiZSBydW4gbG9jYWxseSBvbiBhbnkgY29tcHV0ZXIgdGhhdCBoYXMgdGhlIERvY2tlciBlbmdpbmUgaW5zdGFsbGVkLiZsdDsvcCZndDsKCiZsdDtoMyZndDtCdWlsZGluZyBEb2NrZXIgaW1hZ2VzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2J1aWxkZXIvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBhIHRleHQgZG9jdW1lbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIGNvbW1hbmRzIGEgdXNlciBjb3VsZCBjYWxsIG9uIHRoZSBjb21tYW5kIGxpbmUgdG8gYXNzZW1ibGUgYW4gaW1hZ2UuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoZSBEb2NrZXJmaWxlIGlzIGEgYmx1ZXByaW50IGZvciBidWlsZGluZyBEb2NrZXIgaW1hZ2VzLiBEb2NrZXJmaWxlIHRlbXBsYXRlcyBob2xkIGVsZW1lbnRzIHN1Y2ggYXMgdGhlIGJhc2Ugb3BlcmF0aW5nIHN5c3RlbSBpbWFnZSB1c2VkIGFzIGEgZm91bmRhdGlvbiwgZXhlY3V0aW9uIGNvbW1hbmRzIHRoYXQgaW5zdGFsbC9jb25maWd1cmUgZGVwZW5kZW5jaWVzLCBhbmQgY29weSBjb21tYW5kcyB0aGF0IHB1c2ggbG9jYWwgc291cmNlIGNvZGUgb3IgYXJ0aWZhY3RzIGludG8gdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgYSBEb2NrZXJmaWxlIGZvciBhIHNpbXBsZSBOb2RlLmpzIGFwcGxpY2F0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7RlJPTSBub2RlOjEwCgojIENyZWF0ZSBhcHAgZGlyZWN0b3J5CldPUktESVIgL3Vzci9zcmMvYXBwCgojIEluc3RhbGwgYXBwIGRlcGVuZGVuY2llcwojIEEgd2lsZGNhcmQgaXMgdXNlZCB0byBlbnN1cmUgYm90aCBwYWNrYWdlLmpzb24gQU5EIHBhY2thZ2UtbG9jay5qc29uIGFyZSBjb3BpZWQKIyB3aGVyZSBhdmFpbGFibGUgKG5wbUA1KykKQ09QWSBwYWNrYWdlKi5qc29uIC4vCgpSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIyBJZiB5b3UgYXJlIGJ1aWxkaW5nIHlvdXIgY29kZSBmb3IgcHJvZHVjdGlvbgojIFJVTiBucG0gaW5zdGFsbCAtLW9ubHk9cHJvZHVjdGlvbgoKIyBCdW5kbGUgYXBwIHNvdXJjZQpDT1BZIC4gLgoKRVhQT1NFIDUwMDAKQ01EIFsgJnF1b3Q7bnBtJnF1b3Q7LCAmcXVvdDtzdGFydCZxdW90OyBdCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2ltYWdlcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7IGxpc3RzIERvY2tlciBpbWFnZXMgZm91bmQgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gbGlzdCBhbGwgb2YgdGhlIERvY2tlciBpbWFnZXMgYW5kIHJlbGF0ZWQgZGF0YSB0aGF0IGN1cnJlbnRseSBleGlzdCBvbiB0aGUgbG9jYWwgbWFjaGluZS4gSXTigJlzIGNvbXBhcmFibGUgdG8gYSBsaW51eCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtscyZsdDsvY29kZSZndDsgb3Igd2luZG93cyAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkaXImbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgdXNlZCB0byBzaG93IHRoZSBjb250ZW50cyBvZiBkaXJlY3RvcmllcyBpbiBhIHRlcm1pbmFsLiBUaGlzIGNvbW1hbmQgaXMgdmVyeSB1c2VmdWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRvIG1hbmFnZSwgbWFpbnRhaW4sIGFuZCBidWlsZCBEb2NrZXIgaW1hZ2VzIGxvY2FsbHkuIEJlbG93IGlzIGFuIGV4YW1wbGUgcmVzdWx0IG9mIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGltYWdlcyZsdDsvY29kZSZndDsgZXhlY3V0aW9uOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7UkVQT1NJVE9SWSAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHICAgICAgICAgICAgICAgICBJTUFHRSBJRCAgICAgICAgICAgIENSRUFURUQgICAgICAgICAgICAgU0laRQphcml2M3JhL25vZGVqcy1jaXJjbGVjaSAgICAgICAgICAgICBsYXRlc3QgICAgICAgICAgICAgIGY0MTllNGE2YjFiOCAgICAgICAgMTEgZGF5cyBhZ28gICAgICAgICA5NDNNQgpub2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCAgICAgICAgICAgICAgICAgIDAxYjgxNjA1MWQzNCAgICAgICAgMiB3ZWVrcyBhZ28gICAgICAgICA5MTFNQgpjaXJjbGVjaS9weXRob24gICAgICAgICAgICAgICAgICAgICAzLjcuNiAgICAgICAgICAgICAgIDBkMjk3NTg5NmM3MyAgICAgICAgNSB3ZWVrcyBhZ28gICAgICAgICAxLjQzR0IKYXJpdjNyYS9pbmZyYXN0cnVjdHVyZS1hcy1jb2RlMTAxICAgbGF0ZXN0ICAgICAgICAgICAgICBjYjIxYTM2YTI5NzMgICAgICAgIDggd2Vla3MgYWdvICAgICAgICAgOTI5TUIKcHl0aG9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy43LjYgICAgICAgICAgICAgICA4NzkxNjU1MzVhNTQgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgOTE5TUIKY2lyY2xlY2kvcnVzdCAgICAgICAgICAgICAgICAgICAgICAgMS1idXN0ZXIgICAgICAgICAgICAyMTgzMjliOTI5Y2YgICAgICAgIDIgbW9udGhzIGFnbyAgICAgICAgMS42OEdCCnJ1c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEtYnVzdGVyICAgICAgICAgICAgZjVmZGUwOTJhMWNkICAgICAgICAyIG1vbnRocyBhZ28gICAgICAgIDEuMTlHQgpweXRob24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjcuNCAgICAgICAgICAgICAgIDlmYTU2ZDBhZGRhZSAgICAgICAgNiBtb250aHMgYWdvICAgICAgICA5MThNQgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9idWlsZC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGJ1aWxkIC10ICZhbXA7bHQ7aW1hZ2UgbmFtZSZhbXA7Z3Q7IC4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBjcmVhdGVzIGEgRG9ja2VyIGltYWdlIHdpdGggYSB0YWcgdXNpbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7LXQmbHQ7L2NvZGUmZ3Q7Jmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9zdHJvbmcmZ3Q7IFRoZSBhYm92ZSBjb21tYW5kLCBpbiBjb25qdW5jdGlvbiB3aXRoIGEgdmFsaWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDssIGJ1aWxkcyBhIERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgZXhlY3V0aW9uIGNvbW1hbmRzIGRlZmluZWQgaW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O0RvY2tlcmZpbGUmbHQ7L2NvZGUmZ3Q7LiBPbmUgY3JpdGljYWwgZWxlbWVudCB0byBidWlsZGluZyBpbWFnZXMgYW5kIHN0YXJ0aW5nIGNvbnRhaW5lcnMgaXMgdW5kZXJzdGFuZGluZyB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7RG9ja2VyIG5hbWluZyBjb252ZW50aW9uJmx0Oy9hJmd0Oy4gQnVpbGRpbmcgRG9ja2VyIGltYWdlcyB1c2luZyB0aGlzIGNvbW1hbmQgc3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIHRhcmdldCBEb2NrZXIgaW1hZ2UuIERvY2tlciBpbWFnZXMgdXRpbGl6ZXMgYSBuYW1pbmcgY29udmVudGlvbiBtYWRlIHVwIG9mIHNsYXNoLXNlcGFyYXRlZCBuYW1lIGNvbXBvbmVudHMgdGhhdCBtYXkgY29udGFpbiBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBhbmQgc2VwYXJhdG9ycy4gQSBzZXBhcmF0b3IgaXMgZGVmaW5lZCBhcyBhIHBlcmlvZCwgb25lIG9yIHR3byB1bmRlcnNjb3Jlcywgb3Igb25lIG9yIG1vcmUgZGFzaGVzLiBBIG5hbWUgY29tcG9uZW50IG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggYSBzZXBhcmF0b3IuIEEgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3RhZy8mcXVvdDsmZ3Q7ZG9ja2VyIHRhZyZsdDsvYSZndDsgbmFtZSBtdXN0IGJlIHZhbGlkIEFTQ0lJIGFuZCBtYXkgY29udGFpbiBsb3dlcmNhc2UgYW5kIHVwcGVyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHVuZGVyc2NvcmVzLCBwZXJpb2RzLCBhbmQgZGFzaGVzLiBBIHRhZyBuYW1lIG1heSBub3Qgc3RhcnQgd2l0aCBhIHBlcmlvZCBvciBhIGRhc2ggYW5kIG1heSBjb250YWluIGEgbWF4aW11bSBvZiAxMjggY2hhcmFjdGVycy4gWW91IGNhbiBncm91cCB5b3VyIGltYWdlcyB0b2dldGhlciB1c2luZyBuYW1lcyBhbmQgdGFncy4gSW4gdGhpcyBwb3N0LCB3ZSB3aWxsIHVzZSB0aGlzIG5hbWluZyBjb252ZW50aW9uLiZsdDsvcCZndDsKCiZsdDtwJmd0O05vdyB0aGF0IHdl4oCZdmUgZGlzY3Vzc2VkIG5hbWluZyBjb252ZW50aW9ucyBsZXTigJlzIGJ1aWxkIGEgRG9ja2VyIGltYWdlIGJhc2VkIG9uIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXJmaWxlJmx0Oy9jb2RlJmd0OyBpbiBvdXIgZXhhbXBsZSBhYm92ZS4gSW4gdGhpcyBwb3N0IHdlIGNhbiB1dGlsaXplIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZ2l0aHViLmNvbS9wdW5rZGF0YS9ub2RlanMtY2lyY2xlY2kmcXVvdDsmZ3Q7cHVua2RhdGEvbm9kZWpzLWNpcmNsZWNpJmx0Oy9hJmd0OyBnaXQgcmVwby4gQ2xvbmUgaXQgbG9jYWxseSBhbmQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7JCBjZCZsdDsvY29kZSZndDsgaW50byB0aGUgcHJvamVjdCBkaXJlY3RvcnkuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlbiBydW4gdGhpcyBjb21tYW5kIHRvIGJ1aWxkIGEgbmV3IERvY2tlciBpbWFnZSBiYXNlZCBvbiB0aGUgcHJvamVjdCBzb3VyY2UgY29kZSBhbmQgdGhlIGV4YW1wbGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7RG9ja2VyZmlsZSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgYnVpbGQgLXQgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAuCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0FmdGVyIHJ1bm5pbmcgdGhpcyBidWlsZCBjb21tYW5kLCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoaXM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtTZW5kaW5nIGJ1aWxkIGNvbnRleHQgdG8gRG9ja2VyIGRhZW1vbiAgOTguMDdNQgpTdGVwIDEvNyA6IEZST00gbm9kZToxMAogLS0tJmFtcDtndDsgMDFiODE2MDUxZDM0ClN0ZXAgMi83IDogV09SS0RJUiAvdXNyL3NyYy9hcHAKIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyAxMmIyZWRjMmI5N2MKU3RlcCAzLzcgOiBDT1BZIHBhY2thZ2UqLmpzb24gLi8KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyA1M2I1YjhlNGU2NTQKU3RlcCA0LzcgOiBSVU4gbnBtIGluc3RhbGwgLS1vbmx5PXByb2R1Y3Rpb24KIC0tLSZhbXA7Z3Q7IFVzaW5nIGNhY2hlCiAtLS0mYW1wO2d0OyBlZWZkZjU2MGJjNGQKU3RlcCA1LzcgOiBDT1BZIC4gLgogLS0tJmFtcDtndDsgYWE3ZDU0ZTk1NWM2ClN0ZXAgNi83IDogRVhQT1NFIDUwMDAKIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gY2M0MjdkYmFmZGNjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgY2M0MjdkYmFmZGNjCiAtLS0mYW1wO2d0OyA0Y2U5MDg0ZTM5ZWIKU3RlcCA3LzcgOiBDTUQgWyAmcXVvdDtucG0mcXVvdDssICZxdW90O3N0YXJ0JnF1b3Q7IF0KIC0tLSZhbXA7Z3Q7IFJ1bm5pbmcgaW4gZjZlODU0NTk5ZGRjClJlbW92aW5nIGludGVybWVkaWF0ZSBjb250YWluZXIgZjZlODU0NTk5ZGRjCiAtLS0mYW1wO2d0OyA3OWE4ZDk0Y2JmNDIKU3VjY2Vzc2Z1bGx5IGJ1aWx0IDc5YThkOTRjYmY0MgpTdWNjZXNzZnVsbHkgdGFnZ2VkIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7UnVuIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2VzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgeW91ciBuZXdseSBjcmVhdGVkIERvY2tlciBpbWFnZSBsaXN0ZWQgaW4gdGhlIHJlc3VsdHMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDskIGRvY2tlciBpbWFnZXMKClJFUE9TSVRPUlkgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRyAgICAgICAgICAgICAgICAgSU1BR0UgSUQgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNJWkUKdHV0b3JpYWwvY2lyY2xlY2ktbm9kZSAgICAgICAgICAgICAgMTAgICAgICAgICAgICAgICAgICA3OWE4ZDk0Y2JmNDIgICAgICAgIDQgbWludXRlcyBhZ28gICAgICAgMS4wM0dCCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O05vdyB5b3UgaGF2ZSBhbiBhd2Vzb21lIERvY2tlciBpbWFnZSBidWlsdCBhbmQgcmVhZHkgdG8gdXNlLiBJbiB0aGUgbmV4dCBzZWN0aW9uIEnigJlsbCBjcmVhdGUgbmV3IGluc3RhbmNlcyBvZiB0aGlzIERvY2tlciBpbWFnZSBpbiB0aGUgZm9ybSBvZiAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvY29udGFpbmVyLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtEb2NrZXIgY29udGFpbmVycyZsdDsvY29kZSZndDsmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBjb250YWluZXJzJmx0Oy9oMyZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7RG9ja2VyIGNvbnRhaW5lcnMmbHQ7L2EmZ3Q7IGFyZSBkZXNpZ25lZCB0byBydW4gYXBwbGljYXRpb25zIGluIGlzb2xhdGlvbiBhbmQgYXQgc2NhbGUuICBUaGV5IGFsbG93IGZvciBzdHJlYW1saW5pbmcgdGhlIG1hbmFnZW1lbnQgYW5kIGltcGxlbWVudGF0aW9uIG9mIGFwcGxpY2F0aW9ucy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7QmVmb3JlIHdlIHN0YXJ0IGNyZWF0aW5nIGFuZCBydW5uaW5nIERvY2tlciBjb250YWluZXJzLCBJ4oCZbGwgYWRkIHNvbWUgY29udGV4dC4gRG9ja2VyIGNvbnRhaW5lcnMgYXJlIG9iamVjdHMgdGhhdCBhcmUgYmFzZWQgb24gYW5kIHNwYXduZWQgZnJvbSBEb2NrZXIgaW1hZ2VzLiBEb2NrZXIgaW1hZ2VzIGFyZSB0ZW1wbGF0ZXMuIEkgbGlrZW4gdGhlbSB0byBjb29raWUgY3V0dGVyIG1vbGRzLiBDb29raWUgY3V0dGVyIG1vbGRzIGVuYWJsZSB5b3UgdG8gcXVpY2tseSBhbmQgY29uc2lzdGVudGx5IHByb2R1Y2UgaW5kaXZpZHVhbCBjb29raWVzIGZyb20gZG91Z2guIEkgbGlrZW4gdGhlc2UgY29va2llcyB0byBEb2NrZXIgY29udGFpbmVycyB3aGljaCBhcmUgZGlzdGluZ3Vpc2hlZCBpbiBzaGFwZSBieSB0aGUgdHlwZSBvZiBjb29raWUgbW9sZCwgb3IgRG9ja2VyIGNvbnRhaW5lciwgdXNlZCBpbiB0aGUgY3V0dGluZy9idWlsZGluZyBwcm9jZXNzLiBTbyB1c2luZyBteSBjb29raWUgY3V0dGVyIGFuYWxvZ3ksIERvY2tlciBpbWFnZXMgYXJlIHRoZSBjb29raWUgY3V0dGVyIGFuZCB0aGUgaW5kaXZpZHVhbCBjb29raWVzIGN1dCB1c2luZyB0aGF0IGN1dHRlciBhcmUgZXF1aXZhbGVudCB0byBEb2NrZXIgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtOb3cgdGhhdCBJ4oCZdmUgcHJvYmFibHkgbWFkZSB5b3UgYSBiaXQgaHVuZ2FyeSBmb3IgY29va2llcywgbGV04oCZcyBzdGFydCBydW5uaW5nIHNvbWUgY29udGFpbmVycy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ydW4vJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBydW5zIGEgY29tbWFuZCBpbiBhIG5ldyBjb250YWluZXIuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBpcyB0aGUgbW9zdCBpbXBvcnRhbnQgY29tbWFuZCBvZiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhbmQgc3RhcnRpbmcgRG9ja2VyIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdGFydCBhIG5ldyBjb250YWluZXIgbmFtZWQgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDs6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcnVuIC1kIC1wIDUwMDA6NTAwMCAtLW5hbWUgbm9kZXRlc3QwMSB0dXRvcmlhbC9jaXJjbGVjaS1ub2RlOjEwCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O0NvbmdyYXRzISBZb3Ugc2hvdWxkIG5vdyBoYXZlIHRoZSBOb2RlLmpzIGltYWdlIHJ1bm5pbmcgaW4gdGhlIG5ldyBjb250YWluZXIgdGhhdCB5b3UganVzdCBjcmVhdGVkIGF2YWlsYWJsZSBvbiBwb3J0IDUwMDAuIE9wZW4gYSB3ZWIgYnJvd3NlciBhbmQgZ28gdG8gdGhpcyBhZGRyZXNzOiAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtodHRwOi8vbG9jYWxob3N0OjUwMDAmbHQ7L2NvZGUmZ3Q7LiBJdCB3aWxsIHRha2UgeW91IHRoZSBzdGF0aWMg4oCcV2VsY29tZSB0byBDSS9DRCAxMDEgdXNpbmcgQ2lyY2xlQ0kh4oCdIHdlYiBwYWdlIHNlcnZlZCBieSB0aGlzIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsc28gdmVyaWZ5IHlvdXIgY29udGFpbmVyIGlzIHJ1bm5pbmcgYnkgZXhlY3V0aW5nIGEgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGluIHRoZSB0ZXJtaW5hbC4gV2XigJlsbCBkaXNjdXNzIHRoaXMgaW4gdGhlIG5leHQgc2VjdGlvbi4gQmVmb3JlIHRoYXQsIGxldOKAmXMgc3RhcnQgYW4gb3RoZXIgaW5zdGFuY2Ugb2YgdGhlIGFwcGxpY2F0aW9uIGJ5IHJ1bm5pbmcgYW5vdGhlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7V2Ugc3RhcnRlZCBvdXIgZmlyc3QgY29udGFpbmVyIHdpdGggdGhlIG5hbWUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMSZsdDsvY29kZSZndDsgYW5kIHNpbmNlIGNvbnRhaW5lciBuYW1lcyBtdXN0IGJlIHVuaXF1ZSwgd2XigJlyZSBnb2luZyB0byBuYW1lIG91ciBuZXcgY29udGFpbmVyICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7LiBBbm90aGVyIGNoYW5nZSB0aGF0IG11c3QgYmUgbWFkZSBpbiBvdXIgbmV3IGNvbnRhaW5lciBpcyB0aGUgcG9ydCBudW1iZXIuIFdl4oCZbGwgY2hhbmdlIGl0IGZyb20gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMCZsdDsvY29kZSZndDsgdG8gJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7NTAwMSZsdDsvY29kZSZndDsgc2luY2UgYXBwbGljYXRpb25zIGNhbm5vdCBvY2N1cHkgdGhlIHNhbWUgcG9ydCBudW1iZXIgb24gdGhlIHNhbWUgbmV0d29yayBpbnRlcmZhY2UuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7RXhlY3V0ZSB0aGUgZm9sbG93aW5nICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaW4gdGhlIHRlcm1pbmFsOiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHJ1biAtZCAtcCA1MDAxOjUwMDAgLS1uYW1lIG5vZGV0ZXN0MDIgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMAombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtBd2Vzb21lISBZb3Ugbm93IGhhdmUgdHdvIGNvbnRhaW5lcnMgcnVubmluZyBvbiB5b3VyIGxvY2FsIG1hY2hpbmUuIFlvdSBjYW4gZ28gdG8gdGhpcyBhZGRyZXNzICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMSZsdDsvY29kZSZndDsgaW4gYSBicm93c2VyIGFuZCBzZWUgdGhlIGFwcCBydW5uaW5nIGluIHlvdXIgc2Vjb25kIERvY2tlciBjb250YWluZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7VGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBydW4mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgaXMgdmVyeSByb2J1c3QgYW5kIGhhcyBtYW55IHByb3BlcnR5IGFuZCBjb25maWd1cmF0aW9uIGZsYWdzIHdoaWNoIEkgd29u4oCZdCBiZSBhYmxlIHRvIGFkZHJlc3Mgb3IgZGVtb25zdHJhdGUgaW4gdGhpcyBwb3N0LiBJIGhpZ2hseSByZWNvbW1lbmQgdGhhdCB5b3UgcmVhZCBhbmQgZmFtaWxpYXJpemUgeW91cnNlbGYgd2l0aCB0aGUgbWFueSB3YXlzIHRoYXQgeW91IGNhbiBleGVjdXRlIGFuZCBydW4gRG9ja2VyIGNvbnRhaW5lcnMuIFlvdSBjYW4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL2NvbnRhaW5lci8mcXVvdDsmZ3Q7cmVhZCB1cCBvbiBEb2NrZXIgY29udGFpbmVycyBjb21tYW5kcyBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9wcy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbGlzdHMgYWxsIG9mIHRoZSBydW5uaW5nIERvY2tlciBjb250YWluZXJzLiBUaGlzIGNvbW1hbmQgc2VydmVzIGEgc2ltaWxhciBwdXJwb3NlIGFzIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgaW1hZ2UmbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgYW5kIGxpc3RzIGFjdGl2ZWx5IHJ1bm5pbmcgY29udGFpbmVycy4gVXNlIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDstYSZsdDsvY29kZSZndDsgZmxhZyB0byBzaG93IGFsbCBvZiB0aGUgcnVubmluZyBhbmQgbm90IHJ1bm5pbmcgY29udGFpbmVycy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7UnVuIHRoaXMgY29tbWFuZCBpbiBhIHRlcm1pbmFsIGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gc2VlIGJvdGggb2YgdGhlIHByZXZpb3VzbHkgY3JlYXRlZCBjb250YWluZXJzIHJ1bm5pbmcgaW4gdGhlIHJlc3VsdHM6Jmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtkb2NrZXIgcHMKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhlIHJlc3VsdHMgd2lsbCBiZSBzaW1pbGFyIHRvIHRoaXMgc2hvd2luZyBib3RoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDEmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RlMDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcnMgc3RpbGwgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O0NPTlRBSU5FUiBJRCAgICAgICAgSU1BR0UgICAgICAgICAgICAgICAgICAgICAgIENPTU1BTkQgICAgICAgICAgICAgICAgICBDUkVBVEVEICAgICAgICAgICAgIFNUQVRVUyAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICAgICAgIE5BTUVTCmRmZDMwMTgxZTE1YyAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAxMiBtaW51dGVzIGFnbyAgICAgIFVwIDEyIG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAxLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICAyOCBtaW51dGVzIGFnbyAgICAgIFVwIDI4IG1pbnV0ZXMgICAgICAgMC4wLjAuMDo1MDAwLSZhbXA7Z3Q7NTAwMC90Y3AgICBub2RldGVzdDAxCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7CiAgICAmbHQ7cCZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvc3RhcnQvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdGFydHMgYW4gZXhpc3RpbmcgY29udGFpbmVyLiZsdDsvcCZndDsKICAmbHQ7L2xpJmd0OwogICZsdDtsaSZndDsKICAgICZsdDtwJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9zdG9wLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCAmYW1wO2x0O2NvbnRhaW5lciBuYW1lJmFtcDtndDsmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBzdG9wcyBhbiBleGlzdGluZyBjb250YWluZXIuJmx0Oy9wJmd0OwogICZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgaXMgb25seSB1c2VkIHRvIHN0YXJ0ICZsdDtzdHJvbmcmZ3Q7ZXhpc3RpbmcmbHQ7L3N0cm9uZyZndDsgY29udGFpbmVycyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcnVuJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBVbmxlc3MgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0Oy0tcm09dHJ1ZSZsdDsvY29kZSZndDsgZmxhZyBpcyBzcGVjaWZpZWQgd2l0aCB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJ1biZsdDsvY29kZSZndDsgY29tbWFuZCwgbmV3bHkgY3JlYXRlZCBjb250YWluZXJzIHdpbGwgcGVyc2lzdCBhbmQgY2FuIGJlIHJldXNlZCB3aXRoIHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RhcnQmbHQ7L2NvZGUmZ3Q7IGFuZCAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgc3RvcCZsdDsvY29kZSZndDsgY29tbWFuZHMuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBzdG9wIHNvbWUgcnVubmluZyBjb250YWluZXJzIGJ5IGV4ZWN1dGluZyB0aGVzZSBjb21tYW5kczombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBzdG9wIG5vZGV0ZXN0MDEgbm9kZXRlc3QwMgombHQ7L2NvZGUmZ3Q7Jmx0Oy9wcmUmZ3Q7Jmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CgombHQ7cCZndDtUaGVzZSBydW5uaW5nIGNvbnRhaW5lcnMgc2hvdWxkIG5vdyBiZSBpbmFjdGl2ZSBhbmQgc3RvcHBlZC4gU2luY2UgdGhleeKAmXJlIHN0b3BwZWQsIHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFuZCB5b3Ugd2lsbCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgaW5kaWNhdGluZyBzdG9wcGVkIGNvbnRhaW5lcnMuJmx0Oy9wJmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDsmbHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7cHJlIGNsYXNzPSZxdW90O2hpZ2hsaWdodCZxdW90OyZndDsmbHQ7Y29kZSZndDtDT05UQUlORVIgSUQgICAgICAgIElNQUdFICAgICAgICAgICAgICAgICAgICAgICBDT01NQU5EICAgICAgICAgICAgICAgICAgQ1JFQVRFRCAgICAgICAgICAgICBTVEFUVVMgICAgICAgICAgICAgICAgICAgICAgUE9SVFMgICAgICAgICAgICAgICBOQU1FUwpkZmQzMDE4MWUxNWMgICAgICAgIHR1dG9yaWFsL2NpcmNsZWNpLW5vZGU6MTAgICAmcXVvdDtkb2NrZXItZW50cnlwb2ludC5z4oCmJnF1b3Q7ICAgMzEgbWludXRlcyBhZ28gICAgICBFeGl0ZWQgKDApIDM4IHNlY29uZHMgYWdvICAgICAgICAgICAgICAgICAgICAgICBub2RldGVzdDAyCjBlZmFmN2YxMTc4MCAgICAgICAgdHV0b3JpYWwvY2lyY2xlY2ktbm9kZToxMCAgICZxdW90O2RvY2tlci1lbnRyeXBvaW50LnPigKYmcXVvdDsgICBBYm91dCBhbiBob3VyIGFnbyAgIEV4aXRlZCAoMCkgMzggc2Vjb25kcyBhZ28gICAgICAgICAgICAgICAgICAgICAgIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7VGhvdWdoIHRoZXNlIGNvbnRhaW5lcnMgYXJlIHN0b3BwZWQgdGhleSB3aWxsIHBlcnNpc3QgYW5kIGNhbiBiZSByZXN0YXJ0ZWQgdXNpbmcgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBzdGFydCZsdDsvY29kZSZndDsgY29tbWFuZC4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtMZXRzIHN0YXJ0IHRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAxJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgc28gd2UgY2FuIGxlYXJuIGhvdyB0byB1c2UgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBmZWF0dXJlcyBpbiB0aGUgbmV4dCBzZWN0aW9uLiZsdDsvcCZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7Jmx0O2RpdiBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O3ByZSBjbGFzcz0mcXVvdDtoaWdobGlnaHQmcXVvdDsmZ3Q7Jmx0O2NvZGUmZ3Q7ZG9ja2VyIHN0YXJ0IG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7Tm93IHJ1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0OyBjb21tYW5kLiBOb3RpY2UgdGhlIHN0YXR1cyBmb3IgdGhpcyBjb250YWluZXIgcmVhZHMgc2ltaWxhciB0byAgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7VXAgYWJvdXQgYSAzMCBzZWNvbmRzJmx0Oy9jb2RlJmd0OyBvciBzb21ldGhpbmcgdG8gdGhhdCBlZmZlY3QuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvbG9ncy8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ3MmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBmZXRjaGVzIGEgY29udGFpbmVy4oCZcyBsb2dzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIHNlZSBsb2dzIHRoYXQgYXJlIHByZXNlbnQgYXQgdGhlIHRpbWUgb2YgZXhlY3V0aW9uLiBTaW5jZSB5b3VyIGFwcHMgYXJlIHJ1bm5pbmcgaW5zaWRlIHRoZXNlIGNvbnRhaW5lcnMsIHRoZSBsb2dzIGNvbW1hbmQgaXMgdXNlZnVsIGZvciByZWFkaW5nIG91dCBjcml0aWNhbCBhcHAgb3V0cHV0cy4gVGhpcyBoZWxwcyBpbiB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgYXBwIGlzIHBlcmZvcm1pbmcgYW5kIGFueSBkZWJ1Z2dpbmcvdHJvdWJsZXNob290aW5nIHRoYXQgbWlnaHQgYmUgcmVxdWlyZWQuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7TGV04oCZcyBydW4gdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBsb2dzJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDEmbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBsb2dzIG5vZGV0ZXN0MDEKJmx0Oy9jb2RlJmd0OyZsdDsvcHJlJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OwoKJmx0O3AmZ3Q7QWZ0ZXIgcnVubmluZyB0aGlzIGNvbW1hbmQgeW91IHNob3VsZCBzZWUgcmVzdWx0cyBzaW1pbGFyIHRvIHdoYXTigJlzIHNob3duIGJlbG93LiBJdCBzaG93cyB0aGF0IHRoZSBhcHAgaW5zaWRlIGNvbnRhaW5lciBpcyB1cCBhbmQgcnVubmluZy4mbHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O05vZGUgc2VydmVyIGlzIHJ1bm5pbmcuLgoKJmFtcDtndDsgbm9kZWpzLWNpcmNsZWNpQDAuMC4xIHN0YXJ0IC91c3Ivc3JjL2FwcAomYW1wO2d0OyBub2RlIGFwcC5qcwoKTm9kZSBzZXJ2ZXIgaXMgcnVubmluZy4uCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtLyZxdW90OyZndDsmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0gJmFtcDtsdDtjb250YWluZXIgbmFtZSZhbXA7Z3Q7Jmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgZGVsZXRlcyBhIGNvbnRhaW5lciBvciBtdWx0aXBsZSBjb250YWluZXJzLiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtQZXJzaXN0aW5nIERvY2tlciBjb250YWluZXJzIGNvbnN1bWVzIGRpc2sgc3BhY2UgYW5kIHJlc291cmNlcyBvbiBpdHMgaG9zdC4gT3BlcmF0aW9uYWxseSwgaXQgZG9lc27igJl0IG1ha2UgbXVjaCBzZW5zZSB0byBwZXJzaXN0IGV2ZXJ5IGNvbnRhaW5lciBvbiBkaXNrIHNpbmNlIGluIG1vc3QgY2FzZXMgY29udGFpbmVycyBhcmUgZGlzcG9zYWJsZSBhbmQgc2hvdWxkIGJlIHVzZWQgdGhhdCB3YXkuIFNvIHdoZW4gYSBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBpdCBzaG91bGQgYmUgcGVybWFuZW50bHkgZGlzY2FyZGVkIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtkb2NrZXIgcm0mbHQ7L2NvZGUmZ3Q7IGNvbW1hbmQgcGVybWFuZW50bHkgZGVsZXRlcyBjb250YWluZXJzIGZyb20gdGhlIGhvc3QuIFRoZSAmbHQ7Y29kZSBjbGFzcz0mcXVvdDtoaWdobGlnaHRlci1yb3VnZSZxdW90OyZndDtub2RldGVzdDAyJmx0Oy9jb2RlJmd0OyBjb250YWluZXIgaXMgbm8gbG9uZ2VyIG5lZWRlZCBzbyBsZXTigJlzIHNhdmUgc29tZSBkaXNrIHNwYWNlIGFuZCBkZWxldGUgaXQuIE5vdGUgdGhpcyBjb21tYW5kIHdpbGwgb25seSBkZWxldGUgaW5hY3RpdmUvc3RvcHBlZCBjb250YWluZXJzIGFuZCB3aWxsIGVycm9yIG91dCBpZiBpdOKAmXMgcnVuIGFnYWluc3QgYW4gYWN0aXZlL3J1bm5pbmcgY29udGFpbmVyLiZsdDsvcCZndDsKCiZsdDtwJmd0O1J1biB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtJmx0Oy9jb2RlJmd0OyBjb21tYW5kIGFnYWluc3QgdGhlICZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O25vZGV0ZXN0MDImbHQ7L2NvZGUmZ3Q7IGNvbnRhaW5lcjombHQ7L3AmZ3Q7CgombHQ7ZGl2IGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0OyZsdDtkaXYgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtwcmUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0JnF1b3Q7Jmd0OyZsdDtjb2RlJmd0O2RvY2tlciBybSBub2RldGVzdDAyCiZsdDsvY29kZSZndDsmbHQ7L3ByZSZndDsmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKCiZsdDtwJmd0O1lvdSBzaG91bGQgbm8gbG9uZ2VyIHNlZSB0aGUgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7bm9kZXRlc3QwMiZsdDsvY29kZSZndDsgY29udGFpbmVyIG9uIHRoZSBob3N0IGFmdGVyIHJ1bm5pbmcgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHBzIC1hJmx0Oy9jb2RlJmd0Oy4gVGhpcyBjb21tYW5kIGhhcyBvdGhlciBwcm9wZXJ0aWVzIGFuZCBmbGFncyBhbmQgeW91IHNob3VsZCAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcm0vJnF1b3Q7Jmd0O2ZhbWlsaWFyaXplIHlvdXJzZWxmIHdpdGggdGhlbSBoZXJlJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9ybWkvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBybWkmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBkZWxldGVzIERvY2tlciBpbWFnZXMgbG9jYWxseS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGFwcGxpZXMgdG8gZGVsZXRpbmcgRG9ja2VyIGltYWdlcyBmcm9tIGEgaG9zdC4gSWYgdGhlcmUgYXJlIGV4aXN0aW5nIGNvbnRhaW5lcnMgb24gdGhlIGhvc3QgdGhhdCBhcmUgYmFzZWQgb24gYSBzcGVjaWZpYyBpbWFnZSwgdGhlbiB0aGlzIGNvbW1hbmQgd2lsbCBub3QgYWxsb3cgdGhlIGRlbGV0aW9uIG9mIHRoZSBjb250YWluZXIgYmFzZWQgb24gdGhlIGltYWdlLiBZb3UgbXVzdCBmaXJzdCBlbnN1cmUgdGhlIGNvbnRhaW5lciBpcyBzdG9wcGVkIGFuZCBkZWxldGVkIGJlZm9yZSB5b3UgY2FuIGRlbGV0ZSBEb2NrZXIgaW1hZ2VzIHVzaW5nIHRoaXMgJmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHJtaSZsdDsvY29kZSZndDsgY29tbWFuZC4gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3JtaS8mcXVvdDsmZ3Q7UmVhZCB1cCBvbiB0aGUgZG9ja2VyIHJtaSBjb21tYW5kIGhlcmUmbHQ7L2EmZ3Q7Jmx0Oy9wJmd0OwoKJmx0O2gzJmd0O0RvY2tlciBpbWFnZSBkZXBsb3ltZW50cyZsdDsvaDMmZ3Q7CgombHQ7cCZndDtNYW55IERvY2tlciBpbWFnZXMgYXJlIHB1YmxpY2x5IGF2YWlsYWJsZSBhbmQgaG9zdGVkIG9uIHRoZSAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2RvY2tlci1odWIvJnF1b3Q7Jmd0O0RvY2tlciBIdWIgUmVnaXN0cnkmbHQ7L2EmZ3Q7IHdoaWNoIGlzIGFuIG9ubGluZSBjZW50cmFsIGhvc3Rpbmcgc29sdXRpb24gZm9yIERvY2tlciBpbWFnZXMuIERvY2tlciBIdWIgZW5hYmxlcyBhbnlvbmUgd2l0aCBhbiBpbnRlcm5ldCBjb25uZWN0aW9uIHRvIHB1bGwgZG93biBwdWJsaWNseSBhdmFpbGFibGUgaW1hZ2VzIGZyb20gdGhlIHJlZ2lzdHJ5IHRvIHRoZWlyIGxvY2FsIG1hY2hpbmVzIG9yIHNlcnZlcnMuIEl0IGFsc28gZW5hYmxlcyByZWdpc3RlcmVkIHVzZXJzIHRvIHVwbG9hZCBhbmQgcHVibGljbHkgc2hhcmUgYW55IG9mIHRoZWlyIGNvbnRhaW5lcnMgc28gdGhhdCBhbnlvbmUgY2FuIHB1bGwgZG93biB0aGF0IGltYWdlIGZyb20gJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2h1Yi5kb2NrZXIuY29tLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0Oy4mbHQ7L3AmZ3Q7CgombHQ7cCZndDtJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIEnigJlsbCBicmllZmx5IGRpc2N1c3Mgc29tZSBvZiB0aGUgJmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9kb2NrZXItaHViLyZxdW90OyZndDtEb2NrZXIgSHViJmx0Oy9hJmd0OyByZWxhdGVkIGNvbW1hbmRzLiZsdDsvcCZndDsKCiZsdDt1bCZndDsKICAmbHQ7bGkmZ3Q7Jmx0O2EgaHJlZj0mcXVvdDtodHRwczovL2RvY3MuZG9ja2VyLmNvbS9lbmdpbmUvcmVmZXJlbmNlL2NvbW1hbmRsaW5lL3B1bGwvJnF1b3Q7Jmd0OyZsdDtjb2RlIGNsYXNzPSZxdW90O2hpZ2hsaWdodGVyLXJvdWdlJnF1b3Q7Jmd0O2RvY2tlciBwdWxsJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgcHVsbHMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IGZyb20gYSByZWdpc3RyeS4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OwoKJmx0O3AmZ3Q7VGhpcyBjb21tYW5kIGVuYWJsZXMgeW91IHRvIGRvd25sb2FkIGEgdmFsaWQgRG9ja2VyIGltYWdlIGZyb20gRG9ja2VyIEh1Yi4gUHVibGljbHkgYXZhaWxhYmxlIERvY2tlciBpbWFnZXMgZG8gbm90IHJlcXVpcmUgYXV0aGVudGljYXRpb24uIElmIHRoZSByZWdpc3RyeSBpcyBwcml2YXRlIHlvdSB3aWxsIG5lZWQgdG8gYXV0aGVudGljYXRlIHVzaW5nIGFuIGFzc2lnbmVkIGNyZWRlbnRpYWwgdXN1YWxseSBpbiB0aGUgZm9ybSBvZiBhIHVzZXJuYW1lIGFuZCBwYXNzd29yZC4mbHQ7L3AmZ3Q7CgombHQ7dWwmZ3Q7CiAgJmx0O2xpJmd0OyZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIGxvZ2luJmx0Oy9jb2RlJmd0OyZsdDsvYSZndDsgbG9ncyBpbnRvIGEgRG9ja2VyIHJlZ2lzdHJ5LiZsdDsvbGkmZ3Q7CiZsdDsvdWwmZ3Q7CgombHQ7cCZndDtUaGlzIGNvbW1hbmQgZW5hYmxlcyB5b3UgdG8gYXV0aGVudGljYXRlIGFnYWluc3QgYSBEb2NrZXIgUmVnaXN0cnkuIElmIHlvdeKAmXJlIHVzaW5nIHRoaXMgbG9naW4gY29tbWFuZCB5b3Ugc2hvdWxkICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vZW5naW5lL3JlZmVyZW5jZS9jb21tYW5kbGluZS9sb2dpbi8jcHJvdmlkZS1hLXBhc3N3b3JkLXVzaW5nLXN0ZGluJnF1b3Q7Jmd0O3BvcHVsYXRlIGEgLnR4dCBmaWxlJmx0Oy9hJmd0OyB3aXRoIHlvdXIgRG9ja2VyIEh1YiBhY2NvdW50IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBwcm90ZWN0IHRoZXNlIGNyZWRlbnRpYWxzIGZyb20gZXhwb3N1cmUuJmx0Oy9wJmd0OwoKJmx0O3VsJmd0OwogICZsdDtsaSZndDsmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vZG9jcy5kb2NrZXIuY29tL2VuZ2luZS9yZWZlcmVuY2UvY29tbWFuZGxpbmUvcHVzaC8mcXVvdDsmZ3Q7Jmx0O2NvZGUgY2xhc3M9JnF1b3Q7aGlnaGxpZ2h0ZXItcm91Z2UmcXVvdDsmZ3Q7ZG9ja2VyIHB1c2gmbHQ7L2NvZGUmZ3Q7Jmx0Oy9hJmd0OyBwdXNoZXMgYW4gaW1hZ2Ugb3IgYSByZXBvc2l0b3J5IHRvIGEgcmVnaXN0cnkuJmx0Oy9saSZndDsKJmx0Oy91bCZndDsKCiZsdDtwJmd0O1RoaXMgY29tbWFuZCBlbmFibGVzIHVzZXJzIHRvIHVwbG9hZCBpbWFnZXMgdG8gYSBEb2NrZXIgcmVnaXN0cnkgYW5kIHJlcXVpcmVzIHZhbGlkIGNyZWRlbnRpYWxzLiZsdDsvcCZndDsKCiZsdDtoMiZndDtTdW1tYXJ5Jmx0Oy9oMiZndDsKCiZsdDtwJmd0O1NvIHRoZXJlIHlvdSBoYXZlIGl0LiBJbiB0aGlzIHBvc3QgSSB3ZW50IGEgYml0IGRlZXBlciBpbiBleHBsYWluaW5nIERvY2tlciB0ZXJtaW5vbG9neSBhbmQgY29tbWFuZHMgYXMgd2VsbCBhcyBjb250YWluZXJzIGFuZCB0aGVpciB1c2FnZS4gVGhlIGNvbW1hbmRzIEkgZGlzY3Vzc2VkIGFuZCBkZW1vbnN0cmF0ZWQsIGFyZSB0aGUgbW9zdCB3aWRlbHkgdXNlZCBjb21tYW5kcyBpbiB0aGUgRG9ja2VyIHJ1bnRpbWUgYW5kIGxlYXJuaW5nIGEgYml0IG1vcmUgYWJvdXQgdGhlbSBhbmQgdGhlaXIgcHJvcGVydGllcyBhbmQgZmxhZ3Mgd2lsbCBkZWZpbml0ZWx5IGhlbHAgeW91IGxldmVsIHVwIHlvdXIgRG9ja2VyIGFuZCBjb250YWluZXIgc2tpbGxzLiZsdDsvcCZndDsKCiZsdDtwJmd0O0ZhbWlsaWFyaXppbmcgeW91cnNlbGYgd2l0aCB0aGVzZSBiYXNpYyBjb21tYW5kcyB3aWxsIHJlbW92ZSBvbmUgb2YgdGhlIGxhcmdlciBiYXJyaWVycyB0aGF0IG5ldyB1c2VycyBvZiBDaXJjbGVDSSBlbmNvdW50ZXIuJmx0Oy9wJmd0OwoKJmx0O3AmZ3Q7SWYgeW91IHdhbnQgdG8gbGVhcm4gbW9yZSBhYm91dCBDaXJjbGVDSSBjaGVjayBvdXQgdGhlICZsdDthIGhyZWY9JnF1b3Q7L2RvY3MvMi4wLyZxdW90OyZndDtkb2N1bWVudGF0aW9uIHNpdGUmbHQ7L2EmZ3Q7LCBhbmQgaWYgeW91IHJlYWxseSBnZXQgc3R1Y2sgeW91IGNhbiByZWFjaCBvdXQgdG8gdGhlIENpcmNsZUNJIGNvbW11bml0eSB2aWEgdGhlICZsdDthIGhyZWY9JnF1b3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mcXVvdDsmZ3Q7aHR0cHM6Ly9kaXNjdXNzLmNpcmNsZWNpLmNvbS8mbHQ7L2EmZ3Q7IGNvbW11bml0eS9mb3J1bSBzaXRlLiZsdDsvcCZndDsKCjwvZGVzY3JpcHRpb24+CiAgICAgICAgCiAgICAgIDwvaXRlbT4KICAgIAogIDwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:48 GMT
+- request:
+ method: get
+ uri: https://medium.com/feed/@macsiri/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - Ruby
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Date:
+ - Tue, 19 May 2020 11:56:49 GMT
+ Content-Type:
+ - text/xml; charset=UTF-8
+ Transfer-Encoding:
+ - chunked
+ Connection:
+ - keep-alive
+ X-Opentracing:
+ - '{"ot-tracer-spanid":"68710a82791f91a6","ot-tracer-traceid":"6cc5c97d41e5f3cc","ot-tracer-sampled":"true"}'
+ Content-Security-Policy:
+ - 'default-src ''self''; connect-src https://localhost https://*.instapaper.com
+ https://*.stripe.com https://glyph.medium.com https://*.paypal.com https://*.braintree-api.com
+ https://*.braintreegateway.com https://getpocket.com https://medium.com https://*.medium.com
+ https://*.medium.com https://medium.com https://*.medium.com https://*.algolia.net
+ https://cdn-static-1.medium.com https://dnqgz544uhbo8.cloudfront.net https://cdn-videos-1.medium.com
+ https://cdn-audio-1.medium.com https://*.lightstep.com https://*.branch.io
+ ''self''; font-src data: https://*.amazonaws.com https://*.medium.com https://glyph.medium.com
+ https://medium.com https://*.gstatic.com https://dnqgz544uhbo8.cloudfront.net
+ https://cdn-static-1.medium.com ''self''; frame-src chromenull: https: webviewprogressproxy:
+ medium: ''self''; img-src blob: data: https: ''self''; media-src https://*.cdn.vine.co
+ https://d1fcbxp97j4nb2.cloudfront.net https://d262ilb51hltx0.cloudfront.net
+ https://*.medium.com https://gomiro.medium.com https://miro.medium.com https://pbs.twimg.com
+ ''self'' blob:; object-src ''self''; script-src ''unsafe-eval'' ''unsafe-inline''
+ about: https: ''self''; style-src ''unsafe-inline'' data: https: ''self'';
+ report-uri https://csp.medium.com'
+ X-Frame-Options:
+ - sameorigin
+ X-Content-Type-Options:
+ - nosniff
+ X-Xss-Protection:
+ - 1; mode=block
+ X-Ua-Compatible:
+ - IE=edge, Chrome=1
+ X-Powered-By:
+ - Medium
+ X-Obvious-Tid:
+ - 1589889409835:4e798f0fd872
+ X-Obvious-Info:
+ - 41053-1bc14bc,1bc14bcede9
+ Link:
+ - ; rel="humans"
+ Cache-Control:
+ - private, must-revalidate, max-age=900
+ Expires:
+ - Tue, 19 May 2020 12:11:49 GMT
+ Pragma:
+ - private
+ Strict-Transport-Security:
+ - max-age=15552000; includeSubDomains; preload
+ Cf-Cache-Status:
+ - DYNAMIC
+ Expect-Ct:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ Server:
+ - cloudflare
+ Cf-Ray:
+ - 595da30b193b0e16-MXP
+ Alt-Svc:
+ - h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443";
+ ma=86400
+ Cf-Request-Id:
+ - 02ce643aea00000e1684b0a200000001
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48cnNzIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6Y29udGVudD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9jb250ZW50LyIgeG1sbnM6YXRvbT0iaHR0cDovL3d3dy53My5vcmcvMjAwNS9BdG9tIiB2ZXJzaW9uPSIyLjAiIHhtbG5zOmNjPSJodHRwOi8vY3liZXIubGF3LmhhcnZhcmQuZWR1L3Jzcy9jcmVhdGl2ZUNvbW1vbnNSc3NNb2R1bGUuaHRtbCI+CiAgICA8Y2hhbm5lbD4KICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbU3RvcmllcyBieSBNYWMgU2lyaSBvbiBNZWRpdW1dXT48L3RpdGxlPgogICAgICAgIDxkZXNjcmlwdGlvbj48IVtDREFUQVtTdG9yaWVzIGJ5IE1hYyBTaXJpIG9uIE1lZGl1bV1dPjwvZGVzY3JpcHRpb24+CiAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8aW1hZ2U+CiAgICAgICAgICAgIDx1cmw+aHR0cHM6Ly9jZG4taW1hZ2VzLTEubWVkaXVtLmNvbS9maXQvYy8xNTAvMTUwLzAqdzJibXRXbGFsZEtGbGI4ZS48L3VybD4KICAgICAgICAgICAgPHRpdGxlPlN0b3JpZXMgYnkgTWFjIFNpcmkgb24gTWVkaXVtPC90aXRsZT4KICAgICAgICAgICAgPGxpbms+aHR0cHM6Ly9tZWRpdW0uY29tL0BtYWNzaXJpP3NvdXJjZT1yc3MtNGIyNjA1ZGE5MzhmLS0tLS0tMjwvbGluaz4KICAgICAgICA8L2ltYWdlPgogICAgICAgIDxnZW5lcmF0b3I+TWVkaXVtPC9nZW5lcmF0b3I+CiAgICAgICAgPGxhc3RCdWlsZERhdGU+VHVlLCAxOSBNYXkgMjAyMCAxMTo1MzoxMyBHTVQ8L2xhc3RCdWlsZERhdGU+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwczovL21lZGl1bS5jb20vZmVlZC9AbWFjc2lyaSIgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIi8+CiAgICAgICAgPHdlYk1hc3Rlcj48IVtDREFUQVt5b3VyZnJpZW5kc0BtZWRpdW0uY29tXV0+PC93ZWJNYXN0ZXI+CiAgICAgICAgPGF0b206bGluayBocmVmPSJodHRwOi8vbWVkaXVtLnN1cGVyZmVlZHIuY29tIiByZWw9Imh1YiIvPgogICAgICAgIDxpdGVtPgogICAgICAgICAgICA8dGl0bGU+PCFbQ0RBVEFbVGVzdGluZyBSU1MgRmVlZF1dPjwvdGl0bGU+CiAgICAgICAgICAgIDxsaW5rPmh0dHBzOi8vbWVkaXVtLmNvbS9AbWFjc2lyaS90ZXN0aW5nLXJzcy1mZWVkLTZhZjA0YjdlNTdlMT9zb3VyY2U9cnNzLTRiMjYwNWRhOTM4Zi0tLS0tLTI8L2xpbms+CiAgICAgICAgICAgIDxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cHM6Ly9tZWRpdW0uY29tL3AvNmFmMDRiN2U1N2UxPC9ndWlkPgogICAgICAgICAgICA8Y2F0ZWdvcnk+PCFbQ0RBVEFbdGVzdF1dPjwvY2F0ZWdvcnk+CiAgICAgICAgICAgIDxkYzpjcmVhdG9yPjwhW0NEQVRBW01hYyBTaXJpXV0+PC9kYzpjcmVhdG9yPgogICAgICAgICAgICA8cHViRGF0ZT5UdWUsIDAyIEphbiAyMDE4IDE5OjA2OjMwIEdNVDwvcHViRGF0ZT4KICAgICAgICAgICAgPGF0b206dXBkYXRlZD4yMDE5LTA2LTE5VDIxOjM4OjA3LjU0OVo8L2F0b206dXBkYXRlZD4KICAgICAgICAgICAgPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD55b3V0dWJlIGxpbmvCoGhlcmU8L3A+PGlmcmFtZSBzcmM9Imh0dHBzOi8vY2RuLmVtYmVkbHkuY29tL3dpZGdldHMvbWVkaWEuaHRtbD9zcmM9aHR0cHMlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZlbWJlZCUyRlFPQ2FhY084d3VzJTNGZmVhdHVyZSUzRG9lbWJlZCZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cueW91dHViZS5jb20lMkZ3YXRjaCUzRnYlM0RRT0NhYWNPOHd1cyZhbXA7aW1hZ2U9aHR0cHMlM0ElMkYlMkZpLnl0aW1nLmNvbSUyRnZpJTJGUU9DYWFjTzh3dXMlMkZocWRlZmF1bHQuanBnJmFtcDtrZXk9YTE5ZmNjMTg0Yjk3MTFlMWI0NzY0MDQwZDNkYzVjMDcmYW1wO3R5cGU9dGV4dCUyRmh0bWwmYW1wO3NjaGVtYT15b3V0dWJlIiB3aWR0aD0iODU0IiBoZWlnaHQ9IjQ4MCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83ZGE3NGJiMzBmOGEyYTgyYjBhY2I4OWIyMTNhMDE4Yi9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvN2RhNzRiYjMwZjhhMmE4MmIwYWNiODliMjEzYTAxOGIvaHJlZjwvYT48L2lmcmFtZT48cD50d2VldCBoZXJlPC9wPjxzdHlsZT5ib2R5W2RhdGEtdHd0dHItcmVuZGVyZWQ9InRydWUiXSB7YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7fS50d2l0dGVyLXR3ZWV0IHttYXJnaW46IGF1dG8gIWltcG9ydGFudDt9PC9zdHlsZT48YmxvY2txdW90ZSBjbGFzcz0idHdpdHRlci10d2VldCIgZGF0YS1jb252ZXJzYXRpb249Im5vbmUiIGRhdGEtYWxpZ249ImNlbnRlciIgZGF0YS1kbnQ9InRydWUiPjxwPkkmIzM5O20gYSBmdWxsLXN0YWNrIGRldmVsb3BlcjwvcD48cD4mI3gyMDBhOyZtZGFzaDsmI3gyMDBhOzxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vYmVuZGhhbHBlcm4vc3RhdHVzLzk0ODI1NjA4MzM1MjczNTc0NCI+QGJlbmRoYWxwZXJuPC9hPjwvcD48L2Jsb2NrcXVvdGU+PHNjcmlwdCBzcmM9Ii8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PjxzY3JpcHQ+ZnVuY3Rpb24gbm90aWZ5UmVzaXplKGhlaWdodCkge2hlaWdodCA9IGhlaWdodCA/IGhlaWdodCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5vZmZzZXRIZWlnaHQ7IHZhciByZXNpemVkID0gZmFsc2U7IGlmICh3aW5kb3cuZG9ua2V5ICYmIGRvbmtleS5yZXNpemUpIHtkb25rZXkucmVzaXplKGhlaWdodCk7cmVzaXplZCA9IHRydWU7fWlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgb2JqID0ge2lmcmFtZTogd2luZG93LmZyYW1lRWxlbWVudCwgaGVpZ2h0OiBoZWlnaHR9OyBwYXJlbnQuX3Jlc2l6ZUlmcmFtZShvYmopOyByZXNpemVkID0gdHJ1ZTt9aWYgKHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PT0gIiNhbXA9MSIgJiYgd2luZG93LnBhcmVudCAmJiB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKSB7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7c2VudGluZWw6ICJhbXAiLCB0eXBlOiAiZW1iZWQtc2l6ZSIsIGhlaWdodDogaGVpZ2h0fSwgIioiKTt9aWYgKHdpbmRvdy53ZWJraXQgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMgJiYgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplKSB7d2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucmVzaXplLnBvc3RNZXNzYWdlKGhlaWdodCk7IHJlc2l6ZWQgPSB0cnVlO31yZXR1cm4gcmVzaXplZDt9dHd0dHIuZXZlbnRzLmJpbmQoJ3JlbmRlcmVkJywgZnVuY3Rpb24gKGV2ZW50KSB7bm90aWZ5UmVzaXplKCk7fSk7IHR3dHRyLmV2ZW50cy5iaW5kKCdyZXNpemUnLCBmdW5jdGlvbiAoZXZlbnQpIHtub3RpZnlSZXNpemUoKTt9KTs8L3NjcmlwdD48c2NyaXB0PmlmIChwYXJlbnQgJiYgcGFyZW50Ll9yZXNpemVJZnJhbWUpIHt2YXIgbWF4V2lkdGggPSBwYXJzZUludCh3aW5kb3cuZnJhbWVFbGVtZW50LmdldEF0dHJpYnV0ZSgid2lkdGgiKSk7IGlmICggNTAwICA8IG1heFdpZHRoKSB7d2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjUwMCIpO319PC9zY3JpcHQ+PHA+R2l0aHViIGdpc3TCoGhlcmU8L3A+PGlmcmFtZSBzcmM9IiIgd2lkdGg9IjAiIGhlaWdodD0iMCIgZnJhbWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjxhIGhyZWY9Imh0dHBzOi8vbWVkaXVtLmNvbS9tZWRpYS83NzdhZThiN2Q4OTE2ZTU2NWI4NGI3MDRjMDg4Y2YwYy9ocmVmIj5odHRwczovL21lZGl1bS5jb20vbWVkaWEvNzc3YWU4YjdkODkxNmU1NjViODRiNzA0YzA4OGNmMGMvaHJlZjwvYT48L2lmcmFtZT48cD5jb2RlIGJsb2NrPC9wPjxwcmU+dGVzdHNldHNldHNldHNldHNldHNldCBsZXRzIGludHJvZHVjZSBzb21lIHt7IGNoYW9zIH19PC9wcmU+PHByZT5IZXJlJiMzOTtzIG1vcmUge3sgd2hhdCB9fTwvcHJlPjxwPnNvbWUgbW9yZSBjb2RlIGFuZCB7eyBWQVJJQUJMRSB9fSBhbmQgPHN0cm9uZz48ZW0+e3sgSFRNTMKgfX08L2VtPjwvc3Ryb25nPjwvcD48aDM+e3sgaG93IGFib3V0IHRoaXPCoH19PC9oMz48aW1nIHNyYz0iaHR0cHM6Ly9tZWRpdW0uY29tL18vc3RhdD9ldmVudD1wb3N0LmNsaWVudFZpZXdlZCZyZWZlcnJlclNvdXJjZT1mdWxsX3JzcyZwb3N0SWQ9NmFmMDRiN2U1N2UxIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIj5dXT48L2NvbnRlbnQ6ZW5jb2RlZD4KICAgICAgICA8L2l0ZW0+CiAgICA8L2NoYW5uZWw+CjwvcnNzPg==
+ http_version: null
+ recorded_at: Tue, 19 May 2020 11:56:48 GMT
+recorded_with: VCR 5.1.0
diff --git a/spec/support/fixtures/vcr_cassettes/twitter_client_status.yml b/spec/support/fixtures/vcr_cassettes/twitter_client_status.yml
new file mode 100644
index 000000000..a8bccb0bc
--- /dev/null
+++ b/spec/support/fixtures/vcr_cassettes/twitter_client_status.yml
@@ -0,0 +1,145 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: https://api.twitter.com/oauth2/token
+ body:
+ encoding: UTF-8
+ string: grant_type=client_credentials
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Accept:
+ - "*/*"
+ Connection:
+ - close
+ Content-Type:
+ - application/x-www-form-urlencoded
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '153'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Mon, 18 May 2020 12:41:17 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Mon, 18 May 2020 12:41:16 GMT
+ Ml:
+ - A
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Connection-Hash:
+ - b808ab37862bae0eb94f753a5cd96dd5
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - DENY
+ X-Response-Time:
+ - '107'
+ X-Transaction:
+ - '00494008004581f6'
+ X-Tsa-Request-Body-Time:
+ - '1'
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Ua-Compatible:
+ - IE=edge,chrome=1
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"token_type":"bearer","access_token":"ACCESS_TOKEN"}'
+ http_version: null
+ recorded_at: Mon, 18 May 2020 12:41:17 GMT
+- request:
+ method: get
+ uri: https://api.twitter.com/1.1/statuses/show/1018911886862057472.json
+ body:
+ encoding: UTF-8
+ string: ''
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Connection:
+ - close
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '4181'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Mon, 18 May 2020 12:41:17 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Mon, 18 May 2020 12:41:17 GMT
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Access-Level:
+ - read
+ X-Connection-Hash:
+ - a3e8c4da447fc5bcef97874cbd59a994
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-Rate-Limit-Limit:
+ - '900'
+ X-Rate-Limit-Remaining:
+ - '896'
+ X-Rate-Limit-Reset:
+ - '1589805893'
+ X-Response-Time:
+ - '131'
+ X-Transaction:
+ - '0094e40000aabfb7'
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"created_at":"Mon Jul 16 17:34:58 +0000 2018","id":1018911886862057472,"id_str":"1018911886862057472","text":"When
+ GitHub goes down https:\/\/t.co\/5Laf1GtUSS","truncated":false,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[],"media":[{"id":1018911875919212546,"id_str":"1018911875919212546","indices":[22,45],"media_url":"http:\/\/pbs.twimg.com\/tweet_video_thumb\/DiPm8-WXcAI3_qS.jpg","media_url_https":"https:\/\/pbs.twimg.com\/tweet_video_thumb\/DiPm8-WXcAI3_qS.jpg","url":"https:\/\/t.co\/5Laf1GtUSS","display_url":"pic.twitter.com\/5Laf1GtUSS","expanded_url":"https:\/\/twitter.com\/ThePracticalDev\/status\/1018911886862057472\/photo\/1","type":"photo","sizes":{"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":400,"h":312,"resize":"fit"},"large":{"w":400,"h":312,"resize":"fit"},"small":{"w":400,"h":312,"resize":"fit"}}}]},"extended_entities":{"media":[{"id":1018911875919212546,"id_str":"1018911875919212546","indices":[22,45],"media_url":"http:\/\/pbs.twimg.com\/tweet_video_thumb\/DiPm8-WXcAI3_qS.jpg","media_url_https":"https:\/\/pbs.twimg.com\/tweet_video_thumb\/DiPm8-WXcAI3_qS.jpg","url":"https:\/\/t.co\/5Laf1GtUSS","display_url":"pic.twitter.com\/5Laf1GtUSS","expanded_url":"https:\/\/twitter.com\/ThePracticalDev\/status\/1018911886862057472\/photo\/1","type":"animated_gif","sizes":{"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":400,"h":312,"resize":"fit"},"large":{"w":400,"h":312,"resize":"fit"},"small":{"w":400,"h":312,"resize":"fit"}},"video_info":{"aspect_ratio":[50,39],"variants":[{"bitrate":0,"content_type":"video\/mp4","url":"https:\/\/video.twimg.com\/tweet_video\/DiPm8-WXcAI3_qS.mp4"}]}}]},"source":"\u003ca
+ href=\"http:\/\/twitter.com\" rel=\"nofollow\"\u003eTwitter Web Client\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":2735246778,"id_str":"2735246778","name":"DEV
+ Community \ud83d\udc69\u200d\ud83d\udcbb\ud83d\udc68\u200d\ud83d\udcbb","screen_name":"ThePracticalDev","location":"","description":"Great
+ posts from the amazing https:\/\/t.co\/xHvFQQ9jeO community, with some opinion
+ and humor mixed in. Created by @bendhalpern. Join https:\/\/t.co\/xHvFQQ9jeO!","url":"https:\/\/t.co\/lhcCPP1ReQ","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/lhcCPP1ReQ","expanded_url":"http:\/\/dev.to","display_url":"dev.to","indices":[0,23]}]},"description":{"urls":[{"url":"https:\/\/t.co\/xHvFQQ9jeO","expanded_url":"https:\/\/dev.to","display_url":"dev.to","indices":[29,52]},{"url":"https:\/\/t.co\/xHvFQQ9jeO","expanded_url":"https:\/\/dev.to","display_url":"dev.to","indices":[132,155]}]}},"protected":false,"followers_count":191639,"friends_count":2311,"listed_count":3793,"created_at":"Fri
+ Aug 15 19:11:17 +0000 2014","favourites_count":48516,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":38686,"lang":null,"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"131516","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":true,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1253165670935773185\/SkSoEQL3_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1253165670935773185\/SkSoEQL3_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2735246778\/1557714134","profile_link_color":"14BD7B","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":82,"favorite_count":263,"favorited":false,"retweeted":false,"possibly_sensitive":false,"possibly_sensitive_appealable":false,"lang":"en"}'
+ http_version: null
+ recorded_at: Mon, 18 May 2020 12:41:17 GMT
+recorded_with: VCR 5.1.0
diff --git a/spec/support/fixtures/vcr_cassettes/twitter_fetch_status.yml b/spec/support/fixtures/vcr_cassettes/twitter_client_status_extended.yml
similarity index 50%
rename from spec/support/fixtures/vcr_cassettes/twitter_fetch_status.yml
rename to spec/support/fixtures/vcr_cassettes/twitter_client_status_extended.yml
index f363d23d2..4b275c1f2 100644
--- a/spec/support/fixtures/vcr_cassettes/twitter_fetch_status.yml
+++ b/spec/support/fixtures/vcr_cassettes/twitter_client_status_extended.yml
@@ -1,5 +1,74 @@
---
http_interactions:
+- request:
+ method: post
+ uri: https://api.twitter.com/oauth2/token
+ body:
+ encoding: UTF-8
+ string: grant_type=client_credentials
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Accept:
+ - "*/*"
+ Connection:
+ - close
+ Content-Type:
+ - application/x-www-form-urlencoded
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '153'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Mon, 18 May 2020 12:48:44 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Mon, 18 May 2020 12:48:44 GMT
+ Ml:
+ - A
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Connection-Hash:
+ - 4a0eff9d35d94b917c6a394d78e0c178
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - DENY
+ X-Response-Time:
+ - '114'
+ X-Transaction:
+ - 004bebdc006e667c
+ X-Tsa-Request-Body-Time:
+ - '0'
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Ua-Compatible:
+ - IE=edge,chrome=1
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"token_type":"bearer","access_token":"ACCESS_TOKEN"}'
+ http_version: null
+ recorded_at: Mon, 18 May 2020 12:48:44 GMT
- request:
method: get
uri: https://api.twitter.com/1.1/statuses/show/1018911886862057472.json?tweet_mode=extended
@@ -8,7 +77,7 @@ http_interactions:
string: ''
headers:
User-Agent:
- - TwitterRubyGem/6.2.0
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
Connection:
- close
response:
@@ -23,27 +92,27 @@ http_interactions:
Content-Disposition:
- attachment; filename=json.json
Content-Length:
- - '4159'
+ - '4214'
Content-Type:
- application/json;charset=utf-8
Date:
- - Tue, 17 Jul 2018 20:09:47 GMT
+ - Mon, 18 May 2020 12:48:44 GMT
Expires:
- Tue, 31 Mar 1981 05:00:00 GMT
Last-Modified:
- - Tue, 17 Jul 2018 20:09:47 GMT
+ - Mon, 18 May 2020 12:48:44 GMT
Pragma:
- no-cache
Server:
- - tsa_b
+ - tsa_o
Status:
- 200 OK
Strict-Transport-Security:
- max-age=631138519
X-Access-Level:
- - read-write
+ - read
X-Connection-Hash:
- - fc498ba11baf16a5fd6822ed64fb207d
+ - 50e8c947e1620a984e9ec9ab6d860012
X-Content-Type-Options:
- nosniff
X-Frame-Options:
@@ -51,26 +120,26 @@ http_interactions:
X-Rate-Limit-Limit:
- '900'
X-Rate-Limit-Remaining:
- - '893'
+ - '899'
X-Rate-Limit-Reset:
- - '1531858493'
+ - '1589807024'
X-Response-Time:
- - '66'
+ - '127'
X-Transaction:
- - '00208a050094194c'
+ - '0071193c00ff8788'
X-Twitter-Response-Tags:
- BouncerCompliant
X-Xss-Protection:
- - 1; mode=block; report=https://twitter.com/i/xss_report
+ - '0'
body:
encoding: UTF-8
string: '{"created_at":"Mon Jul 16 17:34:58 +0000 2018","id":1018911886862057472,"id_str":"1018911886862057472","full_text":"When
GitHub goes down https:\/\/t.co\/5Laf1GtUSS","truncated":false,"display_text_range":[0,21],"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[],"media":[{"id":1018911875919212546,"id_str":"1018911875919212546","indices":[22,45],"media_url":"http:\/\/pbs.twimg.com\/tweet_video_thumb\/DiPm8-WXcAI3_qS.jpg","media_url_https":"https:\/\/pbs.twimg.com\/tweet_video_thumb\/DiPm8-WXcAI3_qS.jpg","url":"https:\/\/t.co\/5Laf1GtUSS","display_url":"pic.twitter.com\/5Laf1GtUSS","expanded_url":"https:\/\/twitter.com\/ThePracticalDev\/status\/1018911886862057472\/photo\/1","type":"photo","sizes":{"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":400,"h":312,"resize":"fit"},"large":{"w":400,"h":312,"resize":"fit"},"small":{"w":400,"h":312,"resize":"fit"}}}]},"extended_entities":{"media":[{"id":1018911875919212546,"id_str":"1018911875919212546","indices":[22,45],"media_url":"http:\/\/pbs.twimg.com\/tweet_video_thumb\/DiPm8-WXcAI3_qS.jpg","media_url_https":"https:\/\/pbs.twimg.com\/tweet_video_thumb\/DiPm8-WXcAI3_qS.jpg","url":"https:\/\/t.co\/5Laf1GtUSS","display_url":"pic.twitter.com\/5Laf1GtUSS","expanded_url":"https:\/\/twitter.com\/ThePracticalDev\/status\/1018911886862057472\/photo\/1","type":"animated_gif","sizes":{"thumb":{"w":150,"h":150,"resize":"crop"},"medium":{"w":400,"h":312,"resize":"fit"},"large":{"w":400,"h":312,"resize":"fit"},"small":{"w":400,"h":312,"resize":"fit"}},"video_info":{"aspect_ratio":[50,39],"variants":[{"bitrate":0,"content_type":"video\/mp4","url":"https:\/\/video.twimg.com\/tweet_video\/DiPm8-WXcAI3_qS.mp4"}]}}]},"source":"\u003ca
- href=\"http:\/\/twitter.com\" rel=\"nofollow\"\u003eTwitter Web Client\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":2735246778,"id_str":"2735246778","name":"The
- Practical Dev","screen_name":"ThePracticalDev","location":"","description":"Great
+ href=\"http:\/\/twitter.com\" rel=\"nofollow\"\u003eTwitter Web Client\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":2735246778,"id_str":"2735246778","name":"DEV
+ Community \ud83d\udc69\u200d\ud83d\udcbb\ud83d\udc68\u200d\ud83d\udcbb","screen_name":"ThePracticalDev","location":"","description":"Great
posts from the amazing https:\/\/t.co\/xHvFQQ9jeO community, with some opinion
- and humor mixed in. Created by @bendhalpern. Join https:\/\/t.co\/xHvFQQ9jeO!","url":"https:\/\/t.co\/lhcCPP1ReQ","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/lhcCPP1ReQ","expanded_url":"http:\/\/dev.to","display_url":"dev.to","indices":[0,23]}]},"description":{"urls":[{"url":"https:\/\/t.co\/xHvFQQ9jeO","expanded_url":"https:\/\/dev.to","display_url":"dev.to","indices":[29,52]},{"url":"https:\/\/t.co\/xHvFQQ9jeO","expanded_url":"https:\/\/dev.to","display_url":"dev.to","indices":[132,155]}]}},"protected":false,"followers_count":147060,"friends_count":2258,"listed_count":3145,"created_at":"Fri
- Aug 15 19:11:17 +0000 2014","favourites_count":42288,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":18387,"lang":"en","contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"131516","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":true,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1002604104194056192\/IEoNsLNM_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1002604104194056192\/IEoNsLNM_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2735246778\/1492833420","profile_link_color":"14BD7B","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":true,"follow_request_sent":false,"notifications":false,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":91,"favorite_count":276,"favorited":true,"retweeted":false,"possibly_sensitive":false,"possibly_sensitive_appealable":false,"lang":"en"}'
- http_version:
- recorded_at: Tue, 17 Jul 2018 20:09:47 GMT
-recorded_with: VCR 4.0.0
+ and humor mixed in. Created by @bendhalpern. Join https:\/\/t.co\/xHvFQQ9jeO!","url":"https:\/\/t.co\/lhcCPP1ReQ","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/lhcCPP1ReQ","expanded_url":"http:\/\/dev.to","display_url":"dev.to","indices":[0,23]}]},"description":{"urls":[{"url":"https:\/\/t.co\/xHvFQQ9jeO","expanded_url":"https:\/\/dev.to","display_url":"dev.to","indices":[29,52]},{"url":"https:\/\/t.co\/xHvFQQ9jeO","expanded_url":"https:\/\/dev.to","display_url":"dev.to","indices":[132,155]}]}},"protected":false,"followers_count":191641,"friends_count":2311,"listed_count":3793,"created_at":"Fri
+ Aug 15 19:11:17 +0000 2014","favourites_count":48516,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":38686,"lang":null,"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"131516","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":true,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1253165670935773185\/SkSoEQL3_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1253165670935773185\/SkSoEQL3_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2735246778\/1557714134","profile_link_color":"14BD7B","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":82,"favorite_count":263,"favorited":false,"retweeted":false,"possibly_sensitive":false,"possibly_sensitive_appealable":false,"lang":"en"}'
+ http_version: null
+ recorded_at: Mon, 18 May 2020 12:48:44 GMT
+recorded_with: VCR 5.1.0
diff --git a/spec/support/fixtures/vcr_cassettes/twitter_client_status_not_found.yml b/spec/support/fixtures/vcr_cassettes/twitter_client_status_not_found.yml
new file mode 100644
index 000000000..b3f453ceb
--- /dev/null
+++ b/spec/support/fixtures/vcr_cassettes/twitter_client_status_not_found.yml
@@ -0,0 +1,137 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: https://api.twitter.com/oauth2/token
+ body:
+ encoding: UTF-8
+ string: grant_type=client_credentials
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Accept:
+ - "*/*"
+ Connection:
+ - close
+ Content-Type:
+ - application/x-www-form-urlencoded
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '153'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Mon, 18 May 2020 16:09:44 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Mon, 18 May 2020 16:09:44 GMT
+ Ml:
+ - A
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Connection-Hash:
+ - c6b4eb440837c9010b219c99effa8141
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - DENY
+ X-Response-Time:
+ - '116'
+ X-Transaction:
+ - 00a3fa16001000f5
+ X-Tsa-Request-Body-Time:
+ - '1'
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Ua-Compatible:
+ - IE=edge,chrome=1
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"token_type":"bearer","access_token":"ACCESS_TOKEN"}'
+ http_version: null
+ recorded_at: Mon, 18 May 2020 16:09:44 GMT
+- request:
+ method: get
+ uri: https://api.twitter.com/1.1/statuses/show/0.json
+ body:
+ encoding: UTF-8
+ string: ''
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Connection:
+ - close
+ response:
+ status:
+ code: 404
+ message: Not Found
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '71'
+ Content-Type:
+ - application/json; charset=utf-8
+ Date:
+ - Mon, 18 May 2020 16:09:44 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Mon, 18 May 2020 16:09:44 GMT
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 404 Not Found
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Connection-Hash:
+ - a16f087a18e4315ecbc158f3e8947aa7
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-Rate-Limit-Limit:
+ - '900'
+ X-Rate-Limit-Remaining:
+ - '899'
+ X-Rate-Limit-Reset:
+ - '1589819084'
+ X-Response-Time:
+ - '114'
+ X-Transaction:
+ - 0035566e00d64ce7
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"errors":[{"code":8,"message":"No data available for specified ID."}]}'
+ http_version: null
+ recorded_at: Mon, 18 May 2020 16:09:44 GMT
+recorded_with: VCR 5.1.0
diff --git a/spec/support/fixtures/vcr_cassettes/twitter_client_status_not_found_extended.yml b/spec/support/fixtures/vcr_cassettes/twitter_client_status_not_found_extended.yml
new file mode 100644
index 000000000..ba225fe7f
--- /dev/null
+++ b/spec/support/fixtures/vcr_cassettes/twitter_client_status_not_found_extended.yml
@@ -0,0 +1,137 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: https://api.twitter.com/oauth2/token
+ body:
+ encoding: UTF-8
+ string: grant_type=client_credentials
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Accept:
+ - "*/*"
+ Connection:
+ - close
+ Content-Type:
+ - application/x-www-form-urlencoded
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '153'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Mon, 18 May 2020 14:46:21 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Mon, 18 May 2020 14:46:21 GMT
+ Ml:
+ - A
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Connection-Hash:
+ - c745e01b2e126fa33f799e05ae0c848b
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - DENY
+ X-Response-Time:
+ - '116'
+ X-Transaction:
+ - 00d4dfbe006f4d83
+ X-Tsa-Request-Body-Time:
+ - '0'
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Ua-Compatible:
+ - IE=edge,chrome=1
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"token_type":"bearer","access_token":"ACCESS_TOKEN"}'
+ http_version: null
+ recorded_at: Mon, 18 May 2020 14:46:21 GMT
+- request:
+ method: get
+ uri: https://api.twitter.com/1.1/statuses/show/0.json?tweet_mode=extended
+ body:
+ encoding: UTF-8
+ string: ''
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Connection:
+ - close
+ response:
+ status:
+ code: 404
+ message: Not Found
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '71'
+ Content-Type:
+ - application/json; charset=utf-8
+ Date:
+ - Mon, 18 May 2020 14:46:21 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Mon, 18 May 2020 14:46:21 GMT
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 404 Not Found
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Connection-Hash:
+ - aa96b1523d91f21bc57cc858a291326c
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-Rate-Limit-Limit:
+ - '900'
+ X-Rate-Limit-Remaining:
+ - '898'
+ X-Rate-Limit-Reset:
+ - '1589814001'
+ X-Response-Time:
+ - '116'
+ X-Transaction:
+ - 00d8302700668f57
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"errors":[{"code":8,"message":"No data available for specified ID."}]}'
+ http_version: null
+ recorded_at: Mon, 18 May 2020 14:46:21 GMT
+recorded_with: VCR 5.1.0
diff --git a/spec/support/fixtures/vcr_cassettes/twitter_client_status_reply_extended.yml b/spec/support/fixtures/vcr_cassettes/twitter_client_status_reply_extended.yml
new file mode 100644
index 000000000..7453bad42
--- /dev/null
+++ b/spec/support/fixtures/vcr_cassettes/twitter_client_status_reply_extended.yml
@@ -0,0 +1,144 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: https://api.twitter.com/oauth2/token
+ body:
+ encoding: UTF-8
+ string: grant_type=client_credentials
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Accept:
+ - "*/*"
+ Connection:
+ - close
+ Content-Type:
+ - application/x-www-form-urlencoded
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '153'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Mon, 18 May 2020 14:25:50 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Mon, 18 May 2020 14:25:50 GMT
+ Ml:
+ - A
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Connection-Hash:
+ - 3ac1eba3289eeef0ab2b6cc87580e474
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - DENY
+ X-Response-Time:
+ - '110'
+ X-Transaction:
+ - 003aeaa5005d5e26
+ X-Tsa-Request-Body-Time:
+ - '0'
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Ua-Compatible:
+ - IE=edge,chrome=1
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"token_type":"bearer","access_token":"ACCESS_TOKEN"}'
+ http_version: null
+ recorded_at: Mon, 18 May 2020 14:25:50 GMT
+- request:
+ method: get
+ uri: https://api.twitter.com/1.1/statuses/show/1242938461784608770.json?tweet_mode=extended
+ body:
+ encoding: UTF-8
+ string: ''
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Connection:
+ - close
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '2533'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Mon, 18 May 2020 14:25:51 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Mon, 18 May 2020 14:25:51 GMT
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Access-Level:
+ - read
+ X-Connection-Hash:
+ - 988e2ce230c1c018731301f04e0f8b73
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-Rate-Limit-Limit:
+ - '900'
+ X-Rate-Limit-Remaining:
+ - '899'
+ X-Rate-Limit-Reset:
+ - '1589812851'
+ X-Response-Time:
+ - '134'
+ X-Transaction:
+ - 001c06cc00a36c5e
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"created_at":"Wed Mar 25 22:16:36 +0000 2020","id":1242938461784608770,"id_str":"1242938461784608770","full_text":"@MattDomm_
+ Yes! :D","truncated":false,"display_text_range":[11,18],"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"MattDomm_","name":"Matt
+ Domm","id":45042829,"id_str":"45042829","indices":[0,10]}],"urls":[]},"source":"\u003ca
+ href=\"https:\/\/mobile.twitter.com\" rel=\"nofollow\"\u003eTwitter Web App\u003c\/a\u003e","in_reply_to_status_id":1242837746315669505,"in_reply_to_status_id_str":"1242837746315669505","in_reply_to_user_id":45042829,"in_reply_to_user_id_str":"45042829","in_reply_to_screen_name":"MattDomm_","user":{"id":1105243879589195777,"id_str":"1105243879589195777","name":"Codeland","screen_name":"codelandconf","location":"NYC","description":"Produced
+ by @ThePracticalDev @CodeNewbies. The conference for new and growing developers.","url":"https:\/\/t.co\/Yu6ibinH6I","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/Yu6ibinH6I","expanded_url":"https:\/\/codelandconf.com","display_url":"codelandconf.com","indices":[0,23]}]},"description":{"urls":[]}},"protected":false,"followers_count":2414,"friends_count":15,"listed_count":33,"created_at":"Mon
+ Mar 11 23:07:30 +0000 2019","favourites_count":2851,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":2542,"lang":null,"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"000000","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1233079056150736896\/qkSuQpiX_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1233079056150736896\/qkSuQpiX_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/1105243879589195777\/1585092823","profile_link_color":"FF01FF","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":false,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":0,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"en"}'
+ http_version: null
+ recorded_at: Mon, 18 May 2020 14:25:51 GMT
+recorded_with: VCR 5.1.0
diff --git a/spec/support/fixtures/vcr_cassettes/twitter_client_status_retweet_extended.yml b/spec/support/fixtures/vcr_cassettes/twitter_client_status_retweet_extended.yml
new file mode 100644
index 000000000..d024e6c37
--- /dev/null
+++ b/spec/support/fixtures/vcr_cassettes/twitter_client_status_retweet_extended.yml
@@ -0,0 +1,298 @@
+---
+http_interactions:
+- request:
+ method: post
+ uri: https://api.twitter.com/oauth2/token
+ body:
+ encoding: UTF-8
+ string: grant_type=client_credentials
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Accept:
+ - "*/*"
+ Connection:
+ - close
+ Content-Type:
+ - application/x-www-form-urlencoded
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '153'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Mon, 18 May 2020 14:59:16 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Mon, 18 May 2020 14:59:16 GMT
+ Ml:
+ - A
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Connection-Hash:
+ - 0ed066348bd2a09f1a4ab67364222291
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - DENY
+ X-Response-Time:
+ - '124'
+ X-Transaction:
+ - 00bc6963002453ac
+ X-Tsa-Request-Body-Time:
+ - '0'
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Ua-Compatible:
+ - IE=edge,chrome=1
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"token_type":"bearer","access_token":"ACCESS_TOKEN"}'
+ http_version: null
+ recorded_at: Mon, 18 May 2020 14:59:16 GMT
+- request:
+ method: get
+ uri: https://api.twitter.com/1.1/statuses/show/1262395854469677058.json?tweet_mode=extended
+ body:
+ encoding: UTF-8
+ string: ''
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Connection:
+ - close
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '5843'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Mon, 18 May 2020 14:59:16 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Mon, 18 May 2020 14:59:16 GMT
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Access-Level:
+ - read
+ X-Connection-Hash:
+ - f049dc981bb59177959f2e672d20ab06
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-Rate-Limit-Limit:
+ - '900'
+ X-Rate-Limit-Remaining:
+ - '896'
+ X-Rate-Limit-Reset:
+ - '1589814001'
+ X-Response-Time:
+ - '142'
+ X-Transaction:
+ - '009e83bf00c3d0db'
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"created_at":"Mon May 18 14:53:20 +0000 2020","id":1262395854469677058,"id_str":"1262395854469677058","full_text":"RT
+ @ThePracticalDev: \"The goal of this guide is to provide enough knowledge
+ to be conversational, as well as to give a strong jumping off p\u2026","truncated":false,"display_text_range":[0,140],"entities":{"hashtags":[],"symbols":[],"user_mentions":[{"screen_name":"ThePracticalDev","name":"DEV
+ Community \ud83d\udc69\u200d\ud83d\udcbb\ud83d\udc68\u200d\ud83d\udcbb","id":2735246778,"id_str":"2735246778","indices":[3,19]}],"urls":[]},"source":"\u003ca
+ href=\"http:\/\/twitter.com\/download\/iphone\" rel=\"nofollow\"\u003eTwitter
+ for iPhone\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":815325836,"id_str":"815325836","name":"Great","screen_name":"01Blows","location":"","description":"","url":null,"entities":{"description":{"urls":[]}},"protected":false,"followers_count":28,"friends_count":106,"listed_count":14,"created_at":"Mon
+ Sep 10 14:20:14 +0000 2012","favourites_count":62,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":false,"statuses_count":2686,"lang":null,"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"C0DEED","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":false,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/2970316093\/4b4015e8e6fe419e375d1e22d3349889_normal.jpeg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/2970316093\/4b4015e8e6fe419e375d1e22d3349889_normal.jpeg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/815325836\/1355402666","profile_link_color":"1DA1F2","profile_sidebar_border_color":"C0DEED","profile_sidebar_fill_color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"has_extended_profile":false,"default_profile":true,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"retweeted_status":{"created_at":"Mon
+ May 18 14:32:00 +0000 2020","id":1262390485399805953,"id_str":"1262390485399805953","full_text":"\"The
+ goal of this guide is to provide enough knowledge to be conversational, as
+ well as to give a strong jumping off point if you were to start learning TypeScript
+ on the job.\"\n\n\u007b author: @shane__lonergan \u007d #DEVCommunity https:\/\/t.co\/K5V4s91cJy","truncated":false,"display_text_range":[0,244],"entities":{"hashtags":[{"text":"DEVCommunity","indices":[207,220]}],"symbols":[],"user_mentions":[{"screen_name":"shane__lonergan","name":"Shane
+ Lonergan \ud83c\udfa4\u2328\ufe0f","id":1164944561304690688,"id_str":"1164944561304690688","indices":[188,204]}],"urls":[{"url":"https:\/\/t.co\/K5V4s91cJy","expanded_url":"https:\/\/dev.to\/shane__lonergan\/typescript-in-a-weekend-a-crash-course-2171","display_url":"dev.to\/shane__lonerga\u2026","indices":[221,244]}]},"source":"\u003ca
+ href=\"https:\/\/buffer.com\" rel=\"nofollow\"\u003eBuffer\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":2735246778,"id_str":"2735246778","name":"DEV
+ Community \ud83d\udc69\u200d\ud83d\udcbb\ud83d\udc68\u200d\ud83d\udcbb","screen_name":"ThePracticalDev","location":"","description":"Great
+ posts from the amazing https:\/\/t.co\/xHvFQQ9jeO community, with some opinion
+ and humor mixed in. Created by @bendhalpern. Join https:\/\/t.co\/xHvFQQ9jeO!","url":"https:\/\/t.co\/lhcCPP1ReQ","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/lhcCPP1ReQ","expanded_url":"http:\/\/dev.to","display_url":"dev.to","indices":[0,23]}]},"description":{"urls":[{"url":"https:\/\/t.co\/xHvFQQ9jeO","expanded_url":"https:\/\/dev.to","display_url":"dev.to","indices":[29,52]},{"url":"https:\/\/t.co\/xHvFQQ9jeO","expanded_url":"https:\/\/dev.to","display_url":"dev.to","indices":[132,155]}]}},"protected":false,"followers_count":191666,"friends_count":2311,"listed_count":3793,"created_at":"Fri
+ Aug 15 19:11:17 +0000 2014","favourites_count":48516,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":38690,"lang":null,"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"131516","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":true,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1253165670935773185\/SkSoEQL3_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1253165670935773185\/SkSoEQL3_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2735246778\/1557714134","profile_link_color":"14BD7B","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":9,"favorite_count":19,"favorited":false,"retweeted":false,"possibly_sensitive":false,"possibly_sensitive_appealable":false,"lang":"en"},"is_quote_status":false,"retweet_count":9,"favorite_count":0,"favorited":false,"retweeted":false,"lang":"en"}'
+ http_version: null
+ recorded_at: Mon, 18 May 2020 14:59:16 GMT
+- request:
+ method: post
+ uri: https://api.twitter.com/oauth2/token
+ body:
+ encoding: UTF-8
+ string: grant_type=client_credentials
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Accept:
+ - "*/*"
+ Connection:
+ - close
+ Content-Type:
+ - application/x-www-form-urlencoded
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '153'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Mon, 18 May 2020 14:59:17 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Mon, 18 May 2020 14:59:17 GMT
+ Ml:
+ - A
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Connection-Hash:
+ - eeef3e85c1fa03a5d4e20d85d95cc05e
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - DENY
+ X-Response-Time:
+ - '115'
+ X-Transaction:
+ - 00d5cdaa005fc247
+ X-Tsa-Request-Body-Time:
+ - '1'
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Ua-Compatible:
+ - IE=edge,chrome=1
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"token_type":"bearer","access_token":"ACCESS_TOKEN"}'
+ http_version: null
+ recorded_at: Mon, 18 May 2020 14:59:17 GMT
+- request:
+ method: get
+ uri: https://api.twitter.com/1.1/statuses/show/1262390485399805953.json
+ body:
+ encoding: UTF-8
+ string: ''
+ headers:
+ User-Agent:
+ - TwitterRubyGem/7.0.0 (http://localhost:3000)
+ Connection:
+ - close
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ Cache-Control:
+ - no-cache, no-store, must-revalidate, pre-check=0, post-check=0
+ Connection:
+ - close
+ Content-Disposition:
+ - attachment; filename=json.json
+ Content-Length:
+ - '3038'
+ Content-Type:
+ - application/json;charset=utf-8
+ Date:
+ - Mon, 18 May 2020 14:59:17 GMT
+ Expires:
+ - Tue, 31 Mar 1981 05:00:00 GMT
+ Last-Modified:
+ - Mon, 18 May 2020 14:59:17 GMT
+ Pragma:
+ - no-cache
+ Server:
+ - tsa_o
+ Status:
+ - 200 OK
+ Strict-Transport-Security:
+ - max-age=631138519
+ X-Access-Level:
+ - read
+ X-Connection-Hash:
+ - fd489dd89ded9e04dc9df080d7cbc52d
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-Rate-Limit-Limit:
+ - '900'
+ X-Rate-Limit-Remaining:
+ - '895'
+ X-Rate-Limit-Reset:
+ - '1589814001'
+ X-Response-Time:
+ - '130'
+ X-Transaction:
+ - 00dc05fb002b905b
+ X-Twitter-Response-Tags:
+ - BouncerCompliant
+ X-Xss-Protection:
+ - '0'
+ body:
+ encoding: UTF-8
+ string: '{"created_at":"Mon May 18 14:32:00 +0000 2020","id":1262390485399805953,"id_str":"1262390485399805953","text":"\"The
+ goal of this guide is to provide enough knowledge to be conversational, as
+ well as to give a strong jumping of\u2026 https:\/\/t.co\/firzrhsCY8","truncated":true,"entities":{"hashtags":[],"symbols":[],"user_mentions":[],"urls":[{"url":"https:\/\/t.co\/firzrhsCY8","expanded_url":"https:\/\/twitter.com\/i\/web\/status\/1262390485399805953","display_url":"twitter.com\/i\/web\/status\/1\u2026","indices":[117,140]}]},"source":"\u003ca
+ href=\"https:\/\/buffer.com\" rel=\"nofollow\"\u003eBuffer\u003c\/a\u003e","in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":{"id":2735246778,"id_str":"2735246778","name":"DEV
+ Community \ud83d\udc69\u200d\ud83d\udcbb\ud83d\udc68\u200d\ud83d\udcbb","screen_name":"ThePracticalDev","location":"","description":"Great
+ posts from the amazing https:\/\/t.co\/xHvFQQ9jeO community, with some opinion
+ and humor mixed in. Created by @bendhalpern. Join https:\/\/t.co\/xHvFQQ9jeO!","url":"https:\/\/t.co\/lhcCPP1ReQ","entities":{"url":{"urls":[{"url":"https:\/\/t.co\/lhcCPP1ReQ","expanded_url":"http:\/\/dev.to","display_url":"dev.to","indices":[0,23]}]},"description":{"urls":[{"url":"https:\/\/t.co\/xHvFQQ9jeO","expanded_url":"https:\/\/dev.to","display_url":"dev.to","indices":[29,52]},{"url":"https:\/\/t.co\/xHvFQQ9jeO","expanded_url":"https:\/\/dev.to","display_url":"dev.to","indices":[132,155]}]}},"protected":false,"followers_count":191666,"friends_count":2311,"listed_count":3793,"created_at":"Fri
+ Aug 15 19:11:17 +0000 2014","favourites_count":48516,"utc_offset":null,"time_zone":null,"geo_enabled":false,"verified":true,"statuses_count":38690,"lang":null,"contributors_enabled":false,"is_translator":false,"is_translation_enabled":false,"profile_background_color":"131516","profile_background_image_url":"http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png","profile_background_tile":true,"profile_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1253165670935773185\/SkSoEQL3_normal.jpg","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/1253165670935773185\/SkSoEQL3_normal.jpg","profile_banner_url":"https:\/\/pbs.twimg.com\/profile_banners\/2735246778\/1557714134","profile_link_color":"14BD7B","profile_sidebar_border_color":"000000","profile_sidebar_fill_color":"000000","profile_text_color":"000000","profile_use_background_image":true,"has_extended_profile":false,"default_profile":false,"default_profile_image":false,"following":null,"follow_request_sent":null,"notifications":null,"translator_type":"none"},"geo":null,"coordinates":null,"place":null,"contributors":null,"is_quote_status":false,"retweet_count":9,"favorite_count":19,"favorited":false,"retweeted":false,"possibly_sensitive":false,"possibly_sensitive_appealable":false,"lang":"en"}'
+ http_version: null
+ recorded_at: Mon, 18 May 2020 14:59:17 GMT
+recorded_with: VCR 5.1.0
diff --git a/spec/support/initializers/vcr.rb b/spec/support/initializers/vcr.rb
index 4e0f63459..f1d5dae53 100644
--- a/spec/support/initializers/vcr.rb
+++ b/spec/support/initializers/vcr.rb
@@ -17,6 +17,13 @@ VCR.configure do |config|
# Removes all private data (Basic Auth, Set-Cookie headers...)
config.before_record do |i|
+ # Twitter embeds the Bearer access token in the JSON HTTP response
+ if i.request.uri.include?("api.twitter.com/oauth2/token")
+ data = JSON.parse(i.response.body)
+ data["access_token"] = "ACCESS_TOKEN"
+ i.response.body = data.to_json
+ end
+
i.response.headers.delete("Set-Cookie")
i.request.headers.delete("Authorization")
@@ -24,14 +31,3 @@ VCR.configure do |config|
i.request.uri.sub!(/:\/\/.*#{Regexp.escape(u.host)}/, "://#{u.host}")
end
end
-
-VCR_OPTIONS = {
- twitter_fetch_status: {
- cassette_name: "twitter_fetch_status",
- allow_playback_repeats: true
- },
- rss_feeds: {
- cassette_name: "rss_feeds",
- allow_playback_repeats: true
- }
-}.freeze